diff --git a/src/_assets/post_auth_messages.json b/src/_assets/post_auth_messages.json index e72da0a..2c63c08 100644 --- a/src/_assets/post_auth_messages.json +++ b/src/_assets/post_auth_messages.json @@ -1,43 +1,2 @@ { - "payment_page_title": "Please add a payment method", - "payment_page_sub_title": "We need a CC card to secure your place in the Bubblesphere.", - - "label_bubble_free_title": "Bubble is free for 30 days.", - "label_bubble_free_description": "We think you'll love the security of being in your Bubble.
If for any reason you want to cancel, that's easy too!", - "label_welcome_message": "Welcome, {{user.name}}", - "label_time_to_launch_bubble": "It's time to launch your Bubble.", - "button_label_launch_bubble": "Launch Bubble", - "button_label_advanced_bubble_settings": "Launch with Advanced Settings", - - "how_it_works_title": "How does it work?", - - "field_label_bubble_name": "Custom Bubble Name", - - "button_label_launch": "Launch", - - "label_launching_bubble_title": "Your Bubble is Launching!", - "label_launching_bubble_description": "Once ready, use your Bubble by adding the app to your devices", - "button_cancel_lauch_bubble": "Cancel Launch", - - "label_get_bubble_for_devices": "Get the Bubble Apps for Your Devices!", - "available_devices": "iphone,android,mac_computer,windows_computer", - "label_device_iphone": "iPhone", - "label_device_android": "Android", - "label_device_mac_computer": "Mac Computer", - "label_device_windows_computer": "Windows Computer", - - "title_my_account": "My Account", - "manage_account_actions": "change_password,account_data,billing,manage_ssh,payment,delete_backup", - "manage_account_change_password_title": "Change Password", - "manage_account_account_data_title": "Account Data", - "manage_account_billing_title": "Billing", - "manage_account_manage_ssh_title": "Manage SSH Keys", - "manage_account_payment_title": "Payment Methods and Credits", - "manage_account_delete_backup_title": "Delete or Backup Bubble", - "manage_account_change_password_link": "/me/change_password", - "manage_account_account_data_link": "/me/policy", - "manage_account_billing_link": "/me/bills", - "manage_account_manage_ssh_link": "/me/keys", - "manage_account_payment_link": "/me/payment", - "manage_account_delete_backup_link": "/me/policy" } diff --git a/src/_assets/pre_auth_messages.json b/src/_assets/pre_auth_messages.json index 358b666..2c63c08 100644 --- a/src/_assets/pre_auth_messages.json +++ b/src/_assets/pre_auth_messages.json @@ -1,29 +1,2 @@ { - "verify_email_title": "Please verify your email address", - "resend_verify_email_label": "Did you not received the email?", - "button_label_resend_verify_email": "Resend it.", - "more_features_label": "More Features", - - "button_label_add_card": "Add Card", - "label_pricing_option_format": "{{messages[`marketing_pricing_${plan}_title`]}}: {{messages.currency_symbol_USD}} {{price}} monthly (free for 30 days)", - - "marketing_pricing_options": "personal,power,mega", - - "marketing_pricing_personal_title": "Personal Bubble", - "marketing_pricing_personal_users": "1 User Account", - "marketing_pricing_personal_price": "1200", - "marketing_pricing_personal_options": "1 User Account,1TB/Month of Data Transfer", - "marketing_pricing_personal_link": "/register?plan=bubble", - - "marketing_pricing_power_title": "Power Plan", - "marketing_pricing_power_users": "5 User Accounts", - "marketing_pricing_power_price": "1900", - "marketing_pricing_power_options": "5 User Accounts,2TB/Month of Data Transfer", - "marketing_pricing_power_link": "/register?plan=bubble_plus", - - "marketing_pricing_mega_title": "Mega Plan", - "marketing_pricing_mega_users": "10 User Accounts", - "marketing_pricing_mega_price": "3100", - "marketing_pricing_mega_options": "10 User Accounts,3TB/Month of Data Transfer", - "marketing_pricing_mega_link": "/register?plan=bubble_super" } diff --git a/src/_pages/auth/AppLogin.vue b/src/_pages/auth/AppLogin.vue new file mode 100644 index 0000000..2416bb2 --- /dev/null +++ b/src/_pages/auth/AppLogin.vue @@ -0,0 +1,86 @@ + + + + diff --git a/src/_pages/auth/Layout.vue b/src/_pages/auth/Layout.vue index c5a344c..b526611 100644 --- a/src/_pages/auth/Layout.vue +++ b/src/_pages/auth/Layout.vue @@ -49,6 +49,7 @@ export default { const urlNodes = this.$route.fullPath.split('/'); switch (urlNodes[1]) { case 'login': + case 'appLogin': case 'forgotPassword': return 'background1'; } @@ -56,6 +57,7 @@ export default { // new pages in progress switch (urlNodes[2]) { case 'login': + case 'appLogin': case 'forgotPassword': return 'background1'; } diff --git a/src/_pages/main/Layout.vue b/src/_pages/main/Layout.vue index 799f3c9..f084449 100644 --- a/src/_pages/main/Layout.vue +++ b/src/_pages/main/Layout.vue @@ -75,23 +75,23 @@ export default { }, navigateToVerifyEmail() { - if (this.$route.path !== '/new_pages/verify-email') { - this.$router.push('/new_pages/verify-email'); + if (this.$route.path !== '/verify-email') { + this.$router.push('/verify-email'); } }, navigateToPaymentPage() { - if (this.$route.path !== '/new_pages/payment') { - this.$router.push('/new_pages/payment'); + if (this.$route.path !== '/payment') { + this.$router.push('/payment'); } }, navigateToDashboard() { if ( - this.$route.path === '/new_pages/payment' || - this.$route.path === '/new_pages/verify-email' + this.$route.path === '/payment' || + this.$route.path === '/verify-email' ) { - this.$router.push('/new_pages/test'); + this.$router.push('/'); } }, }, @@ -113,7 +113,6 @@ export default { }, 5000); } } else { - console.log('hasVerified Contact'); const currentUser = util.currentUser(); this.getAllAccountPaymentMethods({ userId: currentUser.uuid, @@ -127,7 +126,7 @@ export default { } }, - accountPaymentMethods(pms) { + accountPaymentMethods(pms, oldpms) { if (pms) { const payMethods = []; for (let i = 0; i < pms.length; i++) { @@ -141,6 +140,7 @@ export default { payMethods.push(pm); } } + if ( this.accountPlan.paymentMethodObject.uuid === null && payMethods.length > 0 diff --git a/src/_pages/main/account/Legal.vue b/src/_pages/main/account/Legal.vue new file mode 100644 index 0000000..57c8dd0 --- /dev/null +++ b/src/_pages/main/account/Legal.vue @@ -0,0 +1,70 @@ + + + + + + diff --git a/src/_pages/main/account/Payment.vue b/src/_pages/main/account/Payment.vue index 1d267d2..a43bb83 100644 --- a/src/_pages/main/account/Payment.vue +++ b/src/_pages/main/account/Payment.vue @@ -337,7 +337,11 @@ export default { watch: { paymentMethods() { - this.$refs.stripeElement.setUpStripe(this.paymentMethods[0].driverConfig.publicApiKey); + if (this.paymentMethods[0]) { + this.$refs.stripeElement.setUpStripe( + this.paymentMethods[0].driverConfig.publicApiKey + ); + } }, paymentStatus(ps) { diff --git a/src/_router/index.js b/src/_router/index.js index cafb714..3ce5459 100644 --- a/src/_router/index.js +++ b/src/_router/index.js @@ -71,6 +71,16 @@ export const router = new Router({ path: '/new_pages', component: () => import('~/_pages/Layout'), children: [ + { + path: '', + component: () => import('~/_pages/auth/Layout'), + children: [ + { + path: 'appLogin', + component: () => import('~/_pages/auth/AppLogin'), + }, + ], + }, { path: '', component: () => import('~/_pages/main/Layout'), @@ -87,6 +97,14 @@ export const router = new Router({ path: 'restore', component: () => import('~/_pages/main/bubble/Restore'), }, + { + path: 'legal', + component: () => import('~/_pages/main/account/Legal'), + }, + { + path: 'restore', + component: () => import('~/_pages/main/bubble/Restore'), + }, ], }, { diff --git a/src/app/App.vue b/src/app/App.vue index 7093251..6c37889 100644 --- a/src/app/App.vue +++ b/src/app/App.vue @@ -182,7 +182,7 @@ export default { return this.configs ? this.configs.awaitingRestore : undefined; }, isNewPage() { - const newPages = ['/new_pages', '/login', '/forgotPassword', '/register', '/me', '/devices', '/launch-bubble', '/launching-bubble']; + const newPages = ['/new_pages', '/login', '/forgotPassword', '/register', '/me', '/devices', '/launch-bubble', '/launching-bubble', '/payment', '/verify-email']; return ( newPages.includes(this.$route.path) || newPages.filter((p) => this.$route.path.startsWith(p)).length