/** * Project : AMDA-NG4 * Name : PlotNode.js * @class amdaModel.PlotNode * @extends amdaModel.ExecutableNode * @brief Basic Model of Node corresponding to a plot request * @author Benjamin Renard */ Ext.define('amdaModel.PlotNode', { extend: 'amdaModel.ExecutableNode', fields : [ {name : 'tabs', type:'auto', defaultValue:false, persist: false} ], statics: { nodeType: 'request' }, requires:[ 'amdaModel.PlotTabNode' ], constructor : function(config){ this.callParent(arguments); this.set('moduleId',myDesktopApp.dynamicModules.plot.id); this.set('objectDataModel','amdaPlotObj.PlotRequestObject'); this.set('nodeType',this.self.nodeType); if (this.get('leaf')) { this.updateTabs(this.get('tabs')); } }, updateTabs : function(tabs) { if (tabs) { var oneTab = (tabs.length == 1); this.set('leaf', oneTab); this.set('iconCls', oneTab ? 'icon-plot-page' : 'icon-plot-pages'); this.removeAll(); if (tabs.length > 1) { var me = this; Ext.Array.each(tabs, function(tab) { var tabNode = new amdaModel.PlotTabNode({text: tab.name, tabid: tab.id}); me.appendChild(tabNode); }); } this.set('tabs', tabs); } }, specialUpdate : function(res) { this.updateTabs(res.tabs); }, allMenuItems : function() { var menuItems = [{ fnId : 'root-createDir', text : 'Create Folder' }, { fnId : 'dire-createDir', text : 'Create Folder' }, { fnId : 'dire-renameNode', text : 'Rename Folder' }, { fnId : 'dire-deleteNode', text : 'Delete Folder' }, { fnId : 'leaf-editPlot', text : 'Plot By Request' }, { fnId : 'leaf-renameNode', text : 'Rename Request' }, { fnId : 'leaf-deleteNode', text : 'Delete Request' }]; return menuItems; }, allMenuMultiItems : function() { var menuMulti = [ { fnId : 'mult-deleteMulti', text : 'Delete selected Requests' } ]; return menuMulti; }, getAllContextMenuItems: function(){ return this.allMenuItems(); }, getMultiContextMenuItems: function(){ return this.allMenuMultiItems(); }, onMenuItemClick : function(menu,item,event) { var fnId = Ext.util.Format.substr(item.fnId, 5, item.fnId.length); switch (fnId) { case 'createDir': this.createDir(); break; case 'deleteNode': this.deleteNode(); break; case 'renameNode': this.renameNode(); break; case 'editPlot': this.editLeaf(); break; case 'deleteMulti': this.deleteMulti(); break; default: break; } }, rename: function(value,callBackFn) { var isFolder = (!this.isLeaf()) && (this.get('tabs') === false); var dataToSend = {id : this.get('id'), old_name: this.modified.text, name: value, parent : this.data.parentId, leaf: !isFolder, nodeType: this.get('nodeType')}; AmdaAction.renameObject(dataToSend, callBackFn); }, renameDD: function(parentId, callBackFn) { var isFolder = (!this.isLeaf()) && (this.get('tabs') === false); var dataToSend = {id : this.get('id'), old_name: this.get('name'), name: this.get('name'), parent : parentId, leaf: !isFolder, nodeType: this.get('nodeType')}; AmdaAction.renameObject(dataToSend, callBackFn); } });