1
0
Fork 0
mirror of https://github.com/documize/community.git synced 2025-07-23 07:09:43 +02:00

global space admin re-worked

This commit is contained in:
Harvey Kandola 2017-10-03 09:50:38 -04:00
parent ba5988dca3
commit 620fe28b27
5 changed files with 95 additions and 15 deletions

View file

@ -11,10 +11,16 @@
import Ember from 'ember';
import NotifierMixin from '../../../mixins/notifier';
import DropdownMixin from '../../../mixins/dropdown';
export default Ember.Controller.extend(NotifierMixin, {
export default Ember.Controller.extend(NotifierMixin, DropdownMixin, {
folderService: Ember.inject.service('folder'),
folders: [],
dropdown: null,
deleteSpace: {
id: '',
name: ''
},
label: function () {
switch (this.get('folders').length) {
@ -25,16 +31,65 @@ export default Ember.Controller.extend(NotifierMixin, {
}
}.property('folders'),
willDestroyElement() {
this.destroyDropdown();
},
actions: {
changeOwner: function (folderId, userId) {
this.get('folderService').getFolder(folderId).then((folder) => {
folder.set('userId', userId);
onShow(spaceId) {
this.set('deleteSpace.id', spaceId);
this.set('deleteSpace.name', '');
$(".delete-space-dialog").css("display", "block");
$('#delete-space-name').removeClass('error');
this.get('folderService').save(folder).then(() => {
this.showNotification("Changed");
let drop = new Drop({
target: $("#delete-space-button-" + spaceId)[0],
content: $(".delete-space-dialog")[0],
classes: 'drop-theme-basic',
position: "bottom right",
openOn: "always",
tetherOptions: {
offset: "5px 0",
targetOffset: "10px 0"
},
remove: false
});
this.set('dropdown', drop);
},
onCancel() {
this.closeDropdown();
},
onDelete() {
let deleteSpace = this.get('deleteSpace');
let spaceId = deleteSpace.id;
let spaceNameTyped = deleteSpace.name;
let space = this.get('folders').findBy('id', spaceId);
let spaceName = space.get('name');
if (spaceNameTyped !== spaceName || spaceNameTyped === '' || spaceName === '') {
$('#delete-space-name').addClass('error').focus();
return;
}
this.closeDropdown();
this.get('folderService').delete(spaceId).then(() => { /* jshint ignore:line */
this.set('deleteSpace.id', '');
this.set('deleteSpace.name', '');
this.showNotification("Deleted");
this.get('folderService').adminList().then((folders) => {
let nonPrivateFolders = folders.rejectBy('folderType', 2);
if (is.empty(nonPrivateFolders) || is.null(folders) || is.undefined(folders)) {
nonPrivateFolders = [];
}
this.set('folders', nonPrivateFolders);
});
this.send('onChangeOwner');
});
}
}