/*! * 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;K1){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("").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;N0){for(var ad=0;adad){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("").text(T._i18n.rowEmpty).attr("colspan",T._finalColSpan);g("tbody",Q).append(g("").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&&L0){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=0&&I=0&&H=0&&I=0&&I=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){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=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;S0){if(g.isPlainObject(ai.columns[S].ctrlOptions[0])){var al=null,ag=null;for(var W=0;W").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;Wai._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("
").addClass("rowDrag ui-state-default ui-corner-all",ai._buttonClasses.rowDrag).attr("title",ai._i18n.rowDrag).append(g("
").addClass("ui-icon ui-icon-carat-2-n-s").append(g("").addClass("ui-button-text").text("Drag"))).appendTo(F)}for(var S=0;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").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("