X-Git-Url: http://git.ithinksw.org/extjs.git/blobdiff_plain/ee06f37b0f6f6d94cd05a6ffae556660f7c4a2bc..c930e9176a5a85509c5b0230e2bff5c22a591432:/examples/grid-filtering/grid/filter/DateFilter.js diff --git a/examples/grid-filtering/grid/filter/DateFilter.js b/examples/grid-filtering/grid/filter/DateFilter.js deleted file mode 100644 index 02b6c60f..00000000 --- a/examples/grid-filtering/grid/filter/DateFilter.js +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Ext JS Library 2.2.1 - * Copyright(c) 2006-2009, Ext JS, LLC. - * licensing@extjs.com - * - * http://extjs.com/license - */ - -Ext.grid.filter.DateFilter = Ext.extend(Ext.grid.filter.Filter, { - /** - * @cfg {Date} dateFormat - * The date format applied to the menu's {@link Ext.menu.DateMenu} - */ - dateFormat: 'm/d/Y', - /** - * @cfg {Object} pickerOpts - * The config object that will be passed to the menu's {@link Ext.menu.DateMenu} during - * initialization (sets minDate, maxDate and format to the same configs specified on the filter) - */ - pickerOpts: {}, - /** - * @cfg {String} beforeText - * The text displayed for the "Before" menu item - */ - beforeText: 'Before', - /** - * @cfg {String} afterText - * The text displayed for the "After" menu item - */ - afterText: 'After', - /** - * @cfg {String} onText - * The text displayed for the "On" menu item - */ - onText: 'On', - /** - * @cfg {Date} minDate - * The minimum date allowed in the menu's {@link Ext.menu.DateMenu} - */ - /** - * @cfg {Date} maxDate - * The maximum date allowed in the menu's {@link Ext.menu.DateMenu} - */ - - init: function() { - var opts = Ext.apply(this.pickerOpts, { - minDate: this.minDate, - maxDate: this.maxDate, - format: this.dateFormat - }); - var dates = this.dates = { - 'before': new Ext.menu.CheckItem({text: this.beforeText, menu: new Ext.menu.DateMenu(opts)}), - 'after': new Ext.menu.CheckItem({text: this.afterText, menu: new Ext.menu.DateMenu(opts)}), - 'on': new Ext.menu.CheckItem({text: this.onText, menu: new Ext.menu.DateMenu(opts)}) - }; - - this.menu.add(dates.before, dates.after, "-", dates.on); - - for(var key in dates) { - var date = dates[key]; - date.menu.on('select', this.onSelect.createDelegate(this, [date]), this); - - date.on('checkchange', function(){ - this.setActive(this.isActivatable()); - }, this); - }; - }, - - onSelect: function(date, menuItem, value, picker) { - date.setChecked(true); - var dates = this.dates; - - if(date == dates.on) { - dates.before.setChecked(false, true); - dates.after.setChecked(false, true); - } else { - dates.on.setChecked(false, true); - - if(date == dates.after && dates.before.menu.picker.value < value) { - dates.before.setChecked(false, true); - } else if (date == dates.before && dates.after.menu.picker.value > value) { - dates.after.setChecked(false, true); - } - } - - this.fireEvent("update", this); - }, - - getFieldValue: function(field) { - return this.dates[field].menu.picker.getValue(); - }, - - getPicker: function(field) { - return this.dates[field].menu.picker; - }, - - isActivatable: function() { - return this.dates.on.checked || this.dates.after.checked || this.dates.before.checked; - }, - - setValue: function(value) { - for(var key in this.dates) { - if(value[key]) { - this.dates[key].menu.picker.setValue(value[key]); - this.dates[key].setChecked(true); - } else { - this.dates[key].setChecked(false); - } - } - }, - - getValue: function() { - var result = {}; - for(var key in this.dates) { - if(this.dates[key].checked) { - result[key] = this.dates[key].menu.picker.getValue(); - } - } - return result; - }, - - serialize: function() { - var args = []; - if(this.dates.before.checked) { - args = [{type: 'date', comparison: 'lt', value: this.getFieldValue('before').format(this.dateFormat)}]; - } - if(this.dates.after.checked) { - args.push({type: 'date', comparison: 'gt', value: this.getFieldValue('after').format(this.dateFormat)}); - } - if(this.dates.on.checked) { - args = {type: 'date', comparison: 'eq', value: this.getFieldValue('on').format(this.dateFormat)}; - } - - this.fireEvent('serialize', args, this); - return args; - }, - - validateRecord: function(record) { - var val = record.get(this.dataIndex).clearTime(true).getTime(); - - if(this.dates.on.checked && val != this.getFieldValue('on').clearTime(true).getTime()) { - return false; - } - if(this.dates.before.checked && val >= this.getFieldValue('before').clearTime(true).getTime()) { - return false; - } - if(this.dates.after.checked && val <= this.getFieldValue('after').clearTime(true).getTime()) { - return false; - } - return true; - } -}); \ No newline at end of file