// Copyright 2016 Documize Inc. . 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 . // // https://documize.com import Ember from 'ember'; import constants from '../../utils/constants'; import TooltipMixin from '../../mixins/tooltip'; import NotifierMixin from '../../mixins/notifier'; import AuthMixin from '../../mixins/auth'; export default Ember.Component.extend(TooltipMixin, NotifierMixin, AuthMixin, { publicFolders: [], protectedFolders: [], privateFolders: [], hasPublicFolders: false, hasProtectedFolders: false, hasPrivateFolders: false, newFolder: '', copyTemplate: true, copyPermission: true, copyDocument: false, clonedSpace: { id: "" }, showSpace: false, didReceiveAttrs() { let folders = this.get('folders'); // clear out state this.set('publicFolders', []); this.set('protectedFolders', []); this.set('privateFolders', []); _.each(folders, folder => { if (folder.get('folderType') === constants.FolderType.Public) { let folders = this.get('publicFolders'); folders.pushObject(folder); this.set('publicFolders', folders); } if (folder.get('folderType') === constants.FolderType.Private) { let folders = this.get('privateFolders'); folders.pushObject(folder); this.set('privateFolders', folders); } if (folder.get('folderType') === constants.FolderType.Protected) { let folders = this.get('protectedFolders'); folders.pushObject(folder); this.set('protectedFolders', folders); } }); this.set('hasPublicFolders', this.get('publicFolders.length') > 0); this.set('hasPrivateFolders', this.get('privateFolders.length') > 0); this.set('hasProtectedFolders', this.get('protectedFolders.length') > 0); }, actions: { onToggleNewSpace() { let val = !this.get('showSpace'); this.set('showSpace', val); if (val) { Ember.run.schedule('afterRender', () => { $("#new-folder-name").focus(); }); } }, onCloneSpaceSelect(sp) { this.set('clonedSpace', sp) }, onAdd() { let folderName = this.get('newFolder'); let clonedId = this.get('clonedSpace.id'); if (is.empty(folderName)) { $("#new-folder-name").addClass("error").focus(); return false; } let payload = { name: folderName, CloneID: clonedId, copyTemplate: this.get('copyTemplate'), copyPermission: this.get('copyPermission'), copyDocument: this.get('copyDocument'), } this.attrs.onAddSpace(payload); this.set('showSpace', false); this.set('newFolder', ''); return true; } } });