[BUGFIX] Fix inconsistent linebreaks in some files
authorMichael Stucki <michael.stucki@typo3.org>
Tue, 19 Apr 2011 12:47:03 +0000 (14:47 +0200)
committerChristian Kuhn <lolli@schwarzbu.ch>
Mon, 25 Apr 2011 20:28:24 +0000 (22:28 +0200)
A few files are containing inconsistent linebreaks.
Since all of these files are taken from external projects,
someone needs to make sure that they get fixed during future
imports.

Change-Id: I79f70d82edf199c165620dd426c9b9f2af690823
Resolves: #26126
Releases: 4.6, 4.5
Reviewed-on: http://review.typo3.org/1662
Reviewed-by: Susanne Moog
Tested-by: Susanne Moog
Reviewed-by: Christian Kuhn
Tested-by: Christian Kuhn
typo3/contrib/extjs/locale/ext-lang-am.js
typo3/sysext/em/res/js/ux/css/GridFilters.css
typo3/sysext/em/res/js/ux/css/RangeMenu.css
typo3/sysext/em/res/js/ux/filter/BooleanFilter.js
typo3/sysext/em/res/js/ux/filter/DateFilter.js

index eb8b546..1538933 100644 (file)
  * licensing@sencha.com
  * http://www.sencha.com/license
  */
