/*!@license * Infragistics.Web.ClientUI Grid Sorting 19.1.20 * * Copyright (c) 2011-2019 Infragistics Inc. * * http://www.infragistics.com/ * * Depends on: * jquery-1.9.1.js * jquery.ui.core.js * jquery.ui.widget.js * infragistics.ui.widget.js * infragistics.ui.grid.framework.js * infragistics.ui.shared.js * infragistics.dataSource.js * infragistics.util.js * infragistics.ui.grid.shared.js * infragistics.ui.grid.featurechooser.js */ (function(factory){if(typeof define==="function"&&define.amd){define(["./infragistics.ui.grid.featurechooser"],factory)}else{return factory(jQuery)}})(function($){$.widget("ui.igGridSorting",$.ui.igWidget,{css:{sortableColumnHeader:"ui-iggrid-sortableheader ui-state-default",sortableColumnHeaderActive:"ui-iggrid-sortableheaderactive ui-state-active",sortableColumnHeaderHover:"ui-iggrid-sortableheaderhover ui-state-hover",sortableColumnHeaderFocus:"ui-iggrid-sortableheaderfocus ui-state-focus",ascendingColumnHeader:"ui-iggrid-colheaderasc",descendingColumnHeader:"ui-iggrid-colheaderdesc",ascendingColumn:"ui-iggrid-colasc ui-state-highlight",descendingColumn:"ui-iggrid-coldesc ui-state-highlight",sortIndicator:"ui-iggrid-colindicator",fcSortIndicatorAscending:"ui-iggrid-featurechooser-li-iconcontainer ui-icon ui-iggrid-icon-sort-a-z",fcSortIndicatorDescending:"ui-iggrid-featurechooser-li-iconcontainer ui-icon ui-iggrid-icon-sort-z-a",sortIndicatorAscending:"ui-iggrid-colindicator-asc ui-icon ui-icon-arrowthick-1-n",sortIndicatorDescending:"ui-iggrid-colindicator-desc ui-icon ui-icon-arrowthick-1-s",dialogSortedColumns:"ui-iggrid-sorting-dialog-sortedcolumns",dialogUnsortedColumns:"ui-iggrid-sorting-dialog-unsortedcolumns",dialogUnsortedColumnsSortByButton:"ui-iggrid-sorting-dialog-unsortedcolumns-sortbybutton",dialogAsdDescButton:"ui-iggrid-sorting-dialog-ascdescbutton",modalDialogSortByColumn:"ui-iggrid-sorting-dialog-sortbybutton",dialogSortedColumnsItem:"ui-widget-content",dialogUnsortedColumnsItem:"ui-widget-content",dialogButtonAsc:"ui-button ui-corner-all ui-button-icon-only ig-sorting-indicator",dialogButtonAscIcon:"ui-button-icon-primary ui-icon ui-icon-arrowthick-1-n",dialogButtonDesc:"ui-button ui-corner-all ui-button-icon-only ig-sorting-indicator",dialogButtonDescIcon:"ui-button-icon-primary ui-icon ui-icon-arrowthick-1-s",dialogButtonUnsort:"ui-iggrid-sorting-dialog-sortbybuttons ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-igbutton ui-widget-content ui-igbutton-remove",dialogButtonUnsortContainer:"ui-button-icon-primary ui-icon ui-icon-circle-close",dialogSortedColumnTextContainer:"ui-iggrid-dialog-text",dialogItemText:"ui-iggrid-dialog-text",dialogButtonsHover:"ui-state-hover",featureChooserModalDialogIcon:"ui-icon ui-iggrid-icon-multiple-sorting"},options:{type:null,caseSensitive:false,applySortedColumnCss:true,sortUrlKey:null,sortUrlKeyAscValue:null,sortUrlKeyDescValue:null,mode:"single",customSortFunction:null,firstSortDirection:"ascending",modalDialogSortOnClick:false,modalDialogSortByButtonText:undefined,modalDialogResetButtonLabel:undefined,modalDialogCaptionButtonDesc:undefined,modalDialogCaptionButtonAsc:undefined,modalDialogCaptionButtonUnsort:undefined,featureChooserText:undefined,unsortedColumnTooltip:undefined,modalDialogCaptionText:undefined,modalDialogButtonApplyText:undefined,modalDialogButtonCancelText:undefined,featureChooserSortAsc:undefined,featureChooserSortDesc:undefined,locale:{sortedColumnTooltip:undefined,unsortedColumnTooltip:undefined,ascending:undefined,descending:undefined,modalDialogSortByButtonText:undefined,modalDialogResetButton:undefined,modalDialogCaptionButtonDesc:undefined,modalDialogCaptionButtonAsc:undefined,modalDialogCaptionButtonUnsort:undefined,featureChooserText:undefined,modalDialogCaptionText:undefined,modalDialogButtonApplyText:undefined,modalDialogButtonCancelText:undefined,featureChooserSortAsc:undefined,featureChooserSortDesc:undefined},modalDialogWidth:350,modalDialogHeight:"",modalDialogAnimationDuration:200,columnSettings:[{columnKey:null,columnIndex:null,firstSortDirection:null,currentSortDirection:null,allowSorting:true,compareFunc:null}],persist:true,sortingDialogContainment:"owner",dialogWidget:"igGridModalDialog",inherit:false},renderInFeatureChooser:true,events:{columnSorting:"columnSorting",columnSorted:"columnSorted",modalDialogOpening:"modalDialogOpening",modalDialogOpened:"modalDialogOpened",modalDialogMoving:"modalDialogMoving",modalDialogClosing:"modalDialogClosing",modalDialogClosed:"modalDialogClosed",modalDialogContentsRendering:"modalDialogContentsRendering",modalDialogContentsRendered:"modalDialogContentsRendered",modalDialogSortingChanged:"modalDialogSortingChanged",modalDialogButtonUnsortClick:"modalDialogButtonUnsortClick",modalDialogSortClick:"modalDialogSortClick",modalDialogButtonApplyClick:"modalDialogButtonApplyClick",modalDialogButtonResetClick:"modalDialogButtonResetClick"},_createWidget:function(){this.options.columnSettings=[];this._superApply(arguments)},_create:function(){var self=this;this._headers=[];this._clickHandler=function(event){var th,id,scrLeft,$scrContainer,colKey;id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}th=$(event.currentTarget).closest("th");if(th.attr("data-skip")!=="true"&&(self.grid._isMultiColumnGrid!==true||th.attr("data-isheadercell")==="true")){colKey=th.attr("id").replace(self.grid.id()+"_","");if(!self._checkSortingAllowed(colKey)){return}self._handleSort(event);scrLeft=$("#"+self.grid.id()+"_hscroller").scrollLeft();if(scrLeft>0){if(self.grid.options.fixedHeaders===true){self.grid.headersTable().parent().scrollLeft(scrLeft)}if(self.grid.options.fixedFooters===true){self.grid.footersTable().parent().scrollLeft(scrLeft)}$scrContainer=self.grid.scrollContainer();if(!$scrContainer.length){$scrContainer=self.grid._vdisplaycontainer()}$scrContainer.scrollLeft(scrLeft)}}};this._dragStartHandler=function(event){var id,noCancel=true;noCancel=self.grid._trigger("headercelldragcancel",event,{});if(noCancel){id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}event.stopPropagation();event.preventDefault()}else{return true}return false};this._mouseOverHandler=function(event){var id,$target=$(event.currentTarget),cs,colKey;id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}colKey=$target.closest("th").attr("id");if(colKey){colKey=colKey.replace(id+"_","");cs=self._getColumnSettingByKey(colKey);if(cs&&cs.allowSorting!==false){$target.addClass(self.css.sortableColumnHeaderHover)}}};this._mouseOutHandler=function(event){var id;id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(self.grid.element.attr("id")!==id){return}$(event.currentTarget).removeClass(self.css.sortableColumnHeaderHover)};$("#"+this.element[0].id).delegate("thead th",{click:this._clickHandler,mouseover:this._mouseOverHandler,mouseout:this._mouseOutHandler});$("#"+this.element[0].id+" thead th").bind("dragstart",this._dragStartHandler);$("#"+this.element[0].id+"_headers thead th").bind("dragstart",this._dragStartHandler);$(document).delegate("#"+this.element[0].id+"_headers thead th",{click:this._clickHandler,mouseover:this._mouseOverHandler,mouseout:this._mouseOutHandler});this._keyDownHandler=function(event){self._handleSortKb(event)};this._focusHandler=function(event){self._handleFocusKb(event)};this._blurHandler=function(event){self._handleBlurKb(event)};$("#"+this.element[0].id).delegate("thead th",{keydown:this._keyDownHandler,focus:this._focusHandler,blur:this._blurHandler});$(document).delegate("#"+this.element[0].id+"_headers thead th",{keydown:this._keyDownHandler,focus:this._focusHandler,blur:this._blurHandler})},changeGlobalLanguage:function(){},changeGlobalRegional:function(){},_changeLocaleForModalDialog:function(){var $button,$modalDialog=this._getModalDialog();if($modalDialog.length){$modalDialog[this.options.dialogWidget]({locale:{buttonApplyText:this._getLocaleValue("modalDialogButtonApplyText"),buttonCancelText:this._getLocaleValue("modalDialogButtonCancelText"),modalDialogCaptionText:this._getLocaleValue("modalDialogCaptionText")}});$button=this._getDialogClearAllButton();if($button.length){$button.igButton("option","labelText",this._getLocaleValue("modalDialogResetButton"))}$.ui.igWidget.prototype.changeLocale.call(this,$modalDialog)}},_changeLocaleForFeatureChooser:function(){var fc=this.grid.element.data("igGridFeatureChooser");if(fc&&this.renderInFeatureChooser){fc._removeFeature("SortingAscending");fc._removeFeature("SortingDescending");fc._removeFeature("MultipleSorting");this._featureChooserInitialized=false;this._initFC()}},_changeLocaleForThs:function(){var self=this;this.grid.headersTable().find("th").each(function(){var $th=$(this),sortDir=$th.attr("aria-sort");if(sortDir){self._setHeaderAttributes($th,sortDir)}else{self._removeHeaderAttributes($th)}})},changeLocale:function(){this._changeLocaleForModalDialog();this._changeLocaleForFeatureChooser();this._changeLocaleForThs()},_registerWidget:$.noop,_unregisterWidget:$.noop,_setOption:function(key,value){var $modalDialog=this._getModalDialog();this._super(key,value);switch(key){case"type":throw new Error(this._getLocaleValue("optionChangeNotSupported").replace("{optionName}",key));case"caseSensitive":this.grid.dataSource.settings.sorting.caseSensitive=this.options.caseSensitive;break;case"modalDialogSortOnClick":$modalDialog.remove();this._renderMultipleSortingDialog();break;case"modalDialogAnimationDuration":$modalDialog[this.options.dialogWidget]("option","animationDuration",value);break;case"modalDialogWidth":$modalDialog[this.options.dialogWidget]("option","modalDialogWidth",value);break;case"modalDialogHeight":$modalDialog[this.options.dialogWidget]("option","modalDialogHeight",value);break;default:break}},_handleSortKb:function(event){if($(event.target).attr("id")===undefined||$(event.target).attr("id")===null){return}var $el=$(event.target),key=$el.attr("id").replace(this.grid.element.attr("id")+"_",""),id;id=$el.closest(".ui-iggrid").attr("id").replace("_container","");if(this.grid.element.attr("id")!==id){return}if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){if(this._checkSortingAllowed(key)){if(event.shiftKey){this.unsortColumn(key,$el)}else{if(this.sortColumn(key,null,$el)){this._clearActiveHeader();$el.addClass(this.css.sortableColumnHeaderActive);this._currentActiveHeader=$el}}}event.stopPropagation();event.preventDefault()}},_handleFocusKb:function(event){if(this._resizing&&this._resizing._resizing){return}var $target=$(event.target),id=$target.closest(".ui-iggrid").attr("id").replace("_container",""),colId=$target.closest("th").attr("id"),colKey;if(!colId){return}colKey=colId.replace(this.grid.id()+"_","");if(this.grid.element.attr("id")!==id||$target.attr("data-fixing-indicator")!==undefined||!this._checkSortingAllowed(colKey)||!$target.is("th")){return}$target.addClass(this.css.sortableColumnHeaderFocus)},_handleBlurKb:function(event){var id=$(event.target).closest(".ui-iggrid").attr("id").replace("_container","");if(this.grid.element.attr("id")!==id){return}$(event.target).removeClass(this.css.sortableColumnHeaderFocus)},_handleSort:function(event){if(this._resizing&&this._resizing._resizing){this._resizing._resizing=false;return}var $currentTarget=$(event.currentTarget),$th=$currentTarget.closest("th"),key=$th.attr("id").replace(this.grid.element.attr("id")+"_",""),isShiftClicked=false;this._clearActiveHeader();isShiftClicked=event.shiftKey;if(isShiftClicked){this.unsortColumn(key,$th)}else{if(this.sortColumn(key,null,$currentTarget)){$currentTarget.addClass(this.css.sortableColumnHeaderActive);this._currentActiveHeader=$th}}event.stopPropagation();event.preventDefault()},_checkSortingAllowed:function(colKey){var expr,s=this._getColumnSettingByKey(colKey);if(!s||s.allowSorting===false){return false}expr=this._findExpressionByColKey(colKey);if(expr&&expr.isGroupBy){return false}return true},_initLoadingIndicator:function(){this._loadingIndicator=this.grid.container().length>0?this.grid.container().igLoading().data("igLoading").indicator():this.grid.element.igLoading().data("igLoading").indicator()},_getHeaderCellByIdentifier:function(identifier){var $headerCell,colKey;if($.type(identifier)==="number"){colKey=this.grid.options.columns[identifier].key}else{colKey=identifier}$headerCell=$("#"+this.grid.element[0].id+"_"+colKey);return $headerCell},_removeHeaderAttributes:function($header){$header.attr({title:this._getLocaleValue("unsortedColumnTooltip"),"data-localeid":"unsortedColumnTooltip"}).removeAttr("aria-sort")},_setHeaderAttributes:function($header,sortDir){if(!sortDir){return}$header.attr({title:sortDir.startsWith("asc")?this._getLocaleValue("sortedColumnTooltip").replace("${direction}",this._getLocaleValue("ascending")):this._getLocaleValue("sortedColumnTooltip").replace("${direction}",this._getLocaleValue("descending")),"aria-sort":sortDir,"data-localeid":"sortedColumnTooltip","data-localeattr":"title"})},sortColumn:function(index,direction,header){var colKey,expr,noCancel=true,s,i,newDir,apiCall=!header,sortingNewExprs,curNewExpr,compareFunc;this._activeSortedCol=null;if($.type(index)==="number"){colKey=this.grid.options.columns[index].key}else{colKey=index}header=header||$("#"+this.grid.element[0].id+"_"+colKey);this._curColKey=colKey;expr=this.grid.dataSource.settings.sorting.expressions;s=this._getColumnSettingByKey(colKey);if(apiCall){this._clearActiveHeader()}if(!s||!apiCall&&!this._checkSortingAllowed(colKey)){return}if(direction){newDir=direction}else{if(!s.currentSortDirection||!s.currentSortDirection.startsWith("asc")&&!s.currentSortDirection.startsWith("desc")){newDir=s.firstSortDirection===undefined?this.options.firstSortDirection:s.firstSortDirection}else{newDir=s.currentSortDirection&&s.currentSortDirection.indexOf("asc")!==-1?"descending":"ascending"}}compareFunc=null;if(s&&s.compareFunc){if($.type(s.compareFunc)==="function"){compareFunc=s.compareFunc}else if(typeof s.compareFunc==="string"&&window[s.compareFunc]&&typeof window[s.compareFunc]==="function"){compareFunc=window[s.compareFunc]}}curNewExpr={fieldName:colKey,isSorting:true,dir:newDir.startsWith("asc")?"asc":"desc",compareFunc:compareFunc,layout:this.grid.options.key||null};sortingNewExprs=this.grid._getSortingExpressionsManager().addSortingExpression(expr.slice(),curNewExpr,this);this._trigger("internalcolumnsorting",null,{owner:this});sortingNewExprs=this.grid._getSortingExpressionsManager().setFormattersForSortingExprs(sortingNewExprs);if(!apiCall){noCancel=this._trigger(this.events.columnSorting,null,{columnKey:colKey,direction:newDir,owner:this,newExpressions:sortingNewExprs})}this.grid._fireInternalEvent("_sortedColumnsChanging",sortingNewExprs);if(noCancel){s.currentSortDirection=curNewExpr.dir.startsWith("asc")?"ascending":"descending";this._loadingIndicator.show();this._setHeaderAttributes(header,s.currentSortDirection);if(this.options.mode==="single"){for(i=0;i0&&this.grid.dataSource.settings.sorting.defaultFields.length===0){this.grid.dataSource.dataBind()}else{this.grid._renderData()}}}},clearSorting:function(){var i,se=[],exprs=this.grid.dataSource.settings.sorting.expressions;for(i=0;i0&&this.grid.dataSource.settings.sorting.defaultFields.length===0){this.grid.dataSource.dataBind()}else{this.grid.dataSource.sort(this.grid.dataSource.settings.sorting.expressions);this.grid._renderData()}if(!apiCall){this._trigger(this.events.columnSorted,null,{columnKey:colKey,direction:s.currentSortDirection,owner:this,expressions:this.grid.dataSource.settings.sorting.expressions})}}this._curSortDir=s.currentSortDirection}},_excludeExpr:function(key){if(this.options.persist&&!this._couldPreserveData()){return}var expr=this.grid.dataSource.settings.sorting.expressions,i;for(i=0;i").addClass(this.css.sortIndicator)}indicatorContainer=$th.find(".ui-iggrid-indicatorcontainer");if(indicatorContainer.length===0){indicatorContainer=$("
").appendTo($th).addClass("ui-iggrid-indicatorcontainer")}indicatorContainer.append(span);currentColumnSetting=this._getColumnSettingByKey(columnKey);if(this.options.applySortedColumnCss!==false&&ignoreActiveSelection!==true){if(hasFixedColumns&&this.grid._isFixedElement($th)){$tbody=this.grid.fixedTable().children("tbody")}else{$tbody=this.grid.element.children("tbody")}$cells=this.grid._getCellsByColKey($tbody.find(">tr:not([data-grouprow],[data-summaryrow])"),columnKey)}this._activeSortedCol=null;if(currentColumnSetting&¤tColumnSetting.currentSortDirection){if(currentColumnSetting.currentSortDirection.indexOf("asc")!==-1){span.removeClass(this.css.sortIndicatorDescending).addClass(this.css.sortIndicatorAscending);$th.removeClass(this.css.descendingColumnHeader).addClass(this.css.ascendingColumnHeader);this._setHeaderAttributes($th,"ascending");if(this.options.mode==="single"){$th.siblings("th").removeAttr("aria-sort")}if($cells){this._activeSortedCol={key:currentColumnSetting.columnKey,asc:true};$cells.removeClass(this.css.descendingColumn).addClass(this.css.ascendingColumn)}}else{span.removeClass(this.css.sortIndicatorAscending).addClass(this.css.sortIndicatorDescending);$th.removeClass(this.css.ascendingColumnHeader).addClass(this.css.descendingColumnHeader);this._setHeaderAttributes($th,"descending");if(this.options.mode==="single"){$th.siblings("th").removeAttr("aria-sort")}if($cells){this._activeSortedCol={key:currentColumnSetting.columnKey,asc:false};$cells.removeClass(this.css.ascendingColumn).addClass(this.css.descendingColumn)}}}else{this._removeHeaderAttributes($th);this._clearHeaderCellSortStyles($th)}if(prevHeight!==null&&prevHeight!==this.grid.headersTable().outerHeight()){this.grid._initializeHeights()}},_clearSortStateByColKey:function(key){var s=this._getColumnSettingByKey(key);this._clearSortStyles(key);if(!s){return}s.currentSortDirection=undefined},_clearSortStyles:function(key){if(key===undefined||key===null){return}var hk=this.grid.id()+"_"+key,$cells,i,$tbl,$th,cs;for(i=0;i0){for(i=0;i0){for(i=0;i0){for(k=0;k-1:false,method:$.proxy(this._sortAscFromFeatureChooser,this),updateOnClickAll:false,groupName:"toggle",groupOrder:1,order:0,type:"toggle"});featureChooserInstance._renderInFeatureChooser(col.key,{name:"SortingDescending",text:this._getLocaleValue("featureChooserSortDesc"),textHide:this._getLocaleValue("featureChooserSortDesc"),iconClass:this.css.fcSortIndicatorDescending,iconClassOff:this.css.fcSortIndicatorDescending,isSelected:initialSorting&&typeof initialSorting==="string"?initialSorting.toLowerCase().indexOf("desc")>-1:false,method:$.proxy(this._sortDescFromFeatureChooser,this),updateOnClickAll:false,groupName:"toggle",groupOrder:1,order:0,type:"toggle"})}}}}if(this.options.mode!=="single"){for(i=0;i").appendTo(ui.th).addClass(this.css.sortIndicator);if(cs.currentSortDirection!==undefined){expr=this._findExpressionByColKey(cs.columnKey);if(expr&&!expr.isGroupBy){this._applySortStyles(cs.columnKey)}}}}this._initFC()},_featureChooserMenuToggling:function(event,args){var i,expr,isAsc,hasSorting=false,columnKey=args.columnKey,featureChooserInstance=this.grid.element.data("igGridFeatureChooser"),exprs=this.grid.dataSource.settings.sorting.expressions,exprsLength=exprs.length;if(!args.isVisible){for(i=0;i-1){isAsc=true}featureChooserInstance._setSelectedState("SortingDescending",columnKey,!isAsc,false);featureChooserInstance._setSelectedState("SortingAscending",columnKey,isAsc,false)}}if(!hasSorting){featureChooserInstance._setSelectedState("SortingDescending",columnKey,false,false);featureChooserInstance._setSelectedState("SortingAscending",columnKey,false,false)}}},_sortAscFromFeatureChooser:function(event,columnKey,isSelected){var featureChooserInstance=this.grid.element.data("igGridFeatureChooser"),gridId=this.grid.id(),$th=$("#"+gridId+"_"+columnKey);if(!featureChooserInstance){return}featureChooserInstance._setSelectedState("SortingDescending",columnKey,false,false);if(isSelected){this.sortColumn(columnKey,"asc",$th)}else{this.unsortColumn(columnKey,$th)}},_sortDescFromFeatureChooser:function(event,columnKey,isSelected){var featureChooserInstance=this.grid.element.data("igGridFeatureChooser"),gridId=this.grid.id(),$th=$("#"+gridId+"_"+columnKey);featureChooserInstance._setSelectedState("SortingAscending",columnKey,false,false);if(!featureChooserInstance){return}if(isSelected){ this.sortColumn(columnKey,"desc",$th)}else{this.unsortColumn(columnKey,$th)}},_fixedColumnsChanged:function(args){var i,grid=this.grid,stngs=this.options.columnSettings,start=args.start,len=args.length,at=args.at,fixedTable=grid.fixedHeadersTable(),isAttachedSortingHandlers=fixedTable.data("attachedSortingHandlers");if(isAttachedSortingHandlers!==true){fixedTable.data("attachedSortingHandlers",true);fixedTable.delegate("thead th",{click:this._clickHandler,mouseover:this._mouseOverHandler,mouseout:this._mouseOutHandler})}grid._rearrangeArray(stngs,start,len,at);for(i=0;i0){for(i=0;ii){$.ig.removeFromArray(exprs,i)}if(defaultExprs.length>i){$.ig.removeFromArray(defaultExprs,i)}}}},_clearUi:function(){var i,header,csd,isMCH=this.grid._isMultiColumnGrid,persist=this.options.persist;for(i=0;this._headers&&i tr").first().find("th").not("[ data-skip=true ]"),visibleColumns=this.grid._visibleColumns(),key;for(i=0;i"+text+"").appendTo(header).addClass("ui-iggrid-headertext");a.remove()}fc=this.grid.element.data("igGridFeatureChooser");if(fc&&this.renderInFeatureChooser){fc._removeFeature("SortingAscending");fc._removeFeature("SortingDescending");fc._removeFeature("MultipleSorting")}this._headers=null;if(this._loadingIndicator){delete this._loadingIndicator}modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");modalDialog.remove();this._superApply(arguments);return this},_renderMultipleSortingDialog:function(){var $buttonOK,containment,self=this,o=this.options,modalDialogId=this.grid.element[0].id+"_multiplesorting_modalDialog",$captionButtonContainer,modalDialog;if(this.options.sortingDialogContainment==="owner"){containment=this.grid.container()}else{containment="window"}$("#"+modalDialogId).remove();modalDialog=$("
").appendTo(this.grid._rootContainer()).attr("id",modalDialogId);modalDialog[this.options.dialogWidget]({containment:containment,locale:{buttonApplyText:this._getLocaleValue("modalDialogButtonApplyText"),buttonCancelText:this._getLocaleValue("modalDialogButtonCancelText"),modalDialogCaptionText:this._getLocaleValue("modalDialogCaptionText")},renderFooterButtons:!o.modalDialogSortOnClick,modalDialogWidth:o.modalDialogWidth,modalDialogHeight:o.modalDialogHeight,animationDuration:o.modalDialogAnimationDuration,gridContainer:this.grid.container(),modalDialogOpening:$.proxy(this._onDialogOpening,this),modalDialogMoving:$.proxy(this._onDialogMoving,this),modalDialogClosing:$.proxy(this._onDialogClosing,this),modalDialogClosed:$.proxy(this._onDialogClosed,this)});if(o.modalDialogSortOnClick){$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$("").bind("click.hiding",function(event){modalDialog[self.options.dialogWidget]("closeModalDialog",true);event.preventDefault();event.stopPropagation();return false}).addClass("ui-icon ui-icon-closethick").appendTo($("").appendTo($captionButtonContainer).attr("title",this._getLocaleValue("columnChooserCloseButtonTooltip")).attr("href","#").attr("role","button").addClass("ui-dialog-titlebar-close ui-corner-all"))}else{$captionButtonContainer=modalDialog[this.options.dialogWidget]("getCaptionButtonContainer");$buttonOK=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog_footer_buttonok");$buttonOK.bind("igbuttonclick",function(e){self._multiplesortingDialogButtonOKClick(e);e.preventDefault()})}},openMultipleSortingDialog:function(){var modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog");modalDialog[this.options.dialogWidget]("openModalDialog")},closeMultipleSortingDialog:function(){var modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog");modalDialog[this.options.dialogWidget]("closeModalDialog")},_onDialogOpening:function(e,args){var noCancel=this._trigger(this.events.modalDialogOpening,e,{modalDialogElement:args.modalDialog,owner:this});if(noCancel){this._tempExpr=this.grid.dataSource.settings.sorting.expressions.slice(0);this.renderMultipleSortingDialogContent(true);this._trigger(this.events.modalDialogOpened,e,{modalDialogElement:args.modalDialog,owner:this})}return noCancel},_onDialogMoving:function(e,ui){this._trigger(this.events.modalDialogMoving,e,{modalDialogElement:e.target,owner:this,originalPosition:ui.originalPosition,position:ui.position})},_onDialogClosing:function(e,args){return this._trigger(this.events.modalDialogClosing,e,{modalDialogElement:args.modalDialog,owner:this})},_onDialogClosed:function(e,args){this._trigger(this.events.modalDialogClosed,e,{modalDialogElement:args.modalDialog,owner:this})},renderMultipleSortingDialogContent:function(isToCallEvents){var $content,$sortedColumns,$unsortedColumns,i,noCancel=true,self=this,tempExpr,grid=this.grid,columns=grid.options.columns,css=this.css,modalDialog=$("#"+grid.element[0].id+"_multiplesorting_modalDialog");if(isToCallEvents){noCancel=this._trigger(this.events.modalDialogContentsRendering,null,{modalDialogElement:modalDialog,owner:this})}if(noCancel){this.removeDialogClearButton();$content=modalDialog[this.options.dialogWidget]("getContent");$content.empty();$sortedColumns=$("
").attr("id",grid.element[0].id+"_multiplesorting_modalDialog_sortedcolumns").addClass(css.dialogSortedColumns).appendTo($content);$unsortedColumns=$("
").attr("id",grid.element[0].id+"_multiplesorting_modalDialog_unsortedcolumns").addClass(css.dialogUnsortedColumns).appendTo($content);$("
    ").addClass(css.dialogSortedColumnsList).appendTo($sortedColumns);$("
      ").addClass(css.dialogUnsortedColumnsList).appendTo($unsortedColumns);tempExpr=self._tempExpr||[];tempExpr.forEach(function(se){var key=se.fieldName,cs=self._getColumnSettingByKey(key);if(!cs||self._checkSortingAllowed(key)===false){return}self._renderDialogSortedColumn(grid.columnByKey(key),cs.columnIndex,se.dir)});$.each(columns,function(columnIndex,column){var cs,direction,key=column.key;cs=self._getColumnSettingByKey(key);if(!cs||self._checkSortingAllowed(key)===false){return true}for(i=0;i").attr("id",self.grid.element[0].id+"_"+key+"_multiplesorting_sorted_li").addClass(css.dialogSortedColumnsItem);$li.appendTo($ul);if(columnIndex!==null&&columnIndex!==undefined){$li.attr("li-order",columnIndex)}liHTML=""+"\t"+""+""+column.headerText+""+"";$li.bind({click:function(e){self._curColKey=key;self._dialogButtonAscDescClick(key);if(self._isToRenderButtonClearAll()){self._renderDialogButtonClearAll()}else{self.removeDialogClearButton()}e.preventDefault();e.stopPropagation()}});$li.html(liHTML);$buttonUnsort=$("#"+buttonUnsortId);if(direction!==undefined){if(direction.indexOf("asc")!==-1){self._setDialogButtonAscDesc(true,key)}else{self._setDialogButtonAscDesc(false,key)}}else{self._setDialogButtonAscDesc(true,key)}$buttonUnsort.bind({keydown:function(e){if(e.keyCode===$.ui.keyCode.ENTER||e.keyCode===$.ui.keyCode.SPACE){e.target.click();e.preventDefault();e.stopPropagation()}},click:function(e){var noCancel,gridId=self.grid.element[0].id,modalDialog=$("#"+gridId+"_multiplesorting_modalDialog");noCancel=self._trigger(self.events.modalDialogButtonUnsortClick,e,{modalDialogElement:modalDialog,owner:self,columnKey:key});if(noCancel){$li.remove();if(o.modalDialogSortOnClick===true){self.unsortColumn(key,$("#"+gridId+"_"+key))}else{self._removeExprByKey(key,self._tempExpr)}self._renderDialogUnsortedColumn(column,columnIndex,direction);if(self._isToRenderButtonClearAll()){self._renderDialogButtonClearAll()}else{self.removeDialogClearButton()}}e.preventDefault();e.stopPropagation()},mouseover:function(){if(!$(this).hasClass(css.dialogButtonsHover)){$(this).addClass(css.dialogButtonsHover)}},mouseout:function(){if($(this).hasClass(css.dialogButtonsHover)){$(this).removeClass(css.dialogButtonsHover)}}});return $li},_dialogButtonAscDescClick:function(colKey){var o=this.options,noCancel,modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog"),$buttonAscDesc=$("#"+this.grid.element[0].id+"_"+colKey+"_multiplesorting_modalDialog_sortedcolumns_buttonascdesc"),isAsc=$buttonAscDesc.data("isAsc");noCancel=this._trigger(this.events.modalDialogSortingChanged,null,{modalDialogElement:modalDialog,owner:this,columnKey:colKey,isAsc:!isAsc});if(noCancel){this._curColKey=colKey;if(this._isToRenderButtonClearAll()){this._renderDialogButtonClearAll()}else{this.removeDialogClearButton()}if(isAsc===true){if(o.modalDialogSortOnClick===true){this.sortColumn(colKey,"descending",this._getHeaderCellByIdentifier(colKey))}else{this._sortTempExprs(colKey,"desc")}this._setDialogButtonAscDesc(false,colKey)}else{if(o.modalDialogSortOnClick===true){this.sortColumn(colKey,"ascending",this._getHeaderCellByIdentifier(colKey))}else{this._sortTempExprs(colKey,"asc")}this._setDialogButtonAscDesc(true,colKey)}}},_setDialogButtonAscDesc:function(isAsc,colKey){var css=this.css,buttonAscDescId=this.grid.element[0].id+"_"+colKey+"_multiplesorting_modalDialog_sortedcolumns_buttonascdesc",$buttonAscDesc=$("#"+buttonAscDescId),$spanIcon=$buttonAscDesc.find("span:eq(0)");$buttonAscDesc.data("isAsc",isAsc);if(isAsc===true){$buttonAscDesc.attr({title:this._getLocaleValue("modalDialogCaptionButtonDesc"),"data-localeid":"modalDialogCaptionButtonDesc","data-localeattr":"title"}).removeClass(css.dialogButtonDesc).addClass(css.dialogButtonAsc);$spanIcon.removeClass(css.dialogButtonDescIcon).addClass(css.dialogButtonAscIcon)}else{$buttonAscDesc.attr({title:this._getLocaleValue("modalDialogCaptionButtonAsc"),"data-localeid":"modalDialogCaptionButtonAsc","data-localeattr":"title"}).removeClass(css.dialogButtonAsc).addClass(css.dialogButtonDesc);$spanIcon.removeClass(css.dialogButtonAscIcon).addClass(css.dialogButtonDescIcon)}},_removeExprByKey:function(colKey,exprs){var i,len=exprs.length;for(i=0;i").attr("id",self.grid.element[0].id+"_"+key+"_multiplesorting_unsorted_li").addClass(css.dialogUnsortedColumnsItem).append(" "+column.headerText+"");this._insertColumnModalDialog($ul,$li,columnIndex);if(columnIndex!==null&&columnIndex!==undefined){$li.attr("li-order",columnIndex)}$a=$li.find("a:first");$a.addClass(css.modalDialogSortByColumn);$a.attr({"data-localeid":"modalDialogSortByButtonText"}).html(this._getLocaleValue("modalDialogSortByButtonText"));$li.bind({keydown:function(e){if(event.keyCode===$.ui.keyCode.ENTER||event.keyCode===$.ui.keyCode.SPACE){$li.click();e.preventDefault();e.stopPropagation()}},click:function(e){var noCancel,modalDialog=$("#"+self.grid.element[0].id+"_multiplesorting_modalDialog");noCancel=self._trigger(self.events.modalDialogSortClick,e,{modalDialogElement:modalDialog,owner:self,columnKey:key});if(noCancel){$li.remove();self._renderDialogSortedColumn(column,columnIndex,direction);self._sortTempExprs(column.key,direction);if(o.modalDialogSortOnClick){self.sortColumn(key,null,self._getHeaderCellByIdentifier(key))}else{if(self._isToRenderButtonClearAll()){self._renderDialogButtonClearAll()}else{self.removeDialogClearButton()}}}e.preventDefault();e.stopPropagation()}});return $li},_isToRenderButtonClearAll:function(){var i,j,cs,columnKey,expr=this._tempExpr;for(i=0;i").attr("id",resetButtonId).appendTo($captionButtonContainer);$resetButton.igButton({labelText:this._getLocaleValue("modalDialogResetButton"),click:$.proxy(this._onDialogButtonClearAllClick,this)})}},_multiplesortingDialogButtonOKClick:function(e){var noCancel,exprs=this.grid._getSortingExpressionsManager().setFormattersForSortingExprs(this._tempExpr),modalDialog=$("#"+this.grid.element[0].id+"_multiplesorting_modalDialog");noCancel=this._trigger(this.events.modalDialogButtonApplyClick,e,{modalDialogElement:modalDialog,owner:this,columnsToSort:this._tempExpr});if(noCancel){this.sortMultiple(exprs);modalDialog[this.options.dialogWidget]("closeModalDialog")}},_insertColumnModalDialog:function($ul,$li,pos){var i,$currLi,currPos,listItems=$ul.find("li"),listItemsLength=listItems.length;if(listItemsLength===0||pos===null||pos===undefined){$li.appendTo($ul);return}for(i=0;i=pos){$li.insertBefore($currLi);break}}if(i===listItemsLength){$li.appendTo($ul)}},_getColumnSettingByKey:function(key){var i,colSettings=this.options.columnSettings,len=colSettings.length;for(i=0;i-1){$.ig.removeFromArray(se,0,indToRemove)}for(i=0;i