grid.templatevars.js 3.6 KB

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