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:
parent
ba5988dca3
commit
620fe28b27
5 changed files with 95 additions and 15 deletions
|
@ -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');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue