diff --git a/core/lexicon/en/workspace.inc.php b/core/lexicon/en/workspace.inc.php index 96a314c9489..b0022acb9f9 100644 --- a/core/lexicon/en/workspace.inc.php +++ b/core/lexicon/en/workspace.inc.php @@ -212,6 +212,7 @@ $_lang['template_select_desc'] = 'Select a package to see more information'; $_lang['templates_in_category'] = 'Viewing available packages in the selected Category.'; $_lang['top_rated'] = 'Top Rated'; +$_lang['rating'] = 'Rating'; $_lang['featured'] = 'Featured'; $_lang['transport_package_create'] = 'Create package'; $_lang['transport_package_install'] = 'Install package'; diff --git a/core/src/Revolution/Transport/modTransportProvider.php b/core/src/Revolution/Transport/modTransportProvider.php index 9108acb67e7..0dd3e688444 100644 --- a/core/src/Revolution/Transport/modTransportProvider.php +++ b/core/src/Revolution/Transport/modTransportProvider.php @@ -383,6 +383,7 @@ public function find(array $search = []) 'editedon' => (string)$package->editedon, 'name' => (string)$package->name, 'downloads' => number_format((int)$package->downloads, 0), + 'rating' => isset($package->rating) ? (string)$package->rating : '', 'releasedon' => $releasedon, 'screenshot' => (string)$package->screenshot, 'thumbnail' => !empty($package->thumbnail) ? (string)$package->thumbnail : (string)$package->screenshot, diff --git a/manager/assets/modext/workspace/package.browser.panels.js b/manager/assets/modext/workspace/package.browser.panels.js index a9476386e77..eb72e81824c 100644 --- a/manager/assets/modext/workspace/package.browser.panels.js +++ b/manager/assets/modext/workspace/package.browser.panels.js @@ -99,18 +99,17 @@ MODx.changeSortComboBox = function(config) { Ext.applyIf(config,{ store: new Ext.data.ArrayStore({ fields: ['d','v'] - ,data : [['',''] - ,[_('alphabetically'),'alpha'] + ,data : [[_('alphabetically'),'alpha'] ,[_('most_downloads'),'downloads'] ,[_('newest_added'),'newest'] ,[_('top_rated'),'toprated']] }) ,displayField: 'd' ,valueField: 'v' - ,width:280 + ,value: 'downloads' + ,width: 280 ,mode: 'local' ,forceSelection: true - ,emptyText: _('sort_by_dots') ,editable: false ,triggerAction: 'all' ,typeAhead: false @@ -154,7 +153,7 @@ MODx.grid.PackageBrowserGrid = function(config) { Ext.applyIf(config,{ id: 'modx-package-browser-grid' ,fields: ['id','version','release','signature','author','description','instructions','createdon','editedon','name' - ,'downloads','releasedon','screenshot','license','location','version-compiled' + ,'downloads','rating','releasedon','screenshot','license','location','version-compiled' ,'supports_db','minimum_supports','breaks_at','featured','audited','changelog' ,'downloaded','dlaction-text','dlaction-icon'] ,showActionsColumn: false @@ -162,6 +161,7 @@ MODx.grid.PackageBrowserGrid = function(config) { ,baseParams: { provider: MODx.provider ,action: 'Workspace/Packages/Rest/GetList' + ,sorter: 'downloads' } ,paging: true ,pageSize: 10 @@ -185,7 +185,7 @@ MODx.grid.PackageBrowserGrid = function(config) { ,dataIndex: 'author' ,width: 100 ,fixed:true - ,id: 'text-col' + ,id: 'author-col' },{ header: _('released') ,dataIndex: 'releasedon' @@ -198,7 +198,13 @@ MODx.grid.PackageBrowserGrid = function(config) { ,dataIndex: 'downloads' ,width: 100 ,fixed:true - ,id: 'text-col' + ,id: 'downloads-col' + },{ + header: _('rating') + ,dataIndex: 'rating' + ,width: 80 + ,fixed:true + ,id: 'rating-col' }] ,tbar: [{ xtype: 'button' @@ -208,11 +214,13 @@ MODx.grid.PackageBrowserGrid = function(config) { Ext.getCmp('modx-panel-packages').activate(); } },'->',{ + xtype: 'tbtext' + ,text: _('sort_by_dots') + },{ xtype: 'modx-package-changesort-combobox' ,id: 'modx-package-grid-changesort-combobox' ,listeners: { 'select': this.changeSort - ,'change': this.changeSort ,scope: this } }] @@ -454,6 +462,10 @@ MODx.panel.PackageBrowserDetails = function(config) { +''+_('downloads')+':' +'{downloads}' +'' + +'
  • ' + +''+_('rating')+':' + +'{rating:defaultValue("--")}' + +'
  • ' +'
  • ' +''+_('license')+':' +'{license:defaultValue("--")}' @@ -529,11 +541,12 @@ MODx.PackageBrowserThumbsView = function(config) { Ext.applyIf(config,{ url: MODx.config.connector_url ,fields: ['id','version','release','signature','author','description','instructions','createdon','editedon','name' - ,'downloads','releasedon','screenshot','license','supports','location','version-compiled', 'featured' + ,'downloads','rating','releasedon','screenshot','license','supports','location','version-compiled', 'featured' ,'downloaded','dlaction-text','dlaction-icon'] ,baseParams: { action: 'Workspace/Packages/Rest/GetList' ,provider: MODx.provider + ,sorter: 'downloads' } ,tpl: this.templates.thumb ,listeners: { @@ -617,7 +630,7 @@ Ext.extend(MODx.PackageBrowserThumbsView,MODx.DataView,{ +''+_('featured')+'' +'' +'{shortName:htmlEncode}' - +'{downloads:htmlEncode} '+_('downloads') + '
    ' + _('version') + ' {version} ' +'
    ' + +'{downloads:htmlEncode} '+_('downloads') + '
    ' + _('version') + ' {version}
    ' + _('rating') + ': {rating:defaultValue("--")}
    ' +'

    {shortDescription:htmlEncode}

    ' +'' +'' @@ -677,16 +690,14 @@ MODx.panel.PackageBrowserView = function(config) { Ext.getCmp('modx-panel-packages').activate(); } },'->',{ + xtype: 'tbtext' + ,text: _('sort_by_dots') + },{ xtype:'modx-package-changesort-combobox' ,id: 'modx-package-browser-changesort-combobox' ,listeners: { - 'select': function(cb){ - var v = cb.getValue(); - var s = Ext.getCmp('modx-package-browser-thumbs-view').getStore(); - s.removeAll(); - s.setBaseParam('sorter',v); - s.load(); - } + 'select': this.changeSortThumbs + ,scope: this } }] ,border: false @@ -759,6 +770,10 @@ MODx.panel.PackageBrowserView = function(config) { +''+_('downloads')+':' +'{downloads}' +'
  • ' + +'
  • ' + +''+_('rating')+':' + +'{rating:defaultValue("--")}' + +'
  • ' +'
  • ' +''+_('license')+':' +'{license}' @@ -778,7 +793,15 @@ MODx.panel.PackageBrowserView = function(config) { MODx.panel.PackageBrowserView.superclass.constructor.call(this,config); }; Ext.extend(MODx.panel.PackageBrowserView,MODx.Panel,{ - activate: function(cat){ + changeSortThumbs: function(cb){ + var sorter = cb.getValue(); + var store = this.view.store; + store.removeAll(); + store.setBaseParam('sorter', sorter); + store.load(); + } + + ,activate: function(cat){ if(cat != undefined){ this.bdText = cat; }