| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- fred.grid.Dependencies = function (config) {
- config = config || {};
- Ext.applyIf(config, {
- remoteSort: false,
- fields: ['name', 'version'],
- height: 250,
- columns: [
- {
- header: _('fred.themes.package_name'),
- dataIndex: 'name',
- width: 120,
- sortable: true,
- editor: {xtype: 'fred-combo-installed-packages'}
- },
- {
- header: _('fred.themes.version'),
- dataIndex: 'version',
- width: 120,
- sortable: true,
- editor: {xtype: 'textfield'}
- }
- ],
- listeners: {
- beforerender: this.fillGrid,
- beforeedit: function(data) {
- if ((data.field === 'name') && (data.value === 'fred')) {
- return false;
- }
-
- return true;
- },
- validateedit: function(data) {
- var valid = true;
- this.store.each(function (record, index) {
- if ((index !== data.row) && record.data.name.toLowerCase() === data.value.toLowerCase()) {
- valid = false;
- return false;
- }
- });
-
- if (!valid) {
- MODx.msg.alert('Error', 'Package Name must be unique');
- return false;
- }
-
- return valid;
- }
- },
- tbar: [
- {
- text: _('fred.themes.add_dependency'),
- handler: this.addDependency
- }
- ]
- });
- fred.grid.Dependencies.superclass.constructor.call(this, config);
- };
- Ext.extend(fred.grid.Dependencies, fred.grid.LocalGearGrid, {
- _loadStore: function (config) {
- return new Ext.data.JsonStore({
- fields: config.fields,
- remoteSort: false,
- idProperty: 'name'
- });
- },
- getMenu: function() {
- return [
- {
- text: _('fred.themes.remove_dependency'),
- handler: this.removeDependency
- }
- ];
- },
- fillGrid: function (prepare) {
- if (this.config && this.config.initValue && Array.isArray(this.config.initValue)) {
- prepare.store.loadData(this.config.initValue);
- } else {
- prepare.store.loadData([{name: "fred", version: '*'}]);
- }
- },
- addDependency: function(btn, e) {
- this.stopEditing();
- this.store.add(new this.store.recordType({name: '', version: '*'}));
- this.startEditing(this.store.getCount() - 1, 0);
- },
- removeDependency: function() {
- if (this.menu.record.name === 'fred') {
- MODx.msg.alert(_('fred.err.fred_dependency_title'), _('fred.err.fred_dependency_body'));
- return;
- }
-
- this.store.removeAt(this.menu.recordIndex);
- }
- });
- Ext.reg('fred-grid-dependencies', fred.grid.Dependencies);
|