media_sources.grid.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. fred.grid.MediaSources = function (config) {
  2. config = config || {};
  3. Ext.applyIf(config, {
  4. url: fred.config.connectorUrl,
  5. baseParams: {
  6. action: 'mgr/media_sources/getlist'
  7. },
  8. save_action: 'mgr/media_sources/updatefromgrid',
  9. autosave: true,
  10. preventSaveRefresh: false,
  11. fields: ['id', 'name', 'description', 'fred', 'fredReadOnly'],
  12. paging: true,
  13. remoteSort: true,
  14. emptyText: _('fred.media_sources.none'),
  15. columns: [
  16. {
  17. header: _('id'),
  18. dataIndex: 'id',
  19. sortable: true,
  20. hidden: true
  21. },
  22. {
  23. header: _('fred.media_sources.name'),
  24. dataIndex: 'name',
  25. sortable: true,
  26. width: 80
  27. },
  28. {
  29. header: _('fred.media_sources.description'),
  30. dataIndex: 'description',
  31. sortable: true,
  32. width: 80
  33. },
  34. {
  35. header: _('fred.media_sources.fred'),
  36. dataIndex: 'fred',
  37. sortable: true,
  38. width: 80,
  39. editor: {xtype: 'modx-combo-boolean'},
  40. renderer: this.rendYesNo
  41. },
  42. {
  43. header: _('fred.media_sources.fred_read_only'),
  44. dataIndex: 'fredReadOnly',
  45. sortable: true,
  46. width: 80,
  47. editor: {xtype: 'modx-combo-boolean'},
  48. renderer: this.rendYesNo
  49. }
  50. ],
  51. tbar: [
  52. {
  53. text: _('fred.media_sources.go_to'),
  54. handler: this.goToMediaSources
  55. },
  56. '->',
  57. {
  58. xtype: 'textfield',
  59. emptyText: _('fred.media_sources.search'),
  60. listeners: {
  61. 'change': {
  62. fn: this.search,
  63. scope: this
  64. },
  65. 'render': {
  66. fn: function (cmp) {
  67. new Ext.KeyMap(cmp.getEl(), {
  68. key: Ext.EventObject.ENTER,
  69. fn: function () {
  70. this.blur();
  71. return true;
  72. },
  73. scope: cmp
  74. });
  75. },
  76. scope: this
  77. }
  78. }
  79. }
  80. ]
  81. });
  82. fred.grid.MediaSources.superclass.constructor.call(this, config);
  83. };
  84. Ext.extend(fred.grid.MediaSources, fred.grid.GearGrid, {
  85. getMenu: function () {
  86. var m = [];
  87. m.push({
  88. text: _('fred.media_sources.update'),
  89. handler: this.updateMediaSource
  90. });
  91. return m;
  92. },
  93. goToMediaSources: function (btn, e) {
  94. MODx.loadPage('source');
  95. },
  96. updateMediaSource: function() {
  97. MODx.loadPage('source/update', 'id='+this.menu.record.id);
  98. },
  99. search: function (field, value) {
  100. var s = this.getStore();
  101. s.baseParams.search = value;
  102. this.getBottomToolbar().changePage(1);
  103. },
  104. filterCombo: function (combo, record) {
  105. var s = this.getStore();
  106. s.baseParams[combo.filterName] = record.data.v;
  107. this.getBottomToolbar().changePage(1);
  108. }
  109. });
  110. Ext.reg('fred-grid-media-sources', fred.grid.MediaSources);