1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-08-04 21:15:24 +02:00

Change space settings management into tab views

This commit is contained in:
Harvey Kandola 2018-06-05 14:04:14 +01:00
parent 738b3d94b6
commit 92f8fe550e
38 changed files with 683 additions and 411 deletions

View file

@ -167,14 +167,6 @@ export default Controller.extend(Tooltips, Notifier, {
});
},
onDeleteBlock(blockId) {
return new EmberPromise((resolve) => {
this.get('sectionService').deleteBlock(blockId).then(() => {
resolve();
});
});
},
onSavePageAsBlock(block) {
return new EmberPromise((resolve) => {
this.get('sectionService').addBlock(block).then(() => {

View file

@ -11,8 +11,8 @@
import { Promise as EmberPromise, hash } from 'rsvp';
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import Route from '@ember/routing/route';
export default Route.extend(AuthenticatedRouteMixin, {
documentService: service('document'),

View file

@ -69,7 +69,6 @@
onCopyPage=(action 'onCopyPage')
onMovePage=(action 'onMovePage')
onDeletePage=(action 'onPageDeleted')
onDeleteBlock=(action 'onDeleteBlock')
onInsertSection=(action 'onInsertSection')
onSavePageAsBlock=(action 'onSavePageAsBlock')
onPageLevelChange=(action 'onPageLevelChange')

View file

@ -10,18 +10,20 @@
// https://documize.com
import { inject as service } from '@ember/service';
import Notifier from '../../../mixins/notifier';
import Controller from '@ember/controller';
export default Controller.extend({
sectionService: service('section'),
export default Controller.extend(Notifier, {
router: service(),
sectionSvc: service('section'),
actions: {
onCancel( /*page*/ ) {
this.transitionToRoute('document');
this.get('router').transitionTo('folder.settings', {queryParams: {tab: 'blocks'}});
},
onAction(page, meta) {
let self = this;
this.showWait();
let b = this.get('model.block');
b.set('title', page.get('title'));
@ -31,8 +33,9 @@ export default Controller.extend({
b.set('config', meta.get('config'));
b.set('externalSource', meta.get('externalSource'));
this.get('sectionService').updateBlock(b).then(function () {
self.transitionToRoute('document');
this.get('sectionSvc').updateBlock(b).then(() => {
this.showDone();
this.get('router').transitionTo('folder.settings', {queryParams: {tab: 'blocks'}});
});
}
}

View file

@ -11,21 +11,19 @@
import { hash } from 'rsvp';
import { inject as service } from '@ember/service';
import Route from '@ember/routing/route';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import Route from '@ember/routing/route';
export default Route.extend(AuthenticatedRouteMixin, {
documentService: service('document'),
folderService: service('folder'),
sectionService: service('section'),
sectionSvc: service('section'),
model(params) {
let self = this;
return hash({
folder: self.modelFor('document').folder,
document: self.modelFor('document').document,
block: self.get('sectionService').getBlock(params.block_id),
space: this.modelFor('folder').folder,
permissions: this.modelFor('folder').permissions,
block: self.get('sectionSvc').getBlock(params.block_id),
});
},
});

View file

@ -0,0 +1,30 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { inject as service } from '@ember/service';
import NotifierMixin from '../../../mixins/notifier';
import Controller from '@ember/controller';
export default Controller.extend(NotifierMixin, {
folderService: service('folder'),
localStorage: service('localStorage'),
tab: 'general',
actions: {
onTab(view) {
this.set('tab', view);
},
onRefresh() {
this.get('target._routerMicrolib').refresh();
}
}
});

View file

@ -0,0 +1,29 @@
// Copyright 2016 Documize Inc. <legal@documize.com>. All rights reserved.
//
// This software (Documize Community Edition) is licensed under
// GNU AGPL v3 http://www.gnu.org/licenses/agpl-3.0.en.html
//
// You can operate outside the AGPL restrictions by purchasing
// Documize Enterprise Edition and obtaining a commercial license
// by contacting <sales@documize.com>.
//
// https://documize.com
import { hash } from 'rsvp';
// import { inject as service } from '@ember/service';
import AuthenticatedRouteMixin from 'ember-simple-auth/mixins/authenticated-route-mixin';
import Route from '@ember/routing/route';
export default Route.extend(AuthenticatedRouteMixin, {
model() {
this.get('browser').setTitle(this.modelFor('folder').folder.get('name'));
return hash({
folder: this.modelFor('folder').folder,
folders: this.modelFor('folder').folders,
permissions: this.modelFor('folder').permissions,
templates: this.modelFor('folder').templates,
});
}
});

View file

@ -0,0 +1,54 @@
{{#layout/top-bar}}
<li class="item">
{{#link-to "folder.index" model.folder.id model.folder.slug class='link'}}
{{model.folder.name}}
{{/link-to}}
</li>
<li class="item">
{{#link-to "folder.settings" model.folder.id model.folder.slug class='link selected'}}
Settings
{{/link-to}}
</li>
{{/layout/top-bar}}
{{#layout/middle-zone}}
{{#layout/middle-zone-content}}
{{#if (eq tab 'general')}}
{{folder/settings-general permissions=model.permissions space=model.folder}}
{{/if}}
{{#if (eq tab 'permissions')}}
{{folder/settings-permissions permissions=model.permissions folders=model.folders folder=model.folder onRefresh=(action 'onRefresh')}}
{{/if}}
{{#if (eq tab 'invitations')}}
{{folder/settings-invitations permissions=model.permissions space=model.folder}}
{{/if}}
{{#if (eq tab 'templates')}}
{{folder/settings-templates permissions=model.permissions space=model.folder templates=model.templates}}
{{/if}}
{{#if (eq tab 'blocks')}}
{{folder/settings-blocks permissions=model.permissions space=model.folder}}
{{/if}}
{{/layout/middle-zone-content}}
{{#layout/middle-zone-sidebar}}
<div id="sidebar" class="sidebar">
<h1>{{model.folder.name}}</h1>
<div class="margin-top-50">
<ul class="tabnav-control tabnav-control-centered w-75">
<li class="tab tab-vertical {{if (eq tab 'general') 'selected'}}" {{action 'onTab' 'general'}}>Options</li>
<li class="tab tab-vertical {{if (eq tab 'permissions') 'selected'}}" {{action 'onTab' 'permissions'}}>Permissions</li>
<li class="tab tab-vertical {{if (eq tab 'invitations') 'selected'}}" {{action 'onTab' 'invitations'}}>Invite Users</li>
<li class="tab tab-vertical {{if (eq tab 'templates') 'selected'}}" {{action 'onTab' 'templates'}}>Document Templates</li>
<li class="tab tab-vertical {{if (eq tab 'blocks') 'selected'}}" {{action 'onTab' 'blocks'}}>Content Blocks</li>
</ul>
</div>
</div>
{{/layout/middle-zone-sidebar}}
{{/layout/middle-zone}}
{{#layout/bottom-bar}}
{{/layout/bottom-bar}}