13 lines
28 KiB
JavaScript
13 lines
28 KiB
JavaScript
/*!
|
|
* jQuery appendGrid v1.5.1
|
|
* https://appendgrid.apphb.com/
|
|
*
|
|
* Copyright 2014 Albert L.
|
|
* Dual licensed under the LGPL (http://www.gnu.org/licenses/lgpl.html)
|
|
* and MIT (http://www.opensource.org/licenses/mit-license.php) licenses.
|
|
*
|
|
* Depends:
|
|
* jQuery v1.9.1+
|
|
* jquery UI v1.10.2+
|
|
*/
|
|
(function(g){var s={caption:null,captionTooltip:null,initRows:3,maxRowsAllowed:0,initData:null,columns:null,i18n:null,idPrefix:null,rowDragging:false,hideButtons:null,hideRowNumColumn:false,rowButtonsInFront:false,rowCountName:"_RowCount",buttonClasses:null,sectionClasses:null,customGridButtons:null,customRowButtons:null,customFooterButtons:null,useSubPanel:false,maintainScroll:false};var D={nameFormatter:null,dataLoaded:null,rowDataLoaded:null,afterRowAppended:null,afterRowInserted:null,afterRowSwapped:null,beforeRowRemove:null,afterRowRemoved:null,afterRowDragged:null,subPanelBuilder:null,subPanelGetter:null,maxNumRowsReached:null};var y={type:"text",name:null,value:null,display:null,displayCss:null,displayTooltip:null,headerSpan:1,cellCss:null,ctrlAttr:null,ctrlProp:null,ctrlCss:null,ctrlClass:null,ctrlOptions:null,uiOption:null,uiTooltip:null,resizable:false,invisible:false,emptyCriteria:null,customBuilder:null,customGetter:null,customSetter:null,onClick:null,onChange:null};var t={noColumnInfo:"Cannot initial grid without column information!",elemNotTable:"Cannot initial grid on element other than TABLE!",notInit:"`appendGrid` does not initialized",getValueMultiGrid:"Cannot get values on multiple grid",notSupportMethod:"Method is not supported by `appendGrid`: "};var w={append:"Append Row",removeLast:"Remove Last Row",insert:"Insert Row Above",remove:"Remove Current Row",moveUp:"Move Up",moveDown:"Move Down",rowDrag:"Sort Row",rowEmpty:"This Grid Is Empty"};var l={append:null,removeLast:null,insert:null,remove:null,moveUp:null,moveDown:null,rowDrag:null};var n={caption:null,header:null,body:null,subPanel:null,footer:null};var f={append:false,removeLast:false,insert:false,remove:false,moveUp:false,moveDown:false};var k={init:function(H){var V=this;if(V.length>0){if(!g.isArray(H.columns)||H.columns.length==0){alert(t.noColumnInfo);return V}var Q=V[0],I,M,U,S,E;if(o(Q.tagName)||Q.tagName!="TABLE"){alert(t.elemNotTable);return V}var T=g.extend({},s,D,H);g.extend(T,{_uniqueIndex:0,_rowOrder:[],_isDataLoaded:false,_visibleCount:0,_finalColSpan:0,_hideLastColumn:false});if(g.isPlainObject(H.i18n)){T._i18n=g.extend({},w,H.i18n)}else{T._i18n=g.extend({},w)}if(g.isPlainObject(H.buttonClasses)){T._buttonClasses=g.extend({},l,H.buttonClasses)}else{T._buttonClasses=g.extend({},l)}if(g.isPlainObject(H.sectionClasses)){T._sectionClasses=g.extend({},n,H.sectionClasses)}else{T._sectionClasses=g.extend({},n)}if(g.isPlainObject(H.hideButtons)){T.hideButtons=g.extend({},f,H.hideButtons)}else{T.hideButtons=g.extend({},f)}if(o(T.idPrefix)){if(o(Q.id)||Q.id==""){T.idPrefix="ag"+new Date().getTime()}else{T.idPrefix=Q.id}}if(!g.isPlainObject(T.customGridButtons)){T.customGridButtons={}}if(T.useSubPanel&&T.rowDragging){T.rowDragging=false}I=document.createElement("thead");M=document.createElement("tbody");U=document.createElement("tfoot");g(Q).empty().addClass("appendGrid ui-widget").append(I,M,U);var F,P;I.appendChild(S=document.createElement("tr"));if(T._sectionClasses.header){S.className=T._sectionClasses.header}if(!T.hideRowNumColumn){S.appendChild(F=document.createElement("td"));F.textContent="Lp.";F.className="lp";F.id=T.idPrefix+"_lp"}var J=0;for(var K=0;K<T.columns.length;K++){var O=g.extend({},y,T.columns[K]);T.columns[K]=O;if(T.columns[K].type!="hidden"){if(!T.columns[K].invisible){T._visibleCount++}if(J==0){var G="";if(T.columns[K].invisible){G+=" invisible"}if(T.columns[K].resizable){G+=" resizable"}S.appendChild(E=document.createElement("td"));E.id=T.idPrefix+"_"+T.columns[K].name+"_td_head";E.className=G;if(T.columns[K].displayCss){g(E).css(T.columns[K].displayCss)}if(T.columns[K].headerSpan>1){g(E).attr("colSpan",T.columns[K].headerSpan);J=T.columns[K].headerSpan-1}if(g.isPlainObject(T.columns[K].displayTooltip)){g(E).tooltip(T.columns[K].displayTooltip)}else{if(!o(T.columns[K].displayTooltip)){g(E).attr("title",T.columns[K].displayTooltip).tooltip()}}if(g.isFunction(T.columns[K].display)){T.columns[K].display(E)}else{if(!o(T.columns[K].display)){g(E).text(T.columns[K].display)}}}else{J--}}}if(!o(jQuery.ui.resizable)){g("td.resizable",I).resizable({handles:"e"})}if(T.hideButtons.insert&&T.hideButtons.remove&&T.hideButtons.moveUp&&T.hideButtons.moveDown&&(!g.isArray(T.customRowButtons)||T.customRowButtons.length==0)){T._hideLastColumn=true}T._finalColSpan=T._visibleCount;if(!T.hideRowNumColumn){T._finalColSpan++}if(!T._hideLastColumn){T._finalColSpan++}if(!T._hideLastColumn){if(T.rowButtonsInFront){if(T.hideRowNumColumn){S.insertBefore(P=document.createElement("td"),S.firstChild)}else{F.colSpan=2;P=F}}else{S.appendChild(P=document.createElement("td"))}P.className="last";P.id=T.idPrefix+"_buttons"}if(T.caption){I.insertBefore(S=document.createElement("tr"),I.firstChild);if(T._sectionClasses.caption){S.className=T._sectionClasses.caption}S.appendChild(E=document.createElement("td"));E.id=T.idPrefix+"_caption_td";E.className="ui-state-active caption";E.colSpan=T._finalColSpan;if(g.isPlainObject(T.captionTooltip)){g(E).tooltip(T.captionTooltip)}else{if(!o(T.captionTooltip)){g(E).attr("title",T.captionTooltip).tooltip()}}if(g.isFunction(T.caption)){T.caption(E)}else{g(E).text(T.caption)}}U.appendChild(S=document.createElement("tr"));if(T._sectionClasses.footer){S.className=T._sectionClasses.footer}S.appendChild(E=document.createElement("td"));E.id=T.idPrefix+"_footer_td";E.colSpan=T._finalColSpan;g("<input/>").attr({type:"hidden",id:T.idPrefix+"_rowOrder",name:T.idPrefix+"_rowOrder"}).appendTo(E);if(T.hideButtons.append&&T.hideButtons.removeLast&&(!g.isArray(T.customFooterButtons)||T.customFooterButtons.length==0)){S.style.display="none"}else{if(!T.hideButtons.append){m(T.customGridButtons.append,"ui-icon-plusthick").attr({title:T._i18n.append}).addClass("append",T._buttonClasses.append).click(function(W){d(Q,1,null,null);if(W&&W.preventDefault){W.preventDefault()}return false}).appendTo(E)}if(!T.hideButtons.removeLast){m(T.customGridButtons.removeLast,"ui-icon-closethick").attr({title:T._i18n.removeLast}).addClass("removeLast",T._buttonClasses.removeLast).click(function(W){j(Q,null,this.value,false);if(W&&W.preventDefault){W.preventDefault()}return false}).appendTo(E)}if(T.customFooterButtons&&T.customFooterButtons.length){for(var N=T.customFooterButtons.length-1;N>=0;N--){var R=T.customFooterButtons[N];if(R&&R.uiButton&&R.click&&R.atTheFront){g(E).prepend(r(Q,R))}}for(var N=0;N<T.customFooterButtons.length;N++){var R=T.customFooterButtons[N];if(R&&R.uiButton&&R.click&&!R.atTheFront){g(E).append(r(Q,R))}}}}if(T.rowDragging){g(M).sortable({axis:"y",containment:Q,handle:".rowDrag",helper:function(Y,X){var Z=X.children();var W=X.clone();W.children().each(function(ab){g(this).width(Z.eq(ab).width());var aa=g("select",this);if(aa.length>0){for(var ad=0;ad<aa.length;ad++){var ac=Z.eq(ab).find("select");if(ac.length>ad){aa[ad].value=ac[ad].value}}}});return W},update:function(Y,Z){var W=Z.item[0].id.substring(Z.item[0].id.lastIndexOf("_")+1);var X=Z.item[0].rowIndex-g("tr",I).length;q(Q,Z.originalPosition.top>Z.position.top,W,X)}})}g(Q).data("appendGrid",T);if(g.isArray(H.initData)){a(Q,H.initData,true)}else{g(Q).appendGrid("appendRow",T.initRows)}if(T._rowOrder.length==0){var L=g("<td></td>").text(T._i18n.rowEmpty).attr("colspan",T._finalColSpan);g("tbody",Q).append(g("<tr></tr>").addClass("empty").append(L))}}return V},isReady:function(){var E=e(this,true);if(E){return true}return false},isDataLoaded:function(){var E=e(this);if(E){return E._isDataLoaded}return false},load:function(E){var F=e(this),G=this;if(F){if(E!=null&&E.length>0){a(G[0],E,false)}else{A(G[0])}}return G},appendRow:function(E){return this.appendGrid("insertRow",E)},insertRow:function(H,J,F){var I=e(this);if(I){if((g.isArray(H)&&H.length>0)||(g.isNumeric(H)&&H>0)){var E=this[0];insertResult=d(E,H,J,F);if(g.isNumeric(J)||g.isNumeric(F)){v(E,insertResult.rowIndex);var G=I._rowOrder[insertResult.addedRows[0]];g("#"+I.idPrefix+"_Insert_"+G,E).focus()}}}return this},removeRow:function(G,E){var F=e(this);if(F&&F._rowOrder.length>0){j(this[0],G,E,true)}return this},emptyGrid:function(){var E=e(this);if(E){A(this[0])}return target},moveUpRow:function(L,K){var F=e(this),J=this;if(F){var I=J[0],N,E,H,G,M=null;var O=I.getElementsByTagName("tbody")[0];if(g.isNumeric(L)&&L>0&&L<F._rowOrder.length){M=L;K=F._rowOrder[L]}else{if(g.isNumeric(K)){M=h(K,F)}}if(M!=null&&M>0){N=document.getElementById(F.idPrefix+"_Row_"+K,I);E=document.getElementById(F.idPrefix+"_Row_"+F._rowOrder[M-1],I);if(F.useSubPanel){H=document.getElementById(F.idPrefix+"_SubRow_"+K,I)}O.removeChild(N);if(F.useSubPanel){O.removeChild(H)}O.insertBefore(N,E);if(F.useSubPanel){O.insertBefore(H,E)}F._rowOrder[M]=F._rowOrder[M-1];F._rowOrder[M-1]=K;G=g("td.first",E).html();g("td.first",E).html(g("td.first",N).html());g("td.first",N).html(G);b(I,F);g("td.last button.moveUp",N).removeClass("ui-state-hover").blur();g("td.last button.moveUp",E).focus();if(F.afterRowSwapped){F.afterRowSwapped(I,M,M-1)}}}return J},moveDownRow:function(L,K){var G=e(this),J=this;if(G){var I=J[0],N,F,E,H,M=null;var O=I.getElementsByTagName("tbody")[0];if(g.isNumeric(L)&&L>=0&&L<G._rowOrder.length-1){M=L;K=G._rowOrder[L]}else{if(g.isNumeric(K)){M=h(K,G)}}if(M!=null&&M!=G._rowOrder.length-1){N=document.getElementById(G.idPrefix+"_Row_"+K,I);F=document.getElementById(G.idPrefix+"_Row_"+G._rowOrder[M+1],I);if(G.useSubPanel){E=document.getElementById(G.idPrefix+"_SubRow_"+G._rowOrder[M+1],I)}O.removeChild(F);O.insertBefore(F,N);if(G.useSubPanel){O.insertBefore(E,N)}G._rowOrder[M]=G._rowOrder[M+1];G._rowOrder[M+1]=K;H=g("td.first",F).html();g("td.first",F).html(g("td.first",N).html());g("td.first",N).html(H);b(I,G);g("td.last button.moveDown",N).removeClass("ui-state-hover").blur();g("td.last button.moveDown",F).focus();if(G.afterRowSwapped){G.afterRowSwapped(I,M,M+1)}}}return J},showColumn:function(H){var I=e(this);if(I&&H){var G=-1,F=this[0];for(var J=0;J<I.columns.length;J++){if(I.columns[J].name==H){G=J;break}}if(G!=-1&&I.columns[G].invisible){I._visibleCount++;I._finalColSpan++;g("#"+I.idPrefix+"_caption_td").attr("colSpan",I._finalColSpan);g("#"+I.idPrefix+"_footer_td").attr("colSpan",I._finalColSpan);g("#"+I.idPrefix+"_"+H+"_td_head").removeClass("invisible");for(var J=0;J<I._rowOrder.length;J++){var E=I._rowOrder[J];g("#"+I.idPrefix+"_"+H+"_td_"+E).removeClass("invisible");if(I.useSubPanel){g("#"+I.idPrefix+"_SubRow_"+E).attr("colSpan",I._visibleCount+(I._hideLastColumn?0:1))}}I.columns[G].invisible=false;b(F,I)}}return this},hideColumn:function(H){var I=e(this);if(I&&H){var G=-1,F=this[0];for(var J=0;J<I.columns.length;J++){if(I.columns[J].name==H){G=J;break}}if(G!=-1&&!I.columns[G].invisible){I._visibleCount--;I._finalColSpan--;g("#"+I.idPrefix+"_caption_td").attr("colSpan",I._finalColSpan);g("#"+I.idPrefix+"_footer_td").attr("colSpan",I._finalColSpan);g("#"+I.idPrefix+"_"+H+"_td_head").addClass("invisible");for(var J=0;J<I._rowOrder.length;J++){var E=I._rowOrder[J];g("#"+I.idPrefix+"_"+H+"_td_"+E).addClass("invisible");if(I.useSubPanel){g("#"+I.idPrefix+"_SubRow_"+E).attr("colSpan",I._visibleCount+(I._hideLastColumn?0:1))}}I.columns[G].invisible=true;b(F,I)}}return this},isColumnInvisible:function(E){var F=e(this);if(F&&E){for(var G=0;G<F.columns.length;G++){if(F.columns[G].name==E){return F.columns[G].invisible}}}return null},getRowCount:function(){var E=e(this);if(E){return E._rowOrder.length}return null},getUniqueIndex:function(F){var E=e(this);if(E&&g.isNumeric(F)&&F<E._rowOrder.length){return E._rowOrder[F]}return null},getRowIndex:function(E){var F=e(this);if(F&&g.isNumeric(E)){for(var G=0;G<F._rowOrder.length;G++){if(F._rowOrder[G]==E){return G}}}return null},getRowValue:function(I,F,H){var G=e(this),E=null;if(G){if(g.isNumeric(I)&&I>=0&&I<G._rowOrder.length){F=G._rowOrder[I]}if(!o(F)){E=i(G,F,H)}}return E},getAllValue:function(G){var F=e(this),E=null;if(F){E=G?{}:[];for(var H=0;H<F._rowOrder.length;H++){if(G){rowValue=i(F,F._rowOrder[H],H);g.extend(E,rowValue)}else{rowValue=i(F,F._rowOrder[H]);E.push(rowValue)}}if(G){E[F.rowCountName]=F._rowOrder.length}}return E},getCtrlValue:function(E,H){var F=e(this);if(F&&H>=0&&H<F._rowOrder.length){for(var G=0;G<F.columns.length;G++){if(F.columns[G].name===E){return c(F,G,F._rowOrder[H])}}}return null},setCtrlValue:function(E,I,G){var F=e(this);if(F&&I>=0&&I<F._rowOrder.length){for(var H=0;H<F.columns.length;H++){if(F.columns[H].name==E){p(F,H,F._rowOrder[I],G);break}}}return this},getCellCtrl:function(F,I){var G=e(this);if(G&&I>=0&&I<G._rowOrder.length){var E=G._rowOrder[I];for(var H=0;H<G.columns.length;H++){if(G.columns[H].name===F){return x(G.columns[H].type,G.idPrefix,F,E)}}}return null},getCellCtrlByUniqueIndex:function(F,E){var G=e(this);if(G){for(var H=0;H<G.columns.length;H++){if(G.columns[H].name===F){return x(G.columns[H].type,G.idPrefix,F,E)}}}return null},getRowOrder:function(){var E=e(this);if(E){return E._rowOrder.slice()}return null},getColumns:function(){var E=e(this);if(E){return E.columns.slice()}return null},isRowEmpty:function(F){var E=e(this);if(E){return u(E,F)}return null},removeEmptyRows:function(){var F=e(this);if(F){var E=this[0];for(var G=F._rowOrder.length;G>=0;G--){if(u(F,G)){j(E,null,F._rowOrder[G],true)}}return this}return null}};function e(F,E){var G=null;if(F.length==1){G=F.data("appendGrid");if(!G&&!E){alert(t.notInit)}}else{if(!E){alert(t.getValueMultiGrid)}}return G}function d(Z,O,X,U){var ai=g(Z).data("appendGrid");var ah=[],J=null,K,V,ad=[];var L=Z.getElementsByTagName("thead")[0];var T=Z.getElementsByTagName("tbody")[0];var ae,G=null,F,aa=false;var R=0,aj=0;var N=O,E=false;if(g.isArray(O)){N=O.length;E=true}if(g.isNumeric(U)){for(var Q=0;Q<ai._rowOrder.length;Q++){if(ai._rowOrder[Q]==U){X=Q;if(Q!=0){J=Q-1}break}}}else{if(g.isNumeric(X)){if(X>=ai._rowOrder.length){X=null}else{J=X-1}}else{if(ai._rowOrder.length!=0){X=null;J=ai._rowOrder.length-1}}}if(ai.maintainScroll&&!g.isNumeric(X)){R=g(Z).height();aj=g(Z).scrollParent().scrollTop()}if(ai._rowOrder.length==0){g("tr.empty",Z).remove()}for(var Q=0;Q<N;Q++){if(0<ai.maxRowsAllowed&&ai._rowOrder.length>=ai.maxRowsAllowed){aa=true;break}ai._uniqueIndex++;K=ai._uniqueIndex;ad.length=0;if(g.isNumeric(X)){ai._rowOrder.splice(X,0,K);if(ai.useSubPanel){T.insertBefore(G=document.createElement("tr"),T.childNodes[X*2]);T.insertBefore(ae=document.createElement("tr"),T.childNodes[X*2])}else{T.insertBefore(ae=document.createElement("tr"),T.childNodes[X])}ah.push(X)}else{ai._rowOrder.push(K);T.appendChild(ae=document.createElement("tr"));if(ai.useSubPanel){T.appendChild(G=document.createElement("tr"))}ah.push(ai._rowOrder.length-1)}ae.id=ai.idPrefix+"_Row_"+K;if(ai._sectionClasses.body){ae.className=ai._sectionClasses.body}g(ae).data("appendGrid",K);if(G!=null){G.id=ai.idPrefix+"_SubRow_"+K;g(G).data("appendGrid",K);if(ai._sectionClasses.subPanel){G.className=ai._sectionClasses.subPanel}}if(!ai.hideRowNumColumn){ae.appendChild(F=document.createElement("td"));g(F).addClass("ui-widget-content first").text(ai._rowOrder.length);if(ai.useSubPanel){F.rowSpan=2}}for(var S=0;S<ai.columns.length;S++){if(ai.columns[S].type=="hidden"){ad.push(S);continue}var I="ui-widget-content";if(ai.columns[S].invisible){I+=" invisible"}ae.appendChild(F=document.createElement("td"));F.id=ai.idPrefix+"_"+ai.columns[S].name+"_td_"+K;F.className=I;if(ai.columns[S].cellCss!=null){g(F).css(ai.columns[S].cellCss)}var H=ai.idPrefix+"_"+ai.columns[S].name+"_"+K,P;if(g.isFunction(ai.nameFormatter)){P=ai.nameFormatter(ai.idPrefix,ai.columns[S].name,K)}else{P=H}V=null;if(ai.columns[S].type=="custom"){if(g.isFunction(ai.columns[S].customBuilder)){V=ai.columns[S].customBuilder(F,ai.idPrefix,ai.columns[S].name,K)}}else{if(ai.columns[S].type=="select"||ai.columns[S].type=="ui-selectmenu"){V=document.createElement("select");V.id=H;V.name=P;if(g.isArray(ai.columns[S].ctrlOptions)){if(ai.columns[S].ctrlOptions.length>0){if(g.isPlainObject(ai.columns[S].ctrlOptions[0])){var al=null,ag=null;for(var W=0;W<ai.columns[S].ctrlOptions.length;W++){if(!o(ai.columns[S].ctrlOptions[W].group)){if(al!=ai.columns[S].ctrlOptions[W].group){al=ai.columns[S].ctrlOptions[W].group;ag=document.createElement("optgroup");ag.label=al;V.appendChild(ag)}}else{ag=null}var Y=g("<option/>").val(ai.columns[S].ctrlOptions[W].value).text(ai.columns[S].ctrlOptions[W].label);if(!o(ai.columns[S].ctrlOptions[W].title)){Y.attr("title",ai.columns[S].ctrlOptions[W].title)}if(null==ag){Y.appendTo(V)}else{Y.appendTo(ag)}}}else{for(var W=0;W<ai.columns[S].ctrlOptions.length;W++){V.options[V.options.length]=new Option(ai.columns[S].ctrlOptions[W],ai.columns[S].ctrlOptions[W])}}}}else{if(g.isPlainObject(ai.columns[S].ctrlOptions)){for(var W in ai.columns[S].ctrlOptions){V.options[V.options.length]=new Option(ai.columns[S].ctrlOptions[W],W)}}else{if(typeof(ai.columns[S].ctrlOptions)=="string"){var af=ai.columns[S].ctrlOptions.split(";");for(var W=0;W<af.length;W++){var ak=af[W].indexOf(":");if(-1==ak){V.options[V.options.length]=new Option(af[W],af[W])}else{V.options[V.options.length]=new Option(af[W].substring(ak+1,af[W].length),af[W].substring(0,ak))}}}else{if(g.isFunction(ai.columns[S].ctrlOptions)){ai.columns[S].ctrlOptions(V)}}}}F.appendChild(V);if(ai.columns[S].type=="ui-selectmenu"){g(V).selectmenu(ai.columns[S].uiOption)}}else{if(ai.columns[S].type=="checkbox"){V=document.createElement("input");V.type="checkbox";V.id=H;V.name=P;V.value=1;F.appendChild(V);F.style.textAlign="center"}else{if(ai.columns[S].type=="textarea"){V=document.createElement("textarea");V.id=H;V.name=P;F.appendChild(V)}else{if(-1!=ai.columns[S].type.search(/^(color|date|datetime|datetime\-local|email|month|number|range|search|tel|time|url|week)$/)){V=document.createElement("input");try{V.type=ai.columns[S].type}catch(M){}V.id=H;V.name=P;F.appendChild(V)}else{V=document.createElement("input");V.type="text";V.id=H;V.name=P;F.appendChild(V);if(ai.columns[S].type=="ui-datepicker"){g(V).datepicker(ai.columns[S].uiOption)}else{if(ai.columns[S].type=="ui-spinner"){g(V).spinner(ai.columns[S].uiOption)}else{if(ai.columns[S].type=="ui-autocomplete"){g(V).autocomplete(ai.columns[S].uiOption)}}}}}}}}if(ai.columns[S].type!="custom"){if(ai.columns[S].ctrlAttr!=null){g(V).attr(ai.columns[S].ctrlAttr)}if(ai.columns[S].ctrlProp!=null){g(V).prop(ai.columns[S].ctrlProp)}if(ai.columns[S].ctrlCss!=null){g(V).css(ai.columns[S].ctrlCss)}if(ai.columns[S].ctrlClass!=null){g(V).addClass(ai.columns[S].ctrlClass)}if(ai.columns[S].uiTooltip){g(V).tooltip(ai.columns[S].uiTooltip)}if(g.isFunction(ai.columns[S].onClick)){g(V).click({caller:Z,callback:ai.columns[S].onClick,uniqueIndex:K},function(am){am.data.callback(am,g(am.data.caller).appendGrid("getRowIndex",am.data.uniqueIndex))})}if(g.isFunction(ai.columns[S].onChange)){g(V).change({caller:Z,callback:ai.columns[S].onChange,uniqueIndex:K},function(am){am.data.callback(am,g(am.data.caller).appendGrid("getRowIndex",am.data.uniqueIndex))})}}if(E){p(ai,S,K,O[Q][ai.columns[S].name])}else{if(!o(ai.columns[S].value)){p(ai,S,K,ai.columns[S].value)}}}if(!ai._hideLastColumn||ai.columns.length>ai._visibleCount){if(!ai.rowButtonsInFront){ae.appendChild(F=document.createElement("td"))}else{if(!ai.hideRowNumColumn){ae.insertBefore(F=document.createElement("td"),ae.childNodes[1])}else{ae.insertBefore(F=document.createElement("td"),ae.firstChild)}}F.className="ui-widget-content last";if(ai._hideLastColumn){F.style.display="none"}if(!ai.hideButtons.insert){m(ai.customGridButtons.insert,"ui-icon-arrowreturnthick-1-w").attr({id:ai.idPrefix+"_Insert_"+K,title:ai._i18n.insert,tabindex:-1}).addClass("insert",ai._buttonClasses.insert).data("appendGrid",{uniqueIndex:K}).click(function(an){var am=g(this).data("appendGrid").uniqueIndex;g(Z).appendGrid("insertRow",1,null,am);if(an&&an.preventDefault){an.preventDefault()}return false}).appendTo(F)}if(!ai.hideButtons.remove){m(ai.customGridButtons.remove,"ui-icon-trash").attr({id:ai.idPrefix+"_Delete_"+K,title:ai._i18n.remove,tabindex:-1}).addClass("remove",ai._buttonClasses.remove).data("appendGrid",{uniqueIndex:K}).click(function(an){var am=g(this).data("appendGrid").uniqueIndex;j(Z,null,am,false);if(an&&an.preventDefault){an.preventDefault()}return false}).appendTo(F)}if(!ai.hideButtons.moveUp){m(ai.customGridButtons.moveUp,"ui-icon-arrowthick-1-n").attr({id:ai.idPrefix+"_MoveUp_"+K,title:ai._i18n.moveUp,tabindex:-1}).addClass("moveUp",ai._buttonClasses.moveUp).data("appendGrid",{uniqueIndex:K}).click(function(an){var am=g(this).data("appendGrid").uniqueIndex;g(Z).appendGrid("moveUpRow",null,am);if(an&&an.preventDefault){an.preventDefault()}return false}).appendTo(F)}if(!ai.hideButtons.moveDown){m(ai.customGridButtons.moveDown,"ui-icon-arrowthick-1-s").attr({id:ai.idPrefix+"_MoveDown_"+K,title:ai._i18n.moveDown,tabindex:-1}).addClass("moveDown",ai._buttonClasses.moveDown).data("appendGrid",{uniqueIndex:K}).click(function(an){var am=g(this).data("appendGrid").uniqueIndex;g(Z).appendGrid("moveDownRow",null,am);if(an&&an.preventDefault){an.preventDefault()}return false}).appendTo(F)}if(ai.rowDragging){g("<div/>").addClass("rowDrag ui-state-default ui-corner-all",ai._buttonClasses.rowDrag).attr("title",ai._i18n.rowDrag).append(g("<div/>").addClass("ui-icon ui-icon-carat-2-n-s").append(g("<span/>").addClass("ui-button-text").text("Drag"))).appendTo(F)}for(var S=0;S<ad.length;S++){V=document.createElement("input");V.id=ai.idPrefix+"_"+ai.columns[ad[S]].name+"_"+K;V.name=V.id;V.type="hidden";if(E){V.value=O[Q][ai.columns[ad[S]].name]}else{if(!o(ai.columns[ad[S]].value)){V.value=ai.columns[ad[S]].value}}F.appendChild(V)}if(ai.customRowButtons&&ai.customRowButtons.length){for(var S=ai.customRowButtons.length-1;S>=0;S--){var ac=ai.customRowButtons[S];if(ac&&ac.uiButton&&ac.click&&ac.atTheFront){g(F).prepend(z(Z,ac,K))}}for(var S=0;S<ai.customRowButtons.length;S++){var ac=ai.customRowButtons[S];if(ac&&ac.uiButton&&ac.click&&!ac.atTheFront){g(F).append(z(Z,ac,K))}}}}if(ai.useSubPanel){G.appendChild(F=document.createElement("td"));F.className="ui-widget-content";F.colSpan=ai._visibleCount+(ai._hideLastColumn?0:1);if(g.isFunction(ai.subPanelBuilder)){ai.subPanelBuilder(F,K)}}}b(Z,ai);if(g.isNumeric(X)){if(g.isFunction(ai.afterRowInserted)){ai.afterRowInserted(Z,J,ah)}}else{if(g.isFunction(ai.afterRowAppended)){ai.afterRowAppended(Z,J,ah)}}if(aa&&g.isFunction(ai.maxNumRowsReached)){ai.maxNumRowsReached()}if(ai.maintainScroll&&!g.isNumeric(X)){var ab=g(Z).height();g(Z).scrollParent().scrollTop(aj+ab-R)}return{addedRows:ah,parentIndex:J,rowIndex:X}}function r(E,G){var F=g("<button/>").attr({type:"button",tabindex:-1}).button(G.uiButton).click({tbWhole:E},G.click);if(G.btnClass){F.addClass(G.btnClass)}if(G.btnCss){F.css(G.btnCss)}if(G.btnAttr){F.attr(G.btnAttr)}return F}function z(F,H,E){var G=g("<button/>").val(E).attr({type:"button",tabindex:-1}).button(H.uiButton).click({tbWhole:F,uniqueIndex:E},function(I){var J=g(I.data.tbWhole).appendGrid("getRowValue",null,I.data.uniqueIndex);H.click(I,I.data.uniqueIndex,J)});if(H.btnClass){G.addClass(H.btnClass)}if(H.btnCss){G.css(H.btnCss)}if(H.btnAttr){G.attr(H.btnAttr)}return G}function j(I,L,J,F){var G=g(I).data("appendGrid");var O=I.getElementsByTagName("tbody")[0];if(g.isNumeric(J)){for(var K=0;K<G._rowOrder.length;K++){if(G._rowOrder[K]==J){L=K;break}}}if(g.isNumeric(L)){if(F||typeof(G.beforeRowRemove)!="function"||G.beforeRowRemove(I,L)){G._rowOrder.splice(L,1);if(G.useSubPanel){O.removeChild(O.childNodes[L*2]);O.removeChild(O.childNodes[L*2])}else{O.removeChild(O.childNodes[L])}b(I,G);v(I,L);if(g.isFunction(G.afterRowRemoved)){G.afterRowRemoved(I,L)}}}else{var N=0,M=0;if(G.maintainScroll){N=g(I).height();M=g(I).scrollParent().scrollTop()}if(F||!g.isFunction(G.beforeRowRemove)||G.beforeRowRemove(I,G._rowOrder.length-1)){J=G._rowOrder.pop();O.removeChild(O.lastChild);if(G.useSubPanel){O.removeChild(O.lastChild)}b(I,G);if(g.isFunction(G.afterRowRemoved)){G.afterRowRemoved(I,null)}}if(G.maintainScroll){var E=g(I).height();g(I).scrollParent().scrollTop(M+E-N)}}if(G._rowOrder.length==0){var H=g("<td></td>").text(G._i18n.rowEmpty).attr("colspan",G._finalColSpan);g("tbody",I).append(g("<tr></tr>").addClass("empty").append(H))}}function A(E){var F=g(E).data("appendGrid");g("tbody",E).empty();F._rowOrder.length=0;F._uniqueIndex=0;b(E,F);if(F._rowOrder.length==0){var G=g("<td></td>").text(F._i18n.rowEmpty).attr("colspan",F._finalColSpan);g("tbody",E).append(g("<tr></tr>").addClass("empty").append(G))}}function v(E,H){var F=g(E).data("appendGrid");if(!F.hideRowNumColumn){for(var G=H;G<F._rowOrder.length;G++){g("#"+F.idPrefix+"_Row_"+F._rowOrder[G]+" td.first",E).text(G+1)}}}function a(K,G,J){var O,I,F,L,N;var H=g(K).data("appendGrid");if(H){O=K.getElementsByTagName("tbody")[0];g(O).empty();H._rowOrder.length=0;H._uniqueIndex=0;if(G!=null&&G.length){N=d(K,G.length,null,null);for(var E=0;E<N.addedRows.length;E++){for(var M=0;M<H.columns.length;M++){p(H,M,H._rowOrder[E],G[E][H.columns[M].name])}if(g.isFunction(H.rowDataLoaded)){H.rowDataLoaded(K,G[E],E,H._rowOrder[E])}}}H._isDataLoaded=true;if(J){H.initData=null}g(K).data("appendGrid",H);if(g.isFunction(H.dataLoaded)){H.dataLoaded(K,G)}}}function h(E,F){for(var G=0;G<F._rowOrder.length;G++){if(F._rowOrder[G]==E){return G}}return null}function o(E){return typeof(E)=="undefined"||E==null}function C(F,E){if(!o(F)&&g.isPlainObject(F)&&!o(F[E])){return F[E]}return null}function b(E,F){g(E).data("appendGrid",F);g("#"+F.idPrefix+"_rowOrder",E).val(F._rowOrder.join())}function B(F,E){var H=null;for(var G=0;G<F._rowOrder.length;G++){if(F._rowOrder[G]==E){return G}}return H}function i(E,F,G){var N={},K=null,J=(o(G)?"":"_"+G);for(var H=0;H<E.columns.length;H++){K=E.columns[H].name+J;N[K]=c(E,H,F)}if(E.useSubPanel&&g.isFunction(E.subPanelGetter)){var M=E.subPanelGetter(F);if(g.isPlainObject(M)){if(J==""){g.extend(N,M)}else{var L={};for(var I in M){L[I+J]=M[I]}g.extend(N,L)}}}return N}function c(I,G,E){var J=null,H=I.columns[G].type,F=I.columns[G].name;if(H=="checkbox"){J=x(H,I.idPrefix,F,E);if(J==null){return null}else{return J.checked?1:0}}else{if(H=="custom"){if(g.isFunction(I.columns[G].customGetter)){return I.columns[G].customGetter(I.idPrefix,F,E)}else{return null}}else{J=x(H,I.idPrefix,F,E);if(J==null){return null}else{return J.value}}}}function x(G,H,F,E){return document.getElementById(H+"_"+F+"_"+E)}function p(I,G,E,J){var H=I.columns[G].type;var F=I.columns[G].name;if(H=="checkbox"){x(H,I.idPrefix,F,E).checked=(J!=null&&J!=0)}else{if(H=="custom"){if(g.isFunction(I.columns[G].customSetter)){I.columns[G].customSetter(I.idPrefix,F,E,J)}}else{if(H=="ui-selectmenu"){var K=x(H,I.idPrefix,F,E);K.value=(J==null?"":J);g(K).selectmenu("refresh")}else{x(H,I.idPrefix,F,E).value=(J==null?"":J)}}}}function q(F,K,E,G){var H=g(F).data("appendGrid");var J=-1;for(var I=0;I<H._rowOrder.length;I++){if(H._rowOrder[I]==E){if(K){J=G;H._rowOrder.splice(I,1);H._rowOrder.splice(G,0,E)}else{J=I;H._rowOrder.splice(G+1,0,E);H._rowOrder.splice(I,1)}break}}v(F,J);b(F,H);if(g.isFunction(H.afterRowDragged)){H.afterRowDragged(F,G)}}function m(G,E){var F=null;if(G){if(g.isFunction(G)){F=g(G())}else{if(G.nodeType){F=g(G).clone()}else{if(G.icons){F=g("<button/>").attr({type:"button"}).button(G)}}}}if(!F){F=g("<button/>").attr({type:"button"}).button({icons:{primary:E},text:false})}return F}function u(I,K){for(var J=0;J<I.columns.length;J++){var F=I._rowOrder[K];var H=c(I,J,F);if(g.isFunction(I.columns[J].emptyCriteria)){if(!I.columns[J].emptyCriteria(H)){return false}}else{var E=null;if(!o(I.columns[J].emptyCriteria)){E=I.columns[J].emptyCriteria}else{if(I.columns[J].type=="checkbox"){E=0}else{if(I.columns[J].type=="select"||I.columns[J].type=="ui-selectmenu"){var G=x(I.columns[J].type,I.idPrefix,I.columns[J].name,F).options;if(G.length>0){E=G[0].value}else{E=""}}else{E=""}}}if(H!=E){return false}}}return true}g.fn.appendGrid=function(E){if(k[E]){return k[E].apply(this,Array.prototype.slice.call(arguments,1))}else{if(typeof(E)==="object"||!E){return k.init.apply(this,arguments)}else{alert(t.notSupportMethod+E)}}}})(jQuery); |