Ghost/ghost/admin/app/controllers/settings/members-access.js
Kevin Ansfield 4e82ea38ea Updated setting model for new members_signup_access setting
requires https://github.com/TryGhost/Ghost/pull/12886

- renamed `membersAllowFreeSignup` to `membersSignupAccess` and changed type to match new setting
- added `membersAllowFreeSignup` computed property to map to the new setting to avoid having to migrate code elsewhere that will be removed once the new options are out of developer experiments
2021-04-19 16:37:00 +01:00

68 lines
1.7 KiB
JavaScript

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;
@tracked signupAccessOpen = false;
@tracked postAccessOpen = 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;
}
@action
toggleSignupAccess() {
this.signupAccessOpen = !this.signupAccessOpen;
}
@action
togglePostAccess() {
this.postAccessOpen = !this.postAccessOpen;
}
@action
setDefaultContentVisibility(value) {
this.settings.set('defaultContentVisibility', value);
}
@action
setSignupAccess(value) {
switch (value) {
case 'all':
this.settings.set('membersAllowFreeSignup', true);
break;
case 'invite':
this.settings.set('membersAllowFreeSignup', false);
break;
}
}
@task({drop: true})
*saveSettingsTask() {
return yield this.settings.save();
}
}