combos.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. /**
  2. * Displays a dropdown list of available Lexicon Topics. Requires a namespace.
  3. *
  4. * @class MODx.combo.LexiconTopic
  5. * @extends MODx.combo.ComboBox
  6. * @param {Object} config An object of config properties
  7. * @xtype modx-combo-lexicon-topic
  8. */
  9. MODx.combo.LexiconTopic = function(config) {
  10. config = config || {};
  11. Ext.applyIf(config,{
  12. name: 'topic'
  13. ,hiddenName: 'topic'
  14. ,forceSelection: true
  15. ,typeAhead: true
  16. ,minChars: 1
  17. ,editable: true
  18. ,allowBlank: true
  19. // ,listWidth: 300
  20. ,url: MODx.config.connector_url
  21. ,fields: ['name']
  22. ,displayField: 'name'
  23. ,valueField: 'name'
  24. ,baseParams: {
  25. action: 'workspace/lexicon/topic/getList'
  26. ,'namespace': 'core'
  27. ,'language': 'en'
  28. }
  29. // ,pageSize: 20
  30. });
  31. MODx.combo.LexiconTopic.superclass.constructor.call(this,config);
  32. };
  33. Ext.extend(MODx.combo.LexiconTopic,MODx.combo.ComboBox,{
  34. setNamespace: function(ns,t) {
  35. this.store.baseParams['namespace'] = ns;
  36. this.store.load({
  37. callback: function() {
  38. if (t) { this.setValue(t); }
  39. }
  40. ,scope: this
  41. });
  42. }
  43. ,setLanguage: function(ns,t) {
  44. this.store.baseParams['language'] = ns;
  45. this.store.load({
  46. callback: function() {
  47. if (t) { this.setValue(t); }
  48. }
  49. ,scope: this
  50. });
  51. }
  52. });
  53. Ext.reg('modx-combo-lexicon-topic',MODx.combo.LexiconTopic);