grid.plugins.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. VersionX.grid.Plugins = function(config) {
  2. config = config || {};
  3. Ext.applyIf(config,{
  4. url: VersionX.config.connector_url,
  5. id: 'versionx-grid-plugins',
  6. baseParams: {
  7. action: 'mgr/plugins/getlist',
  8. plugin: (VersionX.inVersion) ? MODx.request['id'] : 0
  9. },
  10. params: [],
  11. viewConfig: {
  12. forceFit: true,
  13. enableRowBody: true,
  14. emptyText: _('versionx.error.noresults')
  15. },
  16. fields: [
  17. {name: 'version_id', type: 'int'},
  18. {name: 'content_id', type: 'int'},
  19. {name: 'saved', type: 'string'},
  20. {name: 'username', type: 'string'},
  21. {name: 'mode', type: 'string'},
  22. {name: 'marked', type: 'boolean'},
  23. {name: 'name', type: 'string'},
  24. {name: 'category', type: 'int'},
  25. {name: 'categoryname', type: 'string'}
  26. ],
  27. paging: true,
  28. remoteSort: true,
  29. columns: [{
  30. header: _('versionx.version_id'),
  31. dataIndex: 'version_id',
  32. sortable: true,
  33. width: .1
  34. },{
  35. header: _('versionx.content_id',{what: _('plugin')}),
  36. dataIndex: 'content_id',
  37. sortable: true,
  38. width: .1
  39. },{
  40. header: _('versionx.saved'),
  41. dataIndex: 'saved',
  42. sortable: true,
  43. width: .2
  44. },{
  45. header: _('versionx.content_name', {what: _('plugin')}),
  46. dataIndex: 'name',
  47. sortable: true,
  48. width: .4
  49. },{
  50. header: _('category'),
  51. dataIndex: 'categoryname',
  52. sortable: true,
  53. width: .2
  54. },{
  55. header: _('user'),
  56. dataIndex: 'username',
  57. sortable: true,
  58. width: .2
  59. },{
  60. header: _('versionx.mode'),
  61. dataIndex: 'mode',
  62. sortable: true,
  63. width: .1,
  64. renderer: function (val) { return _('versionx.mode.'+val); }
  65. },{
  66. header: _('versionx.marked'),
  67. dataIndex: 'marked',
  68. sortable: true,
  69. width: .1,
  70. hidden: true
  71. }]
  72. ,listeners: {}
  73. });
  74. VersionX.grid.Plugins.superclass.constructor.call(this,config);
  75. };
  76. Ext.extend(VersionX.grid.Plugins,MODx.grid.Grid,{
  77. getMenu: function() {
  78. var r = this.getSelectionModel().getSelected();
  79. var d = r.data;
  80. var m = [];
  81. m.push({
  82. text: _('versionx.menu.viewdetails'),
  83. handler: function() {
  84. var eid = d.version_id;
  85. var backTo = (VersionX.inVersion) ? '&backTo='+MODx.request['a']+'-'+MODx.request['id'] : '';
  86. MODx.loadPage('?namespace=versionx&a=plugin&vid='+eid+backTo)
  87. }
  88. },'-',{
  89. text: _('versionx.plugins.revert', {id: d.version_id}),
  90. handler: function() {
  91. this.revertVersion(d.version_id, d.content_id)
  92. },
  93. scope: this
  94. });
  95. return m;
  96. },
  97. revertVersion: function(version, content) {
  98. if (version < 1) { MODx.alert(_('error'), 'Version not properly defined: '+version); }
  99. MODx.msg.confirm({
  100. title: _('versionx.plugins.revert.confirm'),
  101. text: _('versionx.plugins.revert.confirm.text',{id: version}),
  102. url: VersionX.config.connector_url,
  103. params: {
  104. version_id: version,
  105. content_id: content,
  106. action: 'mgr/plugins/revert'
  107. },
  108. listeners: {
  109. success: {fn: function() {
  110. MODx.msg.status({
  111. message: _('versionx.plugins.reverted'),
  112. delay: 4
  113. });
  114. }, scope: this }
  115. }
  116. });
  117. }
  118. });
  119. Ext.reg('versionx-grid-plugins',VersionX.grid.Plugins);