-/**\r
- * List compiled by Tewodros Wondimu on the extjs.com forums Oct 18, 2010.\r
- *\r
- * Amharic Translations\r
- */\r
-\r
-Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">እያስገባ ነዉ...</div>';\r
-\r
-if(Ext.DataView){\r
-  Ext.DataView.prototype.emptyText = "";\r
-}\r
-\r
-if(Ext.grid.GridPanel){\r
-  Ext.grid.GridPanel.prototype.ddText = "{0} ምርጥ ረድፍ {1}";\r
-}\r
-\r
-if(Ext.LoadMask){\r
-  Ext.LoadMask.prototype.msg = "እያስገባ ነዉ...";\r
-}\r
-\r
-Date.shortMonthNames = [\r
-   "መስከ",\r
-   "ጥቅም",\r
-   "ህዳር",\r
-   "ታህሳ",\r
-   "ጥር",\r
-   "የካቲ",\r
-   "መጋቢ",\r
-   "ሚያዚ",\r
-   "ግንቦ",\r
-   "ሰኔ",\r
-   "ሐምሌ",\r
-   "ነሃሴ",\r
-   "ጷግሜ"\r
-];\r
-\r
-\r
-Date.monthNames = [\r
-  "መስከረም",\r
-  "ጥቅምት",\r
-  "ህዳር",\r
-  "ታህሳስ",\r
-  "ጥር",\r
-  "የካቲት",\r
-  "መጋቢት",\r
-  "ሚያዚያ",\r
-  "ግንቦት",\r
-  "ሰኔ",\r
-  "ሐምሌ",\r
-  "ነሃሴ",\r
-  "ጷግሜ"\r
-];\r
-\r
-Date.getShortMonthName = function(month) {\r
-  return Date.monthNames[month].substring(0, 3);\r
-};\r
-\r
-Date.monthNumbers = {\r
-  "መስከረም" : 0,\r
-  "ጥቅምት" : 1,\r
-  "ህዳር" : 2,\r
-  "ታህሳስ" : 3,\r
-  "ጥር" : 4,\r
-  "የካቲት" : 5,\r
-  "መጋቢት" : 6,\r
-  "ሚያዚያ" : 7,\r
-  "ግንቦት" : 8,\r
-  "ሰኔ" : 9,\r
-  "ሐምሌ" : 10,  \r
-  "ነሃሴ" : 11,\r
-  "ጷግሜ" : 12\r
-};\r
-\r
-Date.getMonthNumber = function(name) {\r
-  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];\r
-};\r
-\r
-Date.dayNames = [\r
-  "እሁድ",\r
-  "ሰኞ",\r
-  "ማክሰኞ",\r
-  "ዓሮብ",\r
-  "ሐሙስ",\r
-  "አርብ",\r
-  "ቅዳሜ"\r
-];\r
-\r
-Date.getShortDayName = function(day) {\r
-  return Date.dayNames[day].substring(0, 3);\r
-};\r
-\r
-Date.parseCodes.S.s = "(?:st|nd|rd|th)";\r
-\r
-if(Ext.MessageBox){\r
-  Ext.MessageBox.buttonText = {\r
-    ok     : "ይሁን",\r
-    cancel : "ሰርዝ",\r
-    yes    : "አዎ",\r
-    no     : "የለም / አይ"\r
-  };\r
-}\r
-\r
-if(Ext.util.Format){\r
-  Ext.util.Format.date = function(v, format){\r
-    if(!v) return "";\r
-    if(!(v instanceof Date)) v = new Date(Date.parse(v));\r
-    return v.dateFormat(format || "ወ/ቀ/አ");\r
-  };\r
-}\r
-\r
-if(Ext.DatePicker){\r
-  Ext.apply(Ext.DatePicker.prototype, {\r
-    todayText         : "ዛሬ",\r
-    minText           : "ይሄ ቀን  ከመጨረሻ ትንሹ ቀን በፊት ነዉ",\r
-    maxText           : "ይሄ ቀን ከመጨረሻ ትልቁ ቀን በፊት ነዉ",\r
-    disabledDaysText  : "",\r
-    disabledDatesText : "",\r
-    monthNames        : Date.monthNames,\r
-    dayNames          : Date.dayNames,\r
-    nextText          : 'የሚቀጥለዉ ወር(መቆጣጣሪያ  ቁምፍ+ቀኝ)',\r
-    prevText          : 'ያለፈዉ ወር(መቆጣጣሪያ  ቁምፍ+ግራ)',\r
-    monthYearText     : 'ወር ምረጥ (አመት ለመለወጥ መቆጣጣሪያ  ቁምፍ+ወደላይ/ወደታች)',\r
-    todayTip          : "{0} (የቦታ ቁልፍ)",\r
-    format            : "d/m/Y",\r
-    okText            : "ይሁን",\r
-    cancelText        : "ሰርዝ",\r
-    startDay          : 0\r
-  });\r
-}\r
-\r
-if(Ext.PagingToolbar){\r
-  Ext.apply(Ext.PagingToolbar.prototype, {\r
-    beforePageText : "ገልጽ",\r
-    afterPageText  : "የ {0}",\r
-    firstText      : "የመጀመሪያዉ ገልጽ",\r
-    prevText       : "ያለፈዉ ገልጽ",\r
-    nextText       : "የሚቀጥለዉ ገልጽ",\r
-    lastText       : "የመጨረሻዉ ገልጽ",\r
-    refreshText    : "ከልስ",\r
-    displayMsg     : "{0} - {1} ሲያሳይ ከ {2}",\r
-    emptyMsg       : 'የሚታይ ዳታ የለም'\r
-  });\r
-}\r
-\r
-if(Ext.form.BasicForm){\r
-    Ext.form.BasicForm.prototype.waitTitle = "እባክዎን ይጠብቁ..."\r
-}\r
-\r
-if(Ext.form.Field){\r
-  Ext.form.Field.prototype.invalidText = "የዚህ መስክ እሴት የተሳሳተ ነዉ";\r
-}\r
-\r
-if(Ext.form.TextField){\r
-  Ext.apply(Ext.form.TextField.prototype, {\r
-    minLengthText : "የዚህ መስክ የመጨረሻ ትንሽ ርዝመት {0} ነዉ",\r
-    maxLengthText : "የዚህ መስክ የመጨረሻ ትልቅ ርዝመት {0} ነዉ",\r
-    blankText     : "ይሄ መስክ አስፈላጊ ነዉ",\r
-    regexText     : "",\r
-    emptyText     : null\r
-  });\r
-}\r
-\r
-if(Ext.form.NumberField){\r
-  Ext.apply(Ext.form.NumberField.prototype, {\r
-    decimalSeparator : ".",\r
-    decimalPrecision : 2,\r
-    minText : "የዚህ መስክ የመጨረሻ ትንሽ እሴት {0} ነዉ",\r
-    maxText : "የዚህ መስክ የመጨረሻ ትልቅ እሴት {0} ነዉ",\r
-    nanText : "{0} የተሳሳተ ቁጥር ነዉ"\r
-  });\r
-}\r
-\r
-if(Ext.form.DateField){\r
-  Ext.apply(Ext.form.DateField.prototype, {\r
-    disabledDaysText  : "ቦዝኗል / ስራ አቁሟል",\r
-    disabledDatesText : "ቦዝኗል / ስራ አቁሟል",\r
-    minText           : "እዚ እሴት ዉስጥ ያለዉ ቀን ከ{0} በሑአላ መሆን አለበት",\r
-    maxText           : "እዚ እሴት ዉስጥ ያለዉ ቀን ከ{0} በፊት መሆን አለበት",\r
-    invalidText       : "{0} የተሳሳተ ቀን ነዉ - በዚህ ቅርፀት መሆን አለበት {1}",\r
-    format            : "d/m/y",\r
-    altFormats        : "d/m/Y|d/m/y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",\r
-    startDay          : 0\r
-  });\r
-}\r
-\r
-if(Ext.form.ComboBox){\r
-  Ext.apply(Ext.form.ComboBox.prototype, {\r
-    loadingText       : "እያስገባ ነዉ...",\r
-    valueNotFoundText : "አልተወሰነም"\r
-  });\r
-}\r
-\r
-if(Ext.form.VTypes){\r
-  Ext.apply(Ext.form.VTypes, {\r
-    emailText    : 'ይሄ እሴት ኢሜይል መሆን አለበት - በዚህ ቅርፀት መሆን አለበት "user@example.com"',\r
-    urlText      : 'ይሄ እሴት  ዩአርኤን መሆን አለበት - በዚህ ቅርፀት መሆን አለበት "http:/'+'/www.example.com"',\r
-    alphaText    : 'ይሄ እሴት መያዝ ያለበት ቃላትና _ ብቻ ነዉ',\r
-    alphanumText : 'ይሄ እሴት መያዝ ያለበት ቃላት፤ ቁጥርና _ ብቻ ነዉ'\r
-  });\r
-}\r
-\r
-if(Ext.form.HtmlEditor){\r
-  Ext.apply(Ext.form.HtmlEditor.prototype, {\r
-    createLinkText : 'እባኮትን ለዚ ዩአርኤን አገናኝ አስገባ:',\r
-    buttonTips : {\r
-      bold : {\r
-        title: 'ደማቅ (መቆጣጣሪያ  ቁምፍ+B)',\r
-        text: 'የተመረጠዉን ጽሁፍ አድምቅ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      italic : {\r
-        title: 'ሰያፍ (መቆጣጣሪያ  ቁምፍ+I)',\r
-        text: 'የተመረጠዉን ጽሁፍ ሰያፍ አድርግ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      underline : {\r
-        title: 'መስመረግርጌ (መቆጣጣሪያ  ቁምፍ+U)',\r
-        text: 'የተመረጠዉን ጽሁፍ ከግርጌ አስምር::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      increasefontsize : {\r
-        title: 'ጽሁፉን አሳድግ',\r
-        text: 'ቅርጸ ቁምፊ አሳድገግ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      decreasefontsize : {\r
-        title: 'ጽሁፉን አሳንስ',\r
-        text: 'ቅርጸ ቁምፊ አሳንስ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      backcolor : {\r
-        title: 'ጽሁፍ ምረጥ ቀለም',\r
-        text: 'የተመረጠዉን ጽሁፍ ዳራ ቀለም ለዉጥ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      forecolor : {\r
-        title: 'ቅርጸ ቁምፊ ቀለም',\r
-        text: 'የተመረጠዉን ጽሁፍ ቀለም ለዉጥ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      justifyleft : {\r
-        title: 'ጽሁፍ ግራ አሰልፍ',\r
-        text: 'ጽሁፉን ወደግራ አሰልፍ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      justifycenter : {\r
-        title: 'ጽሁፍ አማክል',\r
-        text: 'አርታኢዉ ላይ ጽሁፉን አማክል::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      justifyright : {\r
-        title: 'ጽሁፍ ቀኝ አሰልፍ',\r
-        text: 'ጽሁፉን ወደቀኝ አሰልፍ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      insertunorderedlist : {\r
-        title: 'ነጥበ ምልክት ዝርዝር',\r
-        text: 'ነጥበ ምልክት ዝርዝር ጀምር::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      insertorderedlist : {\r
-        title: 'ቁጥራዊ ዝርዝር',\r
-        text: 'ቁጥራዊ ዝርዝር ጀምር::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      createlink : {\r
-        title: 'ገፅ አገናኝ',\r
-        text: 'የተመረጠዉን ጽሁፍ ገፅ አገናኝ አድርግ::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      },\r
-      sourceedit : {\r
-        title: 'ምንጭ አርትእ',\r
-        text: 'ወደ ምንጭ አርትእ ሁነታ ቀይር::',\r
-        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'\r
-      }\r
-    }\r
-  });\r
-}\r
-\r
-if(Ext.grid.GridView){\r
-  Ext.apply(Ext.grid.GridView.prototype, {\r
-    sortAscText  : "ሽቅብ ደርድር",\r
-    sortDescText : "ቁልቁል ደርድር",\r
-    columnsText  : "አምዶች"\r
-  });\r
-}\r
-\r
-if(Ext.grid.GroupingView){\r
-  Ext.apply(Ext.grid.GroupingView.prototype, {\r
-    emptyGroupText : '(ማንም)',\r
-    groupByText    : 'በዚ መስክ ቦድን',\r
-    showGroupsText : 'በቡድን አሳይ'\r
-  });\r
-}\r
-\r
-if(Ext.grid.PropertyColumnModel){\r
-  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {\r
-    nameText   : "ስም",\r
-    valueText  : "እሴት ",\r
-    dateFormat : "m/j/Y",\r
-    trueText: "እሙን",\r
-    falseText: "ሐሰት"\r
-  });\r
-}\r
-\r
-if(Ext.grid.BooleanColumn){\r
-   Ext.apply(Ext.grid.BooleanColumn.prototype, {\r
-      trueText  : "እሙን",\r
-      falseText : "ሐሰት",\r
-      undefinedText: '&#160;'\r
-   });\r
-}\r
-\r
-if(Ext.grid.NumberColumn){\r
-    Ext.apply(Ext.grid.NumberColumn.prototype, {\r
-        format : '0,000.00'\r
-    });\r
-}\r
-\r
-if(Ext.grid.DateColumn){\r
-    Ext.apply(Ext.grid.DateColumn.prototype, {\r
-        format : 'm/d/Y'\r
-    });\r
-}\r
-\r
-if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){\r
-  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {\r
-    splitTip            : "መጠን ለመቀይር ጎትት::",\r
-    collapsibleSplitTip : "መጠን ለመቀይር ጎትት:: ለመደበቅ ሁለቴ ጠቅ አድርግ::"\r
-  });\r
-}\r
-\r
-if(Ext.form.TimeField){\r
-  Ext.apply(Ext.form.TimeField.prototype, {\r
-    minText : "እዚህ መስክ ዉስጥ ያለዉ ሰዓት ከ{0} እኩል ወይም በኁላ መሆን አለበት",\r
-    maxText : "እዚህ መስክ ዉስጥ ያለዉ ሰዓት ከ{0} እኩል ወይም በፊት መሆን አለበት",\r
-    invalidText : "{0} የተሳሳተ ሰዓት ነዉ",\r
-    format : "g:i A",\r
-    altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"\r
-  });\r
-}\r
-\r
-if(Ext.form.CheckboxGroup){\r
-  Ext.apply(Ext.form.CheckboxGroup.prototype, {\r
-    blankText : "እዚህ ቡድን ዉስጥ ቢያንስ አንድ ዓይነት መምረጥ አለብህ"\r
-  });\r
-}\r
-\r
-if(Ext.form.RadioGroup){\r
-  Ext.apply(Ext.form.RadioGroup.prototype, {\r
-    blankText : "እዚህ ቡድን ዉስጥ ቢያንስ አንድ ዓይነት መምረጥ አለብህ"\r
-  });\r
-}\r
+/**
+ * List compiled by Tewodros Wondimu on the extjs.com forums Oct 18, 2010.
+ *
+ * Amharic Translations
+ */
+
+Ext.UpdateManager.defaults.indicatorText = '<div class="loading-indicator">እያስገባ ነዉ...</div>';
+
+if(Ext.DataView){
+  Ext.DataView.prototype.emptyText = "";
+}
+
+if(Ext.grid.GridPanel){
+  Ext.grid.GridPanel.prototype.ddText = "{0} ምርጥ ረድፍ {1}";
+}
+
+if(Ext.LoadMask){
+  Ext.LoadMask.prototype.msg = "እያስገባ ነዉ...";
+}
+
+Date.shortMonthNames = [
+   "መስከ",
+   "ጥቅም",
+   "ህዳር",
+   "ታህሳ",
+   "ጥር",
+   "የካቲ",
+   "መጋቢ",
+   "ሚያዚ",
+   "ግንቦ",
+   "ሰኔ",
+   "ሐምሌ",
+   "ነሃሴ",
+   "ጷግሜ"
+];
+
+
+Date.monthNames = [
+  "መስከረም",
+  "ጥቅምት",
+  "ህዳር",
+  "ታህሳስ",
+  "ጥር",
+  "የካቲት",
+  "መጋቢት",
+  "ሚያዚያ",
+  "ግንቦት",
+  "ሰኔ",
+  "ሐምሌ",
+  "ነሃሴ",
+  "ጷግሜ"
+];
+
+Date.getShortMonthName = function(month) {
+  return Date.monthNames[month].substring(0, 3);
+};
+
+Date.monthNumbers = {
+  "መስከረም" : 0,
+  "ጥቅምት" : 1,
+  "ህዳር" : 2,
+  "ታህሳስ" : 3,
+  "ጥር" : 4,
+  "የካቲት" : 5,
+  "መጋቢት" : 6,
+  "ሚያዚያ" : 7,
+  "ግንቦት" : 8,
+  "ሰኔ" : 9,
+  "ሐምሌ" : 10,  
+  "ነሃሴ" : 11,
+  "ጷግሜ" : 12
+};
+
+Date.getMonthNumber = function(name) {
+  return Date.monthNumbers[name.substring(0, 1).toUpperCase() + name.substring(1, 3).toLowerCase()];
+};
+
+Date.dayNames = [
+  "እሁድ",
+  "ሰኞ",
+  "ማክሰኞ",
+  "ዓሮብ",
+  "ሐሙስ",
+  "አርብ",
+  "ቅዳሜ"
+];
+
+Date.getShortDayName = function(day) {
+  return Date.dayNames[day].substring(0, 3);
+};
+
+Date.parseCodes.S.s = "(?:st|nd|rd|th)";
+
+if(Ext.MessageBox){
+  Ext.MessageBox.buttonText = {
+    ok     : "ይሁን",
+    cancel : "ሰርዝ",
+    yes    : "አዎ",
+    no     : "የለም / አይ"
+  };
+}
+
+if(Ext.util.Format){
+  Ext.util.Format.date = function(v, format){
+    if(!v) return "";
+    if(!(v instanceof Date)) v = new Date(Date.parse(v));
+    return v.dateFormat(format || "ወ/ቀ/አ");
+  };
+}
+
+if(Ext.DatePicker){
+  Ext.apply(Ext.DatePicker.prototype, {
+    todayText         : "ዛሬ",
+    minText           : "ይሄ ቀን  ከመጨረሻ ትንሹ ቀን በፊት ነዉ",
+    maxText           : "ይሄ ቀን ከመጨረሻ ትልቁ ቀን በፊት ነዉ",
+    disabledDaysText  : "",
+    disabledDatesText : "",
+    monthNames        : Date.monthNames,
+    dayNames          : Date.dayNames,
+    nextText          : 'የሚቀጥለዉ ወር(መቆጣጣሪያ  ቁምፍ+ቀኝ)',
+    prevText          : 'ያለፈዉ ወር(መቆጣጣሪያ  ቁምፍ+ግራ)',
+    monthYearText     : 'ወር ምረጥ (አመት ለመለወጥ መቆጣጣሪያ  ቁምፍ+ወደላይ/ወደታች)',
+    todayTip          : "{0} (የቦታ ቁልፍ)",
+    format            : "d/m/Y",
+    okText            : "ይሁን",
+    cancelText        : "ሰርዝ",
+    startDay          : 0
+  });
+}
+
+if(Ext.PagingToolbar){
+  Ext.apply(Ext.PagingToolbar.prototype, {
+    beforePageText : "ገልጽ",
+    afterPageText  : "የ {0}",
+    firstText      : "የመጀመሪያዉ ገልጽ",
+    prevText       : "ያለፈዉ ገልጽ",
+    nextText       : "የሚቀጥለዉ ገልጽ",
+    lastText       : "የመጨረሻዉ ገልጽ",
+    refreshText    : "ከልስ",
+    displayMsg     : "{0} - {1} ሲያሳይ ከ {2}",
+    emptyMsg       : 'የሚታይ ዳታ የለም'
+  });
+}
+
+if(Ext.form.BasicForm){
+    Ext.form.BasicForm.prototype.waitTitle = "እባክዎን ይጠብቁ..."
+}
+
+if(Ext.form.Field){
+  Ext.form.Field.prototype.invalidText = "የዚህ መስክ እሴት የተሳሳተ ነዉ";
+}
+
+if(Ext.form.TextField){
+  Ext.apply(Ext.form.TextField.prototype, {
+    minLengthText : "የዚህ መስክ የመጨረሻ ትንሽ ርዝመት {0} ነዉ",
+    maxLengthText : "የዚህ መስክ የመጨረሻ ትልቅ ርዝመት {0} ነዉ",
+    blankText     : "ይሄ መስክ አስፈላጊ ነዉ",
+    regexText     : "",
+    emptyText     : null
+  });
+}
+
+if(Ext.form.NumberField){
+  Ext.apply(Ext.form.NumberField.prototype, {
+    decimalSeparator : ".",
+    decimalPrecision : 2,
+    minText : "የዚህ መስክ የመጨረሻ ትንሽ እሴት {0} ነዉ",
+    maxText : "የዚህ መስክ የመጨረሻ ትልቅ እሴት {0} ነዉ",
+    nanText : "{0} የተሳሳተ ቁጥር ነዉ"
+  });
+}
+
+if(Ext.form.DateField){
+  Ext.apply(Ext.form.DateField.prototype, {
+    disabledDaysText  : "ቦዝኗል / ስራ አቁሟል",
+    disabledDatesText : "ቦዝኗል / ስራ አቁሟል",
+    minText           : "እዚ እሴት ዉስጥ ያለዉ ቀን ከ{0} በሑአላ መሆን አለበት",
+    maxText           : "እዚ እሴት ዉስጥ ያለዉ ቀን ከ{0} በፊት መሆን አለበት",
+    invalidText       : "{0} የተሳሳተ ቀን ነዉ - በዚህ ቅርፀት መሆን አለበት {1}",
+    format            : "d/m/y",
+    altFormats        : "d/m/Y|d/m/y|d-m-y|d-m-Y|d/m|d-m|dm|dmy|dmY|d|Y-m-d",
+    startDay          : 0
+  });
+}
+
+if(Ext.form.ComboBox){
+  Ext.apply(Ext.form.ComboBox.prototype, {
+    loadingText       : "እያስገባ ነዉ...",
+    valueNotFoundText : "አልተወሰነም"
+  });
+}
+
+if(Ext.form.VTypes){
+  Ext.apply(Ext.form.VTypes, {
+    emailText    : 'ይሄ እሴት ኢሜይል መሆን አለበት - በዚህ ቅርፀት መሆን አለበት "user@example.com"',
+    urlText      : 'ይሄ እሴት  ዩአርኤን መሆን አለበት - በዚህ ቅርፀት መሆን አለበት "http:/'+'/www.example.com"',
+    alphaText    : 'ይሄ እሴት መያዝ ያለበት ቃላትና _ ብቻ ነዉ',
+    alphanumText : 'ይሄ እሴት መያዝ ያለበት ቃላት፤ ቁጥርና _ ብቻ ነዉ'
+  });
+}
+
+if(Ext.form.HtmlEditor){
+  Ext.apply(Ext.form.HtmlEditor.prototype, {
+    createLinkText : 'እባኮትን ለዚ ዩአርኤን አገናኝ አስገባ:',
+    buttonTips : {
+      bold : {
+        title: 'ደማቅ (መቆጣጣሪያ  ቁምፍ+B)',
+        text: 'የተመረጠዉን ጽሁፍ አድምቅ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      italic : {
+        title: 'ሰያፍ (መቆጣጣሪያ  ቁምፍ+I)',
+        text: 'የተመረጠዉን ጽሁፍ ሰያፍ አድርግ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      underline : {
+        title: 'መስመረግርጌ (መቆጣጣሪያ  ቁምፍ+U)',
+        text: 'የተመረጠዉን ጽሁፍ ከግርጌ አስምር::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      increasefontsize : {
+        title: 'ጽሁፉን አሳድግ',
+        text: 'ቅርጸ ቁምፊ አሳድገግ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      decreasefontsize : {
+        title: 'ጽሁፉን አሳንስ',
+        text: 'ቅርጸ ቁምፊ አሳንስ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      backcolor : {
+        title: 'ጽሁፍ ምረጥ ቀለም',
+        text: 'የተመረጠዉን ጽሁፍ ዳራ ቀለም ለዉጥ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      forecolor : {
+        title: 'ቅርጸ ቁምፊ ቀለም',
+        text: 'የተመረጠዉን ጽሁፍ ቀለም ለዉጥ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      justifyleft : {
+        title: 'ጽሁፍ ግራ አሰልፍ',
+        text: 'ጽሁፉን ወደግራ አሰልፍ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      justifycenter : {
+        title: 'ጽሁፍ አማክል',
+        text: 'አርታኢዉ ላይ ጽሁፉን አማክል::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      justifyright : {
+        title: 'ጽሁፍ ቀኝ አሰልፍ',
+        text: 'ጽሁፉን ወደቀኝ አሰልፍ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      insertunorderedlist : {
+        title: 'ነጥበ ምልክት ዝርዝር',
+        text: 'ነጥበ ምልክት ዝርዝር ጀምር::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      insertorderedlist : {
+        title: 'ቁጥራዊ ዝርዝር',
+        text: 'ቁጥራዊ ዝርዝር ጀምር::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      createlink : {
+        title: 'ገፅ አገናኝ',
+        text: 'የተመረጠዉን ጽሁፍ ገፅ አገናኝ አድርግ::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      },
+      sourceedit : {
+        title: 'ምንጭ አርትእ',
+        text: 'ወደ ምንጭ አርትእ ሁነታ ቀይር::',
+        cls: 'ኤክስ-ኤችቲኤምኤል-አርታኢ-ጠቃሚ ምክር'
+      }
+    }
+  });
+}
+
+if(Ext.grid.GridView){
+  Ext.apply(Ext.grid.GridView.prototype, {
+    sortAscText  : "ሽቅብ ደርድር",
+    sortDescText : "ቁልቁል ደርድር",
+    columnsText  : "አምዶች"
+  });
+}
+
+if(Ext.grid.GroupingView){
+  Ext.apply(Ext.grid.GroupingView.prototype, {
+    emptyGroupText : '(ማንም)',
+    groupByText    : 'በዚ መስክ ቦድን',
+    showGroupsText : 'በቡድን አሳይ'
+  });
+}
+
+if(Ext.grid.PropertyColumnModel){
+  Ext.apply(Ext.grid.PropertyColumnModel.prototype, {
+    nameText   : "ስም",
+    valueText  : "እሴት ",
+    dateFormat : "m/j/Y",
+    trueText: "እሙን",
+    falseText: "ሐሰት"
+  });
+}
+
+if(Ext.grid.BooleanColumn){
+   Ext.apply(Ext.grid.BooleanColumn.prototype, {
+      trueText  : "እሙን",
+      falseText : "ሐሰት",
+      undefinedText: '&#160;'
+   });
+}
+
+if(Ext.grid.NumberColumn){
+    Ext.apply(Ext.grid.NumberColumn.prototype, {
+        format : '0,000.00'
+    });
+}
+
+if(Ext.grid.DateColumn){
+    Ext.apply(Ext.grid.DateColumn.prototype, {
+        format : 'm/d/Y'
+    });
+}
+
+if(Ext.layout.BorderLayout && Ext.layout.BorderLayout.SplitRegion){
+  Ext.apply(Ext.layout.BorderLayout.SplitRegion.prototype, {
+    splitTip            : "መጠን ለመቀይር ጎትት::",
+    collapsibleSplitTip : "መጠን ለመቀይር ጎትት:: ለመደበቅ ሁለቴ ጠቅ አድርግ::"
+  });
+}
+
+if(Ext.form.TimeField){
+  Ext.apply(Ext.form.TimeField.prototype, {
+    minText : "እዚህ መስክ ዉስጥ ያለዉ ሰዓት ከ{0} እኩል ወይም በኁላ መሆን አለበት",
+    maxText : "እዚህ መስክ ዉስጥ ያለዉ ሰዓት ከ{0} እኩል ወይም በፊት መሆን አለበት",
+    invalidText : "{0} የተሳሳተ ሰዓት ነዉ",
+    format : "g:i A",
+    altFormats : "g:ia|g:iA|g:i a|g:i A|h:i|g:i|H:i|ga|ha|gA|h a|g a|g A|gi|hi|gia|hia|g|H"
+  });
+}
+
+if(Ext.form.CheckboxGroup){
+  Ext.apply(Ext.form.CheckboxGroup.prototype, {
+    blankText : "እዚህ ቡድን ዉስጥ ቢያንስ አንድ ዓይነት መምረጥ አለብህ"
+  });
+}
+
+if(Ext.form.RadioGroup){
+  Ext.apply(Ext.form.RadioGroup.prototype, {
+    blankText : "እዚህ ቡድን ዉስጥ ቢያንስ አንድ ዓይነት መምረጥ አለብህ"
+  });
+}
index a8234ac..2a5ced4 100644 (file)
@@ -4,51 +4,51 @@
  * licensing@extjs.com
  * http://www.extjs.com/license
  */
-/**\r
- * GridFilters Styles\r
- **/\r
-/*\r
-.x-grid3-hd-row .ux-filtered-column {\r
-       border-left:  1px solid #C7E3B4;\r
-       border-right: 1px solid #C7E3B4;\r
-}\r
-\r
-.x-grid3-hd-row .ux-filtered-column .x-grid3-hd-inner {\r
-       background-image: url(../images/header_bg.gif);\r
-}\r
-\r
-.ux-filtered-column .x-grid3-hd-btn {\r
-       background-image: url(../images/hd-btn.gif);\r
-}\r
-*/\r
-.x-grid3-hd-row td.ux-filtered-column {   \r
-    font-style: italic;  \r
-    font-weight: bold;\r
-}              \r
-\r
-.ux-filtered-column.sort-asc .x-grid3-sort-icon {\r
-       background-image: url(../images/sort_filtered_asc.gif) !important;\r
-}\r
-\r
-.ux-filtered-column.sort-desc .x-grid3-sort-icon {\r
-       background-image: url(../images/sort_filtered_desc.gif) !important;\r
-}\r
-\r
-.ux-gridfilter-text-icon {\r
-       background-image: url(../images/find.png) !important;\r
-}\r
-\r
-/* Temporary Patch for Bug ??? */\r
-.x-menu-list-item-indent .x-menu-item-icon {\r
-       position: relative;\r
-    top: 3px;\r
-    left: 3px;\r
-       margin-right: 10px;\r
-}\r
-li.x-menu-list-item-indent {\r
-       padding-left:0px;\r
-}\r
-li.x-menu-list-item div {\r
-       display: inline;\r
-}\r
-\r
+/**
+ * GridFilters Styles
+ **/
+/*
+.x-grid3-hd-row .ux-filtered-column {
+       border-left:  1px solid #C7E3B4;
+       border-right: 1px solid #C7E3B4;
+}
+
+.x-grid3-hd-row .ux-filtered-column .x-grid3-hd-inner {
+       background-image: url(../images/header_bg.gif);
+}
+
+.ux-filtered-column .x-grid3-hd-btn {
+       background-image: url(../images/hd-btn.gif);
+}
+*/
+.x-grid3-hd-row td.ux-filtered-column {   
+    font-style: italic;  
+    font-weight: bold;
+}              
+
+.ux-filtered-column.sort-asc .x-grid3-sort-icon {
+       background-image: url(../images/sort_filtered_asc.gif) !important;
+}
+
+.ux-filtered-column.sort-desc .x-grid3-sort-icon {
+       background-image: url(../images/sort_filtered_desc.gif) !important;
+}
+
+.ux-gridfilter-text-icon {
+       background-image: url(../images/find.png) !important;
+}
+
+/* Temporary Patch for Bug ??? */
+.x-menu-list-item-indent .x-menu-item-icon {
+       position: relative;
+    top: 3px;
+    left: 3px;
+       margin-right: 10px;
+}
+li.x-menu-list-item-indent {
+       padding-left:0px;
+}
+li.x-menu-list-item div {
+       display: inline;
+}
+
index 9928135..c857136 100644 (file)
@@ -4,17 +4,17 @@
  * licensing@extjs.com
  * http://www.extjs.com/license
  */
-/**\r
- * RangeMenu Styles\r
- **/\r
-.ux-rangemenu-gt {\r
-       background-image: url(../images/greater_than.png) !important;\r
-}\r
-\r
-.ux-rangemenu-lt {\r
-       background-image: url(../images/less_than.png) !important;\r
-}\r
-\r
-.ux-rangemenu-eq {\r
-       background-image: url(../images/equals.png) !important;\r
-}\r
+/**
+ * RangeMenu Styles
+ **/
+.ux-rangemenu-gt {
+       background-image: url(../images/greater_than.png) !important;
+}
+
+.ux-rangemenu-lt {
+       background-image: url(../images/less_than.png) !important;
+}
+
+.ux-rangemenu-eq {
+       background-image: url(../images/equals.png) !important;
+}
index a3f11eb..c437ffe 100644 (file)
  * licensing@extjs.com
  * http://www.extjs.com/license
  */
-/** \r
- * @class Ext.ux.grid.filter.BooleanFilter\r
- * @extends Ext.ux.grid.filter.Filter\r
- * Boolean filters use unique radio group IDs (so you can have more than one!)\r
- * <p><b><u>Example Usage:</u></b></p>\r
- * <pre><code>    \r
-var filters = new Ext.ux.grid.GridFilters({\r
-    ...\r
-    filters: [{\r
-        // required configs\r
-        type: 'boolean',\r
-        dataIndex: 'visible'\r
-\r
-        // optional configs\r
-        defaultValue: null, // leave unselected (false selected by default)\r
-        yesText: 'Yes',     // default\r
-        noText: 'No'        // default\r
-    }]\r
-});\r
- * </code></pre>\r
- */\r
-Ext.ux.grid.filter.BooleanFilter = Ext.extend(Ext.ux.grid.filter.Filter, {\r
-       /**\r
-        * @cfg {Boolean} defaultValue\r
-        * Set this to null if you do not want either option to be checked by default. Defaults to false.\r
-        */\r
-       defaultValue : false,\r
-       /**\r
-        * @cfg {String} yesText\r
-        * Defaults to 'Yes'.\r
-        */\r
-       yesText : 'Yes',\r
-       /**\r
-        * @cfg {String} noText\r
-        * Defaults to 'No'.\r
-        */\r
-       noText : 'No',\r
-\r
-    /**  \r
-     * @private\r
-     * Template method that is to initialize the filter and install required menu items.\r
-     */\r
-    init : function (config) {\r
-        var gId = Ext.id();\r
-               this.options = [\r
-                       new Ext.menu.CheckItem({text: this.yesText, group: gId, checked: this.defaultValue === true}),\r
-                       new Ext.menu.CheckItem({text: this.noText, group: gId, checked: this.defaultValue === false})];\r
-               \r
-               this.menu.add(this.options[0], this.options[1]);\r
-               \r
-               for(var i=0; i<this.options.length; i++){\r
-                       this.options[i].on('click', this.fireUpdate, this);\r
-                       this.options[i].on('checkchange', this.fireUpdate, this);\r
-               }\r
-       },\r
-       \r
-    /**\r
-     * @private\r
-     * Template method that is to get and return the value of the filter.\r
-     * @return {String} The value of this filter\r
-     */\r
-    getValue : function () {\r
-               return this.options[0].checked;\r
-       },\r
-\r
-    /**\r
-     * @private\r
-     * Template method that is to set the value of the filter.\r
-     * @param {Object} value The value to set the filter\r
-     */        \r
-       setValue : function (value) {\r
-               this.options[value ? 0 : 1].setChecked(true);\r
-       },\r
-\r
-    /**\r
-     * @private\r
-     * Template method that is to get and return serialized filter data for\r
-     * transmission to the server.\r
-     * @return {Object/Array} An object or collection of objects containing\r
-     * key value pairs representing the current configuration of the filter.\r
-     */\r
-    getSerialArgs : function () {\r
-               var args = {type: 'boolean', value: this.getValue()};\r
-               return args;\r
-       },\r
-       \r
-    /**\r
-     * Template method that is to validate the provided Ext.data.Record\r
-     * against the filters configuration.\r
-     * @param {Ext.data.Record} record The record to validate\r
-     * @return {Boolean} true if the record is valid within the bounds\r
-     * of the filter, false otherwise.\r
-     */\r
-    validateRecord : function (record) {\r
-               return record.get(this.dataIndex) == this.getValue();\r
-       }\r
+/** 
+ * @class Ext.ux.grid.filter.BooleanFilter
+ * @extends Ext.ux.grid.filter.Filter
+ * Boolean filters use unique radio group IDs (so you can have more than one!)
+ * <p><b><u>Example Usage:</u></b></p>
+ * <pre><code>    
+var filters = new Ext.ux.grid.GridFilters({
+    ...
+    filters: [{
+        // required configs
+        type: 'boolean',
+        dataIndex: 'visible'
+
+        // optional configs
+        defaultValue: null, // leave unselected (false selected by default)
+        yesText: 'Yes',     // default
+        noText: 'No'        // default
+    }]
+});
+ * </code></pre>
+ */
+Ext.ux.grid.filter.BooleanFilter = Ext.extend(Ext.ux.grid.filter.Filter, {
+       /**
+        * @cfg {Boolean} defaultValue
+        * Set this to null if you do not want either option to be checked by default. Defaults to false.
+        */
+       defaultValue : false,
+       /**
+        * @cfg {String} yesText
+        * Defaults to 'Yes'.
+        */
+       yesText : 'Yes',
+       /**
+        * @cfg {String} noText
+        * Defaults to 'No'.
+        */
+       noText : 'No',
+
+    /**  
+     * @private
+     * Template method that is to initialize the filter and install required menu items.
+     */
+    init : function (config) {
+        var gId = Ext.id();
+               this.options = [
+                       new Ext.menu.CheckItem({text: this.yesText, group: gId, checked: this.defaultValue === true}),
+                       new Ext.menu.CheckItem({text: this.noText, group: gId, checked: this.defaultValue === false})];
+               
+               this.menu.add(this.options[0], this.options[1]);
+               
+               for(var i=0; i<this.options.length; i++){
+                       this.options[i].on('click', this.fireUpdate, this);
+                       this.options[i].on('checkchange', this.fireUpdate, this);
+               }
+       },
+       
+    /**
+     * @private
+     * Template method that is to get and return the value of the filter.
+     * @return {String} The value of this filter
+     */
+    getValue : function () {
+               return this.options[0].checked;
+       },
+
+    /**
+     * @private
+     * Template method that is to set the value of the filter.
+     * @param {Object} value The value to set the filter
+     */        
+       setValue : function (value) {
+               this.options[value ? 0 : 1].setChecked(true);
+       },
+
+    /**
+     * @private
+     * Template method that is to get and return serialized filter data for
+     * transmission to the server.
+     * @return {Object/Array} An object or collection of objects containing
+     * key value pairs representing the current configuration of the filter.
+     */
+    getSerialArgs : function () {
+               var args = {type: 'boolean', value: this.getValue()};
+               return args;
+       },
+       
+    /**
+     * Template method that is to validate the provided Ext.data.Record
+     * against the filters configuration.
+     * @param {Ext.data.Record} record The record to validate
+     * @return {Boolean} true if the record is valid within the bounds
+     * of the filter, false otherwise.
+     */
+    validateRecord : function (record) {
+               return record.get(this.dataIndex) == this.getValue();
+       }
 });
\ No newline at end of file
index 96d4eb9..272dc6a 100644 (file)
  * licensing@extjs.com
  * http://www.extjs.com/license
  */
-/** \r
- * @class Ext.ux.grid.filter.DateFilter\r
- * @extends Ext.ux.grid.filter.Filter\r
- * Filter by a configurable Ext.menu.DateMenu\r
- * <p><b><u>Example Usage:</u></b></p>\r
- * <pre><code>    \r
-var filters = new Ext.ux.grid.GridFilters({\r
-    ...\r
-    filters: [{\r
-        // required configs\r
-        type: 'date',\r
-        dataIndex: 'dateAdded',\r
-        \r
-        // optional configs\r
-        dateFormat: 'm/d/Y',  // default\r
-        beforeText: 'Before', // default\r
-        afterText: 'After',   // default\r
-        onText: 'On',         // default\r
-        pickerOpts: {\r
-            // any DateMenu configs\r
-        },\r
-\r
-        active: true // default is false\r
-    }]\r
-});\r
- * </code></pre>\r
- */\r
-Ext.ux.grid.filter.DateFilter = Ext.extend(Ext.ux.grid.filter.Filter, {\r
-    /**\r
-     * @cfg {String} afterText\r
-     * Defaults to 'After'.\r
-     */\r
-    afterText : 'After',\r
-    /**\r
-     * @cfg {String} beforeText\r
-     * Defaults to 'Before'.\r
-     */\r
-    beforeText : 'Before',\r
-    /**\r
-     * @cfg {Object} compareMap\r
-     * Map for assigning the comparison values used in serialization.\r
-     */\r
-    compareMap : {\r
-        before: 'lt',\r
-        after:  'gt',\r
-        on:     'eq'\r
-    },\r
-    /**\r
-     * @cfg {String} dateFormat\r
-     * The date format to return when using getValue.\r
-     * Defaults to 'm/d/Y'.\r
-     */\r
-    dateFormat : 'm/d/Y',\r
-\r
-    /**\r
-     * @cfg {Date} maxDate\r
-     * Allowable date as passed to the Ext.DatePicker\r
-     * Defaults to undefined.\r
-     */\r
-    /**\r
-     * @cfg {Date} minDate\r
-     * Allowable date as passed to the Ext.DatePicker\r
-     * Defaults to undefined.\r
-     */\r
-    /**\r
-     * @cfg {Array} menuItems\r
-     * The items to be shown in this menu\r
-     * Defaults to:<pre>\r
-     * menuItems : ['before', 'after', '-', 'on'],\r
-     * </pre>\r
-     */\r
-    menuItems : ['before', 'after', '-', 'on'],\r
-\r
-    /**\r
-     * @cfg {Object} menuItemCfgs\r
-     * Default configuration options for each menu item\r
-     */\r
-    menuItemCfgs : {\r
-        selectOnFocus: true,\r
-        width: 125\r
-    },\r
-\r
-    /**\r
-     * @cfg {String} onText\r
-     * Defaults to 'On'.\r
-     */\r
-    onText : 'On',\r
-    \r
-    /**\r
-     * @cfg {Object} pickerOpts\r
-     * Configuration options for the date picker associated with each field.\r
-     */\r
-    pickerOpts : {},\r
-\r
-    /**  \r
-     * @private\r
-     * Template method that is to initialize the filter and install required menu items.\r
-     */\r
-    init : function (config) {\r
-        var menuCfg, i, len, item, cfg, Cls;\r
-\r
-        menuCfg = Ext.apply(this.pickerOpts, {\r
-            minDate: this.minDate, \r
-            maxDate: this.maxDate, \r
-            format:  this.dateFormat,\r
-            listeners: {\r
-                scope: this,\r
-                select: this.onMenuSelect\r
-            }\r
-        });\r
-\r
-        this.fields = {};\r
-        for (i = 0, len = this.menuItems.length; i < len; i++) {\r
-            item = this.menuItems[i];\r
-            if (item !== '-') {\r
-                cfg = {\r
-                    itemId: 'range-' + item,\r
-                    text: this[item + 'Text'],\r
-                    menu: new Ext.menu.DateMenu(\r
-                        Ext.apply(menuCfg, {\r
-                            itemId: item\r
-                        })\r
-                    ),\r
-                    listeners: {\r
-                        scope: this,\r
-                        checkchange: this.onCheckChange\r
-                    }\r
-                };\r
-                Cls = Ext.menu.CheckItem;\r
-                item = this.fields[item] = new Cls(cfg);\r
-            }\r
-            //this.add(item);\r
-            this.menu.add(item);\r
-        }\r
-    },\r
-\r
-    onCheckChange : function () {\r
-        this.setActive(this.isActivatable());\r
-        this.fireEvent('update', this);\r
-    },\r
-\r
-    /**  \r
-     * @private\r
-     * Handler method called when there is a keyup event on an input\r
-     * item of this menu.\r
-     */\r
-    onInputKeyUp : function (field, e) {\r
-        var k = e.getKey();\r
-        if (k == e.RETURN && field.isValid()) {\r
-            e.stopEvent();\r
-            this.menu.hide(true);\r
-            return;\r
-        }\r
-    },\r
-\r
-    /**\r
-     * Handler for when the menu for a field fires the 'select' event\r
-     * @param {Object} date\r
-     * @param {Object} menuItem\r
-     * @param {Object} value\r
-     * @param {Object} picker\r
-     */\r
-    onMenuSelect : function (menuItem, value, picker) {\r
-        var fields = this.fields,\r
-            field = this.fields[menuItem.itemId];\r
-        \r
-        field.setChecked(true);\r
-        \r
-        if (field == fields.on) {\r
-            fields.before.setChecked(false, true);\r
-            fields.after.setChecked(false, true);\r
-        } else {\r
-            fields.on.setChecked(false, true);\r
-            if (field == fields.after && fields.before.menu.picker.value < value) {\r
-                fields.before.setChecked(false, true);\r
-            } else if (field == fields.before && fields.after.menu.picker.value > value) {\r
-                fields.after.setChecked(false, true);\r
-            }\r
-        }\r
-        this.fireEvent('update', this);\r
-    },\r
-\r
-    /**\r
-     * @private\r
-     * Template method that is to get and return the value of the filter.\r
-     * @return {String} The value of this filter\r
-     */\r
-    getValue : function () {\r
-        var key, result = {};\r
-        for (key in this.fields) {\r
-            if (this.fields[key].checked) {\r
-                result[key] = this.fields[key].menu.picker.getValue();\r
-            }\r
-        }\r
-        return result;\r
-    },\r
-\r
-    /**\r
-     * @private\r
-     * Template method that is to set the value of the filter.\r
-     * @param {Object} value The value to set the filter\r
-     * @param {Boolean} preserve true to preserve the checked status\r
-     * of the other fields.  Defaults to false, unchecking the\r
-     * other fields\r
-     */        \r
-    setValue : function (value, preserve) {\r
-        var key;\r
-        for (key in this.fields) {\r
-            if(value[key]){\r
-                this.fields[key].menu.picker.setValue(value[key]);\r
-                this.fields[key].setChecked(true);\r
-            } else if (!preserve) {\r
-                this.fields[key].setChecked(false);\r
-            }\r
-        }\r
-        this.fireEvent('update', this);\r
-    },\r
-\r
-    /**\r
-     * @private\r
-     * Template method that is to return <tt>true</tt> if the filter\r
-     * has enough configuration information to be activated.\r
-     * @return {Boolean}\r
-     */\r
-    isActivatable : function () {\r
-        var key;\r
-        for (key in this.fields) {\r
-            if (this.fields[key].checked) {\r
-                return true;\r
-            }\r
-        }\r
-        return false;\r
-    },\r
-\r
-    /**\r
-     * @private\r
-     * Template method that is to get and return serialized filter data for\r
-     * transmission to the server.\r
-     * @return {Object/Array} An object or collection of objects containing\r
-     * key value pairs representing the current configuration of the filter.\r
-     */\r
-    getSerialArgs : function () {\r
-        var args = [];\r
-        for (var key in this.fields) {\r
-            if(this.fields[key].checked){\r
-                args.push({\r
-                    type: 'date',\r
-                    comparison: this.compareMap[key],\r
-                    value: this.getFieldValue(key).format(this.dateFormat)\r
-                });\r
-            }\r
-        }\r
-        return args;\r
-    },\r
-\r
-    /**\r
-     * Get and return the date menu picker value\r
-     * @param {String} item The field identifier ('before', 'after', 'on')\r
-     * @return {Date} Gets the current selected value of the date field\r
-     */\r
-    getFieldValue : function(item){\r
-        return this.fields[item].menu.picker.getValue();\r
-    },\r
-    \r
-    /**\r
-     * Gets the menu picker associated with the passed field\r
-     * @param {String} item The field identifier ('before', 'after', 'on')\r
-     * @return {Object} The menu picker\r
-     */\r
-    getPicker : function(item){\r
-        return this.fields[item].menu.picker;\r
-    },\r
-\r
-    /**\r
-     * Template method that is to validate the provided Ext.data.Record\r
-     * against the filters configuration.\r
-     * @param {Ext.data.Record} record The record to validate\r
-     * @return {Boolean} true if the record is valid within the bounds\r
-     * of the filter, false otherwise.\r
-     */\r
-    validateRecord : function (record) {\r
-        var key,\r
-            pickerValue,\r
-            val = record.get(this.dataIndex);\r
-            \r
-        if(!Ext.isDate(val)){\r
-            return false;\r
-        }\r
-        val = val.clearTime(true).getTime();\r
-        \r
-        for (key in this.fields) {\r
-            if (this.fields[key].checked) {\r
-                pickerValue = this.getFieldValue(key).clearTime(true).getTime();\r
-                if (key == 'before' && pickerValue <= val) {\r
-                    return false;\r
-                }\r
-                if (key == 'after' && pickerValue >= val) {\r
-                    return false;\r
-                }\r
-                if (key == 'on' && pickerValue != val) {\r
-                    return false;\r
-                }\r
-            }\r
-        }\r
-        return true;\r
-    }\r
+/** 
+ * @class Ext.ux.grid.filter.DateFilter
+ * @extends Ext.ux.grid.filter.Filter
+ * Filter by a configurable Ext.menu.DateMenu
+ * <p><b><u>Example Usage:</u></b></p>
+ * <pre><code>    
+var filters = new Ext.ux.grid.GridFilters({
+    ...
+    filters: [{
+        // required configs
+        type: 'date',
+        dataIndex: 'dateAdded',
+        
+        // optional configs
+        dateFormat: 'm/d/Y',  // default
+        beforeText: 'Before', // default
+        afterText: 'After',   // default
+        onText: 'On',         // default
+        pickerOpts: {
+            // any DateMenu configs
+        },
+
+        active: true // default is false
+    }]
+});
+ * </code></pre>
+ */
+Ext.ux.grid.filter.DateFilter = Ext.extend(Ext.ux.grid.filter.Filter, {
+    /**
+     * @cfg {String} afterText
+     * Defaults to 'After'.
+     */
+    afterText : 'After',
+    /**
+     * @cfg {String} beforeText
+     * Defaults to 'Before'.
+     */
+    beforeText : 'Before',
+    /**
+     * @cfg {Object} compareMap
+     * Map for assigning the comparison values used in serialization.
+     */
+    compareMap : {
+        before: 'lt',
+        after:  'gt',
+        on:     'eq'
+    },
+    /**
+     * @cfg {String} dateFormat
+     * The date format to return when using getValue.
+     * Defaults to 'm/d/Y'.
+     */
+    dateFormat : 'm/d/Y',
+
+    /**
+     * @cfg {Date} maxDate
+     * Allowable date as passed to the Ext.DatePicker
+     * Defaults to undefined.
+     */
+    /**
+     * @cfg {Date} minDate
+     * Allowable date as passed to the Ext.DatePicker
+     * Defaults to undefined.
+     */
+    /**
+     * @cfg {Array} menuItems
+     * The items to be shown in this menu
+     * Defaults to:<pre>
+     * menuItems : ['before', 'after', '-', 'on'],
+     * </pre>
+     */
+    menuItems : ['before', 'after', '-', 'on'],
+
+    /**
+     * @cfg {Object} menuItemCfgs
+     * Default configuration options for each menu item
+     */
+    menuItemCfgs : {
+        selectOnFocus: true,
+        width: 125
+    },
+
+    /**
+     * @cfg {String} onText
+     * Defaults to 'On'.
+     */
+    onText : 'On',
+    
+    /**
+     * @cfg {Object} pickerOpts
+     * Configuration options for the date picker associated with each field.
+     */
+    pickerOpts : {},
+
+    /**  
+     * @private
+     * Template method that is to initialize the filter and install required menu items.
+     */
+    init : function (config) {
+        var menuCfg, i, len, item, cfg, Cls;
+
+        menuCfg = Ext.apply(this.pickerOpts, {
+            minDate: this.minDate, 
+            maxDate: this.maxDate, 
+            format:  this.dateFormat,
+            listeners: {
+                scope: this,
+                select: this.onMenuSelect
+            }
+        });
+
+        this.fields = {};
+        for (i = 0, len = this.menuItems.length; i < len; i++) {
+            item = this.menuItems[i];
+            if (item !== '-') {
+                cfg = {
+                    itemId: 'range-' + item,
+                    text: this[item + 'Text'],
+                    menu: new Ext.menu.DateMenu(
+                        Ext.apply(menuCfg, {
+                            itemId: item
+                        })
+                    ),
+                    listeners: {
+                        scope: this,
+                        checkchange: this.onCheckChange
+                    }
+                };
+                Cls = Ext.menu.CheckItem;
+                item = this.fields[item] = new Cls(cfg);
+            }
+            //this.add(item);
+            this.menu.add(item);
+        }
+    },
+
+    onCheckChange : function () {
+        this.setActive(this.isActivatable());
+        this.fireEvent('update', this);
+    },
+
+    /**  
+     * @private
+     * Handler method called when there is a keyup event on an input
+     * item of this menu.
+     */
+    onInputKeyUp : function (field, e) {
+        var k = e.getKey();
+        if (k == e.RETURN && field.isValid()) {
+            e.stopEvent();
+            this.menu.hide(true);
+            return;
+        }
+    },
+
+    /**
+     * Handler for when the menu for a field fires the 'select' event
+     * @param {Object} date
+     * @param {Object} menuItem
+     * @param {Object} value
+     * @param {Object} picker
+     */
+    onMenuSelect : function (menuItem, value, picker) {
+        var fields = this.fields,
+            field = this.fields[menuItem.itemId];
+        
+        field.setChecked(true);
+        
+        if (field == fields.on) {
+            fields.before.setChecked(false, true);
+            fields.after.setChecked(false, true);
+        } else {
+            fields.on.setChecked(false, true);
+            if (field == fields.after && fields.before.menu.picker.value < value) {
+                fields.before.setChecked(false, true);
+            } else if (field == fields.before && fields.after.menu.picker.value > value) {
+                fields.after.setChecked(false, true);
+            }
+        }
+        this.fireEvent('update', this);
+    },
+
+    /**
+     * @private
+     * Template method that is to get and return the value of the filter.
+     * @return {String} The value of this filter
+     */
+    getValue : function () {
+        var key, result = {};
+        for (key in this.fields) {
+            if (this.fields[key].checked) {
+                result[key] = this.fields[key].menu.picker.getValue();
+            }
+        }
+        return result;
+    },
+
+    /**
+     * @private
+     * Template method that is to set the value of the filter.
+     * @param {Object} value The value to set the filter
+     * @param {Boolean} preserve true to preserve the checked status
+     * of the other fields.  Defaults to false, unchecking the
+     * other fields
+     */        
+    setValue : function (value, preserve) {
+        var key;
+        for (key in this.fields) {
+            if(value[key]){
+                this.fields[key].menu.picker.setValue(value[key]);
+                this.fields[key].setChecked(true);
+            } else if (!preserve) {
+                this.fields[key].setChecked(false);
+            }
+        }
+        this.fireEvent('update', this);
+    },
+
+    /**
+     * @private
+     * Template method that is to return <tt>true</tt> if the filter
+     * has enough configuration information to be activated.
+     * @return {Boolean}
+     */
+    isActivatable : function () {
+        var key;
+        for (key in this.fields) {
+            if (this.fields[key].checked) {
+                return true;
+            }
+        }
+        return false;
+    },
+
+    /**
+     * @private
+     * Template method that is to get and return serialized filter data for
+     * transmission to the server.
+     * @return {Object/Array} An object or collection of objects containing
+     * key value pairs representing the current configuration of the filter.
+     */
+    getSerialArgs : function () {
+        var args = [];
+        for (var key in this.fields) {
+            if(this.fields[key].checked){
+                args.push({
+                    type: 'date',
+                    comparison: this.compareMap[key],
+                    value: this.getFieldValue(key).format(this.dateFormat)
+                });
+            }
+        }
+        return args;
+    },
+
+    /**
+     * Get and return the date menu picker value
+     * @param {String} item The field identifier ('before', 'after', 'on')
+     * @return {Date} Gets the current selected value of the date field
+     */
+    getFieldValue : function(item){
+        return this.fields[item].menu.picker.getValue();
+    },
+    
+    /**
+     * Gets the menu picker associated with the passed field
+     * @param {String} item The field identifier ('before', 'after', 'on')
+     * @return {Object} The menu picker
+     */
+    getPicker : function(item){
+        return this.fields[item].menu.picker;
+    },
+
+    /**
+     * Template method that is to validate the provided Ext.data.Record
+     * against the filters configuration.
+     * @param {Ext.data.Record} record The record to validate
+     * @return {Boolean} true if the record is valid within the bounds
+     * of the filter, false otherwise.
+     */
+    validateRecord : function (record) {
+        var key,
+            pickerValue,
+            val = record.get(this.dataIndex);
+            
+        if(!Ext.isDate(val)){
+            return false;
+        }
+        val = val.clearTime(true).getTime();
+        
+        for (key in this.fields) {
+            if (this.fields[key].checked) {
+                pickerValue = this.getFieldValue(key).clearTime(true).getTime();
+                if (key == 'before' && pickerValue <= val) {
+                    return false;
+                }
+                if (key == 'after' && pickerValue >= val) {
+                    return false;
+                }
+                if (key == 'on' && pickerValue != val) {
+                    return false;
+                }
+            }
+        }
+        return true;
+    }
 });
\ No newline at end of file