0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-24 23:48:13 -05:00

Removed unused members-payments route

no issue

- stripe connect/disconnect functionality has moved to a modal as part of the new membership screen
- removed `settings/members-payments` route and related route/controller/template files
- updated link to stripe connect in product screen to show an alert as a reminder to update to use the new modal (products screens are not usable for now, they'll be worked on again later)
This commit is contained in:
Kevin Ansfield 2021-05-21 08:57:16 +01:00
parent 9000317acd
commit 29dc178261
6 changed files with 9 additions and 135 deletions

View file

@ -1,54 +0,0 @@
/* eslint-disable ghost/ember/alias-model-in-controller */
import Controller from '@ember/controller';
import {action} from '@ember/object';
import {inject as service} from '@ember/service';
import {task} from 'ember-concurrency-decorators';
import {tracked} from '@glimmer/tracking';
export default class MembersPaymentsController extends Controller {
@service settings;
@tracked showLeaveSettingsModal = false;
@action
setDefaultContentVisibility(value) {
this.settings.set('defaultContentVisibility', value);
}
@action
setStripeConnectIntegrationTokenSetting(stripeConnectIntegrationToken) {
this.settings.set('stripeConnectIntegrationToken', stripeConnectIntegrationToken);
}
@task({drop: true})
*saveSettings() {
return yield this.settings.save();
}
leaveRoute(transition) {
if (this.settings.get('hasDirtyAttributes')) {
transition.abort();
this.leaveSettingsTransition = transition;
this.showLeaveSettingsModal = true;
}
}
@action
async confirmLeave() {
this.settings.rollbackAttributes();
this.showLeaveSettingsModal = false;
this.leaveSettingsTransition.retry();
}
@action
cancelLeave() {
this.showLeaveSettingsModal = false;
this.leaveSettingsTransition = null;
}
reset() {
// stripeConnectIntegrationToken is not a persisted value so we don't want
// to keep it around across transitions
this.settings.set('stripeConnectIntegrationToken', undefined);
}
}

View file

@ -5,8 +5,9 @@ import {task} from 'ember-concurrency-decorators';
import {tracked} from '@glimmer/tracking'; import {tracked} from '@glimmer/tracking';
export default class ProductController extends Controller { export default class ProductController extends Controller {
@service settings;
@service config; @service config;
@service membersUtils;
@service settings;
@tracked showLeaveSettingsModal = false; @tracked showLeaveSettingsModal = false;
@tracked showPriceModal = false; @tracked showPriceModal = false;
@ -100,6 +101,11 @@ export default class ProductController extends Controller {
this.send('savePrice', price); this.send('savePrice', price);
} }
@action
openStripeConnect() {
alert('Update to use stripe-connect modal (see memberships screen)');
}
@action @action
async confirmLeave() { async confirmLeave() {
this.settings.rollbackAttributes(); this.settings.rollbackAttributes();

View file

@ -50,7 +50,6 @@ Router.map(function () {
this.route('settings.general', {path: '/settings/general'}); this.route('settings.general', {path: '/settings/general'});
this.route('settings.membership', {path: '/settings/members'}); this.route('settings.membership', {path: '/settings/members'});
this.route('settings.members-email', {path: '/settings/members-email'}); this.route('settings.members-email', {path: '/settings/members-email'});
this.route('settings.members-payments', {path: '/settings/members-payments'});
this.route('settings.code-injection', {path: '/settings/code-injection'}); this.route('settings.code-injection', {path: '/settings/code-injection'});
this.route('settings.products', {path: '/settings/products'}); this.route('settings.products', {path: '/settings/products'});

View file

@ -1,41 +0,0 @@
import AuthenticatedRoute from 'ghost-admin/routes/authenticated';
import {inject as service} from '@ember/service';
export default class MembersPaymentsRoute extends AuthenticatedRoute {
@service session;
@service settings;
beforeModel() {
super.beforeModel(...arguments);
return this.session.get('user').then((user) => {
if (!user.isOwner && user.isAdmin) {
return this.transitionTo('settings');
} else if (!user.isOwner) {
return this.transitionTo('home');
}
});
}
model() {
return this.settings.reload();
}
actions = {
willTransition(transition) {
return this.controller.leaveRoute(transition);
}
}
resetController(controller, isExiting) {
if (isExiting) {
controller.reset();
}
}
buildRouteInfoMetadata() {
return {
titleToken: 'Settings - Members'
};
}
}

View file

@ -1,36 +0,0 @@
<section class="gh-canvas">
<GhCanvasHeader class="gh-canvas-header">
<h2 class="gh-canvas-title" data-test-screen-title>
<LinkTo @route="settings">Settings</LinkTo>
<span>{{svg-jar "arrow-right"}}</span>
Payments
</h2>
<section class="view-actions">
<GhTaskButton @buttonText="Save settings"
@task={{this.saveSettings}}
@successText="Saved"
@runningText="Saving"
@class="gh-btn gh-btn-primary gh-btn-icon"
data-test-button="save-members-settings"
/>
</section>
</GhCanvasHeader>
<section class="view-container settings-debug">
<div class="gh-setting-liquid-section">
<GhMembersPaymentsSetting
@setDefaultContentVisibility={{this.setDefaultContentVisibility}}
@setStripeConnectIntegrationTokenSetting={{this.setStripeConnectIntegrationTokenSetting}}
/>
</div>
</section>
{{#if this.showLeaveSettingsModal}}
<GhFullscreenModal
@modal="leave-settings"
@confirm={{this.confirmLeave}}
@close={{this.cancelLeave}}
@modifier="action wide"
/>
{{/if}}
</section>

View file

@ -75,7 +75,7 @@
<td colspan="4" class="gh-list-data"> <td colspan="4" class="gh-list-data">
<div class="gh-price-list-noprices"> <div class="gh-price-list-noprices">
<div class="mb2">There are no prices for this product</div> <div class="mb2">There are no prices for this product</div>
{{#if this.settings.stripeConnectAccountId}} {{#if this.membersUtils.isStripeEnabled}}
{{#unless this.product.isNew}} {{#unless this.product.isNew}}
<button type="button" class="gh-btn gh-btn-green" {{action "openNewPrice"}} <button type="button" class="gh-btn gh-btn-green" {{action "openNewPrice"}}
disabled={{this.saveTask.isRunning}} > disabled={{this.saveTask.isRunning}} >
@ -83,7 +83,7 @@
</button> </button>
{{/unless}} {{/unless}}
{{else}} {{else}}
You need to <LinkTo class="gh-setting-group" @route="settings.members-payments" data-test-nav="members-payments">connect to Stripe</LinkTo> to add prices You need to <button class="b gh-setting-group" {{on "click" this.openStripeConnect}}>connect to Stripe</button> to add prices
{{/if}} {{/if}}
</div> </div>
</td> </td>