1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-24 15:49:44 +02:00

Normalized remaining space options into settings admin

Moved space naming and category management into space settings.
This commit is contained in:
HarveyKandola 2018-06-21 12:38:13 +01:00
parent 29534273b8
commit d689cbc281
16 changed files with 174 additions and 331 deletions

View file

@ -1,45 +0,0 @@
// 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 $ from 'jquery';
import Component from '@ember/component';
export default Component.extend({
newCategory: '',
actions: {
didInsertElement() {
this._super(...arguments);
$('#new-category-name').focus();
},
onAdd(e) {
e.preventDefault();
let cat = this.get('newCategory');
if (cat === '') {
$('#new-category-name').addClass('is-invalid').focus();
return;
}
$('#new-category-name').removeClass('is-invalid').focus();
this.set('newCategory', '');
let c = {
category: cat,
folderId: this.get('space.id')
};
this.get('onAdd')(c);
}
}
});

View file

@ -14,9 +14,10 @@ import { A } from '@ember/array';
import { inject as service } from '@ember/service';
import TooltipMixin from '../../mixins/tooltip';
import ModalMixin from '../../mixins/modal';
import Notifer from '../../mixins/notifier';
import Component from '@ember/component';
export default Component.extend(ModalMixin, TooltipMixin, {
export default Component.extend(ModalMixin, TooltipMixin, Notifer, {
spaceSvc: service('folder'),
groupSvc: service('group'),
categorySvc: service('category'),
@ -24,6 +25,7 @@ export default Component.extend(ModalMixin, TooltipMixin, {
store: service(),
deleteId: '',
dropdown: null,
newCategory: '',
init() {
this._super(...arguments);
@ -43,11 +45,11 @@ export default Component.extend(ModalMixin, TooltipMixin, {
load() {
// get categories
this.get('categorySvc').getAll(this.get('folder.id')).then((c) => {
this.get('categorySvc').getAll(this.get('space.id')).then((c) => {
this.set('category', c);
// get summary of documents and users for each category in space
this.get('categorySvc').getSummary(this.get('folder.id')).then((s) => {
this.get('categorySvc').getSummary(this.get('space.id')).then((s) => {
c.forEach((cat) => {
let docs = _.where(s, {categoryId: cat.get('id'), type: 'documents'});
let docCount = 0;
@ -67,7 +69,7 @@ export default Component.extend(ModalMixin, TooltipMixin, {
permissionRecord(who, whoId, name) {
let raw = {
id: whoId,
orgId: this.get('folder.orgId'),
orgId: this.get('space.orgId'),
categoryId: this.get('currentCategory.id'),
whoId: whoId,
who: who,
@ -91,6 +93,31 @@ export default Component.extend(ModalMixin, TooltipMixin, {
},
actions: {
onAdd(e) {
e.preventDefault();
let cat = this.get('newCategory');
if (cat === '') {
$('#new-category-name').addClass('is-invalid').focus();
return;
}
$('#new-category-name').removeClass('is-invalid').focus();
this.set('newCategory', '');
let c = {
category: cat,
folderId: this.get('space.id')
};
this.showWait();
this.get('categorySvc').add(c).then(() => {
this.load();
this.showDone();
});
},
onShowDelete(id) {
let cat = this.get('category').findBy('id', id);
this.set('deleteId', cat.get('id'));
@ -144,7 +171,7 @@ export default Component.extend(ModalMixin, TooltipMixin, {
this.set('categoryPermissions', categoryPermissions);
// get space permissions
this.get('spaceSvc').getPermissions(this.get('folder.id')).then((spacePermissions) => {
this.get('spaceSvc').getPermissions(this.get('space.id')).then((spacePermissions) => {
spacePermissions.forEach((sp) => {
let cp = this.permissionRecord(sp.get('who'), sp.get('whoId'), sp.get('name'));
cp.set('selected', false);
@ -172,11 +199,11 @@ export default Component.extend(ModalMixin, TooltipMixin, {
onGrantAccess() {
this.set('showCategoryAccess', false);
let folder = this.get('folder');
let space = this.get('space');
let category = this.get('currentCategory');
let perms = this.get('categoryPermissions').filterBy('selected', true);
this.get('categorySvc').setViewers(folder.get('id'), category.get('id'), perms).then(() => {
this.get('categorySvc').setViewers(space.get('id'), category.get('id'), perms).then(() => {
this.load();
});
}

View file

@ -13,6 +13,7 @@ import { A } from '@ember/array';
import { inject as service } from '@ember/service';
import { schedule } from '@ember/runloop';
import { computed } from '@ember/object';
import { empty } from '@ember/object/computed';
import AuthMixin from '../../mixins/auth';
import Notifier from '../../mixins/notifier';
import Component from '@ember/component';
@ -26,6 +27,8 @@ export default Component.extend(AuthMixin, Notifier, {
return this.get('permissions.spaceOwner') || this.get('permissions.spaceManage');
}),
spaceName: '',
hasNameError: empty('spaceName'),
spaceTypeOptions: A([]),
spaceType: 0,
likes: '',
@ -51,6 +54,8 @@ export default Component.extend(AuthMixin, Notifier, {
} else {
this.set('likes', 'Did this help you?');
}
this.set('spaceName', this.get('space.name'));
},
actions: {
@ -75,6 +80,10 @@ export default Component.extend(AuthMixin, Notifier, {
let allowLikes = this.get('allowLikes');
space.set('likes', allowLikes ? this.get('likes') : '');
let spaceName = this.get('spaceName').trim();
if (spaceName.length === 0) return;
space.set('name', spaceName);
this.showWait();
this.get('spaceSvc').save(space).then(() => {

View file

@ -1,54 +0,0 @@
// 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 $ from 'jquery';
import { empty } from '@ember/object/computed';
import { schedule } from '@ember/runloop';
import { inject as service } from '@ember/service';
import Component from '@ember/component';
export default Component.extend({
folderService: service('folder'),
spaceName: '',
hasNameError: empty('spaceName'),
editMode: false,
keyUp(e) {
if (e.keyCode === 27) { // escape key
this.send('onCancel');
}
},
actions: {
toggleEdit() {
this.set('spaceName', this.get('space.name'));
this.set('editMode', true);
schedule('afterRender', () => {
$('#folder-name').select();
});
},
onSave() {
if (this.get('hasNameError')) {
return;
}
this.set('space.name', this.get('spaceName'));
this.get('folderService').save(this.get('space'));
this.set('editMode', false);
},
onCancel() {
this.set('editMode', false);
}
}
});