| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249 |
- /**
- * The packages list main container
- *
- * @class MODx.panel.Packages
- * @extends MODx.Panel
- * @param {Object} config An object of options.
- * @xtype modx-panel-packages
- */
- MODx.panel.Packages = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- layout:'card'
- ,border:false
- ,layoutConfig:{ deferredRender: true }
- ,defaults:{
- autoHeight: true
- ,autoWidth: true
- ,border: false
- }
- ,activeItem: 0
- ,items:[{
- xtype:'modx-package-grid'
- ,id:'modx-package-grid'
- ,bodyCssClass: 'grid-with-buttons'
- },{
- xtype: 'modx-package-beforeinstall'
- ,id:'modx-package-beforeinstall'
- },{
- xtype: 'modx-package-details'
- ,id:'modx-package-details'
- ,bodyCssClass: 'modx-template-detail'
- }]
- ,buttons: [{
- text: _('cancel')
- ,id:'package-list-reset'
- ,hidden: true
- ,handler: function(btn, e){
- var bc = Ext.getCmp('packages-breadcrumbs');
- var last = bc.data.trail[bc.data.trail.length - 2];
- if (last != undefined && last.rec != undefined) {
- bc.data.trail.pop();
- bc.data.trail.pop();
- bc.data.trail.shift();
- bc.updateDetail(bc.data);
- var grid = Ext.getCmp('modx-package-grid');
- grid.install(last.rec);
- return;
- }
- Ext.getCmp('modx-panel-packages').activate();
- }
- ,scope: this
- },{
- text: _('continue')
- ,id:'package-install-btn'
- ,cls:'primary-button'
- ,hidden: true
- ,handler: this.install
- ,disabled: false
- ,scope: this
- ,autoWidth: true
- ,autoHeight: true
- },{
- text: _('setup_options')
- ,id:'package-show-setupoptions-btn'
- ,cls:'primary-button'
- ,hidden: true
- ,handler: this.onSetupOptions
- ,scope: this
- ,autoWidth: true
- ,autoHeight: true
- }]
- });
- MODx.panel.Packages.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.panel.Packages,MODx.Panel,{
- activate: function() {
- Ext.getCmp('card-container').getLayout().setActiveItem(this.id);
- Ext.getCmp('modx-package-grid').activate();
- Ext.each(this.buttons, function(btn){ Ext.getCmp(btn.id).hide(); });
- }
- /**
- *
- * @param va ExtJS instance of the button that was clicked
- * @param event The Ext.EventObjectImpl from clicking the button
- * @param options Object containing the setup options if available, or undefined.
- * @returns {boolean}
- */
- ,install: function(va, event, options){
- options = options || {};
- var r;
- var g = Ext.getCmp('modx-package-grid');
- if (!g) return false;
- // Set the signature from the button config (set in MODx.panel.PackageBeforeInstall.updatePanel)
- if (va.signature != undefined && va.signature != '') {
- r = {signature: va.signature};
- } else {
- r = g.menu.record.data ? g.menu.record.data : g.menu.record;
- }
- // Load up the installation console
- var topic = '/workspace/package/install/'+r.signature+'/';
- g.loadConsole(Ext.getBody(),topic);
- // Grab the params to send to the install processor
- var params = {
- action: 'workspace/packages/install'
- ,signature: r.signature
- ,register: 'mgr'
- ,topic: topic
- };
- // Include the setup options that were provided from MODx.window.SetupOptions.install
- Ext.apply(params, options);
- // Trigger the actual installation
- MODx.Ajax.request({
- url: MODx.config.connector_url
- ,params: params
- ,listeners: {
- 'success': {fn:function() {
- var bc = Ext.getCmp('packages-breadcrumbs');
- var trail= bc.data.trail;
- trail.pop();
- if (trail.length > 1) {
- last = trail[trail.length - 1];
- if (last != undefined && last.rec != undefined) {
- bc.data.trail.pop();
- bc.data.trail.shift();
- bc.updateDetail(bc.data);
- var grid = Ext.getCmp('modx-package-grid');
- grid.install(last.rec);
- return;
- }
- }
- this.activate();
- Ext.getCmp('modx-package-grid').refresh();
- },scope:this}
- ,'failure': {fn:function() {
- this.activate();
- },scope:this}
- }
- });
- return true;
- }
- ,onSetupOptions: function(btn){
- if(this.win == undefined){
- this.win = new MODx.window.SetupOptions({
- id: 'modx-window-setupoptions'
- ,signature: btn.signature || ''
- });
- } else {
- this.win.signature = btn.signature || '';
- this.win.title = _('setup_options');
- }
- this.win.show(btn);
- var opts = Ext.getCmp('modx-package-beforeinstall').getOptions();
- this.win.fetch(opts);
- }
- });
- Ext.reg('modx-panel-packages',MODx.panel.Packages);
- /**
- * The package browser container
- *
- * @class MODx.panel.PackagesBrowser
- * @extends MODx.Panel
- * @param {Object} config An object of options.
- * @xtype modx-panel-packages-browser
- */
- MODx.panel.PackagesBrowser = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- layout: 'column'
- ,border: false
- ,items:[{
- xtype: 'modx-package-browser-tree'
- ,id: 'modx-package-browser-tree'
- ,width: 250
- },{
- layout:'card'
- ,columnWidth: 1
- ,defaults:{ border: false }
- ,border:false
- ,id:'package-browser-card-container'
- ,layoutConfig:{ deferredRender:true }
- ,items:[{
- xtype:'modx-package-browser-home'
- ,id:'modx-package-browser-home'
- },{
- xtype: 'modx-package-browser-repositories'
- ,id: 'modx-package-browser-repositories'
- },{
- xtype:'modx-package-browser-grid'
- ,id:'modx-package-browser-grid'
- ,bodyCssClass: 'grid-with-buttons'
- },{
- xtype: 'modx-package-browser-details'
- ,id: 'modx-package-browser-details'
- ,bodyCssClass: 'modx-template-detail'
- },{
- xtype: 'modx-package-browser-view'
- ,id: 'modx-package-browser-view'
- ,bodyCssClass: 'modx-template-detail'
- }]
- }]
- });
- MODx.panel.PackagesBrowser.superclass.constructor.call(this,config);
- };
- Ext.extend(MODx.panel.PackagesBrowser,MODx.Panel,{
- activate: function(){
- Ext.getCmp('modx-layout').hideLeftbar(true, false);
- Ext.getCmp('card-container').getLayout().setActiveItem(this.id);
- Ext.getCmp('modx-package-browser-home').activate();
- this.updateBreadcrumbs(_('provider_home_msg'));
- }
- ,updateBreadcrumbs: function(msg, highlight){
- var bd = { text: msg };
- if(highlight){ bd.className = 'highlight'; }
- bd.trail = [{ text : _('package_browser') }];
- Ext.getCmp('packages-breadcrumbs').updateDetail(bd);
- }
- ,showWait: function(){
- if (!this.wait) {
- this.wait = new MODx.PackageBrowserWaitWindow();
- }
- this.wait.show();
- }
- ,hideWait: function() {
- if (this.wait) {
- this.wait.destroy();
- delete this.wait;
- }
- }
- });
- Ext.reg('modx-panel-packages-browser',MODx.panel.PackagesBrowser);
|