diff --git a/core/src/Revolution/Processors/Workspace/Packages/GetList.php b/core/src/Revolution/Processors/Workspace/Packages/GetList.php
index b0e040a47b..49732a1669 100644
--- a/core/src/Revolution/Processors/Workspace/Packages/GetList.php
+++ b/core/src/Revolution/Processors/Workspace/Packages/GetList.php
@@ -108,14 +108,14 @@ public function getSortClassKey()
*/
public function prepareRow(xPDOObject $object)
{
- if ($object->get('installed') === '0000-00-00 00:00:00') {
- $object->set('installed', null);
- }
$packageArray = $object->toArray();
+
+ $isInstalled = !$this->formatter->isEmpty($packageArray['installed']);
+ $packageArray['isInstalled'] = $isInstalled;
$packageArray = $this->getVersionInfo($packageArray);
$packageArray = $this->formatDates($packageArray);
- $packageArray['iconaction'] = empty($packageArray['installed']) ? 'icon-install' : 'icon-uninstall';
- $packageArray['textaction'] = empty($packageArray['installed']) ? $this->modx->lexicon('install') : $this->modx->lexicon('uninstall');
+ $packageArray['iconaction'] = !$isInstalled ? 'icon-install' : 'icon-uninstall';
+ $packageArray['textaction'] = !$isInstalled ? $this->modx->lexicon('install') : $this->modx->lexicon('uninstall');
$packageArray = $this->getPackageMeta($object, $packageArray);
$packageArray = $this->checkForUpdates($object, $packageArray);
diff --git a/manager/assets/modext/workspace/package.grid.js b/manager/assets/modext/workspace/package.grid.js
index 3914fb4080..ea37f629cd 100644
--- a/manager/assets/modext/workspace/package.grid.js
+++ b/manager/assets/modext/workspace/package.grid.js
@@ -8,83 +8,76 @@
*/
MODx.grid.Package = function(config = {}) {
this.exp = new Ext.grid.RowExpander({
- tpl : new Ext.XTemplate(
+ tpl: new Ext.XTemplate(
'
{readme}
'
)
});
/* Package name + action button renderer */
- this.mainColumnTpl = new Ext.XTemplate(''
- +'{name}
'
- +''
- +''
- +''
- +''
- +''
- +'
'
- +''
- +''
- +''
- +'{text}
'
- +''
- +''
- +'', {
+ this.mainColumnTpl = new Ext.XTemplate(`
+ {name}
+
+
+
+
+
+ {text}
+
+
+ `, {
compiled: true
});
- var cols = [];
- cols.push(this.exp);
- cols.push({ header: _('name') ,dataIndex: 'name', id:'main',renderer: { fn: this.mainColumnRenderer, scope: this } });
- cols.push({ header: _('version') ,dataIndex: 'version', id: 'meta-col', fixed:true, width:120, renderer: function (v, md, record) { return v + '-' + record.data.release;} });
- cols.push({ header: _('installed') ,dataIndex: 'installed', id: 'info-col', fixed:true, width: 160 ,renderer: this.dateColumnRenderer });
- cols.push({ header: _('provider') ,dataIndex: 'provider_name', id: 'text-col', fixed:true, width:120 });
-
- var dlbtn;
+ let downloadButton;
if (MODx.curlEnabled) {
- dlbtn = {
- text: _('download_extras')
- ,xtype: 'splitbutton'
- ,cls:'primary-button'
- ,handler: this.onDownloadMoreExtra
- ,menu: {
- items:[{
- text: _('provider_select')
- ,handler: this.changeProvider
- ,scope: this
- },{
- text: _('package_search_local_title')
- ,handler: this.searchLocal
- ,scope: this
- },{
- text: _('transport_package_upload')
- ,handler: this.uploadTransportPackage
- ,scope: this
+ downloadButton = {
+ text: _('download_extras'),
+ xtype: 'splitbutton',
+ cls: 'primary-button',
+ handler: this.onDownloadMoreExtra,
+ menu: {
+ items: [{
+ text: _('provider_select'),
+ handler: this.changeProvider,
+ scope: this
+ }, {
+ text: _('package_search_local_title'),
+ handler: this.searchLocal,
+ scope: this
+ }, {
+ text: _('transport_package_upload'),
+ handler: this.uploadTransportPackage,
+ scope: this
}]
}
};
} else {
- dlbtn = {
- text: _('package_search_local_title')
- ,xtype: 'splitbutton'
- ,handler: this.searchLocal
- ,scope: this
- ,menu: {
+ downloadButton = {
+ text: _('package_search_local_title'),
+ xtype: 'splitbutton',
+ handler: this.searchLocal,
+ scope: this,
+ menu: {
items: [{
- text: _('transport_package_upload')
- ,handler: this.uploadTransportPackage
- ,scope: this
+ text: _('transport_package_upload'),
+ handler: this.uploadTransportPackage,
+ scope: this
}]
}
};
}
- Ext.applyIf(config,{
- title: _('packages')
+ Ext.applyIf(config, {
+ title: _('packages'),
// Deprecate id, change to modx-grid-package in future release
- ,id: 'modx-package-grid'
- ,url: MODx.config.connector_url
- ,action: 'Workspace/Packages/GetList'
- ,fields: [
+ id: 'modx-package-grid',
+ url: MODx.config.connector_url,
+ action: 'Workspace/Packages/GetList',
+ fields: [
'signature',
'name',
'version',
@@ -92,6 +85,7 @@ MODx.grid.Package = function(config = {}) {
'created',
'updated',
'installed',
+ 'isInstalled',
'state',
'workspace',
'provider',
@@ -105,17 +99,47 @@ MODx.grid.Package = function(config = {}) {
'textaction',
'iconaction',
'updateable'
- ]
- ,showActionsColumn: false
- ,plugins: [this.exp]
- ,pageSize: Math.min(parseInt(MODx.config.default_per_page), 25)
- ,disableContextMenuAction: true
- ,columns: cols
- ,primaryKey: 'signature'
- ,paging: true
- ,autosave: true
- ,tbar: [
- dlbtn,
+ ],
+ showActionsColumn: false,
+ plugins: [this.exp],
+ pageSize: Math.min(parseInt(MODx.config.default_per_page, 10), 25),
+ disableContextMenuAction: true,
+ columns: [
+ this.exp,
+ {
+ header: _('name'),
+ dataIndex: 'name',
+ id: 'main',
+ renderer: { fn: this.mainColumnRenderer, scope: this }
+ }, {
+ header: _('version'),
+ dataIndex: 'version',
+ id: 'meta-col',
+ fixed: true,
+ width: 120,
+ renderer: function(value, metaData, record) {
+ return `${value}-${record.data.release}`;
+ }
+ }, {
+ header: _('installed'),
+ dataIndex: 'installed',
+ id: 'info-col',
+ fixed: true,
+ width: 160,
+ renderer: this.dateColumnRenderer
+ }, {
+ header: _('provider'),
+ dataIndex: 'provider_name',
+ id: 'text-col',
+ fixed: true,
+ width: 120
+ }
+ ],
+ primaryKey: 'signature',
+ paging: true,
+ autosave: true,
+ tbar: [
+ downloadButton,
{
text: _('packages_purge'),
handler: this.purgePackages
@@ -125,8 +149,8 @@ MODx.grid.Package = function(config = {}) {
this.getClearFiltersButton()
]
});
- MODx.grid.Package.superclass.constructor.call(this,config);
- this.on('render',function() {
+ MODx.grid.Package.superclass.constructor.call(this, config);
+ this.on('render', function() {
this.mask = new Ext.LoadMask(this.body.dom, {
msg: _('checking_for_package_updates')
});
@@ -140,92 +164,100 @@ MODx.grid.Package = function(config = {}) {
}
this.loaded = true;
}, this);
- this.on('afterrender', function () {
+ this.on('afterrender', function() {
this.uploader = new MODx.util.MultiUploadDialog.Upload({
url: MODx.config.connector_url,
base_params: {
action: 'Workspace/Packages/Upload',
wctx: MODx.ctx || '',
source: MODx.config.default_media_source,
- path: MODx.config.core_path + 'packages/',
+ path: `${MODx.config.core_path}packages/`
},
- permitted_extensions: ['zip'],
+ permitted_extensions: ['zip']
});
this.uploader.addDropZone(this.ownerCt);
- this.uploader.on('uploadsuccess', function () {
+ this.uploader.on('uploadsuccess', function() {
this.searchLocalWithoutPrompt();
}, this);
}, this);
this.on('click', this.onClick, this);
};
-Ext.extend(MODx.grid.Package,MODx.grid.Grid,{
- console: null
+Ext.extend(MODx.grid.Package, MODx.grid.Grid, {
+ console: null,
- ,activate: function() {
- var west = Ext.getCmp('modx-leftbar-tabs')
- ,stateId = 'modx-leftbar-tabs';
+ activate: function() {
+ const west = Ext.getCmp('modx-leftbar-tabs');
+ let stateId = 'modx-leftbar-tabs';
if (west && west.stateId) {
stateId = west.stateId;
}
- var state = Ext.state.Manager.get(stateId);
+ const state = Ext.state.Manager.get(stateId);
if (state && state.collapsed === false) {
// Panel was not collapsed before, lets restore it
Ext.getCmp('modx-layout').showLeftbar();
}
Ext.getCmp('modx-panel-packages').getLayout().setActiveItem(this.id);
this.updateBreadcrumbs(_('packages_desc'));
- }
+ },
- ,updateBreadcrumbs: function(msg, highlight){
+ updateBreadcrumbs: function(msg, highlight) {
msg = Ext.getCmp('packages-breadcrumbs').desc;
- if(highlight){
+ if (highlight) {
msg.text = msg;
msg.className = 'highlight';
}
Ext.getCmp('packages-breadcrumbs').reset(msg);
- }
+ },
/* Main column renderer */
- ,mainColumnRenderer:function (value, metaData, record, rowIndex, colIndex, store){
- var rec = record.data;
- var state = (rec.installed !== null) ? ' installed' : ' not-installed';
- var values = { name: value, state: state, actions: null, message: null };
-
- var h = [];
- if(rec.installed !== null) {
- h.push({ className:'uninstall', text: rec.textaction });
- h.push({ className:'reinstall', text: _('package_reinstall_action_button') });
+ mainColumnRenderer: function(value, metaData, record, rowIndex, colIndex, store) {
+ const
+ { data } = record,
+ state = data.isInstalled ? ' installed' : ' not-installed',
+ values = {
+ name: value,
+ state: state,
+ actions: null,
+ message: null
+ },
+ actions = []
+ ;
+ if (data.isInstalled) {
+ actions.push({ className: 'uninstall', text: data.textaction });
+ actions.push({ className: 'reinstall', text: _('package_reinstall_action_button') });
} else {
- h.push({ className:'install primary-button', text: rec.textaction });
+ actions.push({ className: 'install primary-button', text: data.textaction });
}
- if (rec.updateable) {
- h.push({ className:'update orange', text: _('package_update_action_button') });
- } else {
- if( rec.provider != 0 ){
- h.push({ className:'checkupdate', text: _('package_check_for_updates') });
- }
+ if (data.updateable) {
+ actions.push({ className: 'update orange', text: _('package_update_action_button') });
+ } else if (data.provider !== 0) {
+ actions.push({ className: 'checkupdate', text: _('package_check_for_updates') });
}
- h.push({ className:'remove', text: _('package_remove_action_button') });
- h.push({ className:'details', text: _('view_details') });
- values.actions = h;
+ actions.push({ className: 'remove', text: _('package_remove_action_button') });
+ actions.push({ className: 'details', text: _('view_details') });
+ values.actions = actions;
return this.mainColumnTpl.apply(values);
- }
+ },
- ,dateColumnRenderer: function(value, metaData) {
+ dateColumnRenderer: function(value, metaData) {
if (Ext.isEmpty(value) || value.includes(_('not_installed'))) {
metaData.css = 'not-installed';
}
return value;
- }
-
- ,onClick: function(e){
- var t = e.getTarget();
- var elm = t.className.split(' ')[0];
- if(elm == 'controlBtn'){
- var act = t.className.split(' ')[1];
- var record = this.getSelectionModel().getSelected();
+ },
+
+ onClick: function(e) {
+ const
+ target = e.getTarget(),
+ targetType = target.className.split(' ')[0]
+ ;
+ if (targetType === 'controlBtn') {
+ const
+ action = target.className.split(' ')[1],
+ record = this.getSelectionModel().getSelected()
+ ;
this.menu.record = record.data;
- switch (act) {
+ switch (action) {
case 'remove':
this.remove(record, e);
break;
@@ -247,39 +279,38 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{
break;
}
}
- }
+ },
/* Install a package */
- ,install: function( record ){
+ install: function(record) {
Ext.Ajax.request({
- url : MODx.config.connector_url
- ,params : {
- action : 'Workspace/Packages/GetAttribute'
- ,attributes: 'license,readme,changelog,setup-options,requires'
- ,signature: record.data.signature
- }
- ,method: 'GET'
- ,scope: this
- ,success: function ( result, request ) {
- this.processResult( result.responseText, record );
- }
- ,failure: function ( result, request) {
+ url: MODx.config.connector_url,
+ params: {
+ action: 'Workspace/Packages/GetAttribute',
+ attributes: 'license,readme,changelog,setup-options,requires',
+ signature: record.data.signature
+ },
+ method: 'GET',
+ scope: this,
+ success: function(result, request) {
+ this.processResult(result.responseText, record);
+ },
+ failure: function(result, request) {
Ext.MessageBox.alert(_('failed'), result.responseText);
}
});
- }
+ },
/* Go through the install process */
- ,processResult: function( response, record ){
- var data = Ext.util.JSON.decode( response );
+ processResult: function(response, record) {
+ const data = Ext.util.JSON.decode(response);
- if ( data.object.license !== null && data.object.readme !== null && data.object.changelog !== null ){
+ if (data.object.license !== null && data.object.readme !== null && data.object.changelog !== null) {
/* Show license/changelog panel */
- p = Ext.getCmp('modx-package-beforeinstall');
- p.activate();
- p.updatePanel( data.object, record );
- }
- else if ( data.object['setup-options'] !== null ) {
+ const infoPanel = Ext.getCmp('modx-package-beforeinstall');
+ infoPanel.activate();
+ infoPanel.updatePanel(data.object, record);
+ } else if (data.object['setup-options'] !== null) {
/* No license/changelog, show setup-options */
Ext.getCmp('package-show-setupoptions-btn').signature = record.data.signature;
Ext.getCmp('modx-panel-packages').onSetupOptions();
@@ -288,194 +319,217 @@ Ext.extend(MODx.grid.Package,MODx.grid.Grid,{
Ext.getCmp('package-install-btn').signature = record.data.signature;
Ext.getCmp('modx-panel-packages').install();
}
- }
+ },
/* Launch Package Browser */
- ,onDownloadMoreExtra: function(btn,e){
+ onDownloadMoreExtra: function(btn, e) {
MODx.provider = MODx.defaultProvider;
Ext.getCmp('modx-panel-packages-browser').activate();
- }
+ },
- ,changeProvider: function(btn, e){
- this.loadWindow(btn,e,{
+ changeProvider: function(btn, e) {
+ this.loadWindow(btn, e, {
xtype: 'modx-package-changeprovider'
});
- }
+ },
/**
* Open a window allowing user to upload a transport package directly
*/
- ,uploadTransportPackage: function(){
- this.uploader.setBaseParams({source: 1});
+ uploadTransportPackage: function() {
+ this.uploader.setBaseParams({ source: 1 });
this.uploader.show();
- }
+ },
- ,searchLocal: function() {
+ searchLocal: function() {
MODx.msg.confirm({
- title: _('package_search_local_title')
- ,text: _('package_search_local_confirm')
- ,url: MODx.config.connector_url
- ,params: {
+ title: _('package_search_local_title'),
+ text: _('package_search_local_confirm'),
+ url: MODx.config.connector_url,
+ params: {
action: 'Workspace/Packages/ScanLocal'
- }
- ,listeners: {
- 'success':{fn:function(r) {
- this.getStore().reload();
- },scope:this}
+ },
+ listeners: {
+ success: {
+ fn: function(response) {
+ this.getStore().reload();
+ },
+ scope: this
+ }
}
});
- }
+ },
/**
* Scan for new packages, without the pointless & annoying confirmation box
*/
- ,searchLocalWithoutPrompt: function(){
+ searchLocalWithoutPrompt: function() {
MODx.Ajax.request({
- url: MODx.config.connector_url
- ,params: {
+ url: MODx.config.connector_url,
+ params: {
action: 'Workspace/Packages/ScanLocal'
+ },
+ listeners: {
+ success: {
+ fn: function(response) {
+ this.getStore().reload();
+ },
+ scope: this
+ }
}
- ,listeners: {
- 'success':{fn:function(r) {
- this.getStore().reload();
- },scope:this}
- }
- })
- }
+ });
+ },
/* Go to package details @TODO : Stay on the same page */
- ,viewPackage: function(btn,e) {
- MODx.loadPage('workspaces/package/view', 'signature='+this.menu.record.signature+'&package_name='+this.menu.record.name);
- }
+ viewPackage: function(btn, e) {
+ MODx.loadPage('workspaces/package/view', `signature=${this.menu.record.signature}&package_name=${this.menu.record.name}`);
+ },
/* Search for a package update - only for installed package */
- ,update: function(btn,e) {
+ update: function(btn, e) {
if (this.windows['modx-window-package-update']) {
this.windows['modx-window-package-update'].destroy();
}
MODx.Ajax.request({
- url: this.config.url
- ,params: {
- action: 'Workspace/Packages/CheckForUpdates'
- ,signature: this.menu.record.signature
- }
- ,listeners: {
- 'success': {fn:function(r) {
- this.loadWindow(btn,e,{
- xtype: 'modx-window-package-update'
- ,cls: 'modx-alert'
- ,packages: r.object
- ,record: this.menu.record
- ,force: true
- ,listeners: {
- 'success': {fn: function(o) {
- this.refresh();
- this.menu.record = {data:o.a.result.object};
- this.install(this.menu.record);
- },scope:this}
- }
- });
- },scope:this}
- ,'failure': {fn: function(r) {
- MODx.msg.alert(_('package_update'),r.message);
- return false;
- },scope:this}
+ url: this.config.url,
+ params: {
+ action: 'Workspace/Packages/CheckForUpdates',
+ signature: this.menu.record.signature
+ },
+ listeners: {
+ success: {
+ fn: function(response) {
+ this.loadWindow(btn, e, {
+ xtype: 'modx-window-package-update',
+ cls: 'modx-alert',
+ packages: response.object,
+ record: this.menu.record,
+ force: true,
+ listeners: {
+ success: {
+ fn: function(o) {
+ this.refresh();
+ this.menu.record = { data: o.a.result.object };
+ this.install(this.menu.record);
+ },
+ scope: this
+ }
+ }
+ });
+ },
+ scope: this
+ },
+ failure: {
+ fn: function(response) {
+ MODx.msg.alert(_('package_update'), response.message);
+ return false;
+ },
+ scope: this
+ }
}
});
- }
+ },
/* Uninstall a package */
- ,uninstall: function(btn,e) {
- this.loadWindow(btn,e,{
- xtype: 'modx-window-package-uninstall'
- ,listeners: {
+ uninstall: function(btn, e) {
+ this.loadWindow(btn, e, {
+ xtype: 'modx-window-package-uninstall',
+ listeners: {
success: {
- fn: function(va) {
- this._uninstall(this.menu.record,va,btn);
- }
- ,scope: this
+ fn: function(params) {
+ this._uninstall(this.menu.record, btn, params);
+ },
+ scope: this
}
}
});
- }
-
- ,_uninstall: function(r,va,btn) {
- r = this.menu.record;
- va = va || {};
- var topic = '/workspace/package/uninstall/'+r.signature+'/';
- this.loadConsole(btn,topic);
- Ext.apply(va,{
- action: 'Workspace/Packages/Uninstall'
- ,signature: r.signature
- ,register: 'mgr'
- ,topic: topic
+ },
+
+ _uninstall: function(record, btn, params = {}) {
+ const topic = `/workspace/package/uninstall/${record.signature}/`;
+ this.loadConsole(btn, topic);
+ Ext.apply(params, {
+ action: 'Workspace/Packages/Uninstall',
+ signature: record.signature,
+ register: 'mgr',
+ topic: topic
});
MODx.Ajax.request({
- url: this.config.url
- ,params: va
- ,listeners: {
- 'success': {fn:function(r) {
- Ext.Msg.hide();
- this.refresh();
- Ext.getCmp('modx-layout').refreshTrees();
- },scope:this}
- ,'failure': {fn:function(r) {
- Ext.Msg.hide();
- this.refresh();
- },scope:this}
+ url: this.config.url,
+ params: params,
+ listeners: {
+ success: {
+ fn: function(response) {
+ Ext.Msg.hide();
+ this.refresh();
+ Ext.getCmp('modx-layout').refreshTrees();
+ },
+ scope: this
+ },
+ failure: {
+ fn: function(response) {
+ Ext.Msg.hide();
+ this.refresh();
+ },
+ scope: this
+ }
}
});
- }
+ },
/* Remove a package entirely */
- ,remove: function(btn,e) {
+ remove: function(btn, e) {
if (this.destroying) {
return MODx.grid.Package.superclass.remove.apply(this, arguments);
}
- var r = this.menu.record;
- var topic = '/workspace/package/remove/'+r.signature+'/';
-
- this.loadWindow(btn,e,{
- xtype: 'modx-window-package-remove'
- ,record: {
- signature: r.signature
- ,topic: topic
- ,register: 'mgr'
+ const
+ { record } = this.menu,
+ topic = `/workspace/package/remove/${record.signature}/`
+ ;
+ this.loadWindow(btn, e, {
+ xtype: 'modx-window-package-remove',
+ record: {
+ signature: record.signature,
+ topic: topic,
+ register: 'mgr'
}
});
- }
+ },
/* Purge old packages */
- ,purgePackages: function(btn,e) {
- var topic = '/Workspace/Packages/Purge/';
-
- this.loadWindow(btn,e,{
- xtype: 'modx-window-packages-purge'
- ,record: {
- packagename: '*'
- ,topic: topic
- ,register: 'mgr'
- }
- ,listeners: {
- success: {fn: function(o) {
- this.refresh();
- },scope:this}
+ purgePackages: function(btn, e) {
+ const topic = '/Workspace/Packages/Purge/';
+
+ this.loadWindow(btn, e, {
+ xtype: 'modx-window-packages-purge',
+ record: {
+ packagename: '*',
+ topic: topic,
+ register: 'mgr'
+ },
+ listeners: {
+ success: {
+ fn: function(o) {
+ this.refresh();
+ },
+ scope: this
+ }
}
});
- }
+ },
/* Load the console */
- ,loadConsole: function(btn,topic) {
+ loadConsole: function(btn, topic) {
this.console = MODx.load({
- xtype: 'modx-console'
- ,register: 'mgr'
- ,topic: topic
+ xtype: 'modx-console',
+ register: 'mgr',
+ topic: topic
});
this.console.show(btn);
- }
+ },
- ,getConsole: function() {
+ getConsole: function() {
return this.console;
}
});
@@ -490,83 +544,81 @@ Ext.reg('modx-package-grid', MODx.grid.Package);
* @param {Object} config An object of options.
* @xtype modx-window-package-update
*/
-MODx.window.PackageUpdate = function(config) {
- config = config || {};
- Ext.applyIf(config,{
- title: _('package_update')
- ,url: MODx.config.connector_url
- ,action: 'Workspace/Packages/Rest/Download'
- ,id: 'modx-window-package-update'
- ,saveBtnText: _('update')
- ,fields: this.setupOptions(config.packages,config.record)
+MODx.window.PackageUpdate = function(config = {}) {
+ Ext.applyIf(config, {
+ title: _('package_update'),
+ url: MODx.config.connector_url,
+ action: 'Workspace/Packages/Rest/Download',
+ id: 'modx-window-package-update',
+ saveBtnText: _('update'),
+ fields: this.setupOptions(config.packages, config.record)
});
- MODx.window.PackageUpdate.superclass.constructor.call(this,config);
- this.on('hide',function() { this.destroy(); },this);
+ MODx.window.PackageUpdate.superclass.constructor.call(this, config);
+ this.on('hide', function() {
+ this.destroy();
+ }, this);
};
-Ext.extend(MODx.window.PackageUpdate,MODx.Window,{
- setupOptions: function(ps,rec) {
- var items = [{
- html: _('package_update_to_version')
- ,border: false
- },{
- xtype: 'hidden'
- ,name: 'provider'
- ,value: Ext.isDefined(rec.provider) ? rec.provider : MODx.provider
+Ext.extend(MODx.window.PackageUpdate, MODx.Window, {
+ setupOptions: function(availableUpdates, record) {
+ const items = [{
+ html: _('package_update_to_version'),
+ border: false
+ }, {
+ xtype: 'hidden',
+ name: 'provider',
+ value: Ext.isDefined(record.provider) ? record.provider : MODx.provider
}];
- for (var i=0;i {
+ let label = pkg.signature;
if (pkg.changelog) {
// We have a changelog string, allow users to view it
- label += ''+ _('changelog') +'';
+ label += `${_('changelog')}`;
}
items.push({
- xtype: 'radio'
- ,name: 'info'
- ,boxLabel: label
- ,itemCls: 'radio-version'
- ,hideLabel: true
- ,description: pkg.description
- ,inputValue: pkg.info
- ,labelSeparator: ''
- ,checked: i === 0
- ,_changelog: pkg.changelog
- ,listeners: {
+ xtype: 'radio',
+ name: 'info',
+ boxLabel: label,
+ itemCls: 'radio-version',
+ hideLabel: true,
+ description: pkg.description,
+ inputValue: pkg.info,
+ labelSeparator: '',
+ checked: i === 0,
+ _changelog: pkg.changelog,
+ listeners: {
afterrender: {
- fn: function (radio) {
- var changelog = radio.container.query('.changelog')[0];
+ fn: function(radio) {
+ const changelog = radio.container.query('.changelog')[0];
if (!changelog) {
return;
}
// When the changelog link is clicked, display the changelog in a window
- Ext.get(changelog).on('click', function(elem) {
- var win = MODx.load({
- xtype: 'modx-window'
- ,title: _('changelog')
- ,cls: 'modx-alert'
- ,width: 520
- ,style: 'white-space: pre-wrap'
- ,fields: [{
- xtype: 'box'
- ,html: radio._changelog
- }]
- ,buttons: [{
- text: _('close')
- ,handler: function() {
- win.close();
+ Ext.get(changelog).on('click', () => {
+ MODx.load({
+ xtype: 'modx-window',
+ title: _('changelog'),
+ cls: 'modx-alert',
+ width: 520,
+ style: 'white-space: pre-wrap',
+ fields: [{
+ xtype: 'box',
+ html: radio._changelog
+ }],
+ buttons: [{
+ text: _('close'),
+ handler: function(btn, e) {
+ btn.ownerCt.ownerCt.close();
}
}]
- });
- win.show();
+ }).show();
});
}
}
}
});
- }
+ });
return items;
}
});
-Ext.reg('modx-window-package-update',MODx.window.PackageUpdate);
+Ext.reg('modx-window-package-update', MODx.window.PackageUpdate);