combos.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. ClientConfig.combo.Groups = function(config) {
  2. config = config || {};
  3. Ext.applyIf(config,{
  4. url: ClientConfig.config.connectorUrl,
  5. baseParams: {
  6. action: 'mgr/groups/getlist',
  7. combo: true
  8. },
  9. fields: ['id','label'],
  10. hiddenName: config.name || 'group',
  11. pageSize: 15,
  12. valueField: 'id',
  13. displayField: 'label'
  14. });
  15. ClientConfig.combo.Groups.superclass.constructor.call(this,config);
  16. if (config.storeLoadListener) {
  17. this.store.on('load', config.storeLoadListener, this);
  18. this.on('render', function() {
  19. if (!this.getValue()) {
  20. this.store.load();
  21. }
  22. });
  23. }
  24. };
  25. Ext.extend(ClientConfig.combo.Groups,MODx.combo.ComboBox);
  26. Ext.reg('clientconfig-combo-groups',ClientConfig.combo.Groups);
  27. ClientConfig.combo.FieldTypes = function(config) {
  28. config = config || {};
  29. Ext.applyIf(config,{
  30. store: new Ext.data.ArrayStore({
  31. mode: 'local',
  32. fields: ['xtype','label'],
  33. data: [
  34. ['textfield', _('clientconfig.xtype.textfield')],
  35. ['textarea', _('clientconfig.xtype.textarea')],
  36. ['richtext', _('clientconfig.xtype.richtext')],
  37. ['modx-panel-tv-image', _('clientconfig.xtype.image')],
  38. ['modx-panel-tv-file', _('clientconfig.xtype.file')],
  39. ['numberfield', _('clientconfig.xtype.numberfield')],
  40. ['colorpickerfield', _('clientconfig.xtype.colorpalette')],
  41. ['xcheckbox', _('clientconfig.xtype.xcheckbox')],
  42. ['datefield', _('clientconfig.xtype.datefield')],
  43. ['timefield', _('clientconfig.xtype.timefield')],
  44. ['password', _('clientconfig.xtype.password')],
  45. ['modx-combo', _('clientconfig.xtype.combobox')],
  46. ['googlefontlist', _('clientconfig.xtype.googlefonts')]
  47. ]
  48. }),
  49. hiddenName: config.name || 'xtype',
  50. valueField: 'xtype',
  51. displayField: 'label',
  52. mode: 'local',
  53. value: 'textfield'
  54. });
  55. if (MODx.config['clientconfig.google_fonts_api_key'] == '') config.store.removeAt(config.store.find('xtype','googlefontlist'));
  56. ClientConfig.combo.FieldTypes.superclass.constructor.call(this,config);
  57. };
  58. Ext.extend(ClientConfig.combo.FieldTypes,MODx.combo.ComboBox);
  59. Ext.reg('clientconfig-combo-fieldtypes',ClientConfig.combo.FieldTypes);
  60. ClientConfig.combo.GoogleFontList = function(config) {
  61. config = config || {};
  62. Ext.applyIf(config,{
  63. url: ClientConfig.config.connectorUrl,
  64. baseParams: {
  65. action: 'mgr/fonts/google/getList',
  66. combo: true
  67. },
  68. fields: ['family','name'],
  69. hiddenName: config.name || 'font',
  70. valueField: 'family',
  71. displayField: 'name'
  72. });
  73. ClientConfig.combo.GoogleFontList.superclass.constructor.call(this,config);
  74. };
  75. Ext.extend(ClientConfig.combo.GoogleFontList, MODx.combo.ComboBox);
  76. Ext.reg('googlefontlist',ClientConfig.combo.GoogleFontList);
  77. ClientConfig.combo.ContextList = function(config) {
  78. config = config || {};
  79. Ext.applyIf(config,{
  80. url: ClientConfig.config.connectorUrl,
  81. baseParams: {
  82. action: 'mgr/contexts/getlist',
  83. exclude: 'mgr',
  84. combo: true
  85. },
  86. fields: ['key','name'],
  87. hiddenName: config.name || 'context',
  88. valueField: 'key',
  89. displayField: 'name',
  90. pageSize: 20
  91. // Typeahead prevents the dropdown from opening on click, needs a solution first
  92. // editable: true,
  93. // typeahead: true,
  94. // forceSelection: true,
  95. // queryParam: 'search',
  96. });
  97. ClientConfig.combo.ContextList.superclass.constructor.call(this,config);
  98. };
  99. Ext.extend(ClientConfig.combo.ContextList, MODx.combo.ComboBox);
  100. Ext.reg('clientconfig-combo-contexts',ClientConfig.combo.ContextList);