atLoad method now called internally by each widget, no need to call externally. Tweak...
[infodrom/rico3] / ricoClient / js / rico_min.js
index d6f785e..47cdac0 100644 (file)
@@ -185,21 +185,22 @@ if(e){d.id=e
 }b.appendChild(d);
 return d
 };
-Rico.positionCtlOverIcon=function(g,k){k=this.$(k);
-var c=this.cumulativeOffset(k);
-var j=this.docScrollTop();
+Rico.positionCtlOverIcon=function(f,j){j=this.$(j);
+var b=this.cumulativeOffset(j);
+var i=this.docScrollTop();
 var a=this.windowHeight();
-if(g.style.display=="none"){g.style.display="block"
-}var h=2;
-var b=this.nan2zero(this.getStyle(k,"paddingLeft"));
-g.style.left=(c.left+b+h)+"px";
-var i=c.top+h;
-var f=g.offsetHeight;
-var e=k.offsetHeight;
+if(f.style.display=="none"){f.style.display="block"
+}var g=2;
+if(Rico.direction(j)=="rtl"){f.style.left=(b.left+j.offsetWidth-f.offsetWidth)+"px"
+}else{var d=this.nan2zero(this.getStyle(j,"marginLeft"));
+f.style.left=(b.left+d+g)+"px"
+}var h=b.top+g;
+var e=f.offsetHeight;
+var c=j.offsetHeight;
 var d=10;
-if(i+e+f+d<a+j){i+=e
-}else{i=Math.max(i-f,j)
-}g.style.top=i+"px"
+if(h+c+e+d<a+i){h+=c
+}else{h=Math.max(h-e,i)
+}f.style.top=h+"px"
 };
 Rico.createFormField=function(d,b,f,g,a){var e;
 if(typeof a!="string"){a=g
@@ -544,7 +545,7 @@ if(Rico.theme.dialogContent){Rico.addClass(this.contentDiv,Rico.theme.dialogCont
 if(a.height){this.contentDiv.style.height=a.height
 }if(a.width){this.contentDiv.style.width=a.width
 }if(a.overflow){this.contentDiv.style.overflow=a.overflow
-}Rico.addClass(this.content,"ricoWindow");
+}Rico.addClass(this.container,"ricoWindow");
 if(Rico.theme.dialog){Rico.addClass(this.container,Rico.theme.dialog)
 }this.content=this.contentDiv
 },setTitle:function(a){this.titleContent.innerHTML=a
@@ -1062,17 +1063,19 @@ if(typeof a.onreadystatechange=="function"){a.onreadystatechange()
 };
 Rico.CalendarControl=function(b,a){this.initialize(b,a)
 };
-Rico.CalendarControl.prototype={initialize:function(c,b){this.id=c;
-var a=new Date();
+Rico.CalendarControl.prototype={initialize:function(d,c){this.id=d;
+var b=new Date();
 Rico.extend(this,new Rico.Popup());
-Rico.extend(this.options,{ignoreClicks:true,startAt:0,showWeekNumber:0,showToday:1,dateFmt:"ISO8601",minDate:new Date(a.getFullYear()-50,0,1),maxDate:new Date(a.getFullYear()+50,11,31)});
-Rico.extend(this.options,b||{});
+Rico.extend(this.options,{ignoreClicks:true,startAt:0,showWeekNumber:0,showToday:1,dateFmt:"ISO8601",minDate:new Date(b.getFullYear()-50,0,1),maxDate:new Date(b.getFullYear()+50,11,31)});
+Rico.extend(this.options,c||{});
 this.close=this.closePopup;
 this.bPageLoaded=false;
-this.img=[];
 this.Holidays={};
 this.re=/^\s*(\w+)(\W)(\w+)(\W)(\w+)/i;
-this.setDateFmt(this.options.dateFmt)
+this.setDateFmt(this.options.dateFmt);
+var a=this;
+Rico.onLoad(function(){a.atLoad()
+})
 },setDateFmt:function(a){this.dateFmt=(a=="rico")?Rico.dateFmt:a;
 Rico.log(this.id+" date format set to "+this.dateFmt);
 this.dateParts={};
@@ -1088,21 +1091,30 @@ if(d){this.setDiv(d)
 this.container.id=this.id
 }Rico.addClass(this.content,Rico.theme.calendar||"ricoCalContainer");
 this.direction=Rico.direction(this.container);
-var b,k,g,f,h,p,m,q,e;
+var b,h,g,f,o,l,p,e;
 this.colStart=this.options.showWeekNumber?1:0;
-var l=7+this.colStart;
+var k=7+this.colStart;
 this.maintab=document.createElement("table");
 this.maintab.cellSpacing=2;
 this.maintab.cellPadding=0;
 this.maintab.border=0;
 this.maintab.style.borderCollapse="separate";
 this.maintab.className=Rico.theme.calendarTable||"ricoCalTab";
-this.tbody=Rico.getTBody(this.maintab);
-this.tbody.className="ricoCalBody";
 this.thead=this.maintab.createTHead();
 b=this.thead.insertRow(-1);
 this.heading=b.insertCell(-1);
-this.heading.colSpan=l;
+this.heading.colSpan=k;
+this.heading.className="RicoCalHeading";
+if(Rico.theme.calendarHeading){Rico.addClass(this.heading,Rico.theme.calendarHeading)
+}if(this.options.showToday){this.tfoot=this.maintab.createTFoot();
+this.tfoot.className="ricoCalFoot";
+b=this.tfoot.insertRow(-1);
+this.todayCell=b.insertCell(-1);
+this.todayCell.colSpan=k;
+this.todayCell.className=Rico.theme.calendarFooter||"ricoCalFoot";
+Rico.eventBind(this.todayCell,"click",Rico.eventHandle(this,"selectNow"),false)
+}this.tbody=Rico.getTBody(this.maintab);
+this.tbody.className="ricoCalBody";
 this.content.style.display="block";
 if(this.position=="absolute"){this.content.style.width="auto";
 this.maintab.style.width="auto"
@@ -1111,42 +1123,33 @@ this.heading.style.position="static";
 this.content.style.padding="0px";
 this.content.style.width="15em";
 this.maintab.style.width="100%"
-}this.heading.className="RicoCalHeading";
-if(Rico.theme.calendarHeading){Rico.addClass(this.heading,Rico.theme.calendarHeading)
-}this.navtab=this.heading.appendChild(document.createElement("table"));
-this.navrow=this.navtab.insertRow(-1);
-this._createTitleSection("Month");
-this.navrow.insertCell(-1).innerHTML="&nbsp;&nbsp;";
-this._createTitleSection("Year");
-new Rico.HoverSet(this.heading.getElementsByTagName("a"));
-if(this.position=="absolute"){this.heading.appendChild(Rico.closeButton(Rico.eventHandle(this,"close")))
 }this.styles=[];
 for(g=0;
 g<7;
 g++){b=this.tbody.insertRow(-1);
 b.className=g==0?"ricoCalDayNames":"row"+g;
-if(this.options.showWeekNumber){k=b.insertCell(-1);
-k.className="ricoCalWeekNum";
-if(g==0){k.innerHTML=Rico.getPhraseById("calWeekHdg")
+if(this.options.showWeekNumber){h=b.insertCell(-1);
+h.className="ricoCalWeekNum";
+if(g==0){h.innerHTML=Rico.getPhraseById("calWeekHdg")
 }}for(f=0;
 f<7;
-f++){k=b.insertCell(-1);
-if(g==0){p=(f+this.options.startAt)%7;
-k.innerHTML=Rico.dayAbbr(p);
-this.styles[f]="ricoCal"+p
-}else{k.className=this.styles[f];
-if(Rico.theme.calendarDay){Rico.addClass(k,Rico.theme.calendarDay)
-}}}}if(this.options.showToday){this.tfoot=this.maintab.createTFoot();
-this.tfoot.className="ricoCalFoot";
-b=this.tfoot.insertRow(-1);
-this.todayCell=b.insertCell(-1);
-this.todayCell.colSpan=l;
-this.todayCell.className=Rico.theme.calendarFooter||"ricoCalFoot";
-Rico.eventBind(this.todayCell,"click",Rico.eventHandle(this,"selectNow"),false)
-}this.content.appendChild(this.maintab);
+f++){h=b.insertCell(-1);
+if(g==0){o=(f+this.options.startAt)%7;
+h.innerHTML=Rico.dayAbbr(o);
+this.styles[f]="ricoCal"+o
+}else{h.className=this.styles[f];
+if(Rico.theme.calendarDay){Rico.addClass(h,Rico.theme.calendarDay)
+}}}}this.content.appendChild(this.maintab);
 new Rico.HoverSet(this.tbody.getElementsByTagName("td"),{hoverNodes:function(a){return a.innerHTML.match(/^\d+$/)?[a]:[]
 }});
-this.monthPopup=new Rico.Popup(document.createElement("div"),{shim:false,zIndex:10});
+this.navtab=this.heading.appendChild(document.createElement("table"));
+this.navrow=this.navtab.insertRow(-1);
+this._createTitleSection("Month");
+this.navrow.insertCell(-1).innerHTML="&nbsp;&nbsp;";
+this._createTitleSection("Year");
+new Rico.HoverSet(this.heading.getElementsByTagName("a"));
+if(this.position=="absolute"){this.heading.appendChild(Rico.closeButton(Rico.eventHandle(this,"close")))
+}this.monthPopup=new Rico.Popup(document.createElement("div"),{shim:false,zIndex:10});
 this.monthPopup.content.className="ricoCalMonthPrompt";
 e=document.createElement("table");
 e.className="ricoCalMenu";
@@ -1161,13 +1164,13 @@ g<4;
 g++){b=e.insertRow(-1);
 for(f=0;
 f<3;
-f++){k=b.insertCell(-1);
-m=document.createElement("a");
-m.innerHTML=Rico.monthAbbr(g*3+f);
-m.name=g*3+f;
-if(Rico.theme.calendarDay){Rico.addClass(m,Rico.theme.calendarDay)
-}k.appendChild(m);
-Rico.eventBind(m,"click",Rico.eventHandle(this,"selectMonth"),false)
+f++){h=b.insertCell(-1);
+l=document.createElement("a");
+l.innerHTML=Rico.monthAbbr(g*3+f);
+l.name=g*3+f;
+if(Rico.theme.calendarDay){Rico.addClass(l,Rico.theme.calendarDay)
+}h.appendChild(l);
+Rico.eventBind(l,"click",Rico.eventHandle(this,"selectMonth"),false)
 }}new Rico.HoverSet(e.getElementsByTagName("a"));
 this.monthPopup.content.appendChild(e);
 this.container.appendChild(this.monthPopup.container);
@@ -1175,34 +1178,34 @@ this.monthPopup.closePopup();
 this.yearPopup=new Rico.Popup(document.createElement("div"),{shim:false,zIndex:10});
 this.yearPopup.content.className="ricoCalYearPrompt";
 if(Rico.theme.calendarPopdown){Rico.addClass(this.yearPopup.content,Rico.theme.calendarPopdown)
-}var o=document.createElement("p");
-o.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
-var n=document.createElement("p");
-this.yearInput=n.appendChild(document.createElement("input"));
+}var n=document.createElement("p");
+n.innerHTML=Rico.getPhraseById("calYearRange",this.options.minDate.getFullYear(),this.options.maxDate.getFullYear());
+var m=document.createElement("p");
+this.yearInput=m.appendChild(document.createElement("input"));
 this.yearInput.maxlength=4;
 this.yearInput.size=4;
 Rico.eventBind(this.yearInput,"keyup",Rico.eventHandle(this,"yearKey"),false);
-m=Rico.floatButton("Checkmark",Rico.eventHandle(this,"processPopUpYear"));
-n.appendChild(m);
-m=Rico.floatButton("Cancel",Rico.eventHandle(this,"popDownYear"));
-n.appendChild(m);
-this.yearPopup.content.appendChild(o);
+l=Rico.floatButton("Checkmark",Rico.eventHandle(this,"processPopUpYear"));
+m.appendChild(l);
+l=Rico.floatButton("Cancel",Rico.eventHandle(this,"popDownYear"));
+m.appendChild(l);
 this.yearPopup.content.appendChild(n);
+this.yearPopup.content.appendChild(m);
 this.container.appendChild(this.yearPopup.container);
 this.yearPopup.closePopup();
-m=this.content.getElementsByTagName("a");
+l=this.content.getElementsByTagName("a");
 for(g=0;
-g<m.length;
-g++){m[g].href="javascript:void(0)"
+g<l.length;
+g++){l[g].href="javascript:void(0)"
 }Rico.eventBind(this.tbody,"click",Rico.eventHandle(this,"saveAndClose"));
-this.close();
 this.bPageLoaded=true
 },_createTitleSection:function(e){var d=["left","right"];
 if(this.direction=="rtl"){d.reverse()
 }var f=this.navrow.insertCell(-1);
 var b=f.appendChild(document.createElement("a"));
 b.className="Rico_"+d[0]+"Arrow";
-b.appendChild(this.createNavArrow("dec"+e,d[0]));
+b.appendChild(this._createNavArrow(d[0]));
+Rico.eventBind(b,"click",Rico.eventHandle(this,"dec"+e),false);
 f=this.navrow.insertCell(-1);
 b=f.appendChild(document.createElement("a"));
 Rico.eventBind(b,"click",Rico.eventHandle(this,"popUp"+e),false);
@@ -1210,7 +1213,12 @@ this["title"+e]=b;
 f=this.navrow.insertCell(-1);
 b=f.appendChild(document.createElement("a"));
 b.className="Rico_"+d[1]+"Arrow";
-b.appendChild(this.createNavArrow("inc"+e,d[1]))
+b.appendChild(this._createNavArrow(d[1]));
+Rico.eventBind(b,"click",Rico.eventHandle(this,"inc"+e),false)
+},_createNavArrow:function(b){var a=document.createElement("span");
+a.className=Rico.theme[b+"Arrow"]||"rico-icon Rico_"+b+"Arrow";
+a.style.display="inline-block";
+return a
 },selectNow:function(){var a=new Date();
 this.dateNow=a.getDate();
 this.monthNow=a.getMonth();
@@ -1218,11 +1226,6 @@ this.yearNow=a.getFullYear();
 this.monthSelected=this.monthNow;
 this.yearSelected=this.yearNow;
 this.constructCalendar()
-},createNavArrow:function(a,c){var b=document.createElement("span");
-b.className=Rico.theme[c+"Arrow"]||"rico-icon Rico_"+c+"Arrow";
-b.style.display="inline-block";
-Rico.eventBind(b,"click",Rico.eventHandle(this,a),false);
-return b
 },isValidMonth:function(a,b){if(a<this.options.minDate.getFullYear()){return false
 }if(a==this.options.minDate.getFullYear()&&b<this.options.minDate.getMonth()){return false
 }if(a>this.options.maxDate.getFullYear()){return false
@@ -1390,19 +1393,22 @@ this.openPopup()
 }};
 Rico.ColorPicker=function(b,a){this.initialize(b,a)
 };
-Rico.ColorPicker.prototype={initialize:function(h,c){this.id=h;
+Rico.ColorPicker.prototype={initialize:function(i,d){this.id=i;
 this.currentValue="#FFFFFF";
 Rico.extend(this,new Rico.Popup());
 Rico.extend(this.options,{showColorCode:false,cellsPerRow:18,palette:[]});
-var f=["00","33","66","99","CC","FF"];
-for(var e=0;
-e<f.length;
-e++){for(var d=0;
-d<f.length;
-d++){for(var a=0;
-a<f.length;
-a++){this.options.palette.push(f[d]+f[e]+f[a])
-}}}Rico.extend(this.options,c||{})
+var h=["00","33","66","99","CC","FF"];
+for(var f=0;
+f<h.length;
+f++){for(var e=0;
+e<h.length;
+e++){for(var a=0;
+a<h.length;
+a++){this.options.palette.push(h[e]+h[f]+h[a])
+}}}Rico.extend(this.options,d||{});
+var c=this;
+Rico.onLoad(function(){c.atLoad()
+})
 },atLoad:function(){this.createContainer();
 this.content.className="ricoColorPicker";
 var c=this.options.cellsPerRow;
@@ -1685,10 +1691,13 @@ c.style.top=""
 }}};
 Rico.KeywordSearch=function(b,a){this.initialize(b,a)
 };
-Rico.KeywordSearch.prototype={initialize:function(b,a){this.id=b;
-Rico.extend(this,new Rico.Window(Rico.getPhraseById("keywordTitle"),a));
+Rico.KeywordSearch.prototype={initialize:function(c,b){this.id=c;
+Rico.extend(this,new Rico.Window(Rico.getPhraseById("keywordTitle"),b));
 Rico.addClass(this.content,"ricoKeywordSearch");
-Rico.extend(this.options,{listLength:10,maxSuggest:20,width:"12em"})
+Rico.extend(this.options,{listLength:10,maxSuggest:20,width:"12em"});
+var a=this;
+Rico.onLoad(function(){a.atLoad()
+})
 },atLoad:function(){this.searchField=Rico.createFormField(this.contentDiv,"input","text",this.id+"_search");
 this.searchField.style.display="block";
 this.searchField.style.width=this.options.width;
@@ -1754,13 +1763,16 @@ this.returnValue(a.value,a.innerHTML)
 }};
 Rico.TreeControl=function(c,b,a){this.initialize(c,b,a)
 };
-Rico.TreeControl.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Popup());
+Rico.TreeControl.prototype={initialize:function(d,c,b){Rico.extend(this,new Rico.Popup());
 Rico.extend(this.options,{ignoreClicks:true,nodeIdDisplay:"none",showCheckBox:false,showFolders:false,showPlusMinus:true,showLines:true,defaultAction:Rico.eventHandle(this,"nodeClick"),height:"300px",width:"300px",leafIcon:"rico-icon rico-doc"});
-Rico.extend(this.options,a||{});
-this.id=c;
-this.dataSource=b;
+Rico.extend(this.options,b||{});
+this.id=d;
+this.dataSource=c;
 this.close=this.closePopup;
-this.hoverSet=new Rico.HoverSet([])
+this.hoverSet=new Rico.HoverSet([]);
+var a=this;
+Rico.onLoad(function(){a.atLoad()
+})
 },atLoad:function(){this.treeDiv=document.createElement("div");
 this.treeDiv.id=this.id;
 this.treeDiv.className="ricoTree";
@@ -2687,7 +2699,7 @@ this.foundRowCount=false;
 this.totalRows=0;
 this.rowcntContent="";
 this.rcvdOffset=-1;
-this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptStyle:false};
+this.options={fixedHdrRows:0,canFilter:true,isEncoded:true,acceptStyle:false,canRefresh:false};
 Rico.extend(this.options,a||{});
 if(b){this.loadRowsFromTable(b,this.options.fixedHdrRows);
 b.parentNode.removeChild(b)
@@ -3186,7 +3198,7 @@ e.className="ricoLG_mFilter_content";
 var o=d.mFilter.appendChild(document.createElement("div"));
 o.className="ricoLG_mFilter_button";
 d.mFilterButton=o.appendChild(document.createElement("button"));
-d.mFilterButton.innerHTML=Rico.getPhraseById("ok");
+d.mFilterButton.innerHTML=Rico.getPhraseById("apply");
 var j=Rico.isWebKit?"mousedown":"click";
 Rico.eventBind(d.filterField,j,Rico.eventHandle(d,"mFilterSelectClick"));
 Rico.eventBind(d.mFilterButton,"click",Rico.eventHandle(d,"mFilterFinish"));
@@ -4224,9 +4236,9 @@ if(d.isText){this.filtermenu.addMenuItemId("gridmenuContains",function(){o.openK
 },true)
 }}}if(o.filterCount()>0){this.filtermenu.addMenuItemId("gridmenuRemoveAll",function(){o.clearFilters()
 },true)
-}this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
+}if(f.options.canRefresh){this.filtermenu.addMenuItemId("gridmenuRefresh",function(){o.filterHandler()
 },true)
-}this.exportmenu.clearMenu();
+}}this.exportmenu.clearMenu();
 if(n>0){this.addSubMenuItem(Rico.getPhraseById("gridmenuExport"),this.exportmenu,false);
 if(f.printVisibleSQL&&typeof(f.dataSource)=="string"){this.exportmenu.addMenuItemId("gridmenuExportVis2Web",function(){f.printVisibleSQL("html")
 });
@@ -4259,9 +4271,9 @@ if(k.length>1){this.hideshowmenu.addMenuItemId("gridmenuShowAll",function(){o.sh
 }};
 if(typeof Rico=="undefined"){throw ("LiveGridAjax requires the Rico JavaScript framework")
 }if(!Rico.Buffer){Rico.Buffer={}
-}Rico.Buffer.AjaxXML=function(c,b,a){this.initialize(c,b,a)
+}Rico.Buffer.AjaxLoadOnce=function(c,b,a){this.initialize(c,b,a)
 };
-Rico.Buffer.AjaxXML.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Buffer.Base());
+Rico.Buffer.AjaxLoadOnce.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Buffer.Base());
 Rico.extend(this,Rico.Buffer.AjaxXMLMethods);
 this.dataSource=c;
 this.options.bufferTimeout=20000;
@@ -4449,12 +4461,13 @@ this.liveGrid.refreshContents(e)
 }};
 Rico.Buffer.AjaxSQL=function(c,b,a){this.initialize(c,b,a)
 };
-Rico.Buffer.AjaxSQL.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Buffer.AjaxXML());
+Rico.Buffer.AjaxSQL.prototype={initialize:function(c,b,a){Rico.extend(this,new Rico.Buffer.AjaxLoadOnce());
 Rico.extend(this,Rico.Buffer.AjaxSQLMethods);
 this.dataSource=c;
 this.options.canFilter=true;
 this.options.largeBufferSize=7;
 this.options.nearLimitFactor=1;
+this.options.canRefresh=true;
 Rico.extend(this.options,b||{});
 Rico.extend(this.ajaxOptions,a||{})
 }};
@@ -4614,7 +4627,6 @@ this.delText=Rico.getPhraseById("deleteRecord",this.options.RecordName);
 this.addText=Rico.getPhraseById("addRecord",this.options.RecordName);
 this.buttonHover=new Rico.HoverSet();
 this.dateRegExp=/^\s*(\w+)(\W)(\w+)(\W)(\w+)/i;
-Rico.EditControls.atLoad();
 this.createKeyArray();
 this.createEditDiv();
 this.saveMsg=Rico.$(b.tableId+"_savemsg");
@@ -4639,7 +4651,7 @@ this.createForm(this.formPopup.contentDiv)
 this.responseDialog=this.grid.createDiv("editResponse",document.body);
 this.responseDialog.style.display="none";
 var b=document.createElement("button");
-b.appendChild(document.createTextNode("OK"));
+b.appendChild(document.createTextNode(Rico.getPhraseById("ok")));
 Rico.eventBind(b,"click",Rico.eventHandle(this,"ackResponse"));
 this.responseDialog.appendChild(b);
 this.responseDiv=this.grid.createDiv("editResponseText",this.responseDialog);
@@ -5234,11 +5246,7 @@ b.returnValue=function(d,e){a.setValue(b,d,e)
 };
 Rico.log("Rico.EditControls.register:"+b.id)
 },setZ:function(a){this.zIndex=Math.max(this.zIndex,a+10)
-},atLoad:function(){for(var b in this.widgetList){var a=this.widgetList[b].widget;
-if(a.atLoad&&!a.atLoadComplete){Rico.log("Rico.EditControls.atLoad: "+b);
-a.atLoad();
-a.atLoadComplete=true
-}}},applyTo:function(e,f){var c=this.widgetList[e.format.SelectCtl];
+},applyTo:function(e,f){var c=this.widgetList[e.format.SelectCtl];
 if(!c){return
 }Rico.log("Rico.EditControls.applyTo: "+e.displayName+" : "+e.format.SelectCtl);
 var a,d=document.createElement("span");
@@ -5316,7 +5324,7 @@ Rico.addPhraseId("filterNot","not: $1");
 Rico.addPhraseId("requestError","The request for data returned an error:\n$1");
 Rico.addPhraseId("keywordPrompt","Enter keyword to search for (use * as a wildcard):");
 Rico.addPhraseId("keywordTitle","Keyword Search");
-Rico.addPhraseId("ok","OK");
+Rico.addPhraseId("apply","Apply");
 Rico.addPhraseId("gridmenuSortBy","Sort by: $1");
 Rico.addPhraseId("gridmenuSortAsc","Ascending");
 Rico.addPhraseId("gridmenuSortDesc","Descending");
@@ -5353,6 +5361,7 @@ Rico.addPhraseId("exportInProgress","Export in progress...");
 Rico.addPhraseId("disableBlocker","You need to disable your browser's pop-up blocker before exporting.");
 Rico.addPhraseId("showFilterRow","Show filter row");
 Rico.addPhraseId("hideFilterRow","Hide filter row");
+Rico.addPhraseId("ok","OK");
 Rico.addPhraseId("selectNone","(none)");
 Rico.addPhraseId("selectNewVal","(new value)");
 Rico.addPhraseId("record","record");