public/javascripts/erp_app/desktop/applications/knitkit/module.js in knitkit-2.1.15 vs public/javascripts/erp_app/desktop/applications/knitkit/module.js in knitkit-3.0.0

- old
+ new

@@ -1,114 +1,246 @@ -Ext.define("Compass.ErpApp.Desktop.Applications.Knitkit",{ - extend:"Ext.ux.desktop.Module", - id:'knitkit-win', - init : function(){ +Ext.define("Compass.ErpApp.Desktop.Applications.Knitkit", { + extend: "Ext.ux.desktop.Module", + id: 'knitkit-win', + alias: 'widget.knitkit_mainui', + + /** + * @cfg {Object} currentWebsite + * The currently selected website with params {id, name, configurationId} + */ + currentWebsite: null, + + init: function () { + this.launcher = { text: 'KnitKit', - iconCls:'icon-palette', - handler : this.createWindow, + iconCls: 'icon-knitkit', + handler: this.createWindow, scope: this } }, - createWindow : function(){ - //*********************************************************** - //Might get rid of this or make it an option you can select - var title = 'KnitKit-' + currentUser.description - //*********************************************************** + initComponent: function () { + var me = this; + + me.addEvents( + /* + * @event websiteselected + * Fires when a website is selected + * @param {Compass.ErpApp.Desktop.Applications.Knitkit} this + * @param {Object} currentWebsite + */ + 'websiteselected' + ); + }, + + clearWebsite: function(){ + var self = this, + desktop = self.app.getDesktop(), + win = desktop.getWindow('knitkit'), + menuBar = win.down('toolbar'); + + this.currentWebsite = null; + + var eastRegion = Ext.ComponentQuery.query('#knitkitEastRegion').first(); + eastRegion.fileAssetsPanel.clearWebsite(); + eastRegion.imageAssetsPanel.clearWebsite(); + + var westRegion = Ext.ComponentQuery.query('#knitkitWestRegion').first(); + westRegion.clearWebsite(); + + menuBar.down('#themeMenuItem').disable(); + menuBar.down('#navigationMenuItem').disable(); + menuBar.down('#hostsMenuItem').disable(); + menuBar.down('#sectionsPagesMenuItem').disable(); + menuBar.down('#deleteWebsiteMenuItem').disable(); + menuBar.down('#configureWebsiteMenuItem').disable(); + menuBar.down('#websitePublicationsMenuItem').disable(); + menuBar.down('#exportWebsiteMenuItem').disable(); + menuBar.down('#websiteInquiresMenuItem').disable(); + menuBar.down('#publishWebsiteMenuItem').disable(); + menuBar.down('#editWebsiteMenuItem').disable(); + menuBar.down('#exportTemplateMenuItem').disable(); + + }, + + selectWebsite: function (website) { + // get only the data for the website + website = website.data; + + + var self = this, + desktop = self.app.getDesktop(), + win = desktop.getWindow('knitkit'), + menuBar = win.down('toolbar'); + + self.fireEvent('websiteselected', self, website); + + this.currentWebsite = website; + + var eastRegion = Ext.getCmp('knitkitEastRegion'); + eastRegion.fileAssetsPanel.selectWebsite(website); + eastRegion.imageAssetsPanel.selectWebsite(website); + + var westRegion = Ext.getCmp('knitkitWestRegion'); + westRegion.selectWebsite(website); + + Compass.ErpApp.Shared.FileManagerTree.extraPostData = { + website_id: website.id + }; + + Ext.Ajax.request({ + url: '/knitkit/erp_app/desktop/site/has_active_theme', + params: { + website_id: website.id + }, + success: function(response){ + var text = response.responseText; + var obj = Ext.decode(text); + if (obj.message == 'true') { + menuBar.down('#exportTemplateMenuItem').enable(); + } + } + }); + + menuBar.down('#themeMenuItem').enable(); + menuBar.down('#navigationMenuItem').enable(); + menuBar.down('#hostsMenuItem').enable(); + menuBar.down('#sectionsPagesMenuItem').enable(); + menuBar.down('#deleteWebsiteMenuItem').enable(); + menuBar.down('#configureWebsiteMenuItem').enable(); + menuBar.down('#websitePublicationsMenuItem').enable(); + menuBar.down('#exportWebsiteMenuItem').enable(); + menuBar.down('#websiteInquiresMenuItem').enable(); + menuBar.down('#publishWebsiteMenuItem').enable(); + menuBar.down('#editWebsiteMenuItem').enable(); + + }, + + createWindow: function () { var desktop = this.app.getDesktop(); var win = desktop.getWindow('knitkit'); - var centerRegion = Ext.create('Compass.ErpApp.Desktop.Applications.Knitkit.CenterRegion'); - this.centerRegion = centerRegion; - if(!win){ - win = desktop.createWindow({ - id: 'knitkit', - title:title, - autoDestroy:true, - width:1200, - height:550, - maximized:true, - iconCls: 'icon-palette', - shim:false, - animCollapse:false, - constrainHeader:true, - layout: 'border', - tbar:{ - items:[ - { - iconCls:'btn-save', - text:'Save', - handler:function(btn){ - centerRegion.saveCurrent(); - } - }, - { - iconCls:'btn-save-all', - text:'Save All', - handler:function(btn){ - centerRegion.saveAll(); - } - }, - '->', - { - iconCls:'btn-left-panel', - handler:function(btn){ - var panel = btn.up('window').down('knitkit_westregion'); - if(panel.collapsed){ - panel.expand(); - } - else{ - panel.collapse(Ext.Component.DIRECTION_LEFT); - } - } - }, - { - iconCls:'btn-right-panel', - handler:function(btn){ - var panel = btn.up('window').down('knitkit_eastregion'); - if(panel.collapsed){ - panel.expand(); - } - else{ - panel.collapse(Ext.Component.DIRECTION_RIGHT); - } - } - }, - { - iconCls:'btn-left-right-panel', - handler:function(btn){ - var east = btn.up('window').down('knitkit_eastregion'); - var west = btn.up('window').down('knitkit_westregion'); - if(west.collapsed || east.collapsed){ - west.expand(); - east.expand(); - } - else - if(!west.collapsed && !east.collapsed){ - var task = new Ext.util.DelayedTask(function(){ - west.collapse(Ext.Component.DIRECTION_LEFT); - }); - east.collapse(Ext.Component.DIRECTION_RIGHT); - task.delay(400); - } - } + if (!win) { + var centerRegion = Ext.create('Compass.ErpApp.Desktop.Applications.Knitkit.CenterRegion'); + this.centerRegion = centerRegion; + + var tbarItems = []; + + if (currentUser.hasCapability('create', 'Website')) { + tbarItems.push( + { + text: 'Main Menu', + menu: { + xtype: 'menu', + items: [ + Compass.ErpApp.Desktop.Applications.Knitkit.websiteMenu(), + Compass.ErpApp.Desktop.Applications.Knitkit.ArticlesMenu(), + Compass.ErpApp.Desktop.Applications.Knitkit.SectionsMenu(), + Compass.ErpApp.Desktop.Applications.Knitkit.ThemeMenu(), + Compass.ErpApp.Desktop.Applications.Knitkit.NavigationMenu(), + Compass.ErpApp.Desktop.Applications.Knitkit.HostsMenu(), + Compass.ErpApp.Desktop.Applications.Knitkit.TemplateMenu() + ] } - ] + } + ); + } + + tbarItems.push( + { + iconCls: 'btn-save-light', + text: 'Save', + handler: function (btn) { + centerRegion.saveCurrent(); + } }, - items:[ - this.centerRegion, { - xtype:'knitkit_eastregion', - module:this + iconCls: 'btn-save-all-light', + text: 'Save All', + handler: function (btn) { + centerRegion.saveAll(); + } + }); + + tbarItems.push('->', + { + iconCls: 'btn-left-panel', + handler: function (btn) { + var panel = btn.up('window').down('knitkit_westregion'); + if (panel.collapsed) { + panel.expand(); + } + else { + panel.collapse(Ext.Component.DIRECTION_LEFT); + } + } }, { - xtype:'knitkit_westregion', - centerRegion:this.centerRegion, - module:this - } - ] + iconCls: 'btn-right-panel', + handler: function (btn) { + var panel = btn.up('window').down('knitkit_eastregion'); + if (panel.collapsed) { + panel.expand(); + } + else { + panel.collapse(Ext.Component.DIRECTION_RIGHT); + } + } + }, + { + iconCls: 'btn-left-right-panel', + handler: function (btn) { + var east = btn.up('window').down('knitkit_eastregion'); + var west = btn.up('window').down('knitkit_westregion'); + if (west.collapsed || east.collapsed) { + west.expand(); + east.expand(); + } + else if (!west.collapsed && !east.collapsed) { + var task = new Ext.util.DelayedTask(function () { + west.collapse(Ext.Component.DIRECTION_LEFT); + }); + east.collapse(Ext.Component.DIRECTION_RIGHT); + task.delay(400); + + } + } + }); + + win = desktop.createWindow({ + id: 'knitkit', + title: 'KnitKit', + width: 1200, + height: 550, + maximized: true, + iconCls: 'icon-knitkit-light', + shim: false, + animCollapse: false, + constrainHeader: true, + layout: 'border', + dockedItems: [{ + xtype: 'toolbar', + dock: 'top', + ui: 'ide-main', + items: tbarItems + }], + items: [ + this.centerRegion, + { + xtype: 'knitkit_eastregion', + header: false, + module: this + }, + { + xtype: 'knitkit_westregion', + header: false, + centerRegion: this.centerRegion, + module: this + } + ] }); } + win.show(); } });