mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-02-24 23:48:13 -05:00
Added blank members access settings screen behind dev flag
refs https://github.com/TryGhost/Team/issues/579 - empty screen ready for signup access and default post access level settings to be moved to - has unsaved settings changes modal ready
This commit is contained in:
parent
ae4d15d237
commit
c1904d7d84
5 changed files with 100 additions and 0 deletions
37
ghost/admin/app/controllers/settings/members-access.js
Normal file
37
ghost/admin/app/controllers/settings/members-access.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
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 MembersAccessController extends Controller {
|
||||
@service settings;
|
||||
|
||||
@tracked showLeaveSettingsModal = false;
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
@task({drop: true})
|
||||
*saveSettingsTask() {
|
||||
return yield this.settings.save();
|
||||
}
|
||||
}
|
|
@ -48,6 +48,7 @@ Router.map(function () {
|
|||
|
||||
this.route('settings');
|
||||
this.route('settings.general', {path: '/settings/general'});
|
||||
this.route('settings.members-access', {path: '/settings/members-access'});
|
||||
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'});
|
||||
|
|
22
ghost/admin/app/routes/settings/members-access.js
Normal file
22
ghost/admin/app/routes/settings/members-access.js
Normal file
|
@ -0,0 +1,22 @@
|
|||
import AuthenticatedRoute from 'ghost-admin/routes/authenticated';
|
||||
import {inject as service} from '@ember/service';
|
||||
|
||||
export default class MembersAccessRoute extends AuthenticatedRoute {
|
||||
@service settings;
|
||||
|
||||
model() {
|
||||
this.settings.reload();
|
||||
}
|
||||
|
||||
actions = {
|
||||
willTransition(transition) {
|
||||
return this.controller.leaveRoute(transition);
|
||||
}
|
||||
}
|
||||
|
||||
buildRouteInfoMetadata() {
|
||||
return {
|
||||
titleToken: 'Settings - Members'
|
||||
};
|
||||
}
|
||||
}
|
|
@ -40,6 +40,15 @@
|
|||
|
||||
<div class="gh-setting-header">Members</div>
|
||||
<div class="gh-settings-main-grid">
|
||||
{{#if (enable-developer-experiments)}}
|
||||
<LinkTo class="gh-setting-group" @route="settings.members-access" data-test-nav="members-access">
|
||||
<span class="color-3">{{svg-jar "portal-logo-stroke"}}</span>
|
||||
<div>
|
||||
<h4>Access</h4>
|
||||
<p>Configure members usage and default access levels</p>
|
||||
</div>
|
||||
</LinkTo>
|
||||
{{/if}}
|
||||
<button type="button" class="gh-setting-group portal" {{action (toggle "showPortalSettings" this)}} data-test-toggle-membersFrom>
|
||||
<span class="color-3">{{svg-jar "portal-logo-stroke"}}</span>
|
||||
<div>
|
||||
|
|
31
ghost/admin/app/templates/settings/members-access.hbs
Normal file
31
ghost/admin/app/templates/settings/members-access.hbs
Normal file
|
@ -0,0 +1,31 @@
|
|||
<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>
|
||||
Access
|
||||
</h2>
|
||||
<section class="view-actions">
|
||||
<GhTaskButton @buttonText="Save settings"
|
||||
@task={{this.saveSettingsTask}}
|
||||
@successText="Saved"
|
||||
@runningText="Saving"
|
||||
@class="gh-btn gh-btn-primary gh-btn-icon"
|
||||
data-test-button="save-settings"
|
||||
/>
|
||||
</section>
|
||||
</GhCanvasHeader>
|
||||
|
||||
<section class="view-container settings-debug">
|
||||
|
||||
</section>
|
||||
|
||||
{{#if this.showLeaveSettingsModal}}
|
||||
<GhFullscreenModal
|
||||
@modal="leave-settings"
|
||||
@confirm={{this.confirmLeave}}
|
||||
@close={{this.cancelLeave}}
|
||||
@modifier="action wide"
|
||||
/>
|
||||
{{/if}}
|
||||
</section>
|
Loading…
Add table
Reference in a new issue