mirror of
https://github.com/fleetdm/fleet
synced 2026-04-21 13:37:30 +00:00
* rename dir * no need to install website or docs from npm At some point, would also be nice to be able to exclude assets/ as well, and to only install a pre-built version of Fleet's frontend code * Bring in fleetdm.com website From https://github.com/fleetdm/fleetdm.com as of https://github.com/fleetdm/fleetdm.com/releases/tag/v0.0.21 * add procfile for heroku Using https://github.com/timanovsky/subdir-heroku-buildpack * avoid getting anybody's hopes up * Create deploy-fleet-website.yml (#82) * Create deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * update pjs with SPDX-like license expressions. also fix repo URL and remove package lock * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * remove dummy uri * Dissect deploy script * Update deploy-fleet-website.yml * workaround for eslintrc nesting issue * lint fixes * forgot the .js * add per-commit git config * Update deploy-fleet-website.yml * might as well remove that * cleanup * connect w/ heroku app and have it actually push * fix bug I introduced in578a1a01ff* Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * the beauty, the glory, of javascript * GH actions don't like "\n" * Update deploy-fleet-website.yml * restore \n chars from0d45e568f6hoping I was wrong in0d45e568f6but see also https://github.community/t/what-is-the-correct-character-escaping-for-workflow-command-values-e-g-echo-xxxx/118465/5 * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * Update deploy-fleet-website.yml * rename script to prevent duplicate building * Configure the real website * clean up * a test of the deploy workflow * add handbook to npmignore * I guess you could call this fixing a typo * point workflow at master branch * now clearly bogus: this completely unused version string
106 lines
3.1 KiB
JavaScript
106 lines
3.1 KiB
JavaScript
parasails.registerPage('account-overview', {
|
|
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
|
|
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
|
|
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
|
|
data: {
|
|
isBillingEnabled: false,
|
|
|
|
hasBillingCard: false,
|
|
|
|
// Syncing/loading states for this page.
|
|
syncingOpenCheckout: false,
|
|
syncingUpdateCard: false,
|
|
syncingRemoveCard: false,
|
|
|
|
// For <ajax-form>
|
|
formData: { /* … */ },
|
|
formRules: { /* … */ },
|
|
formErrors: { /* … */ },
|
|
cloudError: '',
|
|
syncing: '',
|
|
|
|
// For <modal>:
|
|
modal: '',
|
|
|
|
},
|
|
|
|
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
|
|
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
|
|
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
|
|
beforeMount: function (){
|
|
_.extend(this, window.SAILS_LOCALS);
|
|
|
|
this.isBillingEnabled = !!this.stripePublishableKey;
|
|
|
|
// Determine whether there is billing info for this user.
|
|
this.me.hasBillingCard = (
|
|
this.me.billingCardBrand &&
|
|
this.me.billingCardLast4 &&
|
|
this.me.billingCardExpMonth &&
|
|
this.me.billingCardExpYear
|
|
);
|
|
},
|
|
mounted: async function() {
|
|
//…
|
|
},
|
|
|
|
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
|
|
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
|
|
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
|
|
methods: {
|
|
|
|
clickUpdateBillingCardButton: function() {
|
|
this.modal = 'update-billing-card';
|
|
this.formData = { newPaymentSource: undefined };
|
|
this.formRules = { newPaymentSource: {required: true}};
|
|
},
|
|
|
|
closeModal: async function() {
|
|
// Dismiss modal
|
|
this.modal = '';
|
|
await this._resetForms();
|
|
},
|
|
|
|
handleSubmittingUpdateBillingCard: async function(argins) {
|
|
var newPaymentSource = argins.newPaymentSource;
|
|
await Cloud.updateBillingCard.with(newPaymentSource);
|
|
},
|
|
|
|
submittedUpdateBillingCard: async function() {
|
|
Object.assign(this.me, _.pick(this.formData.newPaymentSource, ['billingCardLast4', 'billingCardBrand', 'billingCardExpMonth', 'billingCardExpYear']));
|
|
this.me.hasBillingCard = true;
|
|
|
|
// Dismiss modal
|
|
this.modal = '';
|
|
await this._resetForms();
|
|
},
|
|
|
|
_resetForms: async function() {
|
|
this.cloudError = '';
|
|
this.formData = {};
|
|
this.formRules = {};
|
|
this.formErrors = {};
|
|
await this.forceRender();
|
|
},
|
|
|
|
clickRemoveCardButton: async function() {
|
|
this.modal = 'remove-billing-card';
|
|
this.formData.stripeToken = '';
|
|
},
|
|
|
|
submittedRemoveCardForm: async function() {
|
|
|
|
// Update billing info on success.
|
|
this.me.billingCardLast4 = undefined;
|
|
this.me.billingCardBrand = undefined;
|
|
this.me.billingCardExpMonth = undefined;
|
|
this.me.billingCardExpYear = undefined;
|
|
this.me.hasBillingCard = false;
|
|
|
|
// Close the modal and clear it out.
|
|
this.closeModal();
|
|
|
|
},
|
|
|
|
}
|
|
});
|