SuperX-Kernmodul
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

530 lines
293 KiB

var SaikuOlapQueryTemplate={queryModel:{axes:{FILTER:{mdx:null,filters:[],sortOrder:null,sortEvaluationLiteral:null,hierarchizeMode:null,location:"FILTER",hierarchies:[],nonEmpty:!1},COLUMNS:{mdx:null,filters:[],sortOrder:null,sortEvaluationLiteral:null,hierarchizeMode:null,location:"COLUMNS",hierarchies:[],nonEmpty:!0},ROWS:{mdx:null,filters:[],sortOrder:null,sortEvaluationLiteral:null,hierarchizeMode:null,location:"ROWS",hierarchies:[],nonEmpty:!0}},visualTotals:!1,visualTotalsPattern:null,lowestLevelsOnly:!1,
details:{axis:"COLUMNS",location:"BOTTOM",measures:[]},calculatedMeasures:[],calculatedMembers:[]},queryType:"OLAP",type:"QUERYMODEL"},SaikuOlapQueryHelper=function(a){this.query=a};SaikuOlapQueryHelper.prototype.model=function(){return this.query.model};SaikuOlapQueryHelper.prototype.clearAxis=function(a){this.model().queryModel.axes[a].hierarchies=[]};
SaikuOlapQueryHelper.prototype.getHierarchy=function(a){var b=function(b){return b&&b.name==a},c;for(c in this.model().queryModel.axes){var d=this.model().queryModel.axes[c];if(d=_.find(d.hierarchies,b))return d}return null};
SaikuOlapQueryHelper.prototype.moveHierarchy=function(a,b,c,d){c=this.getHierarchy(c);var e=this.model().queryModel.axes[a].hierarchies.indexOf(c);b=this.model().queryModel.axes[b].hierarchies;this.model().queryModel.axes[a].hierarchies.splice(e,1);"undefined"!=typeof d&&-1<d&&b.length>d?b.splice(d,0,c):b.push(c)};
SaikuOlapQueryHelper.prototype.removeHierarchy=function(a){var b=this.getHierarchy(a);if(!b)return null;if(a=this.findAxisForHierarchy(a)){var c=a.hierarchies.indexOf(b);a.hierarchies.splice(c,1)}return b};SaikuOlapQueryHelper.prototype.findAxisForHierarchy=function(a){for(var b in this.model().queryModel.axes){var c=this.model().queryModel.axes[b];if(c.hierarchies&&0<c.hierarchies.length)for(var d=0,e=c.hierarchies.length;d<e;d++)if(c.hierarchies[d].name==a)return c}return null};
SaikuOlapQueryHelper.prototype.getAxis=function(a){if(a in this.model().queryModel.axes)return this.model().queryModel.axes[a];Saiku.log("Cannot find axis: "+a)};SaikuOlapQueryHelper.prototype.removeFilter=function(a,b){if(b&&1<a.filters.length){for(var c=-1,d=0,e=a.filters.length;d<e;d++)a.filters[d].flavour==b&&(c=d);c&&0<=c&&a.filters.splice(c,0)}else a.filters=[]};
SaikuOlapQueryHelper.prototype.setDefaultFilter=function(a,b,c){b=b.replace("[","");b=b.replace("]","");this.includeLevel("FILTER",a,b);a=this.getHierarchy(a).levels[b];a.selection={type:"INCLUSION",members:[]};a.selection.parameterName="default_filter_"+b;this.model().parameters||(this.model().parameters={});a="default_filter_"+b;this.model().parameters[a]=c};
SaikuOlapQueryHelper.prototype.getLevelForParameter=function(a){var b,c=this.model().queryModel.axes;_.each(c,function(c){_.each(c.hierarchies,function(c){_.each(c.levels,function(d){if(d.selection&&d.selection.parameterName&&d.selection.parameterName===a)return b={hierarchy:c,level:d},!1})})});return b};
SaikuOlapQueryHelper.prototype.getSelectionsForParameter=function(a){var b,c=this.model().queryModel.axes;_.each(c,function(c){_.each(c.hierarchies,function(c){_.each(c.levels,function(c){if(c.selection&&c.selection.parameterName&&c.selection.parameterName===a)return b=c.selection.members,!1})})});return b};
SaikuOlapQueryHelper.prototype.addtoSelection=function(a,b){void 0===b.level.selection.members&&(b.selection.members=[]);var c=!1;_.each(b.level.selection.members,function(d){d.uniqueName==b.hierarchy.name+".["+b.level.name+"].["+a+"]"&&(c=!0)});c||b.level.selection.members.push({uniqueName:b.hierarchy.name+".["+b.level.name+"].["+a+"]",caption:a})};SaikuOlapQueryHelper.prototype.includeCmember=function(a,b){var c=this.getHierarchy(a);c&&(c.cmembers[b]=b)};
SaikuOlapQueryHelper.prototype.includeLevel=function(a,b,c,d){var e=this.getHierarchy(b);e||(e={name:b,levels:{},cmembers:{}});e.levels[c]={name:c};var f=this.findAxisForHierarchy(b);f?this.moveHierarchy(f.location,a,b,d):(b=this.model().queryModel.axes[a])?"undefined"!=typeof d&&-1<d&&b.hierarchies.length>d?b.hierarchies.splice(d,0,e):b.hierarchies.push(e):Saiku.log("Cannot find axis: "+a+" to include Level: "+c)};
SaikuOlapQueryHelper.prototype.includeLevelCalculatedMember=function(a,b,c,d,e){var f=this.getHierarchy(b);f||(f={name:b,levels:{},cmembers:{}});f.cmembers[d]=d;(d=this.findAxisForHierarchy(b))?this.moveHierarchy(d.location,a,b,-1):(b=this.model().queryModel.axes[a])?"undefined"!=typeof e&&-1<e&&b.hierarchies.length>e?b.hierarchies.splice(e,0,f):b.hierarchies.push(f):Saiku.log("Cannot find axis: "+a+" to include Level: "+c)};
SaikuOlapQueryHelper.prototype.removeLevel=function(a,b){(a=this.getHierarchy(a))&&a.levels.hasOwnProperty(b)&&delete a.levels[b]};SaikuOlapQueryHelper.prototype.removeLevelCalculatedMember=function(a,b){(a=this.getHierarchy(a))&&a.cmembers.hasOwnProperty(b)&&delete a.cmembers[b]};SaikuOlapQueryHelper.prototype.removeAllLevelCalculatedMember=function(a){a=this.getHierarchy(a);a.cmembers={}};
SaikuOlapQueryHelper.prototype.includeMeasure=function(a){var b=this.model().queryModel.details.measures,c=b.length,d,e=!1;if(b&&!_.isEmpty(b)){for(d=0;d<c;d++)if(b[d].name===a.name){e=!0;break}else e=!1;!1===e&&b.push(a)}else b.push(a)};SaikuOlapQueryHelper.prototype.removeMeasure=function(a){var b=this.query.model.queryModel.details.measures;(a=_.findWhere(b,{name:a}))&&-1<_.indexOf(b,a)&&_.without(b,a)};
SaikuOlapQueryHelper.prototype.clearMeasures=function(){this.model().queryModel.details.measures=[]};SaikuOlapQueryHelper.prototype.setMeasures=function(a){this.model().queryModel.details.measures=a};SaikuOlapQueryHelper.prototype.addCalculatedMeasure=function(a){a&&(this.removeCalculatedMeasure(a.name),this.model().queryModel.calculatedMeasures.push(a))};SaikuOlapQueryHelper.prototype.editCalculatedMeasure=function(a,b){b&&(this.removeCalculatedMeasure(a),this.removeCalculatedMember(a),this.model().queryModel.calculatedMeasures.push(b))};
SaikuOlapQueryHelper.prototype.removeCalculatedMeasure=function(a){var b=this.model().queryModel.calculatedMeasures;(a=_.findWhere(b,{name:a}))&&-1<_.indexOf(b,a)&&(b=_.without(b,a),this.model().queryModel.calculatedMeasures=b)};SaikuOlapQueryHelper.prototype.getCalculatedMeasures=function(){var a=this.model().queryModel.calculatedMeasures;return a?a:null};SaikuOlapQueryHelper.prototype.addCalculatedMember=function(a){a&&(this.removeCalculatedMember(a.name),this.model().queryModel.calculatedMembers.push(a))};
SaikuOlapQueryHelper.prototype.editCalculatedMember=function(a,b){b&&(this.removeCalculatedMeasure(a),this.removeCalculatedMember(a),this.model().queryModel.calculatedMembers.push(b))};SaikuOlapQueryHelper.prototype.removeCalculatedMember=function(a){var b=this.model().queryModel.calculatedMembers;(a=_.findWhere(b,{name:a}))&&-1<_.indexOf(b,a)&&(b=_.without(b,a),this.model().queryModel.calculatedMembers=b)};
SaikuOlapQueryHelper.prototype.getCalculatedMembers=function(){var a=this.model().queryModel.calculatedMembers;return a?a:null};SaikuOlapQueryHelper.prototype.swapAxes=function(){var a=this.model().queryModel.axes,b=a.ROWS;b.location="COLUMNS";a.ROWS=a.COLUMNS;a.ROWS.location="ROWS";a.COLUMNS=b};
SaikuOlapQueryHelper.prototype.nonEmpty=function(a){a?(this.model().queryModel.axes.ROWS.nonEmpty=!0,this.model().queryModel.axes.COLUMNS.nonEmpty=!0):(this.model().queryModel.axes.ROWS.nonEmpty=!1,this.model().queryModel.axes.COLUMNS.nonEmpty=!1)};
var DateFilterModel=Backbone.Model.extend({}),DateFilterCollection=Backbone.Collection.extend({model:DateFilterModel}),Level=Backbone.Model.extend({initialize:function(a,b){b&&!_.isEmpty(b)&&(this.ui=b.ui,this.cube=b.cube,this.dimension=b.dimension,this.hierarchy=b.hierarchy)},url:function(){return Saiku.session.username+"/discover/"+this.cube+"/dimensions/"+this.dimension+"/hierarchies/"+this.hierarchy+"/levels"}}),LevelMember=Backbone.Model.extend({initialize:function(a,b){b&&!_.isEmpty(b)&&(this.ui=
b.ui,this.cube=b.cube,this.dimension=b.dimension,this.hierarchy=b.hierarchy,this.level=b.level)},url:function(){return Saiku.session.username+"/discover/"+this.cube+"/dimensions/"+this.dimension+"/hierarchies/"+this.hierarchy+"/levels/"+encodeURIComponent(this.level)}}),LevelChildMember=Backbone.Model.extend({initialize:function(a,b){b&&!_.isEmpty(b)&&(this.ui=b.ui,this.cube=b.cube,this.uniqueName=b.uniqueName,this.levelUniqueName=b.levelUniqueName,this.mname=b.mname,this.mcaption=b.mcaption)},url:function(){return Saiku.session.username+
"/discover/"+this.cube+"/member/"+encodeURIComponent(this.uniqueName)+"/children"}}),SaikuRendererOptions={mode:null,dataMode:null,htmlObject:null,width:null,height:null},SaikuRenderer=function(a,b){this._options=_.extend(SaikuRendererOptions,b);this._hasProcessed=!1;"undefined"!==typeof Backbone&&_.extend(this,Backbone.Events);this.render=function(a,b){var e=null;"undefined"!==typeof Backbone&&this.trigger("render:start",this);this.hasProcessedData()||this.processData(a,b);e=this._render(a,b);"undefined"!==
typeof Backbone&&this.trigger("render:end",this);return e};this.processData=function(a,b){"undefined"!==typeof Backbone&&this.trigger("processData:start",this);this._processData(a,b);"undefined"!==typeof Backbone&&this.trigger("processData:end",this)};this.hasProcessedData=function(){return this._hasProcessed};this._render=function(a,b){};this._processData=function(a,b){};a&&(this._data=a,this.processData(a,b),this._hasProcessed=!0)};
function SaikuTableRenderer(a,b){this._data=a;this._options=_.extend({},SaikuRendererOptions,b)}
SaikuTableRenderer.prototype.render=function(a,b){var c=this;a&&(this._data=a);b&&(this._options=_.extend({},SaikuRendererOptions,b));if("undefined"!=typeof this._data&&!(null!=this._data&&null!=this._data.error||null==this._data||this._data.cellset&&0===this._data.cellset.length))if(this._options.htmlObject)c._options.hasOwnProperty("batch")&&$(c._options.htmlObject).parent().parent().unbind("scroll"),_.defer(function(a){c._options.hasOwnProperty("batch")&&!c._options.hasOwnProperty("batchSize")&&
(c._options.batchSize=1E3);a=c.internalRender(c._data,c._options);$(c._options.htmlObject).html(a);_.defer(function(a){if(c._options.hasOwnProperty("batch")&&c._options.hasBatchResult){var b=0,d=!1,h=c._options.hasOwnProperty("batchIntervalSize")?c._options.batchIntervalSize:20;a=c._options.hasOwnProperty("batchIntervalTime")?c._options.batchIntervalTime:20;var k=c._options.batchResult.length,l=_.debounce(function(){if(!d&&0<k&&b<k){d=!0;for(var a="",e=b,l=0;b<k&&l<h;l++,b++)a+=c._options.batchResult[b];
b>e&&$(c._options.htmlObject).append($(a));d=!1}b>=k&&$(c._options.htmlObject).parent().parent().unbind("scroll")},a);$(c._options.htmlObject).parent().parent().scroll(function(){l()})}});return a});else return this.internalRender(this._data,c._options)};SaikuTableRenderer.prototype.clear=function(a,b){this._options&&this._options.htmlObject&&this._options.hasOwnProperty("batch")&&$(this._options.htmlObject).parent().parent().unbind("scroll")};
SaikuTableRenderer.prototype.processData=function(a,b){this._hasProcessed=!0};function genTotalDataCells(a,b,c,d,e){var f="";e=e[ROWS];for(var g=c.length-1;0<=g;g--)if(a==c[g]){for(var h=e[g][d[g]],k=0;k<h.cells.length;k++)f+='\x3ctd class\x3d"data total"\x3e'+h.cells[k][b].value+"\x3c/td\x3e";d[g]++;d[g]<e[g].length&&(c[g]+=e[g][d[g]].width)}return f}
function genTotalHeaderCells(a,b,c,d,e,f){for(var g="",h=b;0<=h;h--)if(a==c[h]){var k=e[h][d[h]],l;l=0==h&&1==b?"col":h==b?"col_total_corner":h==b-1&&k.captions?"col_total_first":"col_null";for(var m=0;m<k.cells.length;m++){var n="\x26nbsp;";b==e.length-1&&(k.captions&&(n=e[h][d[h]].captions[m]),0==h&&0==d[h]&&(n=k.captions?n+"\x26nbsp;":"",n+=f?"\x3cspan class\x3d'i18n'\x3eGrand Total\x3c/span\x3e":"Grand Total"));g+='\x3cth class\x3d"'+l+'"\x3e'+(f?"\x3cdiv\x3e"+n+"\x3c/div\x3e":n)+"\x3c/th\x3e"}d[h]++;
d[h]<e[h].length&&(c[h]+=e[h][d[h]].width)}return g}function totalIntersectionCells(a,b,c,d,e){for(var f="";0<=b;b--)if(a==c[b]){for(var g=e[b][d[b]],h=0;h<g.cells.length;h++)f+='\x3ctd class\x3d"data total"\x3e\x26nbsp;\x3c/td\x3e';d[b]++;d[b]<e[b].length&&(c[b]+=e[b][d[b]].width)}return f}
function genTotalHeaderRowCells(a,b,c,d,e){for(var f=d[COLUMNS],g=b[COLUMNS],h=c[COLUMNS],k=f.length-2,l="",m=k;0<=m;m--)if(a==g[m]){for(var n=0;n<f[m][h[m]].cells.length;n++){l+="\x3ctr\x3e";for(b=0;b<=k;b++){var r="\x26nbsp;";c=0==m&&0==b?"row":m==b+1?"row_total_corner":m==b&&f[m][h[m]].captions?"row_total_first":m<b+1?"row_total":"row_null";b==k&&(f[m][h[m]].captions&&(r=f[m][h[m]].captions[n]),0==m&&0==h[m]&&(r=f[m][h[m]].captions?r+"\x26nbsp;":"",r+=e?"\x3cspan class\x3d'i18n'\x3eGrand Total\x3c/span\x3e":
"Grand Total"));l+='\x3cth class\x3d"'+c+'"\x3e'+(e?"\x3cdiv\x3e"+r+"\x3c/div\x3e":r)+"\x3c/th\x3e"}c={};b={};for(r=0;r<d[ROWS].length;r++)c[r]=0,b[r]=d[ROWS][r][c[r]].width;for(r=0;r<f[m][h[m]].cells[n].length;r++)l+='\x3ctd class\x3d"data total"\x3e'+f[m][h[m]].cells[n][r].value+"\x3c/td\x3e",l+=totalIntersectionCells(r+1,d[ROWS].length-1,b,c,d[ROWS]);l+="\x3c/tr\x3e"}h[m]++;h[m]<f[m].length&&(g[m]+=f[m][h[m]].width)}return l}var ROWS="ROWS",COLUMNS="COLUMNS";
function nextParentsDiffer(a,b,c){for(;0<b--;)if(a[b][c].properties.uniquename!=a[b][c+1].properties.uniquename)return!0;return!1}function topParentsDiffer(a,b,c){for(;0<c--;)if(a[b][c].properties.uniquename!=a[b-1][c].properties.uniquename)return!0;return!1}
SaikuTableRenderer.prototype.internalRender=function(a,b){var c="",d="",e=a.cellset,f=e?e:[],g,h,k,l,m,n=0,r=[],q=null,s=!1,t=!1,x=!1,z=[],y=!0;b&&(q=b.hasOwnProperty("batchSize")?b.batchSize:null,y=b.hasOwnProperty("wrapContent")?b.wrapContent:!0);var v={};v[COLUMNS]=a.rowTotalsLists;v[ROWS]=a.colTotalsLists;for(var B={},C={},t=[ROWS,COLUMNS],d=0;d<t.length;d++)B[t[d]]=[],C[t[d]]=[];if(v[COLUMNS])for(d=0;d<v[COLUMNS].length;d++)C[COLUMNS][d]=0,B[COLUMNS][d]=v[COLUMNS][d][C[COLUMNS][d]].width;for(var u=
0,G=f.length;u<G;u++){var H=u-a.topOffset;g=1;var I=t=l=h=!1;if(v[ROWS])for(d=0;d<v[ROWS].length;d++)C[ROWS][d]=0,B[ROWS][d]=v[ROWS][d][C[ROWS][d]].width;d="\x3ctr\x3e";0===u&&(d="\x3cthead\x3e"+d);for(var w=0,J=f[u].length;w<J;w++){var F=w-a.leftOffset,p=e[u][w];"COLUMN_HEADER"===p.type&&(t=!0);if("COLUMN_HEADER"===p.type&&"null"===p.value&&(null==k||w<k))d+='\x3cth class\x3d"all_null"\x3e\x26nbsp;\x3c/th\x3e';else if("COLUMN_HEADER"===p.type){null==k&&(k=w);f[u].length==w+1?l=!0:m=e[u][w+1];if(l)"null"==
p.value?d+='\x3cth class\x3d"col_null"\x3e\x26nbsp;\x3c/th\x3e':(v[ROWS]&&(g=v[ROWS][u+1][C[ROWS][u+1]].span),d+='\x3cth class\x3d"col" style\x3d"text-align: center;" colspan\x3d"'+g+'" title\x3d"'+p.value+'"\x3e'+(y?'\x3cdiv rel\x3d"'+u+":"+w+'"\x3e'+p.value+"\x3c/div\x3e":p.value)+"\x3c/th\x3e");else{var F=1<w&&1<u&&!h&&w>k?e[u-1][w+1].value!=e[u-1][w].value||e[u-1][w+1].properties.uniquename!=e[u-1][w].properties.uniquename:!1,D=999<g?!0:!1;p.value!=m.value||nextParentsDiffer(e,u,w)||h||F||D?("null"==
p.value?d+='\x3cth class\x3d"col_null" colspan\x3d"'+g+'"\x3e\x26nbsp;\x3c/th\x3e':(v[ROWS]&&(g=v[ROWS][u+1][C[ROWS][u+1]].span),d+='\x3cth class\x3d"col" style\x3d"text-align: center;" colspan\x3d"'+(0==g?1:g)+'" title\x3d"'+p.value+'"\x3e'+(y?'\x3cdiv rel\x3d"'+u+":"+w+'"\x3e'+p.value+"\x3c/div\x3e":p.value)+"\x3c/th\x3e"),g=1):g++}v[ROWS]&&(d+=genTotalHeaderCells(w-a.leftOffset+1,u+1,B[ROWS],C[ROWS],v[ROWS],y))}else if("ROW_HEADER"===p.type&&"null"===p.value)d+='\x3cth class\x3d"row_null"\x3e\x26nbsp;\x3c/th\x3e';
else if("ROW_HEADER"===p.type){n==w?h=!0:m=e[u][w+1];F=e[u-1];D=!I&&!h&&(0==w||!topParentsDiffer(e,u,w))&&p.value===F[w].value;I=!D;F=D?"\x3cdiv\x3e\x26nbsp;\x3c/div\x3e":'\x3cdiv rel\x3d"'+u+":"+w+'"\x3e'+p.value+"\x3c/div\x3e";y||(F=D?"\x26nbsp;":p.value);var D=D?"row_null":"row",E=0;if(!h&&("undefined"==typeof m||"null"===m.value)){var E=1,A=p.properties.dimension,p=p.properties.level,p=A in r?r[A].length-r[A].indexOf(p):1,A=w+1;for(;E<p&&A<=n+1&&"null"!==e[u][A];A++)E=A-w;w=w+E-1}d+='\x3cth class\x3d"'+
D+'" '+(0<E?' colspan\x3d"'+E+'"':"")+"\x3e"+F+"\x3c/th\x3e"}else if("ROW_HEADER_HEADER"===p.type)d+='\x3cth class\x3d"row_header"\x3e'+(y?"\x3cdiv\x3e"+p.value+"\x3c/div\x3e":p.value)+"\x3c/th\x3e",h=!0,n=w,p.properties.hasOwnProperty("dimension")&&(A=p.properties.dimension,A in r||(r[A]=[]),r[A].push(p.properties.level));else if("DATA_CELL"===p.type){s=!0;D="";A=p.value;E="";if(p.properties.hasOwnProperty("image"))var A=p.properties.hasOwnProperty("image_height")?" height\x3d'"+p.properties.image_height+
"'":"",K=p.properties.hasOwnProperty("image_width")?" width\x3d'"+p.properties.image_width+"'":"",A="\x3cimg "+A+" "+K+" style\x3d'padding-left: 5px' src\x3d'"+p.properties.image+"' border\x3d'0'\x3e";p.properties.hasOwnProperty("style")&&(D=" style\x3d'background-color: "+p.properties.style+"' ");p.properties.hasOwnProperty("link")&&(A="\x3ca target\x3d'__blank' href\x3d'"+p.properties.link+"'\x3e"+A+"\x3c/a\x3e");p.properties.hasOwnProperty("arrow")&&(E="\x3cimg height\x3d'10' width\x3d'10' style\x3d'padding-left: 5px' src\x3d'./images/arrow-"+
p.properties.arrow+".gif' border\x3d'0'\x3e");d+='\x3ctd class\x3d"data" '+D+"\x3e"+(y?'\x3cdiv class\x3d"datadiv" alt\x3d"'+p.properties.raw+'" rel\x3d"'+p.properties.position+'"\x3e':"")+A+E+(y?"\x3c/div\x3e":"")+"\x3c/td\x3e";v[ROWS]&&(d+=genTotalDataCells(F+1,H,B[ROWS],C[ROWS],v,y))}}d+="\x3c/tr\x3e";g="";v[COLUMNS]&&0<=H&&(g+=genTotalHeaderRowCells(H+1,B,C,v,y));s&&q?u<=q?(t||x||(c+="\x3c/thead\x3e\x3ctbody\x3e",x=!0),c+=d,0<g.length&&(c+=g)):(z.push(d),0<g.length&&z.push(g)):(t||x||(c+="\x3c/thead\x3e\x3ctbody\x3e",
x=!0),c+=d,0<g.length&&(c+=g))}b&&(b.batchResult=z,b.hasBatchResult=0<z.length);return"\x3ctable\x3e"+c+"\x3c/tbody\x3e\x3c/table\x3e"};
var SaikuChartRenderer=function(a,b){this.rawdata=a;this.cccOptions={};this.data=null;this.hasRendered=this.hasProcessed=!1;if(!b&&!b.hasOwnProperty("htmlObject"))throw"You need to supply a html object in the options for the SaikuChartRenderer!";this.el=$(b.htmlObject);this.id=_.uniqueId("chart_");$(this.el).html('\x3cdiv class\x3d"canvas_wrapper" style\x3d"display:none;"\x3e\x3cdiv id\x3d"canvas_'+this.id+'"\x3e\x3c/div\x3e\x3c/div\x3e');if(this.zoom=b.zoom){var c=this;$("\x3cspan style\x3d'float:left;' class\x3d'zoombuttons'\x3e\x3ca href\x3d'#' class\x3d'button rerender i18n' title\x3d'Re-render chart'\x3e\x3c/a\x3e\x3ca href\x3d'#' class\x3d'button zoomout i18n' style\x3d'display:none;' title\x3d'Zoom back out'\x3e\x3c/a\x3e\x3c/span\x3e").prependTo($(this.el).find(".canvas_wrapper"));
$(this.el).find(".zoomout").on("click",function(a){a.preventDefault();c.zoomout()});$(this.el).find(".zoomin").on("click",function(a){a.preventDefault();c.zoomin()});$(this.el).find(".rerender").on("click",function(a){a.preventDefault();$(c.el).find(".zoomout").hide();c.switch_chart(c.type)})}b.chartDefinition&&(this.chartDefinition=b.chartDefinition);this.cccOptions.canvas="canvas_"+this.id;this.adjustSizeTo=this.data=null;this.adjustSizeTo=b.adjustSizeTo?b.adjustSizeTo:b.htmlObject;this.rawdata&&
("sunburst"==this.type?this.process_data_tree({data:this.rawdata}):this.process_data_tree({data:this.rawdata},!0,!0));b.mode?this.switch_chart(b.mode):this.switch_chart("stackedBar");this.adjust()};SaikuChartRenderer.prototype.adjust=function(){var a=this,b=_.debounce(function(){a.hasRendered&&$(a.el).is(":visible")&&a.switch_chart(a.type)},300);$(window).resize(function(){$(a.el).find(".canvas_wrapper").fadeOut(150);b()})};
SaikuChartRenderer.prototype.zoomin=function(){$(this.el).find(".canvas_wrapper").hide();var a=this.chart.root,b=a.data;b.datums(null,{selected:!1}).each(function(a){a.setVisible(!1)});b.clearSelected();a.render(!0,!0,!1);this.render_chart_element()};
SaikuChartRenderer.prototype.zoomout=function(){var a=this.chart.root,b=a.data,c=a.keptVisibleDatumSet;null===c||0===c.length?$(this.el).find(".zoomout").hide():1==c.length?($(this.el).find(".zoomout").hide(),a.keptVisibleDatumSet=[],pvc.data.Data.setVisible(b.datums(null,{visible:!1}),!0)):1<c.length&&(a.keptVisibleDatumSet.splice(c.length-1,1),b=b.datums(null,{visible:!1}).array(),_.intersection(a.keptVisibleDatumSet[c.length-1],b).forEach(function(a){a.setVisible(!0)}));a.render(!0,!0,!1)};
SaikuChartRenderer.prototype.render=function(){_.delay(this.render_chart_element,0,this)};
SaikuChartRenderer.prototype.switch_chart=function(a,b){if(null!=b||void 0!=b){if(null!=b.chartDefinition||void 0!=b.chartDefinition)this.chartDefinition=b.chartDefinition;if(null!=b.workspace||void 0!=b.workspace)this.workspace=b.workspace}var c={stackedBar:{type:"BarChart",stacked:!0},bar:{type:"BarChart"},multiplebar:{type:"BarChart",multiChartIndexes:[1],dataMeasuresInColumns:!0,orientation:"vertical",smallTitlePosition:"top",multiChartMax:30,multiChartColumnsMax:Math.floor(this.cccOptions.width/
200),smallWidth:200,smallHeight:150},line:{type:"LineChart"},pie:{type:"PieChart",multiChartIndexes:[0]},heatgrid:{type:"HeatGridChart"},stackedBar100:{type:"NormalizedBarChart"},area:{type:"StackedAreaChart"},dot:{type:"DotChart"},waterfall:{type:"WaterfallChart"},treemap:{type:"TreemapChart"},sunburst:{type:"SunburstChart"},multiplesunburst:{type:"SunburstChart",multiChartIndexes:[1],dataMeasuresInColumns:!0,orientation:"vertical",smallTitlePosition:"top",multiChartMax:30,multiChartColumnsMax:Math.floor(this.cccOptions.width/
200),smallWidth:200,smallHeight:150,seriesInRows:!1}};null!==a&&""!==a&&("sunburst"==a?($(this.el).find(".zoombuttons a").hide(),this.type=a,c=c[a],this.sunburst(c),this.hasProcessed&&this.render()):c.hasOwnProperty(a)?($(this.el).find(".zoombuttons a").hide(),this.type=a,c=c[a],this.cccOptions=this.getQuickOptions(c),this.define_chart(),this.hasProcessed&&this.render()):alert("Do not support chart type: '"+a+"'"))};
SaikuChartRenderer.prototype.sunburst=function(a){this.type="sunburst";var b=this.process_data_tree({data:this.rawdata});a=this.getQuickOptions(a);var c=pv.dom(b).nodes();pv.colors(a.colors).by(function(a){return a.parentNode&&a.parentNode.nodeName});b=(new pv.Panel).width(a.width).height(a.height).canvas(a.canvas);c=b.add(pv.Layout.Partition.Fill).nodes(c).size(function(a){return a.nodeValue}).order("descending").orient("radial");c.node.add(pv.Wedge).fillStyle(pv.colors(a.colors).by(function(a){return a.parentNode&&
a.parentNode.nodeName})).visible(function(a){return 0<a.depth}).strokeStyle("#000").lineWidth(.5).text(function(a){var b="";"undefined"!=typeof a.nodeValue&&(b=" : "+a.nodeValue);return a.nodeName+b}).cursor("pointer").events("all").event("mousemove",pv.Behavior.tipsy({delayIn:200,delayOut:80,offset:2,html:!0,gravity:"nw",fade:!1,followMouse:!0,corners:!0,arrow:!1,opacity:1}));c.label.add(pv.Label).visible(function(a){return 6<=a.angle*a.outerRadius});this.chart=b};
SaikuChartRenderer.prototype.cccOptionsDefault={Base:{animate:!1,selectable:!0,valuesVisible:!1,legend:!0,legendPosition:"top",legendAlign:"right",compatVersion:2,legendSizeMax:"30%",axisSizeMax:"40%",plotFrameVisible:!1,orthoAxisMinorTicks:!1,colors:"#1f77b4 #aec7e8 #ff7f0e #ffbb78 #2ca02c #98df8a #d62728 #ff9896 #9467bd #c5b0d5 #8c564b #c49c94 #e377c2 #f7b6d2 #7f7f7f #c7c7c7 #bcbd22 #dbdb8d #17becf #9edae5".split(" ")},HeatGridChart:{orientation:"horizontal",useShapes:!0,shape:"circle",nullShape:"cross",
colorNormByCategory:!1,sizeRole:"value",legendPosition:"right",legend:!0,hoverable:!0,axisComposite:!0,colors:["red","yellow","lightgreen","darkgreen"],yAxisSize:"20%"},WaterfallChart:{orientation:"horizontal"},PieChart:{multiChartColumnsMax:3,multiChartMax:30,smallTitleFont:"bold 14px sans-serif",valuesVisible:!0,valuesMask:"{category} / {value.percent}",explodedSliceRadius:"10%",extensionPoints:{slice_innerRadiusEx:"40%",slice_offsetRadius:function(a){return a.isSelected()?"10%":0}},clickable:!0},
LineChart:{extensionPoints:{area_interpolate:"monotone",line_interpolate:"monotone"}},StackedAreaChart:{extensionPoints:{area_interpolate:"monotone",line_interpolate:"monotone"}},TreemapChart:{legendPosition:"right",multiChartIndexes:0,extensionPoints:{leaf_lineWidth:2},layoutMode:"slice-and-dice",valuesVisible:!0},SunburstChart:{valuesVisible:!1,hoverable:!1,selectable:!0,clickable:!1,multiChartIndexes:[0],multiChartMax:30}};
SaikuChartRenderer.prototype.getQuickOptions=function(a){var b=a&&a.type||"BarChart";a=_.extend({type:b,canvas:"canvas_"+this.id},this.cccOptionsDefault.Base,this.cccOptionsDefault[b],a);if(this.adjustSizeTo){var c=$(this.adjustSizeTo);c&&0<c.length&&(b=c.width()-40,c=c.height()-40,0<b&&(a.width=b),0<c&&(a.height=c))}null!==this.data&&5<this.data.resultset.length&&"HeatGridChart"!==a.type&&"horizontal"!==a.orientation&&(a.extensionPoints=_.extend(Object.create(a.extensionPoints||{}),{xAxisLabel_textAngle:-Math.PI/
2,xAxisLabel_textAlign:"right",xAxisLabel_textBaseline:"middle"}));a.colors=["#AE1717","#AE5B17","#0E6868"];return a};
SaikuChartRenderer.prototype.define_chart=function(a){this.hasProcessed||this.process_data_tree({data:this.rawdata},!0,!0);var b=this,c=this.adjustSizeTo?$(this.adjustSizeTo):$(this.el),d=null!==this.data&&80>this.data.height&&80>this.data.width,e=null!==this.data&&300>this.data.height&&300>this.data.width,e=!d&&!e,f=c.width()-40,g=c.height()-40,c=_.clone(this.cccOptions);a&&a.width&&(f=a.width);a&&a.height&&(g=a.height);0<f&&(c.width=f);0<g&&(c.height=g);e&&(c.hasOwnProperty("extensionPoints")&&
c.extensionPoints.hasOwnProperty("line_interpolate")&&delete c.extensionPoints.line_interpolate,c.hasOwnProperty("extensionPoints")&&c.extensionPoints.hasOwnProperty("area_interpolate")&&delete c.extensionPoints.area_interpolate);a={legend:{scenes:{item:{execute:function(){var a=this.chart();a.hasOwnProperty("keptVisibleDatumSet")||(a.keptVisibleDatumSet=[]);a=0<a.keptVisibleDatumSet.length?a.keptVisibleDatumSet[a.keptVisibleDatumSet.length-1]:[];0<a.length?_.intersection(this.datums().array(),a).forEach(function(a){a.toggleVisible()}):
pvc.data.Data.toggleVisible(this.datums());this.chart().render(!0,!0,!1)}}}},userSelectionAction:function(a){if(0===a.length)return[];var c=b.chart.root,d=c.data,e=this.chart;e.hasOwnProperty("keptVisibleDatumSet")||(e.keptVisibleDatumSet=[]);if(1500<d.datums().count())pvc.data.Data.setSelected(a,!0);else if(d.datums(null,{visible:!0}).count()==d.datums().count()){$(b.el).find(".zoomout, .rerender").show();var f=d.datums().array();_.each(_.difference(f,a),function(a){a.setVisible(!1)});e.keptVisibleDatumSet=
[];e.keptVisibleDatumSet.push(a)}else{f=0<e.keptVisibleDatumSet.length?e.keptVisibleDatumSet[e.keptVisibleDatumSet.length-1]:[];d=d.datums(null,{visible:!0}).array();d.length<f.length&&e.keptVisibleDatumSet.push(d);var g=[];_.each(_.difference(d,a),function(a){a.setVisible(!1)});_.each(_.intersection(d,a),function(a){g.push(a)});0<g.length&&e.keptVisibleDatumSet.push(g)}c.render(!0,!0,!1);return[]}};c=_.extend(c,{hoverable:d,animate:!1},this.chartDefinition);b.zoom&&(d=c.legend,c=_.extend(c,a),!1===
d&&(c.legend=!1));"TreemapChart"==c.type&&(c.legend.scenes.item.labelText=function(){var a="",b=this.group;if(b)switch(b=b.depth,b){case 0:return"";case 1:break;case 2:a=" └ ";break;default:a=Array(2*(b-2)+1).join(" ")+" └ "}return a+this.base()});this.chart=new pvc[c.type](c);this.chart.setData(this.data,{crosstabMode:!0,seriesInRows:!1})};
SaikuChartRenderer.prototype.render_chart_element=function(a){a=a||this;var b=null!==a.data&&300>a.data.height&&300>a.data.width,b=!(null!==a.data&&80>a.data.height&&80>a.data.width)&&!b,c=!1;a.chart.options&&a.chart.options.animate&&(c=!0);if(!c||$(a.el).find(".canvas_wrapper").is(":visible"))$(a.el).find(".canvas_wrapper"),$(a.el).find(".canvas_wrapper").hide();try{c&&$(a.el).find(".canvas_wrapper").show(),a.chart.render(),a.hasRendered=!0}catch(d){$("#canvas_"+a.id).text("Could not render chart"+
d)}if(a.chart.options&&a.chart.options.animate)return!1;isIE||b?$(a.el).find(".canvas_wrapper").show():$(a.el).find(".canvas_wrapper").fadeIn(400);return!1};
SaikuChartRenderer.prototype.process_data_tree=function(a,b,c){var d={};b&&(d.resultset=[],d.metadata=[],d.height=0,d.width=0);var e=d;if("undefined"!=typeof a&&"undefined"!=typeof a.data&&!(null!==a.data&&null!==a.data.error||null===a.data||a.data.cellset&&0===a.data.cellset.length)){var f=a.data.cellset;if(f&&0<f.length){var g=0,h=0,k=!1,l,m,n,r=function(a,b){return a+b};l=0;for(m=f.length;0===h&&l<m;l++)for(var q=0,s=f[l].length;q<s;q++){if(!k)for(;"COLUMN_HEADER"==f[l][q].type&&"null"==f[l][q].value;)l++;
k=!0;if("ROW_HEADER_HEADER"==f[l][q].type){for(;"ROW_HEADER_HEADER"==f[l][q].type;)b&&d.metadata.push({colIndex:q,colType:"String",colName:f[l][q].value}),q++;g=q-1}if("COLUMN_HEADER"==f[l][q].type){h=0;for(n=[];h<=l;)"null"!==f[h][q].value&&n.push(f[h][q].value),h++;b&&d.metadata.push({colIndex:q,colType:"Numeric",colName:n.join(" ~ ")});h=l+1}}k=[];for(n=0;n<=g;n++)k.push(null);l=h;for(m=f.length;l<m;l++)if(""!==f[l][0].value){s=[];n=[];q=h=null;for(n=0;n<=g;n++){if(f[l]&&"null"===f[l][n].value){for(var e=
d,t=0;t<g&&"null"===f[l][t].value;t++)e=e[k[t]];t>n&&(n=t)}if(f[l]&&"null"!==f[l][n].value){if(0===n)for(t=0;t<=g;t++)k[t]=null;"number"==typeof e&&(h[q]={},e=h[q]);q=f[l][n].value;k[n]=q;e.hasOwnProperty(q)||(e[q]={});h=e;e=e[q]}}n=_.clone(k);e=g+1;for(t=f[l].length;e<t;e++){var x=f[l][e],z=x.value||0,y=0!==z,v=x.properties.raw;v&&"null"!==v?z=parseFloat(v):"number"!==typeof x.value&&parseFloat(x.value.replace(/[^a-zA-Z 0-9.]+/g,""))&&(z=parseFloat(x.value.replace(/[^a-zA-Z 0-9.]+/g,"")),y=!1);0<
z&&y&&(z=x.value&&0<=x.value.indexOf("%")?100*z:z);s.push(z);n.push({f:x.value,v:z})}b&&d.resultset.push(n);e=_.reduce(s,r,0);q=null===q?"null":q;h[q]=e;e=d}c&&(this.rawdata=a.data,this.data=d,this.hasProcessed=!0,this.data.height=this.data.resultset.length);return d}$(this.el).find(".canvas_wrapper").text("No results").show()}};
var DataSources=Backbone.Model.extend({url:"admin/attacheddatasources",initialize:function(a,b){b&&b.dialog&&(this.dialog=b.dialog)},parse:function(a){this.dialog&&this.dialog.callback(a)}}),Cube=Backbone.Model.extend({initialize:function(a){this.url=Saiku.session.username+"/discover/"+a.key+"/metadata"},parse:function(a){var b=_.template($("#template-dimensions").html(),{dimensions:a.dimensions}),c=_.template($("#template-measures").html(),{measures:a.measures}),d=_.template($("#template-attributes").html(),
{cube:a});this.set({template_measures:c,template_dimensions:b,template_attributes:$(d).html(),data:a});"undefined"!==typeof localStorage&&localStorage&&localStorage.setItem("cube."+this.get("key"),JSON.stringify(this));return a}}),DimensionList=Backbone.View.extend({events:{"click span":"select","click a":"select","click .parent_dimension ul li a.level":"select_dimension","click .measure":"select_measure","click .addMeasure":"measure_dialog"},initialize:function(a){_.bindAll(this,"render","load_dimension",
"select_dimension");this.workspace=a.workspace;this.cube=a.cube},load_dimension:function(){this.template=this.cube.get("template_attributes");this.render_attributes();this.workspace.sync_query()},render:function(){if(this.cube&&this.cube.has("template_attributes"))this.load_dimension();else if(this.cube){var a=_.template($("#template-attributes").html());$(this.el).html(a);$(this.el).find(".loading").removeClass("hide");this.workspace.bind("cube:loaded",this.load_dimension)}else $(this.el).html("Could not load attributes. Please log out and log in again.");
return this},render_attributes:function(){$(this.el).html(this.template);isIE&&8>=isIE?$(this.el).show():$(this.el).fadeTo(500,1);$(this.el).find(".addMeasure, .calculated_measures").show();$(this.el).find(".measure").parent("li").draggable({cancel:".not-draggable",connectToSortable:$(this.workspace.el).find(".fields_list_body.details ul.connectable"),helper:"clone",placeholder:"placeholder",opacity:.6,tolerance:"touch",containment:$(this.workspace.el),cursorAt:{top:10,left:35}});$(this.el).find(".level").parent("li").draggable({cancel:".not-draggable, .hierarchy",
connectToSortable:$(this.workspace.el).find(".fields_list_body.columns \x3e ul.connectable, .fields_list_body.rows \x3e ul.connectable, .fields_list_body.filter \x3e ul.connectable"),containment:$(this.workspace.el),helper:function(a,b){var c=$(a.target).hasClass("d_level")?$(a.target):$(a.target).parent(),d=c.find("a").attr("hierarchy"),e=c.find("a").attr("level"),c=c.parent().clone().removeClass("d_hierarchy").addClass("hierarchy");c.find('li a[hierarchy\x3d"'+d+'"]').parent().hide();c.find('li a[level\x3d"'+
e+'"]').parent().show();d=$('\x3cli class\x3d"selection"\x3e\x3c/li\x3e');d.append(c);return d},placeholder:"placeholder",opacity:.6,tolerance:"touch",cursorAt:{top:10,left:85}})},select:function(a){a=$(a.target).hasClass("root")?$(a.target):$(a.target).parent().find("span");a.hasClass("root")&&(a.find("a").toggleClass("folder_collapsed").toggleClass("folder_expand"),a.toggleClass("collapsed").toggleClass("expand"),a.parents("li").find("ul").children("li").toggle(),a.hasClass("expand")&&Saiku.events.trigger("workspace:expandDimension",
this,null));return!1},select_dimension:function(a,b){if("QUERYMODEL"==this.workspace.query.model.type)if($(a.target).parent().hasClass("ui-state-disabled"))a.preventDefault(),a.stopPropagation();else{var c=$(a.target).attr("hierarchy");$(a.target).parent().parent().attr("hierarchycaption");var d=$(a.target).attr("level"),e="ROWS",f=$(a.target).parent().hasClass("dimension-level-calcmember"),e=0<$(this.workspace.el).find(".workspace_fields ul.hierarchy[hierarchy\x3d'"+c+"']").length?$(this.workspace.el).find(".workspace_fields ul[hierarchy\x3d'"+
c+"'] a[level\x3d'"+d+"']").parent().show().parents(".fields_list_body").hasClass("rows")?"ROWS":"COLUMNS":(0<$(this.workspace.el).find(".workspace_fields .fields_list[title\x3d'ROWS'] ul.hierarchy").length?$(this.workspace.el).find(".workspace_fields .fields_list[title\x3d'COLUMNS'] ul.connectable"):$(this.workspace.el).find(".workspace_fields .fields_list[title\x3d'ROWS'] ul.connectable")).parents(".fields_list").attr("title");f?(f=$(a.target).attr("uniquename"),this.workspace.toolbar.$el.find(".group_parents").removeClass("on"),
this.workspace.toolbar.group_parents(),this.workspace.query.helper.includeLevelCalculatedMember(e,c,d,f)):this.workspace.query.helper.includeLevel(e,c,d);Saiku.session.trigger("dimensionList:select_dimension",{workspace:this.workspace});this.workspace.sync_query();this.workspace.query.run();a.preventDefault();return!1}},select_measure:function(a,b){if(!$(a.target).parent().hasClass("ui-state-disabled")){var c=$(a.target).parent().clone(),c={name:c.find("a").attr("measure"),type:c.find("a").attr("type")};
this.workspace.query.helper.includeMeasure(c);this.workspace.sync_query();this.workspace.query.run();a.preventDefault();return!1}},measure_dialog:function(a,b){(new CalculatedMemberModal({workspace:this.workspace,measure:null})).render().open()}}),Toolbar=Backbone.View.extend({tagName:"div",events:{"click a":"call","click #logo":"site"},template:function(){return _.template($("#template-toolbar").html())({data:this})},initialize:function(){_.extend(this,Backbone.Events);_.bindAll(this,"call");this.logo=
Settings.LOGO?"\x3ch1 id\x3d'logo_override'\x3e\x3cimg src\x3d'"+Settings.LOGO+"'/\x3e\x3c/h1\x3e":"\x3ch1 id\x3d'logo'\x3e\x3ca href\x3d'http://www.meteorite.bi/' title\x3d'Saiku - Next Generation Open Source Analytics' target\x3d'_blank' class\x3d'sprite'\x3eSaiku\x3c/a\x3e\x3c/h1\x3e";this.render()},render:function(){$(this.el).attr("id","toolbar").html(this.template());Saiku.events.trigger("toolbar:render",{toolbar:this});return this},call:function(a){var b=$(a.target).attr("href").replace("#",
"");if(this[b])this[b](a);a.preventDefault()},new_query:function(){"undefined"!=typeof ga&&ga("send","event","MainToolbar","New Query");var a=new Workspace;Saiku.tabs.add(a);Saiku.events.trigger("toolbar:new_query",this,a);return!1},open_query:function(){var a=_.find(Saiku.tabs._tabs,function(a){return a.content instanceof OpenQuery});a?a.select():Saiku.tabs.add(new OpenQuery);return!1},logout:function(){Saiku.session.logout()},about:function(){(new AboutModal).render().open();return!1},issue_tracker:function(){window.open("http://jira.meteorite.bi/");
return!1},help:function(){window.open("http://wiki.meteorite.bi/display/SAIK/Saiku+Documentation");return!1},site:function(){window.open("http://www.meteorite.bi/");return!1}}),Upgrade=Backbone.View.extend({events:{},initialize:function(a,b){this.workspace=a.workspace;this.workspace.trigger("workspace:toolbar:render",{workspace:this.workspace})},daydiff:function(a,b){return Math.round((b-a)/864E5)},render:function(){new License;if(Settings.BIPLUGIN5){void 0!=Saiku.session.get("notice")&&null!=Saiku.session.get("notice")&&
""!=Saiku.session.get("notice")&&$(this.el).append("\x3cdiv\x3e\x3cdiv id\x3d'uphead' class\x3d'upgradeheader'\x3eNotice:"+Saiku.session.get("notice")+"\x3c/div\x3e");if(void 0!=Settings.LICENSE.licenseType&&"trial"!=Settings.LICENSE.licenseType&&"Open Source License"!=Settings.LICENSE.licenseType)return this;if(void 0!=Settings.LICENSE&&"trial"===Settings.LICENSE.licenseType){var a=parseFloat(Settings.LICENSE.expiration),a=new Date(a);this.remainingdays=this.daydiff(new Date,a);$(this.el).append("\x3cdiv\x3e\x3cdiv id\x3d'uphead' class\x3d'upgradeheader'\x3eYou are using a Saiku Enterprise Trial license, you have "+
this.remainingdays+" days remaining. \x3ca href\x3d'http://www.meteorite.bi/saiku-pricing'\x3eBuy licenses online.\x3c/a\x3e\x3c/div\x3e")}else $(this.el).append("\x3cdiv\x3e\x3cdiv id\x3d'uphead' class\x3d'upgradeheader'\x3eYou are using Saiku Community Edition, please consider upgrading to \x3ca target\x3d'_blank' href\x3d'http://meteorite.bi'\x3eSaiku Enterprise\x3c/a\x3e, or entering a \x3ca href\x3d'http://meteorite.bi/products/saiku/sponsorship'\x3esponsorship agreement with us\x3c/a\x3e to support development. \x3ca href\x3d'http://meteorite.bi/products/saiku/community'\x3eOr contribute by joining our community and helping other users!\x3c/a\x3e\x3c/div\x3e\x3c/div\x3e")}else{void 0!=
Saiku.session.get("notice")&&null!=Saiku.session.get("notice")&&""!=Saiku.session.get("notice")&&$(this.el).append("\x3cdiv\x3e\x3cdiv id\x3d'uphead' class\x3d'upgradeheader'\x3eNotice:"+Saiku.session.get("notice")+"\x3c/div\x3e");if(void 0!=Settings.LICENSE.licenseType&&"trial"!=Settings.LICENSE.licenseType&&"Open Source License"!=Settings.LICENSE.licenseType)return this;"trial"===Settings.LICENSE.licenseType?(a=parseFloat(Settings.LICENSE.expiration),a=new Date(a),this.remainingdays=this.daydiff(new Date,
a),$(this.el).append("\x3cdiv\x3e\x3cdiv id\x3d'uphead' class\x3d'upgradeheader'\x3eYou are using a Saiku Enterprise Trial license, you have "+this.remainingdays+" days remaining. \x3ca href\x3d'http://www.meteorite.bi/saiku-pricing'\x3eBuy licenses online.\x3c/a\x3e\x3c/div\x3e")):$(this.el).append("\x3cdiv\x3e\x3cdiv id\x3d'uphead' class\x3d'upgradeheader'\x3eYou are using Saiku Community Edition, please consider upgrading to \x3ca target\x3d'_blank' href\x3d'http://meteorite.bi'\x3eSaiku Enterprise\x3c/a\x3e, or entering a \x3ca href\x3d'http://meteorite.bi/products/saiku/sponsorship'\x3esponsorship agreement with us\x3c/a\x3e to support development. \x3ca href\x3d'http://meteorite.bi/products/saiku/community'\x3eOr contribute by joining our community and helping other users!\x3c/a\x3e\x3c/div\x3e\x3c/div\x3e")}return this},
call:function(a){}}),Modal=Backbone.View.extend({tagName:"div",className:"dialog",type:"modal",message:"Put content here",options:{autoOpen:!1,modal:!0,title:"Modal dialog",resizable:!1,draggable:!0},events:{"click a":"call"},buttons:[{text:"OK",method:"close"}],template:function(){return _.template("\x3cdiv class\x3d'dialog_icon'\x3e\x3c/div\x3e\x3cdiv class\x3d'dialog_body'\x3e\x3c%\x3d message %\x3e\x3c/div\x3e\x3cdiv class\x3d'dialog_footer'\x3e\x3c% _.each(buttons, function(button) { %\x3e\x3ca class\x3d'form_button btn btn-default i18n' href\x3d'#\x3c%\x3d button.method %\x3e'\x3e\x26nbsp;\x3c%\x3d button.text %\x3e\x26nbsp;\x3c/a\x3e\x3c% }); %\x3e\x3cdiv class\x3d'dialog_response'\x3e\x3c/div\x3e\x3c/div\x3e")(this)},
initialize:function(a){_.extend(this,a);_.bindAll(this,"call");_.extend(this,Backbone.Events)},render:function(){$(this.el).html(this.template()).addClass("dialog_"+this.type).dialog(this.options);var a=$(".ui-dialog-title");a.html(this.options.title);a.addClass("i18n");Saiku.i18n.translate();return this},call:function(a){var b=a.target.hash.replace("#","");if(!$(a.target).hasClass("disabled_toolbar")&&this[b])this[b](a);return!1},open:function(){$(this.el).dialog("open");this.trigger("open",{modal:this});
return this},close:function(){$(this.el).dialog("destroy").remove();$(this.el).remove();return!1}});$.ui.dialog.prototype._allowInteraction=function(a){return!!$(a.target).closest(".ui-dialog, .ui-datepicker, .sp-input").length};
var MDXModal=Modal.extend({type:"mdx",initialize:function(a){this.options.title="MDX";this.message=_.template("\x3ctextarea\x3e\x3c%\x3d mdx %\x3e\x3c/textarea\x3e")(a);this.bind("open",function(){$(this.el).parents(".ui-dialog").css({width:"550px"})})}}),SelectionsModal=Modal.extend({type:"selections",paramvalue:null,buttons:[{text:"OK",method:"save"},{text:"Open Date Filter",method:"open_date_filter"},{text:"Cancel",method:"close"}],events:{"click a":"call","click .search_term":"search_members",
"click .clear_search":"clear_search","change #show_unique":"show_unique_action","change #use_result":"use_result_action","dblclick .selection_options li.option_value label":"click_move_selection","click li.all_options":"click_all_member_selection","change #show_totals":"show_totals_action"},show_unique_option:!1,use_result_option:Settings.MEMBERS_FROM_RESULT,show_totals_option:"",members_limit:Settings.MEMBERS_LIMIT,members_search_limit:Settings.MEMBERS_SEARCH_LIMIT,members_search_server:!1,selection_type:"INCLUSION",
initialize:function(a){_.extend(this,a);this.options.title="\x3cspan class\x3d'i18n'\x3eSelections for\x3c/span\x3e "+this.name;this.message="Fetching members...";this.query=a.workspace.query;this.selected_members=[];this.available_members=[];this.topLevel;_.bindAll(this,"fetch_members","populate","finished","get_members","use_result_action","show_totals_action");this.axis="undefined";a.axis?(this.axis=a.axis,"FILTER"==a.axis&&(this.use_result_option=!1)):(a.target.parents(".fields_list_body").hasClass("rows")&&
(this.axis="ROWS"),a.target.parents(".fields_list_body").hasClass("columns")&&(this.axis="COLUMNS"),a.target.parents(".fields_list_body").hasClass("filter")&&(this.axis="FILTER",this.use_result_option=!1));this.bind("open",this.post_render);this.render();$(this.el).parent().find(".ui-dialog-titlebar-close").bind("click",this.finished);this.member=new Member({},{cube:a.workspace.selected_cube,dimension:a.key});$(this.el).find(".dialog_body").html(_.template($("#template-selections").html())(this));
var b=this.member.level;a=this.workspace.query.helper.getHierarchy(this.member.hierarchy);var c=null;a&&a.levels.hasOwnProperty(b)&&(c=a.levels[b]);"DateFilterModal"===this.source&&_.has(c,"selection")&&0===c.selection.members.length||"DateFilterModal"===this.source&&1===_.size(c)&&_.has(c,"name")?this.$el.find(".dialog_footer a:nth-child(2)").show():this.$el.find(".dialog_footer a:nth-child(2)").hide();Settings.ALLOW_PARAMETERS&&(c&&(b=c.selection?c.selection.parameterName:null)&&($(this.el).find("#parameter").val(b),
void 0!=this.query.helper.model().parameters[b]&&(this.paramvalue=this.query.helper.model().parameters[b].split(","))),$(this.el).find(".parameter").removeClass("hide"));b=$(this.el).find("#show_totals");b.val("");1<_.size(a.levels)&&c&&c.hasOwnProperty("aggregators")&&c.aggregators?(0<c.aggregators.length&&(this.show_totals_option=c.aggregators[0]),b.removeAttr("disabled")):(b.attr("disabled",!0),this.show_totals_option="");b.val(this.show_totals_option);b.removeAttr("disabled");$(this.el).find("#use_result").attr("checked",
this.use_result_option);$(this.el).find(".search_limit").text(this.members_search_limit);$(this.el).find(".members_limit").text(this.members_limit);0<this.workspace.query.helper.getCalculatedMembers().length?this.fetch_calcmembers_levels():this.get_members()},open_date_filter:function(a){a.preventDefault();(new DateFilterModal({dimension:this.objDateFilter.dimension,hierarchy:this.objDateFilter.hierarchy,target:this.target,name:this.name,data:this.objDateFilter.data,analyzerDateFormat:this.objDateFilter.analyzerDateFormat,
dimHier:this.objDateFilter.dimHier,key:this.key,workspace:this.workspace})).open();this.$el.dialog("destroy").remove()},show_totals_action:function(a){this.show_totals_option=$(a.target).val()},get_members:function(){var a=this,b="/result/metadata/hierarchies/"+encodeURIComponent(this.member.hierarchy)+"/levels/"+encodeURIComponent(this.member.level);this.search_path=b;a.workspace.block('\x3cspan class\x3d"processing_image"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e \x3cspan class\x3d"i18n"\x3e'+a.message+
"\x3c/span\x3e ");this.workspace.query.action.gett(b,{success:this.fetch_members,error:function(){a.workspace.unblock()},data:{result:this.use_result_option,searchlimit:this.members_limit}})},clear_search:function(){$(this.el).find(".filterbox").val("");this.get_members()},search_members:function(){var a=this,b=$(this.el).find(".filterbox").val();if(!b)return!1;a.workspace.block('\x3cspan class\x3d"processing_image"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e \x3cspan class\x3d"i18n"\x3eSearching for members matching:\x3c/span\x3e '+
b);a.workspace.query.action.gett(a.search_path,{async:!1,success:function(b,d){d&&0<d.length&&(a.available_members=d);a.populate()},error:function(){a.workspace.unblock()},data:{search:b,searchlimit:a.members_search_limit}})},fetch_calcmembers_levels:function(){var a=this.member.hierarchy.split("].["),b=!0;1===a.length&&(b=!1,a=this.member.hierarchy.split("."));if(1<a.length)var c=a[1].replace(/[\[\]]/gi,"");a=a[0].replace(/[\[\]]/gi,"");this.workspace.block('\x3cspan class\x3d"processing_image"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e \x3cspan class\x3d"i18n"\x3e'+
this.message+"\x3c/span\x3e ");b||(c=void 0!=c?a+"."+c:a);(new Level({},{ui:this,cube:this.workspace.selected_cube,dimension:a,hierarchy:c})).fetch({success:this.get_levels})},get_levels:function(a,b){b&&0<b.length&&(a.ui.topLevel=b[0],a.ui.get_members())},get_calcmembers:function(){var a=this,b=this.member.hierarchy,c=this.workspace.query.helper.getCalculatedMembers(),d=[];this.topLevel.name===this.member.level?_.filter(c,function(a){a.hierarchyName===b&&_.isEmpty(a.parentMember)&&(a.uniqueName=
a.hierarchyName+".["+a.name+"]",d.push(a))}):_.filter(c,function(c){c.hierarchyName===b&&c.parentMemberLevel===a.member.level&&(c.uniqueName=c.parentMember+".["+c.name+"]",d.push(c))});return d},fetch_members:function(a,b){var c=this;b&&0<b.length&&_.each(b,function(a){var b=c.workspace.query.helper.getCalculatedMembers(),f=!1;b&&0<b.length&&_.each(b,function(b){b.uniqueName===a.uniqueName&&(f=!0)});c.available_members.push({obj:a,calc:f})});this.populate()},populate:function(a,b){var c=this;c.workspace.unblock();
this.members_search_server=this.available_members.length>=this.members_limit||0==this.available_members.length;c.show_unique_option=!1;$(this.el).find(".options #show_unique").attr("checked",!1);var d=this.workspace.query.helper.getCalculatedMembers();if(0<d.length)for(var e=this.get_calcmembers(),f=e.length,g=0;g<f;g++){var h=!1;d&&0<d.length&&_.each(d,function(a){a.uniqueName===e[g].uniqueName&&(h=!0)});this.available_members.push({obj:e[g],calc:h})}$(this.el).find(".items_size").text(this.available_members.length);
this.members_search_server?$(this.el).find(".warning").text("More items available than listed. Pre-Filter on server."):$(this.el).find(".warning").text("");f=c.member.level;(d=c.workspace.query.helper.getHierarchy(c.member.hierarchy))&&d.levels.hasOwnProperty(f)&&(this.selected_members=[],d.levels[f].selection&&_.each(d.levels[f].selection.members,function(a){var b=c.workspace.query.helper.getCalculatedMembers(),d=!1;b&&0<b.length&&_.each(b,function(b){b.uniqueName===a.uniqueName&&(d=!0)});c.selected_members.push({obj:a,
calc:d})}),this.selection_type=d.levels[f].selection?d.levels[f].selection.type:"INCLUSION");for(var k=[],d=0,f=this.selected_members.length;d<f;d++)k.push(this.selected_members[d].obj.caption);0==$(this.el).find(".used_selections .selection_options li.option_value").length&&(d=$(this.el).find(".used_selections .selection_options"),d.empty(),f=_.template($("#template-selections-options").html())({options:this.selected_members}),$(d).html(f));this.available_members=_.select(this.available_members,
function(a){return-1===k.indexOf(a.obj.caption)});0<this.available_members.length&&(d=$(this.el).find(".available_selections .selection_options"),d.empty(),f=_.template($("#template-selections-options").html())({options:this.available_members}),$(d).html(f));0<$(c.el).find(".selection_options.ui-selectable").length&&$(c.el).find(".selection_options").selectable("destroy");$(c.el).find(".selection_options").selectable({distance:20,filter:"li",stop:function(a,b){$(c.el).find(".selection_options li.ui-selected input").each(function(a,
b){b&&b.hasAttribute("checked")?b.checked=!0:$(b).attr("checked",!0);$(b).parents(".selection_options").find("li.all_options input").prop("checked",!0)});$(c.el).find(".selection_options li.ui-selected").removeClass("ui-selected")}});$(this.el).find(".filterbox").autocomplete({minLength:1,delay:200,appendTo:".autocomplete",source:function(a,b){var d=0==c.show_unique_option?"caption":"name",e=$.map(c.available_members,function(b){var e=b.obj;void 0===e?(e=b,b=e[d]):b=e.caption;if(-1<b.toLowerCase().indexOf(a.term.toLowerCase()))return{label:0==
c.show_unique_option?e.caption:e.uniqueName,value:0==c.show_unique_option?e.uniqueName:e.caption}});b(e)},select:function(a,b){encodeURIComponent(b.item.value);var d=b.item.label,e=0==c.show_unique_option?b.item.value:b.item.label,f=0==c.show_unique_option?b.item.label:b.item.value;$(c.el).find('.available_selections .selection_options input[value\x3d"'+encodeURIComponent(e)+'"]').parent().remove();$(c.el).find('.used_selections .selection_options input[value\x3d"'+encodeURIComponent(e)+'"]').parent().remove();
d='\x3cli class\x3d"option_value"\x3e\x3cinput type\x3d"checkbox" class\x3d"check_option" value\x3d"'+encodeURIComponent(e)+'" label\x3d"'+encodeURIComponent(f)+'"\x3e'+d+"\x3c/input\x3e\x3c/li\x3e";$(d).appendTo($(c.el).find(".used_selections .selection_options ul"));$(c.el).find(".filterbox").val("");b.item.value=""},close:function(a,b){},open:function(a,b){}});$(this.el).find(".filterbox").autocomplete("enable");"EXCLUSION"===this.selection_type?($(this.el).find(".selection_type_inclusion").prop("checked",
!1),$(this.el).find(".selection_type_exclusion").prop("checked",!0)):($(this.el).find(".selection_type_inclusion").prop("checked",!0),$(this.el).find(".selection_type_exclusion").prop("checked",!1));Saiku.i18n.translate();Saiku.ui.unblock()},post_render:function(a){var b=($(window).width()-1E3)/2,c=1040>$(window).width()?$(window).width():1040;$(a.modal.el).parents(".ui-dialog").css({width:c,left:"inherit",margin:"0",height:585}).offset({left:b});$("#filter_selections").attr("disabled",!1);$(this.el).find("a[href\x3d#save]").focus();
$(this.el).find("a[href\x3d#save]").blur()},move_selection:function(a){a.preventDefault();a=$(a.target).attr("id");var b=-1!==a.indexOf("add")?$(this.el).find(".used_selections .selection_options ul"):$(this.el).find(".available_selections .selection_options ul"),c=-1!==a.indexOf("add")?$(this.el).find(".available_selections .selection_options ul"):$(this.el).find(".used_selections .selection_options ul");(-1!==a.indexOf("all")?c.find("li.option_value input").parent():c.find("li.option_value input:checked").parent()).detach().appendTo(b);
$(this.el).find(".selection_options ul li.option_value input:checked").prop("checked",!1);$(this.el).find(".selection_options li.all_options input").prop("checked",!1)},updown_selection:function(a){a.preventDefault();return!1},click_all_member_selection:function(a,b){$(a.currentTarget).find("input").is(":checked")?$(a.currentTarget).parent().find("li.option_value input").prop("checked",!0):$(a.currentTarget).parent().find("li.option_value input").removeAttr("checked")},click_move_selection:function(a,
b){a.preventDefault();var c=$(a.target).parent().parent().parent().parent().hasClass("used_selections")?".available_selections":".used_selections";$(a.target).parent().appendTo($(this.el).find(c+" .selection_options ul"))},show_unique_action:function(){this.show_unique_option=!this.show_unique_option;!0===this.show_unique_option?($(this.el).find(".available_selections, .used_selections").addClass("unique"),$(this.el).find(".available_selections, .used_selections").removeClass("caption")):($(this.el).find(".available_selections, .used_selections").addClass("caption"),
$(this.el).find(".available_selections, .used_selections").removeClass("unique"))},use_result_action:function(){this.use_result_option=!this.use_result_option;this.get_members()},save:function(){var a=this,b=$("\x3cdiv\x3eSaving...\x3c/div\x3e");$(this.el).find(".dialog_body").children().hide();$(this.el).find(".dialog_body").prepend(b);var c=decodeURIComponent(a.member.hierarchy),d=decodeURIComponent(a.member.level),b=a.workspace.query.helper.getHierarchy(c),e=[],f=this.show_totals_option;0!==$(this.el).find(".used_selections input").length&&
(a.workspace.query.helper.removeAllLevelCalculatedMember(c),$(this.el).find(".used_selections .option_value input").each(function(b,f){var g=$(f).val();if($(f).hasClass("cmember")){var m=$(f).attr("label");a.workspace.toolbar.group_parents();a.workspace.query.helper.includeLevelCalculatedMember(a.axis,c,d,decodeURIComponent(g),0);e.push({uniqueName:decodeURIComponent(g),caption:decodeURIComponent(m),type:"calculatedmember"})}else m=$(f).attr("label"),e.push({uniqueName:decodeURIComponent(g),caption:decodeURIComponent(m)})}));
var g=$("#parameter").val();b&&b.levels.hasOwnProperty(d)&&(b.levels[d].aggregators=[],f&&b.levels[d].aggregators.push(f),f=$(a.el).find("input.selection_type:checked").val(),b.levels[d].selection={type:f?f:"INCLUSION",members:e},Settings.ALLOW_PARAMETERS&&g&&(b.levels[d].selection.parameterName=g,a.workspace.query.helper.model()));this.finished()},finished:function(){$("#filter_selections").remove();this.available_members=null;$(this.el).find(".filterbox").autocomplete("destroy").remove();$(this.el).dialog("destroy");
$(this.el).remove();this.query.run()}}),DrillthroughModal=Modal.extend({type:"drillthrough",buttons:[{text:"Ok",method:"ok"},{text:"Cancel",method:"close"}],events:{"click .collapsed":"select","click .expand":"select","click .folder_collapsed":"select","click .folder_expanded":"select","click .dialog_footer a":"call","click .parent_dimension input":"select_dimension","click .measure_tree input":"select_measure","click input.all_measures":"select_all_measures","click input.all_dimensions":"select_all_dimensions"},
allMeasures:!1,templateContent:function(){return $("#template-drillthrough").html()},initialize:function(a){_.extend(this,a);this.options.title=a.title;this.query=a.workspace.query;this.position=a.position;this.action=a.action;Saiku.ui.unblock();_.bindAll(this,"ok","drilled","template");this.render();$(this.el).find(".dialog_body").html(_.template(this.templateContent())(this));$(this.el).find(".maxrows").val(this.maxrows);this.query.get("schema");a=$("#template-drillthrough-list").html();var b=Saiku.session.sessionworkspace.cube[e],
c=null,d=null,e=this.workspace.selected_cube;b&&b.has("data")&&(c=b.get("data").dimensions,d=b.get("data").measures);b&&c&&d||("undefined"!==typeof localStorage&&localStorage&&null!==localStorage.getItem("cube."+e)?Saiku.session.sessionworkspace.cube[e]=new Cube(JSON.parse(localStorage.getItem("cube."+e))):(Saiku.session.sessionworkspace.cube[e]=new Cube({key:e}),Saiku.session.sessionworkspace.cube[e].fetch({async:!1})),c=Saiku.session.sessionworkspace.cube[e].get("data").dimensions,d=Saiku.session.sessionworkspace.cube[e].get("data").measures);
e=_.template($("#template-drillthrough-dimensions").html())({dimensions:c});d=_.template($("#template-drillthrough-measures").html())({measures:d,allMeasures:this.allMeasures});$(a).appendTo($(this.el).find(".dialog_body"));$(this.el).find(".sidebar").height($("body").height()/2+$("body").height()/6);$(this.el).find(".sidebar").width(380);$(this.el).find(".dimension_tree").html("").append($(e));$(this.el).find(".measure_tree").html("").append($(d));Saiku.i18n.translate()},select:function(a){a=$(a.target).hasClass("root")?
$(a.target):$(a.target).parent().find("span");a.hasClass("root")&&(a.find("a").toggleClass("folder_collapsed").toggleClass("folder_expand"),a.toggleClass("collapsed").toggleClass("expand"),a.parents("li").find("ul").children("li").toggle());return!1},select_dimension:function(a){a=$(a.target);var b=a.is(":checked");a.parent().find("input").attr("checked",b)},select_all_dimensions:function(a){a=$(a.target).is(":checked");$(this.el).find(".dimension_tree input").attr("checked",a)},select_all_measures:function(a){a=
$(a.target).is(":checked");$(this.el).find(".measure_tree input").attr("checked",a)},select_measure:function(a){$(a.target).is(":checked")},ok:function(){"undefined"!=typeof ga&&ga("send","event","Drillthrough","Execute");var a=$("\x3cdiv\x3eDrilling through...\x3c/div\x3e");$(this.el).find(".dialog_body").children().hide();$(this.el).find(".dialog_body").prepend(a);var b="";$(this.el).find(".check_level:checked").each(function(a){0<a&&(b+=", ");b+=$(this).val()});var a=$(this.el).find(".maxrows").val(),
c;c="?maxrows\x3d"+a+("undefined"!==typeof this.position?"\x26position\x3d"+this.position:"");c+="\x26returns\x3d"+b;"export"==this.action?(a=Settings.REST_URL+"api/query/"+this.query.id+"/drillthrough/export/csv"+c,this.close(),window.open(a)):"table"==this.action&&(Saiku.ui.block("Executing drillthrough..."),this.query.action.gett("/drillthrough",{data:{position:this.position,maxrows:a,returns:b},success:this.drilled}),this.close());return!1},drilled:function(a,b){var c="",c=null!=b&&null!=b.error?
safe_tags_replace(b.error):(new SaikuTableRenderer).render(b);Saiku.ui.unblock();c='\x3cdiv id\x3d"fancy_results" class\x3d"workspace_results" style\x3d"overflow:visible"\x3e'+c+"\x3c/div\x3e";this.remove();$.fancybox(c,{autoDimensions:!1,autoScale:!1,height:$("body").height()-100,width:$("body").width()-100,transitionIn:"none",transitionOut:"none"})},finished:function(){$(this.el).dialog("destroy").remove();this.query.run()}}),DrillAcrossModal=DrillthroughModal.extend({allMeasures:!0,templateContent:function(){return $("#template-drillacross").html()},
ok:function(){"undefined"!=typeof ga&&ga("send","event","DrillAcross","Execute");var a=this,b={};$(this.el).find(".check_level:checked").each(function(a){a=$(this).attr("key");b[a]||(b[a]=[]);b[a].push($(this).val())});Saiku.ui.block("Executing drillacross...");this.query.action.post("/drillacross",{data:{position:this.position,drill:JSON.stringify(b)},success:function(b,d){a.workspace.query.parse(d);a.workspace.unblock();a.workspace.sync_query();a.workspace.query.run()},error:function(b,d,e){a.workspace.unblock();
b="";d&&d.hasOwnProperty("responseText")&&(b=d.responseText);alert("Error drilling across. Check logs! "+b)}});this.close();return!1}}),PermissionsModal=Modal.extend({type:"permissions",buttons:[{text:"Ok",method:"ok"},{text:"Cancel",method:"close"}],events:{"click .add_role":"add_role","click .remove_acl":"remove_acl","submit form":"add_role","click a":"call","click input.private":"keep_private"},rolesacl:{},acltype:"SECURED",initialize:function(a){_.extend(this,a);this.options.title=a.title;this.file=
a.file;this.rolesacl={};Saiku.ui.unblock();_.bindAll(this,"ok","add_role","remove_acl");this.bind("open",Saiku.i18n.translate());this.render();$(this.el).find(".dialog_body").html(_.template($("#template-permissions").html())(this));$(this.el).find(".filterbox").autocomplete({minLength:1,source:Saiku.session.roles}).data("autocomplete");a=new RepositoryAclObject({file:this.file});a.fetch({async:!1});var b="undefined"==typeof a.get("roles")||null===a.get("roles")?{}:a.get("roles");this.rolesacl=b;
b=_.template($("#template-permissions-rolelist").html())({roles:b});$(this.el).find(".rolelist").html(b);b="undefined"==typeof a.get("owner")||null===a.get("owner")?"":a.get("owner");a="undefined"==typeof a.get("type")||null===a.get("type")?null:a.get("type");null!==a&&"PRIVATE"==a&&($(this.el).find(".private_owner .owner").text(b),$(this.el).find(".private_owner").show());$(this.el).find(".i18n").i18n(Saiku.i18n.po_file)},add_role:function(a){a.preventDefault();if("PRIVATE"==this.acltype)return!1;
a=$(this.el).find(".filterbox").val();var b=[],c="",d=0;a&&0<a.length&&($(this.el).find(".acl:checked").each(function(a){0<a&&(c+=", ");d++;c+=$(this).val();b.push($(this).val())}),0<d?(this.rolesacl[a]=b,$("\x3coption value\x3d'"+a+"'\x3e"+a+" ["+c+"]\x3c/option\x3e").appendTo($(this.el).find(".select_roles")),a=$(this.el).find(".filterbox").val("")):alert("You need to chose at least one ACL method for this role."));return!1},keep_private:function(a){$(this.el).find("input.private").is(":checked")?
($(this.el).find(".permissions").addClass("disabled_toolbar"),$("input.acl, input.filterbox, input.add_role, input.remove_acl").prop("disabled",!0),this.acltype="PRIVATE"):($(this.el).find(".permissions").removeClass("disabled_toolbar"),$("input.acl, input.filterbox, input.add_role, input.remove_acl").prop("disabled",!1),this.acltype="SECURED")},remove_acl:function(a){var b=this;if("PRIVATE"==this.acltype)return!1;$(this.el).find(".select_roles option:selected").each(function(a){delete b.rolesacl[$(this).val()]});
$(this.el).find(".select_roles option:selected").remove();return!1},ok:function(){var a=this.close(),b={},b="PRIVATE"==this.acltype?{type:"PRIVATE",owner:Saiku.session.username}:{type:"SECURED",roles:this.rolesacl,owner:Saiku.session.username};(new RepositoryAclObject({file:this.file,acl:JSON.stringify(b)})).save({success:a});return!1}}),DemoLoginForm=Modal.extend({type:"login",message:"\x3cform id\x3d'demo_form'\x3e\x3clabel for\x3d'email'\x3eEmail:\x3c/label\x3e\x3cinput type\x3d'text' id\x3d'email' name\x3d'email' value\x3d'' /\x3e\x3c/form\x3e",
buttons:[{text:"Start Demo",method:"login"}],events:{"click a":"call","submit form ":"login"},initialize:function(a){_.extend(this,a);_.bindAll(this,"adjust");this.options.title=Settings.VERSION;this.bind("open",this.adjust);this.session.login(Settings.USERNAME,Settings.PASSWORD);$(this.el).dialog("close")},adjust:function(){$(this.el).parent().find(".ui-dialog-titlebar-close").hide();$(this.el).find("#email").select().focus()},login:function(a){var b=Settings.USERNAME,c=Settings.PASSWORD,d=$(this.el).find("#email").val();
d&&((new logger({url:Settings.TELEMETRY_SERVER+"/input/demo"})).log({email:d,created_at:Math.round((new Date).getTime()/1E3)}),$(this.el).dialog("close"),this.session.login(b,c));a&&(a.preventDefault(),a.stopPropagation());return!0}}),LoginForm=Modal.extend({type:"login",message:_.template('\x3cform id\x3d"login_form"\x3e\x3clabel for\x3d"username" class\x3d"i18n"\x3eUsername\x3c/label\x3e\x3cinput type\x3d"text" id\x3d"username" name\x3d"username"\x3e\x3clabel for\x3d"password" class\x3d"i18n"\x3ePassword\x3c/label\x3e\x3cinput type\x3d"password" id\x3d"password" name\x3d"password"\x3e\x3c% if (Settings.EVALUATION_PANEL_LOGIN) { %\x3e\x3cdiv class\x3d"eval-panel"\x3e\x3ca href\x3d"#eval_login" class\x3d"i18n" id\x3d"eval-login"\x3eEvaluation Login\x3c/a\x3e\x3cdiv class\x3d"eval-panel-user clearfix" hidden\x3e\x3cul\x3e\x3cli class\x3d"i18n"\x3eAdministrator\x3c/li\x3e\x3cli class\x3d"i18n"\x3eUsername: admin\x3c/li\x3e\x3cli class\x3d"i18n"\x3ePassword: admin\x3c/li\x3e\x3c/ul\x3e\x3c/div\x3e\x3c/div\x3e\x3c% } %\x3e\x3c/form\x3e')(),
options:{autoOpen:!1,closeOnEscape:!1,modal:!0,title:Settings.VERSION,resizable:!1,draggable:!1},buttons:[{text:"Login",method:"login"},{text:"Upload License",method:"upload_license"}],events:{"click .dialog_footer a":"call","keyup #login_form input":"check","click #eval-login":"show_panel_user","click .clearlink":"clear_login"},initialize:function(a){_.extend(this,a);_.bindAll(this,"adjust");this.bind("open",this.adjust)},adjust:function(){this.$el.parent().find(".ui-dialog-titlebar-close").hide();
this.$el.find("#username").focus();this.$el.find(".dialog_footer").find('a[href\x3d"#upload_license"]').hide()},check:function(a){13===a.which&&this.login()},login:function(){var a=this.$el.find("#username").val(),b=this.$el.find("#password").val();this.$el.dialog("close");this.session.login(a,b,this.$el);return!0},clear_login:function(a){window.open("/clear.html","_blank")},setMessage:function(a){this.$el.find(".dialog_body").html(this.message)},setError:function(a){this.$el.find(".dialog_response").html(a);
"license expired"===a&&this.$el.find(".dialog_footer").find('a[href\x3d"#upload_license"]').show();this.$el.find(".clearlink").unbind()},show_panel_user:function(a){a.preventDefault();$(a.currentTarget).next().slideToggle("fast")},upload_license:function(a){a.preventDefault();a=window.location;""===a.search?window.open(a.href+"upload.html","_self"):window.open(a.origin+"/upload.html","_self")}}),AboutModal=Modal.extend({type:"info",events:{"click a":"close"},message:Settings.VERSION+'\x3cbr\x3e\x3ca href\x3d"http://saiku.meteorite.bi" target\x3d"_blank"\x3ehttp://saiku.meteorite.bi\x3c/a\x3e\x3cbr\x3e\x3cbr\x3e\x3ch2 class\x3d"i18n"\x3eLicense Type\x3c/h2\x3e\x3cspan class\x3d"licensetype"/\x3e - \x3cspan class\x3d"i18n"\x3eExpires:\x3c/span\x3e \x3cspan class\x3d"licenseexpr"/\x3e\x3cbr/\x3e\x3cspan class\x3d"i18n"\x3eNumber of users:\x3c/span\x3e \x3cspan class\x3d"licenseuserlimit"/\x3e\x3cbr/\x3e\x3cspan class\x3d"i18n"\x3eLicensed to:\x3c/span\x3e \x3cspan class\x3d"licensename"/\x3e - \x3cspan class\x3d"licenseemail"/\x3e\x3cbr/\x3e\x3cdiv id\x3d"licensetable"\x3e\x3ch2\x3eUnlicenced User Quota\x3c/h2\x3e\x3cbr/\x3e\x3cdiv class\x3d"table-wrapper"\x3e\x3cdiv class\x3d"table-scroll"\x3e\x3ctable\x3e\x3cthead\x3e\x3ctr\x3e\x3cth\x3e\x3cspan class\x3d"text"\x3eUsername\x3c/span\x3e\x3c/th\x3e\x3cth\x3e\x3cspan class\x3d"text"\x3eLogins Remaining\x3c/span\x3e\x3c/th\x3e\x3c/tr\x3e\x3c/thead\x3e\x3ctbody\x3e\x3ctr id\x3d"quotareplace"/\x3e\x3c/tbody\x3e\x3c/table\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3cstrong\x3e\x3ca href\x3d"http://www.meteorite.bi/saiku-pricing" class\x3d"i18n" target\x3d"_blank"\x3eOrder more licenses here\x3c/a\x3e\x3c/strong\x3e\x3cbr/\x3ePowered by \x3cimg src\x3d"images/src/meteorite_free.png" width\x3d"20px"\x3e \x3ca href\x3d"http://www.meteorite.bi/services/consulting" target\x3d"_blank"\x3ewww.meteorite.bi\x3c/a\x3e\x3cbr/\x3e',
initialize:function(){this.options.title='\x3cspan class\x3d"i18n"\x3eAbout\x3c/span\x3e '+Settings.VERSION},ObjectLength_Modern:function(a){return Object.keys(a).length},ObjectLength_Legacy:function(a){var b=0,c;for(c in a)a.hasOwnProperty(c)&&++b;return b},render:function(){$(this.el).html(this.template()).addClass("dialog_"+this.type).dialog(this.options);var a=$(".ui-dialog-title");a.html(this.options.title);a.addClass("i18n");Saiku.i18n.translate();license=new License;void 0!=Settings.LICENSE.expiration&&
(yourEpoch=parseFloat(Settings.LICENSE.expiration),a=new Date(yourEpoch),$(this.el).find(".licenseexpr").text(a.toLocaleDateString()));void 0!=Settings.LICENSE.licenseType?($(this.el).find(".licensetype").text(Settings.LICENSE.licenseType),$(this.el).find(".licensename").text(Settings.LICENSE.name),$(this.el).find(".licenseuserlimit").text(Settings.LICENSE.userLimit),$(this.el).find(".licenseemail").text(Settings.LICENSE.email)):$(this.el).find(".licensetype").text("Open Source License");ObjectLength=
Object.keys?this.ObjectLength_Modern:this.ObjectLength_Legacy;if(void 0!=Settings.LICENSEQUOTA&&0<ObjectLength(Settings.LICENSEQUOTA)){var b="",c=!1;$.each(Settings.LICENSEQUOTA,function(){var a="";$.each(this,function(b,c){a+="\x3ctd\x3e"+c+"\x3c/td\x3e"});b+='\x3ctr class\x3d"'+(c?"odd":"even")+'"\x3e'+a+"\x3c/tr\x3e";c=!c});$(this.el).find("#quotareplace").replaceWith(b)}else $(this.el).find("#licensetable").hide();return this},close:function(a){"#close"===a.target.hash&&a.preventDefault();this.$el.dialog("destroy").remove()}}),
OverwriteModal=Modal.extend({type:"info",message:"Are you sure you want to overwrite the existing query?",buttons:[{text:"Yes",method:"save"},{text:"No",method:"close"}],initialize:function(a){_.extend(this,a);this.options.title="Warning";this.queryname=this.name;this.queryfolder=this.foldername;this.parentobj=this.parent},dummy:function(){return!0},save:function(a){a.preventDefault();this.parentobj.save_remote(this.queryname,this.queryfolder,this.parentobj);$(this.el).dialog("destroy").remove()}}),
AddFolderModal=Modal.extend({type:"save",closeText:"Save",events:{"click .form_button":"save","submit form":"save"},buttons:[{text:"OK",method:"save"}],initialize:function(a){this.success=a.success;this.path=a.path;this.message="\x3cform id\x3d'add_folder'\x3e\x3clabel class\x3d'i18n' for\x3d'name'\x3eTo add a new folder, please type a name in the text box below:\x3c/label\x3e\x3cinput type\x3d'text' class\x3d'form-control newfolder' name\x3d'name' /\x3e\x3c/form\x3e";_.extend(this.options,{title:"Add Folder"});
if(isIE&&9>isIE)$(this.el).find("form").on("submit",this.save)},save:function(a){a.preventDefault();a=$(this.el).find('input[name\x3d"name"]').val();(new SavedQuery({file:this.path+a,name:a})).save({},{success:this.success,dataType:"text",error:this.error});this.close();return!1},error:function(){$(this.el).find("dialog_body").html("Could not add new folder")}}),FilterModal=Modal.extend({type:"filter",closeText:"Save",events:{"click .dialog_footer a":"call","click .insert-member":"open_select_member_selector"},
buttons:[{text:"OK",method:"save"},{text:"Cancel",method:"close"},{text:"Help",method:"help"}],message:"",expression_text:function(){var a="\x3cdiv class\x3d'sidebar'\x3e\x3ctable border\x3d'0px'\x3e";"Order"==this.expressionType&&(a+="\x3ctr\x3e\x3ctd class\x3d'col1'\x3e\x3clabel\x3eSort Type\x3c/label\x3e \x3cselect class\x3d'form-control' id\x3d'fun'\x3e\x3coption\x3eASC\x3c/option\x3e\x3coption\x3eBASC\x3c/option\x3e\x3coption\x3eDESC\x3c/option\x3e\x3coption\x3eBDESC\x3c/option\x3e \x3c/select\x3e\x3c/td\x3e\x3c/tr\x3e");
return a+="\x3ctr\x3e\x3ctd class\x3d'col1'\x3e"+this.expressionType+" MDX Expression:\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd class\x3d'col1' style\x3d'width:380px'\x3e\x3cdiv class\x3d'filter-editor' style\x3d'width:380px' id\x3d'"+this.id+"'\x3e\x3c/div\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3ca href\x3d'#' class\x3d'form_button btn btn-default insert-member'\x3eInsert Member\x3c/a\x3e\x3c/div\x3e"},expression:" ",expressonType:"",initialize:function(a){var b=this;this.id=_.uniqueId("filter-modal-");
this.workspace=a.workspace;this.axis=a.axis;this.query=a.query;this.success=a.success;this.expression=a.expression;this.expressionType=a.expressionType;_.bindAll(this,"save","expression_text");_.extend(this.options,{title:"Custom "+this.expressionType+" for "+this.axis});this.message=this.expression_text(this.expressionType);this.bind("open",function(){$(this.el).find(".sidebar").width(380);this.editor=ace.edit(this.id);this.editor.setValue(b.expression);this.editor.setShowPrintMargin(!1);this.editor.setFontSize(11)});
if(isIE&&9>isIE)$(this.el).find("form").on("submit",this.save)},save:function(a){a.preventDefault();this.expression=this.editor.getValue();a="";"undefined"!=typeof this.expression&&this.expression&&""!==this.expression?("Order"==this.expressionType?(a=$("#fun").val(),this.success(a,this.expression)):this.success(this.expression),this.close()):(a+="You have to enter a MDX expression for the "+this.expressionType+" function! ",alert(a));return!1},error:function(){$(this.el).find("dialog_body").html("Could not add new folder")},
open_select_member_selector:function(a){a.preventDefault();a=this.$el.find("#cms-dimension option:selected").val();var b=this.$el.find("#cms-dimension option:selected").text(),c=this.$el.find("#cms-dimension option:selected").data("dimension");this.$el.find("#cms-dimension option:selected").data("type");var d=ace.edit(this.id),e=this;(new ParentMemberSelectorModal({dialog:this,workspace:this.workspace,cube:this.workspace.selected_cube,dimensions:Saiku.session.sessionworkspace.cube[this.workspace.selected_cube].get("data").dimensions,
selectDimension:a,dimension:c,hierarchy:b,uniqueName:this.pmUniqueName,lastLevel:this.pmLevel,breadcrumbs:this.pmBreadcrumbs,select_type:"select_member",selected_member:this.selected_member,close_callback:function(a){e.close_select_modal(d,a)}})).render().open();this.$el.parents(".ui-dialog").find(".ui-dialog-title").text("Custom Filter")},close_select_modal:function(a,b){a.insert(b)},help:function(){window.open("http://wiki.meteorite.bi/display/SAIK/Filtering")}}),CustomFilterModal=Modal.extend({type:"filter",
closeText:"Save",events:{"submit form":"save","change .function":"switch_function","change .type":"switch_type","click .dialog_footer a":"call"},buttons:[{text:"OK",method:"save"},{text:"Cancel",method:"close"}],message:"\x3cform id\x3d'custom_filter'\x3e\x3ctable border\x3d'0px'\x3e\x3ctr\x3e\x3ctd class\x3d'col0'\x3eDefine Filter\x3cselect class\x3d'form-control function'\x3e\x3coption\x3eSelect a Function...\x3c/option\x3e\x3coption value\x3d'TopCount'\x3eTopCount\x3c/option\x3e\x3coption value\x3d'TopPercent'\x3eTopPercent\x3c/option\x3e\x3coption value\x3d'TopSum'\x3eTopSum\x3c/option\x3e\x3coption value\x3d'BottomCount'\x3eBottomCount\x3c/option\x3e\x3coption value\x3d'BottomPercent'\x3eBottomPercent\x3c/option\x3e\x3coption value\x3d'BottomSum'\x3eBottomSum\x3c/option\x3e\x3c/select\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr class\x3d'filter_details hide'\x3e\x3ctd\x3e\x3cspan class\x3d'ntype'\x3e\x3c/span\x3e\x3cinput class\x3d'n form-control' /\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr class\x3d'filter_details hide'\x3e\x3ctd\x3eSort by\x3cselect class\x3d'type form-control'\x3e\x3coption value\x3d'measure'\x3eMeasure\x3c/option\x3e\x3coption value\x3d'custom'\x3eMDX Expression\x3c/option\x3e\x3c/select\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr class\x3d'filter_details hide sortingoption'\x3e\x3ctd\x3e\x26nbsp; \x26nbsp;\x3c/td\x3e\x3c/table\x3e\x3c/form\x3e",
func:null,func_type:"Measure",n:"",sortliteral:"",measure_list:null,initialize:function(a){var b=this;this.axis=a.axis;this.measures=a.measures;this.query=a.query;this.success=a.success;this.func=a.func;this.n=a.n;this.sortliteral=a.sortliteral;this.isMdx=!0;_.bindAll(this,"build_measures_list","save");this.measure_list=this.build_measures_list();_.extend(this.options,{title:"Custom Filter for "+this.axis});this.bind("open",function(){null!==b.func&&($(b.el).find(".function").val(b.func),b.switch_function({target:$(b.el).find(".function")}),
$(b.el).find(".n").val(b.n),!0===b.isMdx&&null!==b.sortliteral&&($(this.el).find(".type").val("custom"),$(this.el).find(".sortingoption").html("").html("\x3ctextarea class\x3d'form-control sortliteral'\x3e"+b.sortliteral+"\x3c/textarea\x3e")))});if(isIE&&9>isIE)$(this.el).find("form").on("submit",this.save)},build_measures_list:function(){var a=this;if(null!==this.measure_list)return"";var b="\x3cselect class\x3d'form-control sortliteral'\x3e";_.each(this.measures,function(c){var d="";c.uniqueName==
a.sortliteral&&(d=" selected ",a.isMdx=!1);b+="\x3coption "+d+"value\x3d'"+c.uniqueName+"'\x3e"+c.caption+"\x3c/option\x3e"});return b+="\x3c/select\x3e"},switch_function:function(a){a=$(a.target).val();"undefined"==typeof a||""===a?$(this.el).find(".filter_details").hide():(a=a.replace("Top","").replace("Bottom",""),$(this.el).find(".ntype").html(a+":"),$(this.el).find(".filter_details").show(),$(this.el).find(".sortingoption").html("").html(this.measure_list));return!1},switch_type:function(a){"measure"==
$(a.target).val()?$(this.el).find(".sortingoption").html("").html(this.measure_list):$(this.el).find(".sortingoption").html("").html("\x3ctextarea class\x3d'form-control sortliteral' /\x3e");return!1},save:function(a){a.preventDefault();this.func=$(this.el).find(".function").val();this.n=parseInt($(this.el).find(".n").val());this.sortliteral=$(this.el).find(".sortliteral").val();a="";"undefined"!=typeof this.n&&this.n||(a+="You have to enter a numeric for N! ");"undefined"!=typeof this.sortliteral&&
this.sortliteral&&""!==this.sortliteral||(a+="You have to enter a MDX expression for the sort literal! ");""!==a?alert(a):(this.success(this.func,this.n,this.sortliteral),this.close());return!1},error:function(){$(this.el).find("dialog_body").html("Could not add new folder")}}),CalculatedMemberModal=Modal.extend({type:"calculated-member",template_modal:_.template('\x3cdiv class\x3d"cms-container-group"\x3e\x3cdiv class\x3d"calculated-measure-group"\x3e\x3ch4 class\x3d"i18n"\x3eCalculated Measures:\x3c/h4\x3e\x3cdiv class\x3d"cms-box"\x3e\x3ctable class\x3d"cms-list measures-list"\x3e\x3c%\x3d tplCalculatedMeasures %\x3e\x3c/table\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"calculated-member-group"\x3e\x3ch4 class\x3d"i18n"\x3eCalculated Members:\x3c/h4\x3e\x3cdiv class\x3d"cms-box"\x3e\x3ctable class\x3d"cms-list members-list"\x3e\x3c%\x3d tplCalculatedMembers %\x3e\x3c/table\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"cms-container-form"\x3e\x3cform class\x3d"form-group-inline" data-action\x3d"cad"\x3e\x3cdiv class\x3d"form-group"\x3e\x3clabel for\x3d"cms-name" class\x3d"i18n"\x3eName:\x3c/label\x3e\x3cinput type\x3d"text" class\x3d"form-control" id\x3d"cms-name" autofocus\x3e\x3c/div\x3e\x3cdiv class\x3d"cms-measure form-inline" style\x3d"padding-bottom:10px;"\x3e\x3clabel for\x3d"cms-measure" class\x3d"i18n"\x3eInsert Member:\x3c/label\x3e \x3cinput type\x3d"button" class\x3d"form-control btn-primary btn btn-select-member" value\x3d"Select Member" title\x3d"Insert a member into the formula editor " id\x3d"insertmember"\x3e \x3c/input\x3e \x3c/div\x3e\x3clabel for\x3d"\x3c%\x3d idEditor %\x3e" class\x3d"i18n"\x3eFormula:\x3c/label\x3e\x3cdiv class\x3d"formula-editor" style\x3d"padding-bottom:10px" id\x3d"\x3c%\x3d idEditor %\x3e"\x3e\x3c/div\x3e\x3cdiv class\x3d"btn-groups"\x3e\x3ca class\x3d"form_button btn btn-default minimal_padding btn-math" href\x3d"#add_math_operator_formula" data-math\x3d"+"\x3e\x26nbsp;+\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding" href\x3d"#add_math_operator_formula" data-math\x3d"-"\x3e\x26nbsp;-\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding" href\x3d"#add_math_operator_formula" data-math\x3d"*"\x3e\x26nbsp;*\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding" href\x3d"#add_math_operator_formula" data-math\x3d"/"\x3e\x26nbsp;/\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding" href\x3d"#add_math_operator_formula" data-math\x3d"("\x3e\x26nbsp;(\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding" href\x3d"#add_math_operator_formula" data-math\x3d")"\x3e\x26nbsp;)\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding i18n" href\x3d"#add_math_operator_formula" data-math\x3d"and"\x3e\x26nbsp;and\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding i18n" href\x3d"#add_math_operator_formula" data-math\x3d"or"\x3e\x26nbsp;or\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-math minimal_padding i18n" href\x3d"#add_math_operator_formula" data-math\x3d"not"\x3e\x26nbsp;not\x26nbsp;\x3c/a\x3e\x3cbr/\x3e\x3cdiv class\x3d"form-inline"\x3e\x3cselect class\x3d"cms-functionlist form-control"\x3e\x3coption value\x3d""\x3e---Insert MDX Function---\x3c/select\x3e\x26nbsp; \x3ca href\x3d"" class\x3d"cms-doclink" target\x3d"_blank" style\x3d"display: none;"\x3eDocumentation\x3c/a\x3e\x3cbr/\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"cms-function"\x3e\x3clabel for\x3d"cms-function" class\x3d"i18n"\x3eFunctions:\x3c/label\x3e \x3cinput type\x3d"button" class\x3d"form_button btn btn-primary growthBtn"# value\x3d"Predefined Calculations" title\x3d"Calculate difference. Good to calculate previous period growth " id\x3d"growthBtn" \x3e \x3c/input\x3e \x3cinput type\x3d"button" class\x3d"form_button btn btn-primary formatBtn" value\x3d"Format %" id\x3d"formatBtn" title\x3d"Post-process step: format this view as percentage of rows, columns or grand total. " /\x3e\x3c/div\x3e\x3cbr/\x3e\x3cdiv style\x3d"padding-bottom:10px;"\x3e\x3clabel for\x3d"cms-dimension" class\x3d"i18n"\x3eDimension:\x3c/label\x3e\x3cselect id\x3d"cms-dimension" class\x3d"form-control" style\x3d"width:365px"\x3e\x3coption class\x3d"i18n" value\x3d"" selected\x3e-- Select an existing dimension --\x3c/option\x3e\x3c% if (measures.length \x3e 0) { %\x3e\x3coptgroup label\x3d"\x3c%\x3d dataMeasures.name %\x3e"\x3e\x3coption value\x3d"\x3c%\x3d dataMeasures.uniqueName %\x3e" data-type\x3d"calcmeasure"\x3e\x3c%\x3d dataMeasures.name %\x3e\x3c/option\x3e\x3c/optgroup\x3e\x3c% } %\x3e\x3c% _(dimensions).each(function(dimension) { %\x3e\x3coptgroup label\x3d"\x3c%\x3d dimension.name %\x3e"\x3e\x3c% _(dimension.hierarchies).each(function(hierarchy) { %\x3e\x3coption value\x3d"\x3c%\x3d hierarchy.uniqueName %\x3e" data-dimension\x3d"\x3c%\x3d dimension.name %\x3e" data-type\x3d"calcmember"\x3e\x3c%\x3d hierarchy.name %\x3e\x3c/option\x3e\x3c% }); %\x3e\x3c/optgroup\x3e\x3c% }); %\x3e\x3c/select\x3e\x3c/div\x3e\x3c% if (Settings.BIPLUGIN5 \x3d\x3d false) { %\x3e\x3cdiv class\x3d"btn-groups" style\x3d"padding-bottom:10px"\x3e\x3ca class\x3d"form_button btn btn-primary btn-parent-member" href\x3d"#add_math_operator_formula" disabled\x3e\x26nbsp;Parent Member Selector\x26nbsp;\x3c/a\x3e\x3ca class\x3d"form_button btn btn-default btn-clear-parent" href\x3d"#add_math_operator_formula" disabled\x3e\x26nbsp;Clear Parent Member\x26nbsp;\x3c/a\x3e\x3c/div\x3e\x3clabel class\x3d"i18n" for\x3d"cms-pmember"\x3eParent Member:\x3c/label\x3e\x3cinput class\x3d"form-control" readonly\x3d"true" type\x3d"text" id\x3d"cms-pmember"\x3e\x3cbr/\x3e\x3c% } %\x3e\x3cdiv style\x3d"padding-bottom:10px;"\x3e\x3clabel for\x3d"cms-format" class\x3d"i18n"\x3eFormat:\x3c/label\x3e\x3cselect id\x3d"cms-format" class\x3d"form-control" style\x3d"width:365px"\x3e\x3coption class\x3d"i18n" value\x3d"" selected\x3e-- Select a format --\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"custom"\x3eCustom\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"#,##0.00"\x3e#,##0.00 Decimal\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"#,###"\x3e#,### Integer\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"##.##%"\x3e##.##% Decimal percentage\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"##%"\x3e##% Integer percentage\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"mmmm dd yyyy"\x3emmmm dd yyyy Month Day Year\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"mmmm yyyy"\x3emmmm yyyy Month Year\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"yyyy-mm-dd"\x3eyyyy-mm-dd ISO format date\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"yyyy-mm-dd hh:mi:ss"\x3eyyyy-mm-dd hh:mi:ss Date and time\x3c/option\x3e\x3coption class\x3d"i18n" value\x3d"##h ##m"\x3e##h ##m Minutes\x3c/option\x3e\x3c/select\x3e\x3c/div\x3e\x3cdiv class\x3d"div-format-custom" style\x3d"padding-bottom:10px"\x3e\x3clabel for\x3d"cms-format-custom" class\x3d"i18n"\x3eFormat Custom:\x3c/label\x3e\x3cinput type\x3d"text" class\x3d"form-control" id\x3d"cms-format-custom" value\x3d"" placeholder\x3d"Add a custom format"\x3e\x3c/div\x3e\x3c/form\x3e\x3c/div\x3e'),
buttons:[{text:"Add",method:"save"},{text:"Update",method:"save"},{text:"New",method:"new"},{text:"Cancel",method:"close"},{text:"Help",method:"help"}],events:{"click .dialog_footer a":"call","blur #cms-name":"trigger_input_name","change #cms-measure":"add_measure_formula","click .btn-math":"add_math_operator_formula","change #cms-dimension":"type_dimension","change #cms-format":"type_format","click .btn-action-edit":"edit_cms","click .btn-action-del":"show_del_cms","click .form_button.growthBtn":"openGrowthModal",
"click .form_button.formatBtn":"openFormatModal","click .btn-parent-member":"open_parent_member_selector","click .btn-clear-parent":"reset_parent_member","click .cms-functionlist":"change_function_list","click .btn-select-member":"open_select_member_selector"},initialize:function(a){_.extend(this,a);this.workspace=a.workspace;this.options.title="Calculated Member";this.id=_.uniqueId("cms-formula-");var b=this,c=this.workspace.selected_cube;a=Saiku.session.sessionworkspace.cube[c].get("data").measures;
var c=Saiku.session.sessionworkspace.cube[c].get("data").dimensions,d=this.workspace.query.helper.getCalculatedMeasures(),e=this.workspace.query.helper.getCalculatedMembers(),d=this.template_cms(d,"calcmeasure"),e=this.template_cms(e,"calcmember"),f={name:a?a[0].dimensionUniqueName.replace(/[\[\]]/gi,""):null,uniqueName:a?a[0].hierarchyUniqueName:null};Saiku.ui.block('\x3cspan class\x3d"i18n"\x3eLoading...\x3c/span\x3e');this.message=this.template_modal({tplCalculatedMeasures:d,tplCalculatedMembers:e,
idEditor:this.id,measures:a,dataMeasures:f,dimensions:c});this.bind("open",function(){this.populate_function_list();var a=this.$el.find(".cms-container-form").height();this.post_render();this.$el.find(".dialog_footer a:nth-child(2)").hide();this.$el.find(".dialog_footer a:nth-child(3)").hide();this.$el.find(".cms-container-group").height(a);this.$el.find(".calculated-measure-group").height(a/2);this.$el.find(".calculated-member-group").height(a/2);_.defer(function(){b.start_editor()})});Saiku.session.bind("ParentMemberSelectorModal:save",
this.add_selected_dimension)},add_selected_dimension:function(a){console.log(a);a.dialog.$el.find("#cms-dimension").val(a.selectedDimension)},post_render:function(){var a=($("body").height()-570)/2*100/$("body").height(),b=($("body").width()-800)/2*100/$("body").width();this.$el.dialog("option","position","center");this.$el.parents(".ui-dialog").css({width:"800px",top:a+"%",left:b+"%"})},start_editor:function(){this.formulaEditor=ace.edit(this.id);this.formulaEditor.getSession().setMode("ace/mode/text");
this.formulaEditor.getSession().setUseWrapMode(!0);Saiku.ui.unblock()},template_cms:function(a,b){var c=this,d="";a&&0!==a.length?"calcmeasure"===b?_.each(a,function(a){d+='\x3ctr class\x3d"row-cms-'+c.replace_cms(a.name)+'"\x3e\x3ctd class\x3d"cms-name"\x3e'+a.name+'\x3c/td\x3e\x3ctd class\x3d"cms-actions"\x3e\x3ca class\x3d"edit button sprite btn-action-edit" href\x3d"#edit_cms" data-name\x3d"'+a.name+'" data-type\x3d"calcmeasure"\x3e\x3c/a\x3e\x3ca class\x3d"delete button sprite btn-action-del" href\x3d"#show_del_cms" data-name\x3d"'+
a.name+'" data-type\x3d"calcmeasure"\x3e\x3c/a\x3e\x3c/td\x3e\x3c/tr\x3e'}):_.each(a,function(a){-1==a.name.indexOf("*TOTAL_MEMBER_SEL~SUM")&&(d+='\x3ctr class\x3d"row-cms-'+c.replace_cms(a.name)+'"\x3e\x3ctd class\x3d"cms-name"\x3e'+a.name+'\x3c/td\x3e\x3ctd class\x3d"cms-actions"\x3e\x3ca class\x3d"edit button sprite btn-action-edit" href\x3d"#edit_cms" data-name\x3d"'+a.name+'" data-type\x3d"calcmember"\x3e\x3c/a\x3e\x3ca class\x3d"delete button sprite btn-action-del" href\x3d"#show_del_cms" data-name\x3d"'+
a.name+'" data-type\x3d"calcmember"\x3e\x3c/a\x3e\x3c/td\x3e\x3c/tr\x3e')}):d="calcmeasure"===b?'\x3cp class\x3d"msg-no-cms i18n"\x3eNo calculated measures created\x3c/p\x3e':'\x3cp class\x3d"msg-no-cms i18n"\x3eNo calculated members created\x3c/p\x3e';return d},replace_cms:function(a){return a=a.replace(/\s/g,"-")},edit_cms:function(a){a.preventDefault();var b=this,c=$(a.currentTarget);a="calcmeasure"===c.data("type")?this.workspace.query.helper.getCalculatedMeasures():this.workspace.query.helper.getCalculatedMembers();
this.$el.find(".cms-actions a").removeClass("on");_.each(a,function(a){a.name===c.data("name")&&(c.addClass("on"),b.$el.find("#cms-name").val(a.name),b.formulaEditor.setValue(a.formula),b.$el.find("#cms-dimension").val(a.hierarchyName),b.$el.find("#cms-pmember").val(a.parentMember),0!==$('#cms-format option[value\x3d"'+a.properties.FORMAT_STRING+'"]').length||void 0===a.properties.FORMAT_STRING&&0===$('#cms-format option[value\x3d"'+a.properties.FORMAT_STRING+'"]').length?(b.$el.find("#cms-format").val(a.properties.FORMAT_STRING),
b.$el.find(".div-format-custom").hide()):(b.$el.find("#cms-format").prop("selectedIndex",1),b.$el.find(".div-format-custom").show(),b.$el.find("#cms-format-custom").val(a.properties.FORMAT_STRING)),b.pmUniqueName=a.parentMember||"",b.pmLevel=a.parentMemberLevel||"",b.lastLevel=a.previousLevel||"",b.pmBreadcrumbs=a.parentMemberBreadcrumbs||[],b.actualLevel=a.assignedLevel||"",b.type_dimension(),b.$el.find(".form-group-inline").data("action","edit"),b.$el.find(".form-group-inline").data("oldcms",a.name))});
this.$el.find(".dialog_footer a:nth-child(1)").hide();this.$el.find(".dialog_footer a:nth-child(2)").show();this.$el.find(".dialog_footer a:nth-child(3)").show()},show_del_cms:function(a){a.preventDefault();a=$(a.currentTarget);var b="calcmeasure"===a.data("type")?'\x3cspan class\x3d"i18n"\x3emeasure\x3c/span\x3e':'\x3cspan class\x3d"i18n"\x3emember\x3c/span\x3e';this.$delcms=a;this.new();(new WarningModal({title:'\x3cspan class\x3d"i18n"\x3eDelete Member\x3c/span\x3e',message:'\x3cspan class\x3d"i18n"\x3eYou want to delete this\x3c/span\x3e '+
b+" \x3cb\x3e"+a.data("name")+"\x3c/b\x3e?",okay:this.del_cms,okayobj:this})).render().open();this.$el.parents(".ui-dialog").find(".ui-dialog-title").text("Calculated Member");Saiku.i18n.translate()},del_cms:function(a){a.$delcms.parent().closest(".row-cms-"+a.replace_cms(a.$delcms.data("name"))).remove();"calcmeasure"===a.$delcms.data("type")?a.workspace.query.helper.removeCalculatedMeasure(a.$delcms.data("name")):a.workspace.query.helper.removeCalculatedMember(a.$delcms.data("name"));a.workspace.sync_query();
a.workspace.drop_zones.set_measures();a.new();a.check_len_cms(a.$delcms.data("type"))||("calcmeasure"===a.$delcms.data("type")?a.$el.find(".measures-list").append('\x3cp class\x3d"msg-no-cms i18n"\x3eNo calculated measures created\x3c/p\x3e'):a.$el.find(".members-list").append('\x3cp class\x3d"msg-no-cms i18n"\x3eNo calculated members created\x3c/p\x3e'));Saiku.i18n.translate()},trigger_input_name:function(){var a=this.$el.find(".form-group-inline").data("action"),b=this.$el.find("#cms-name").val(),
c=this.$el.find("#cms-dimension option:selected").data("type"),d="";"calcmeasure"===c?this.check_name_cms(c,b)&&"cad"===a&&(d="Exists a measure with the same name added!"):"calcmember"===c?this.check_name_cms(c,b)&&"cad"===a&&(d="Exists a member with the same name added!"):this.check_name_cms(c,b)&&"cad"===a&&(d="Exists a measure or member with the same name added!");""!==d&&alert(d)},check_name_cms:function(a,b){var c="calcmeasure"===a?this.workspace.query.helper.getCalculatedMeasures():this.workspace.query.helper.getCalculatedMembers();
if(null===a||void 0===a)var d=this.workspace.query.helper.getCalculatedMeasures(),e=this.workspace.query.helper.getCalculatedMembers(),c=[],c=c.concat(d,e);for(;0<c.length;)return c[0].name===b?!0:!1},check_len_cms:function(a){return 0<("calcmeasure"===a?this.workspace.query.helper.getCalculatedMeasures():this.workspace.query.helper.getCalculatedMembers()).length?!0:!1},reset_form:function(){this.$el.find("#cms-name").val("");this.$el.find("#cms-measure").prop("selectedIndex",0);this.formulaEditor.setValue("");
this.$el.find("#cms-dimension").prop("selectedIndex",0);this.$el.find("#cms-format").prop("selectedIndex",0);this.$el.find(".div-format-custom").hide();this.$el.find("#cms-format-custom").val("");this.reset_parent_member();this.type_dimension()},reset_dropdown:function(){this.$el.find("#cms-measure").prop("selectedIndex",0)},reset_parent_member:function(){this.pmLevel=this.pmUniqueName="";this.pmBreadcrumbs=[];this.$el.find("#cms-pmember").val("")},add_measure_formula:function(a){a.preventDefault();
a=this.$el.find("#cms-measure option:selected").val();var b=this.formulaEditor.getValue();this.formulaEditor.setValue(b+a);this.reset_dropdown()},add_math_operator_formula:function(a){a.preventDefault();a=" "+$(a.currentTarget).data("math")+" ";var b=this.$el.find(".formula-editor").attr("id");ace.edit(b).insert(a)},type_dimension:function(a){var b=this.$el.find("#cms-dimension option:selected").data("type");a&&(a.preventDefault(),this.reset_parent_member());"calcmember"===b?(this.$el.find(".btn-parent-member").removeAttr("disabled"),
this.$el.find(".btn-clear-parent-member").removeAttr("disabled")):(this.$el.find(".btn-parent-member").attr("disabled","disabled"),this.$el.find(".btn-clear-parent-member").attr("disabled","disabled"))},type_format:function(a){a.preventDefault();"custom"===this.$el.find("#cms-format option:selected").val()?this.$el.find(".div-format-custom").show():this.$el.find(".div-format-custom").hide()},new:function(a){a&&a.preventDefault();this.$el.find(".cms-actions a").removeClass("on");this.$el.find(".form-group-inline").data("action",
"cad");this.$el.find(".form-group-inline").data("oldcms","");this.$el.find(".dialog_footer a:nth-child(1)").show();this.$el.find(".dialog_footer a:nth-child(2)").hide();this.$el.find(".dialog_footer a:nth-child(3)").hide();this.reset_form()},openGrowthModal:function(a){a=function(a){var b=[];_.each(a,function(a){b.push(a.name)},this);return b}(this.workspace.query.helper.model().queryModel.axes.ROWS.hierarchies.concat(this.workspace.query.helper.model().queryModel.axes.COLUMNS.hierarchies));var b=
Saiku.session.sessionworkspace.cube[this.workspace.selected_cube].get("data").measures;this.close();(new GrowthModal({workspace:this.workspace,measures:b,dimensions:a})).render().open()},openFormatModal:function(a){a=this.workspace.query.helper.model().queryModel.details.measures;this.close();(new FormatAsPercentageModal({workspace:this.workspace,measures:a})).render().open()},open_parent_member_selector:function(a){a.preventDefault();a=this.$el.find("#cms-dimension option:selected").val();var b=
this.$el.find("#cms-dimension option:selected").text(),c=this.$el.find("#cms-dimension option:selected").data("dimension");"calcmember"===this.$el.find("#cms-dimension option:selected").data("type")&&((new ParentMemberSelectorModal({dialog:this,workspace:this.workspace,cube:this.workspace.selected_cube,dimensions:Saiku.session.sessionworkspace.cube[this.workspace.selected_cube].get("data").dimensions,selectDimension:a,dimension:c,hierarchy:b,uniqueName:this.pmUniqueName,lastLevel:this.lastLevel,current_level:this.pmLevel,
breadcrumbs:this.pmBreadcrumbs})).render().open(),this.$el.parents(".ui-dialog").find(".ui-dialog-title").text("Connection Details"))},save:function(a){a.preventDefault();$(a.currentTarget);a=this.$el.find(".form-group-inline").data("oldcms");var b=this.$el.find("#cms-name").val(),c=this.formulaEditor.getValue(),d=this.$el.find("#cms-dimension option:selected").val(),e=this.$el.find("#cms-dimension option:selected").text(),f=this.$el.find("#cms-dimension option:selected").data("dimension"),g=this.$el.find("#cms-dimension option:selected").data("type"),
h=this.$el.find("#cms-format option:selected").val(),k=this.$el.find(".form-group-inline").data("action"),l="",h="custom"===h?this.$el.find("#cms-format-custom").val():this.$el.find("#cms-format option:selected").val();"undefined"!==typeof b&&""!==b&&b||(l+="You have to enter a name for the member! ");"undefined"!==typeof c&&""!==c&&c||(l+="You have to enter a MDX formula for the calculated member! ");"undefined"!==typeof d&&""!==d&&d||(l+="You have to choose a dimension for the calculated member! ");
""!==l?alert(l):("calcmeasure"===g?(c={name:b,formula:c,properties:{},uniqueName:b,hierarchyName:d},h&&(c.properties.FORMAT_STRING=h),"cad"===k?(this.workspace.query.helper.addCalculatedMeasure(c),this.workspace.sync_query()):(this.workspace.query.helper.editCalculatedMeasure(a,c),this.workspace.sync_query(),this.workspace.drop_zones.set_measures())):(c={name:b,dimension:f,uniqueName:"["+e+"].["+b+"]",caption:b,properties:{},formula:c,hierarchyName:d,parentMember:"",parentMemberLevel:"",previousLevel:"",
parentMemberBreadcrumbs:[],assignedLevel:""},h&&(c.properties.FORMAT_STRING=h),this.pmUniqueName&&!_.isEmpty(this.pmUniqueName)&&(c.parentMember=this.pmUniqueName,c.parentMemberLevel=this.pmLevel,c.previousLevel=this.lastLevel,c.parentMemberBreadcrumbs=this.pmBreadcrumbs,c.uniqueName=this.pmUniqueName+".["+b+"]",c.assignedLevel=this.actualLevel),this.workspace.query.helper.includeCmember(d,c.uniqueName),"cad"===k?(this.workspace.query.helper.addCalculatedMember(c),this.workspace.sync_query()):(this.workspace.query.helper.removeLevelCalculatedMember(d,
"["+e+"].["+a+"]"),this.workspace.query.helper.editCalculatedMember(a,c),this.workspace.sync_query(),this.workspace.drop_zones.set_measures()),this.workspace.toolbar.$el.find(".group_parents").removeClass("on"),this.workspace.toolbar.group_parents()),this.$el.dialog("close"))},populate_function_list:function(a){a=[{name:"Formula Not Empty Check",example:"Iif(NOT ISEMPTY([Measures].[My Measure]),([Measures].[My Measure] + [Numeric Expression]),null))",description:"Insert a formula with an ISEMPTY check to ensure that only non null cells are calculated",
doc_link:"http://wiki.meteorite.bi/display/SAIK/Non+Empty+Calculated+Members"},{name:"Aggregate",example:"Aggregate(Set_Expression [ ,Numeric_Expression ])",description:"Returns a number that is calculated by aggregating over the cells returned by the set expression.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145524.aspx"},{name:"Avg",example:"Avg( Set_Expression [ , Numeric_Expression ] )",description:"Evaluates a set and returns the average of the non empty values of the cells in the set, averaged over the measures in the set or over a specified measure.",
doc_link:"https://msdn.microsoft.com/en-us/library/ms146067.aspx"},{name:"Ancestor",example:"Ancestor(Member_Expression, Distance)",description:"A function that returns the ancestor of a specified member at a specified level or at a specified distance from the member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145616.aspx"},{name:"ClosingPeriod",example:"ClosingPeriod( [ Level_Expression [ ,Member_Expression ] ] )",description:"Returns the member that is the last sibling among the descendants of a specified member at a specified level.",
doc_link:"https://msdn.microsoft.com/en-us/library/ms145584.aspx"},{name:"Cousin",example:"Cousin( Member_Expression , Ancestor_Member_Expression )",description:"Returns the child member with the same relative position under a parent member as the specified child member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145481.aspx"},{name:"CurrentMember",example:"Hierarchy_Expression.CurrentMember",description:"Returns the current member along a specified hierarchy during iteration.",doc_link:"https://msdn.microsoft.com/en-us/library/ms144948.aspx"},
{name:"FirstChild",example:"Member_Expression.FirstChild",description:"Returns the first child of a specified member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms144947.aspx"},{name:"FirstSibling",example:"Member_Expression.FirstSibling",description:"Returns the first child of the parent of a member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145956.aspx"},{name:"IIf",example:"IIf(Logical_Expression, Expression1, Expression2)",description:"Evaluates different branch expressions depending on whether a Boolean condition is true or false.",
doc_link:"https://msdn.microsoft.com/en-us/library/ms145994.aspx"},{name:"LastChild",example:"Member_Expression.LastChild",description:"Returns the last child of a specified member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145576.aspx"},{name:"LastSibling",example:"Member_Expression.LastSibling",description:"Returns the last child of the parent of a specified member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms144863.aspx"},{name:"Max",example:"Max( Set_Expression [ , Numeric_Expression ] )",
description:"Returns the maximum value of a numeric expression that is evaluated over a set.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145601.aspx"},{name:"Median",example:"Median(Set_Expression [ ,Numeric_Expression ] )",description:"Returns the median value of a numeric expression that is evaluated over a set.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145570.aspx"},{name:"Min",example:"Min( Set_Expression [ , Numeric_Expression ] )",description:"Returns the minimum value of a numeric expression that is evaluated over a set.",
doc_link:"https://msdn.microsoft.com/en-us/library/ms145600.aspx"},{name:"MTD",example:"Mtd( [ Member_Expression ] )",description:"Returns a set of sibling members from the same level as a given member, starting with the first sibling and ending with the given member, as constrained by the Year level in the Time dimension.",doc_link:"https://msdn.microsoft.com/en-us/library/ms144753.aspx"},{name:"OpeningPeriod",example:"OpeningPeriod( [ Level_Expression [ , Member_Expression ] ] )",description:"Returns the first sibling among the descendants of a specified level, optionally at a specified member.",
doc_link:"https://msdn.microsoft.com/en-us/library/ms145992.aspx"},{name:"ParallelPeriod",example:"ParallelPeriod( [ Level_Expression [ ,Index [ , Member_Expression ] ] ] )",description:"Returns a member from a prior period in the same relative position as a specified member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145500.aspx"},{name:"Parent",example:"Member_Expression.Parent",description:"Returns the parent of a member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145513.aspx"},
{name:"PrevMember",example:"Member_Expression.PrevMember",description:"Returns the previous member in the level that contains a specified member.",doc_link:"https://msdn.microsoft.com/en-us/library/ms144719.aspx"},{name:"QTD",example:"Qtd( [ Member_Expression ] )",description:"Returns a set of sibling members from the same level as a given member, starting with the first sibling and ending with the given member, as constrained by the Quarter level in the Time dimension.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145978.aspx"},
{name:"Sum",example:"Sum( Set_Expression [ , Numeric_Expression ] )",description:"Returns the sum of a numeric expression evaluated over a specified set.",doc_link:"https://msdn.microsoft.com/en-us/library/ms145484.aspx"},{name:"WTD",example:"Wtd( [ Member_Expression ] )",description:"Returns a set of sibling members from the same level as a given member, starting with the first sibling and ending with the given member, as constrained by the Week level in the Time dimension.",doc_link:"https://msdn.microsoft.com/en-us/library/ms144930.aspx"},
{name:"YTD",example:"Ytd( [ Member_Expression ] )",description:"Returns a set of sibling members from the same level as a given member, starting with the first sibling and ending with the given member, as constrained by the Year level in the Time dimension.",doc_link:"https://msdn.microsoft.com/en-us/library/ms146039.aspx"}];for(var b="",c=0;c<a.length;c++)b+='\x3coption title\x3d"'+a[c].description+'" data-desc\x3d"'+a[c].description+'" data-doc-link\x3d"'+a[c].doc_link+'" value\x3d"'+a[c].example+
'"\x3e'+a[c].name+"\x3c/option\x3e";$(".cms-functionlist").append(b)},change_function_list:function(a){a.preventDefault();a=this.$el.find(".cms-functionlist option:selected");$(".cms-functionlist").prop("title",$(a).prop("title"));$(a).data("doc-link")?($(".cms-doclink").prop("href",$(a).data("doc-link")),$(".cms-doclink").show()):$(".cms-doclink").hide();if($(a).val()){var b=this.$el.find(".formula-editor").attr("id");ace.edit(b).insert($(a).val())}},open_select_member_selector:function(a){a.preventDefault();
var b=this.$el.find("#cms-dimension option:selected").val(),c=this.$el.find("#cms-dimension option:selected").text(),d=this.$el.find("#cms-dimension option:selected").data("dimension"),e=this.$el.find("#cms-dimension option:selected").data("type"),f=this.$el.find(".formula-editor").attr("id"),g=ace.edit(f),h=this;$(a.currentTarget).hasClass("btn-select-member")?((new ParentMemberSelectorModal({dialog:this,workspace:this.workspace,cube:this.workspace.selected_cube,dimensions:Saiku.session.sessionworkspace.cube[this.workspace.selected_cube].get("data").dimensions,
selectDimension:b,dimension:d,hierarchy:c,uniqueName:this.pmUniqueName,lastLevel:this.pmLevel,breadcrumbs:this.pmBreadcrumbs,select_type:"select_member",selected_member:this.selected_member,close_callback:function(a){h.close_select_modal(g,a)}})).render().open(),this.$el.parents(".ui-dialog").find(".ui-dialog-title").text("Connection Details")):"calcmember"===e&&((new ParentMemberSelectorModal({dialog:this,workspace:this.workspace,cube:this.workspace.selected_cube,dimensions:Saiku.session.sessionworkspace.cube[this.workspace.selected_cube].get("data").dimensions,
selectDimension:b,dimension:d,hierarchy:c,uniqueName:this.pmUniqueName,lastLevel:this.lastLevel,current_level:this.pmLevel,breadcrumbs:this.pmBreadcrumbs})).render().open(),this.$el.parents(".ui-dialog").find(".ui-dialog-title").text("Connection Details"))},close_select_modal:function(a,b){a.insert(b)},help:function(){window.open("http://wiki.meteorite.bi/display/SAIK/Calculated+Members")}}),GrowthModal=Modal.extend({type:"filter",closeText:"Save",measureExpression:"",selectedMeasure:"",selectedDimension:"",
asPercent:!1,asPercentAround100:!1,asPercentAlternative:!1,events:{"click .dialog_footer a":"call","submit form":"save","change #Measures":"addMeasureToCalculationField","change #Dimensions":"addDimensionToCalculationField",'click [type\x3d"checkbox"]':"setAbsoluteOrRelative"},buttons:[{text:"OK",method:"save"},{text:"Cancel",method:"close"}],addMeasureTemplate:_.template("\x3cspan\x3e Calculate difference of a measure over dimension members \x3c/span\x3e\x3cform id\x3d'measureGrowthForm'\x3e\x3ctable border\x3d'0px'\x3e\x3ctr\x3e\x3ctd class\x3d'col0 i18n'\x3eName:\x3c/td\x3e\x3ctd class\x3d'col1'\x3e\x3cinput type\x3d'text' class\x3d'form-control measure_name' value\x3d'Measure Name'\x3e\x3c/input\x3e\x3c/td\x3e\x3c/tr\x3e\x3cinput type\x3d\"checkbox\" name\x3d\"asPercent\" value\x3d\"asPercent\" id\x3d\"asPercentCheckbox\"\x3e Relative %? \x3cbr\x3e\x3c% if(dimensions.length\x3c2){ %\x3e\x3cinput type\x3d\"checkbox\" name\x3d\"asPercentAlt\" disabled value\x3d\"asPercentAlt\" id\x3d\"asPercentAltCheckbox\"\x3e % of Measure\x3cbr\x3e\x3c% } else {%\x3e\x3cinput type\x3d\"checkbox\" name\x3d\"asPercentAlt\" value\x3d\"asPercentAlt\" id\x3d\"asPercentAltCheckbox\"\x3e % of Measure\x3cbr\x3e\x3c% }%\x3e\x3cinput type\x3d\"checkbox\" name\x3d\"asPercentAround100\" value\x3d\"asPercentAround100\" id\x3d\"asPercentAround100Checkbox\"\x3e Relative around 100%? \x3cbr\x3e\x3ctr\x3e\x3ctd class\x3d'col0 i18n'\x3eMeasure:\x3c/td\x3e\x3ctd class\x3d'col1'\x3e\x3cselect id\x3d'Measures' class\x3d'form-control' name\x3d'MeasuresId' title\x3d'Select the measure from which the difference should be calculated'\x3e \x3coption value\x3d'' selected\x3d'selected'\x3e--select an existing measure--\x3c/option\x3e \x3c% _(measures).each(function(m) { %\x3e \x3coption value\x3d'\x3c%\x3d m.uniqueName %\x3e'\x3e\x3c%\x3d m.name %\x3e\x3c/option\x3e \x3c% }); %\x3e \x3c/select\x3e \x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd class\x3d'col0 i18n'\x3eDimension:\x3c/td\x3e\x3ctd class\x3d'col1'\x3e\x3cselect id\x3d'Dimensions' name\x3d'DimensionsId' class\x3d'form-control' title\x3d'This dimension attribute is used to calculate the difference of the selected measure. E.g. Calculate the growth over the years.'\x3e \x3coption value\x3d'' selected\x3d'selected'\x3e--select a dimension from your query--\x3c/option\x3e \x3c% _(dimensions).each(function(dim) { %\x3e \x3coption value\x3d'\x3c%\x3d dim %\x3e'\x3e\x3c%\x3d dim %\x3e\x3c/option\x3e \x3c% }); %\x3e \x3c/select\x3e \x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd class\x3d'col0 i18n'\x3eFormat:\x3c/td\x3e\x3ctd class\x3d'col1'\x3e\x3cinput class\x3d'measure_format' type\x3d'text' class\x3d'form-control' value\x3d'#,##0.00'\x3e\x3c/input\x3e\x3c/td\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd class\x3d'col0 i18n'\x3eFormula:\x3c/td\x3e\x3ctd class\x3d'col1'\x3e\x3ctextarea class\x3d'measureFormula auto-hint' class\x3d'form-control' placeholder\x3d'This field will automatically be constructed by selecting a measure and growth dimension from the dropdown lists above...'\x3e\x3c/textarea\x3e\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/form\x3e"),
initialize:function(a){this.measures=a.measures;this.dimensions=a.dimensions;this.workspace=a.workspace;_.bindAll(this,"save","addMeasureToCalculationField","addDimensionToCalculationField","updateCalculatedMemberField","setAbsoluteOrRelative","updateFormatField");if(isIE&&9>isIE)$(this.el).find("form").on("submit",this.save);this.message=this.addMeasureTemplate({measures:this.measures,dimensions:this.dimensions,measureExpression:this.measureExpression});this.$el.find(".dialog_icon")},save:function(a){a.preventDefault();
var b=this,c=$(this.el).find(".measure_name").val(),d=$(this.el).find(".measureFormula").val();a=$(this.el).find(".measure_format").val();var e="";"undefined"!=typeof c&&c||(e+="You have to enter a name for the measure! ");"undefined"!=typeof d&&d&&""!==d||(e+="You have to enter a MDX formula for the calculated measure! ");""!==e?alert(e):(this.asPercentAlternative?(_.each(this.memberExpression,function(a){b.workspace.query.helper.addCalculatedMember({name:a.name,dimension:a.dimension,uniqueName:a.uniqueName,
caption:"*TOTAL_MEMBER_SEL~SUM",properties:{},formula:a.statement,hierarchyName:a.hierarchy,parentMember:"",parentMemberLevel:"",previousLevel:"",parentMemberBreadcrumbs:[]})}),c={name:c,formula:d,properties:{},uniqueName:"[Measures]."+c},a&&(c.properties.FORMAT_STRING="###0.00%")):(c={name:c,formula:d,properties:{},uniqueName:"[Measures]."+c},a&&(c.properties.FORMAT_STRING=a)),b.workspace.query.helper.addCalculatedMeasure(c),b.workspace.sync_query(),this.close());return!1},endswith:function(a,b){return-1!==
a.indexOf(b,a.length-b.length)},updateCalculatedMemberField:function(){var a="[Measures]."+this.surroundWithSquareBrackets(this.selectedMeasure),b=this.selectedDimension+".CurrentMember.PrevMember";if(this.asPercent)this.measureExpression="( IIF( IsEmpty("+b+"),NULL, ( "+a+" - ("+a+", "+b+")) / ( "+a+", "+b+")))";else if(this.asPercentAround100)this.measureExpression="( IIF( IsEmpty("+b+"),NULL, 1 + ( "+a+" - ("+a+", "+b+")) / ( "+a+", "+b+")))";else if(this.asPercentAlternative){b=this.workspace.query.helper.getAxis("ROWS").hierarchies;
this.memberExpression=[];for(var c=$(this.el).find("#Dimensions").val(),d=!1,e=this.calculate_nonempty_crossjoin(b),f=0;f<b.length;f++){var g=b[f];if(c===g.name)d=!0;else if(1==d){var h=this.calculated_generate(e,g),k=g.name,g=g.dimension;this.memberExpression.push({dimension:g,hierarchy:k,statement:"sum("+h+")",uniqueName:k+".["+g+"*TOTAL_MEMBER_SEL~SUM]",name:g+"*TOTAL_MEMBER_SEL~SUM"})}}var l="";_.each(this.memberExpression,function(a){l+=","+a.uniqueName});this.measureExpression=a+"/("+a+l+")"}else this.measureExpression=
"( IIF( IsEmpty("+b+"),NULL, ( "+a+" - ( "+a+", "+b+"))))";$(".measureFormula").val(this.measureExpression)},addMeasureToCalculationField:function(a){this.selectedMeasure=this.$("#Measures option:selected").text();this.updateCalculatedMemberField()},addDimensionToCalculationField:function(a){this.selectedDimension=this.$("#Dimensions option:selected").text();this.updateCalculatedMemberField()},setAbsoluteOrRelative:function(a){a=a.target.id;var b=this;"asPercentCheckbox"==a?(this.asPercent=!this.asPercent,
this.asPercentAlternative=this.asPercentAround100=!1,$(this.el).find("#Dimensions option").remove(),_.each(this.dimensions,function(a){$(b.el).find("#Dimensions").append($("\x3coption\x3e\x3c/option\x3e").attr("value",a).text(a))}),$(this.el).find("#Dimensions").find("option:last").prop("disabled",!1)):"asPercentAround100Checkbox"==a?(this.asPercentAround100=!this.asPercentAround100,this.asPercentAlternative=this.asPercent=!1,$(this.el).find("#Dimensions option").remove(),_.each(this.dimensions,function(a){$(b.el).find("#Dimensions").append($("\x3coption\x3e\x3c/option\x3e").attr("value",
a).text(a))}),$(this.el).find("#Dimensions").find("option:last").prop("disabled",!1)):"asPercentAltCheckbox"==a&&(this.asPercentAlternative=!this.asPercentAlternative,this.asPercentAround100=this.asPercent=!1,$(this.el).find("#Dimensions option").remove(),a=this.workspace.query.helper.getAxis("ROWS").hierarchies,_.each(a,function(a){$(b.el).find("#Dimensions").append($("\x3coption\x3e\x3c/option\x3e").attr("value",a.name).text(a.name))}),$(this.el).find("#Dimensions").find("option:last").prop("disabled",
!0));$("#asPercentCheckbox").prop("checked",this.asPercent);$("#asPercentAround100Checkbox").prop("checked",this.asPercentAround100);$("#asPercentAltCheckbox").prop("checked",this.asPercentAlternative);this.updateCalculatedMemberField();this.updateFormatField()},updateFormatField:function(a){(this.asPercent||this.asPercentAround100)&&$(".measure_format").val("0.00%")},surroundWithSquareBrackets:function(a){return"["+a+"]"},calculate_nonempty_crossjoin:function(a){var b;b=this.return_selected_members(a[a.length-
1]);b="NONEMPTYCROSSJOIN("+this.return_selected_members(a[a.length-2])+","+b+")";if(2<a.length)for(var c=a.length-2;0<c;--c)b="NONEMPTYCROSSJOIN("+this.return_selected_members(a[c-1])+","+b+")";return b},calculated_generate:function(a,b){return"Generate("+a+",{"+b.name+".CURRENTMEMBER})"},return_selected_members:function(a){var b="",c;_.each(a.levels,function(a){c=a});if(0<c.selection.members.length)return _.each(c.selection.members,function(a){b+=a.uniqueName+","}),"{"+b.substring(0,b.length-1)+
"}";var d=a.levels,d=Object.keys(d)[Object.keys(d).length-1];return a.name+".["+d+"].MEMBERS"}}),FormatAsPercentageModal=Modal.extend({type:"filter",closeText:"Save",generatedMeasures:[],selectedMeasure:"",selectedDimension:"",asPercent:!0,events:{"click .dialog_footer a":"call","click .formatButton":"format"},buttons:[{text:"Cancel",method:"close"},{text:"Help",method:"help"}],addMeasureTemplate:_.template("\x3cdiv class\x3d'text'\x3eName: \x3cinput type\x3d'text' class\x3d'measure_name form-control'\x3e\x3c/input\x3e \x3c/div\x3e \x3cdiv\x3e \x3cspan\x3e Select how to express the measures: \x3c/span\x3e \x3c/div\x3e\x3col style\x3d'list-style-type: none;'\x3e \x3cli style\x3d'padding-bottom: 10px; padding-right: 10px; float: inherit;'\x3e \x3cbutton class\x3d'form_button btn btn-primary formatButton' id\x3d'formatOverRows'\x3e Format as % of rows \x3c/button\x3e\x3c/li\x3e\x3cli style\x3d'padding-bottom: 10px; padding-right: 10px; float: inherit;'\x3e \x3cbutton class\x3d'form_button btn btn-primary formatButton' id\x3d'formatOverColumns'\x3e Format as % of columns \x3c/button\x3e\x3c/li\x3e\x3cli style\x3d'padding-bottom: 10px; padding-right: 10px; float: inherit;'\x3e \x3cbutton class\x3d'form_button formatButton btn btn-primary' id\x3d'formatOverTotal'\x3e Format as % of total \x3c/button\x3e\x3c/li\x3e\x3c/ol\x3e\x3cspan id\x3d'userFeedback'\x3e \x3cp\x3e \x3c%\x3d userFeedback %\x3e \x3c/p\x3e \x3c/span\x3e"),
userFeedback:"",selectedRows:[],selectedColumns:[],initialize:function(a){this.measures=a.measures;this.workspace=a.workspace;a=this.workspace.query.model.mdx;this.selectedRows=this.extractFromMdx(a,"~ROWS");this.selectedColumns=this.extractFromMdx(a,"~COLUMNS");this.generatedMeasures=[];_.bindAll(this,"save","format");this.options.title="Format as percentage";if(isIE&&9>isIE)$(this.el).find("form").on("submit",this.save);this.userFeedback=this.checkRowsOrColumnsPresent(this.selectedColumns,this.selectedRows);
this.message=this.addMeasureTemplate({userFeedback:this.userFeedback});this.$el.find(".dialog_icon")},save:function(a,b,c){var d=$(this.el).find(".measure_name").val();if(null==d||""==d)d=b+" % of "+c;b="";"undefined"!=typeof d&&d||(b+="You have to enter a name for the measure! ");"undefined"!=typeof a&&a&&""!==a||(b+="You have to enter a MDX formula for the calculated measure! ");""!==b?alert(b):(a={name:d,formula:a,properties:{},uniqueName:"[Measures]."+d},a.properties.FORMAT_STRING="0.00%",this.workspace.query.helper.addCalculatedMeasure(a),
this.generatedMeasures.push(a))},format:function(a){a.preventDefault();a=a.target.id;for(var b=this.determineFormatOver(a),c=0;c<this.measures.length;c++){var d=this.measures[c].uniqueName;try{var e=this.formatMeasure(d,a);this.save(e,this.measures[c].caption,b)}catch(f){this.setUserFeedback(f)}}this.replaceMeasuresWithFormattedMeasures();this.workspace.sync_query();this.workspace.toolbar.run_query();this.generatedMeasures=[];this.close()},formatMeasure:function(a,b){var c="";if("formatOverRows"==
b){if(0==this.selectedColumns.length)throw"There are no dimensions in the columns to format over";c=this.makeCrossJoinExpression(this.selectedColumns);c=a+" / SUM(CROSSJOIN("+c+","+a+"))"}else if("formatOverColumns"==b){if(0==this.selectedRows.length)throw"There are no dimensions in the rows to format over";c=this.makeCrossJoinExpression(this.selectedRows);c=a+" / SUM(CROSSJOIN("+c+","+a+"))"}else if("formatOverTotal"==b){if(0==this.selectedRows.length&&0==this.selectedColumns.length)throw"There are no dimensions in the rows and columns to format over";
c=this.makeCrossJoinExpression(this.selectedRows.concat(this.selectedColumns));c=a+" / SUM(CROSSJOIN("+c+","+a+"))"}return c},replaceMeasuresWithFormattedMeasures:function(){var a=this.workspace.query.helper;a.clearMeasures();for(var b=this.generatedMeasures,c=[],d=0;d<b.length;d++)c[d]={name:b[d].name,type:"CALCULATED"};a.setMeasures(c)},extractFromMdx:function(a,b){var c=[];if(null==a||""==a)c=[];else for(var d=a.substring(0,a.indexOf("SELECT")-1),e=this.occurrences(d,b,!1),f=0,g=0;g<e;g++){var f=
d.indexOf(b,f),h=d.indexOf("]",f),h=d.substring(f,h);c[g]="["+h+"]";f+=1}return c},occurrences:function(a,b,c){a+="";b+="";if(0>=b.length)return a.length+1;var d=0,e=0;for(c=c?1:b.length;;)if(e=a.indexOf(b,e),0<=e)d++,e+=c;else break;return d},makeCrossJoinExpression:function(a){for(var b=a[0],c=1;c<a.length;c++)b+=" * ",b+=a[c];return b},determineFormatOver:function(a){var b="";return b=-1!=a.indexOf("Rows")?"rows":-1!=a.indexOf("Columns")?"columns":"total"},setUserFeedback:function(a){$("#userFeedback").html("\x3cp class\x3d'editor_info'\x3e"+
a+"\x3c/p\x3e")},checkRowsOrColumnsPresent:function(a,b){return null!=a&&void 0!=a&&0!=a.length||null!=b&&void 0!=b&&0!=b.length?"":"You selected no columns or rows, you should probably return."},help:function(){window.location("http://wiki.meteorite.bi/display/SAIK/Totals+and+Subtotals")}}),ParentMemberSelectorModal=Modal.extend({selected_member:null,close_callback:null,select_type:"parent-member-selector",type:"parent-member-selector",template_modal:_.template('\x3cform class\x3d"form-group" onsubmit\x3d"return false;"\x3e\x3cdiv class\x3d"group-elements" style\x3d"padding-top: 0;"\x3e\x3cnav class\x3d"breadcrumbs"\x3e\x3c/nav\x3e\x3cspan class\x3d"loading i18n"\x3eLoading...\x3c/span\x3e\x3c/div\x3e\x3c% if (Settings.PARENT_MEMBER_DIMENSION||this.select_type!\x3d\x3d"parent-member-selector") { %\x3e\x3cdiv class\x3d"group-elements"\x3e\x3clabel for\x3d"dimension" class\x3d"i18n"\x3eDimension:\x3c/label\x3e\x3cselect id\x3d"dimension" class\x3d"form-control"\x3e\x3coptgroup label\x3d"Measures"\x3e\x3coption value\x3d"[Measures].[Measures]" data-dimension\x3d"Measures" data-type\x3d"calcmember"\x3eMeasures\x3c/option\x3e\x3c/optgroup\x3e\x3c% _(dimensions).each(function(dimension) { %\x3e\x3coptgroup label\x3d"\x3c%\x3d dimension.name %\x3e"\x3e\x3c% _(dimension.hierarchies).each(function(hierarchy) { %\x3e\x3coption value\x3d"\x3c%\x3d hierarchy.uniqueName %\x3e" data-dimension\x3d"\x3c%\x3d dimension.name %\x3e" data-type\x3d"calcmember"\x3e\x3c%\x3d hierarchy.name %\x3e\x3c/option\x3e\x3c% }); %\x3e\x3c/optgroup\x3e\x3c% }); %\x3e\x3c/select\x3e\x3c/div\x3e\x3c% } %\x3e\x3cdiv class\x3d"group-elements"\x3e\x3clabel\x3e\x3cspan class\x3d"i18n"\x3eSelected Level:\x3c/span\x3e \x3cspan class\x3d"selected-level"\x3e\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"group-elements"\x3e\x3cul class\x3d"members-list"\x3e\x3cli class\x3d"i18n"\x3eLoading...\x3c/li\x3e\x3cul\x3e\x3c/div\x3e\x3cdiv class\x3d"group-elements"\x3e\x3cinput type\x3d"search" class\x3d"form-control" id\x3d"auto-filter" results\x3d"5" placeholder\x3d"Autocomplete Filter"\x3e\x3c/div\x3e\x3c/form\x3e'),
buttons:[{text:"Add",method:"save"},{text:"Clear",method:"clear"},{text:"Cancel",method:"close"}],events:{"click .dialog_footer a":"call","click .crumb":"fetch_crumb","change #dimension":"fetch_dimension","click .drill_member":"drill_member","keyup #auto-filter":"auto_filter","click .member":"select_member"},initialize:function(a){_.extend(this,a);this.workspace=a.workspace;this.options.title="Member Selector";void 0!==a.select_type&&(this.select_type=a.select_type);this.current_level=
a.current_level;this.lastLevel=a.lastLevel;this.selected_member=a.selected_member;this.close_callback=a.close_callback;a=Saiku.session.sessionworkspace.cube[this.cube].get("data").dimensions;this.message=this.template_modal({dimensions:a});this.bind("open",function(){this.$el.find("#dimension").val(this.selectDimension);_.isEmpty(this.uniqueName)&&_.isEmpty(this.breadcrumbs)&&!_.isEmpty(this.dimension)?(Saiku.ui.block('\x3cspan class\x3d"i18n"\x3eLoading...\x3c/span\x3e'),this.new_parent_member()):
_.isEmpty(this.dimension)||(Saiku.ui.block('\x3cspan class\x3d"i18n"\x3eLoading...\x3c/span\x3e'),this.edit_parent_member())})},new_parent_member:function(){if("Measures"!=this.dimension)(new Level({},{ui:this,cube:this.cube,dimension:this.dimension,hierarchy:this.hierarchy})).fetch({success:this.get_levels});else{var a=Saiku.session.sessionworkspace.cube[this.cube].get("data").measures;this.populate_members_list(a)}},edit_parent_member:function(){if(void 0!=this.lastLevel&&""!=this.lastLevel){var a=
this;(new LevelMember({},{ui:this,cube:this.cube,dimension:this.dimension,hierarchy:this.hierarchy,level:this.lastLevel})).fetch({success:function(b,c){a.get_members(b,c);a.populate_breadcrumbs(a.breadcrumbs)}})}else this.new_parent_member()},populate_breadcrumbs:function(a){for(var b=[],c=a.length,d=0;d<c;d++)d!==a.length-1?0===d||1===d?b.push('\x3ca href\x3d"#fetch_crumb" class\x3d"crumb" data-position\x3d"'+d+'" data-action\x3d"false"\x3e'+a[d]+"\x3c/a\x3e \x26gt;"):b.push('\x3ca href\x3d"#fetch_crumb" class\x3d"crumb" data-position\x3d"'+
d+'" data-action\x3d"true"\x3e'+a[d]+"\x3c/a\x3e \x26gt;"):b.push('\x3cspan class\x3d"last-crumb"\x3e'+a[d]+"\x3c/span\x3e");Saiku.ui.unblock();this.$el.find(".loading").remove();this.$el.find(".breadcrumbs").empty();this.$el.find(".breadcrumbs").append(b)},populate_members_list:function(a){var b=[],c=a.length;this.$el.find(".members-list").empty();for(var d=0;d<c;d++)new LevelChildMember({},{ui:this,cube:this.cube,uniqueName:a[d].uniqueName,levelUniqueName:a[d].levelunique,mname:a[d].name,mcaption:a[d].caption}),
b=$("\x3cli /\x3e").addClass("member").data("caption",a[d].caption).data("uniqueName",a[d].uniqueName).data("levelUniqueName",a[d].levelUniqueName?a[d].levelUniqueName:!1).data("currentLevelUnique",a[d].levelUniqueName).html(a[d].name+"\x3cspan class\x3d'drill_member' style\x3d'float:right;'\x3eNext Level\x3c/span\x3e"),this.$el.find(".members-list").append(b);Saiku.ui.unblock()},get_levels:function(a,b){var c;b?(a.ui.breadcrumbs=[a.ui.dimension,a.ui.hierarchy,b[0].name],a.ui.get_last_level(),a.ui.populate_breadcrumbs(a.ui.breadcrumbs),
a.ui.$el.find(".dialog_footer").find('a[href\x3d"#clear"]').data("name",b[0].name),c=new LevelMember({},{ui:a.ui,cube:a.ui.cube,dimension:a.ui.dimension,hierarchy:a.ui.hierarchy,level:b[0].name}),c.fetch({success:a.ui.get_members})):Saiku.ui.unblock()},get_members:function(a,b){b?a.ui.populate_members_list(b):Saiku.ui.unblock()},get_child_members:function(a,b){var c;b&&0<b.length?(a.ui.populate_members_list(b),c=b[0].levelUniqueName.split("].["),c=_.last(c).replace(/[\[\]]/gi,""),a.ui.breadcrumbs.push(c),
a.ui.breadcrumbs=_.uniq(a.ui.breadcrumbs),c=_.indexOf(a.ui.breadcrumbs,c),a.ui.breadcrumbs=_.initial(a.ui.breadcrumbs,a.ui.breadcrumbs.length-(c+1)),a.ui.get_last_level(),a.ui.populate_breadcrumbs(a.ui.breadcrumbs)):Saiku.ui.unblock()},return_actual_level:function(a,b){b&&0<b.length?(a.ui.actualLevel=b[0].levelUniqueName,a.ui.current_level=_.last(a.ui.actualLevel.split("].[")).replace(/[\[\]]/gi,""),console.log(this.current_level)):Saiku.ui.unblock()},drill_member:function(a){a.preventDefault();Saiku.ui.block('\x3cspan class\x3d"i18n"\x3eLoading...\x3c/span\x3e');
a=$(a.currentTarget).closest(".member").data("uniqueName");this.$el.find("#auto-filter").val("");(new LevelChildMember({},{ui:this,cube:this.cube,uniqueName:a})).fetch({success:this.get_child_members})},get_actual_level:function(a){Saiku.ui.block('\x3cspan class\x3d"i18n"\x3eLoading...\x3c/span\x3e');(new LevelChildMember({},{ui:this,cube:this.cube,uniqueName:a})).fetch({success:this.return_actual_level})},auto_filter:function(a){if(13===a.keyCode)return!1;a=$(a.currentTarget).val();var b=new LevelChildMember({},
{ui:this,cube:this.cube,uniqueName:a});a&&!_.isEmpty(a)&&b.fetch({success:this.get_child_members})},fetch_crumb:function(a){a.preventDefault();a=$(a.currentTarget);a.data("action")&&((new LevelMember({},{ui:this,cube:this.cube,dimension:this.dimension,hierarchy:this.hierarchy,level:a.text()})).fetch({success:this.get_members}),this.reset_form(),this.breadcrumbs=_.initial(this.breadcrumbs,this.breadcrumbs.length-(Number(a.data("position"))+1)),this.populate_breadcrumbs(this.breadcrumbs))},fetch_dimension:function(a){a.preventDefault();
Saiku.ui.block('\x3cspan class\x3d"i18n"\x3eLoading...\x3c/span\x3e');this.$el.find("#dimension option:selected").val();a=this.$el.find("#dimension option:selected").text();var b=this.$el.find("#dimension option:selected").data("dimension");this.reset_form();this.dimension=b;this.hierarchy=a;this.new_parent_member()},selected_level:function(){var a;a=this.breadcrumbs[this.breadcrumbs.length-1];this.$el.find(".selected-level").text(a)},get_last_level:function(){this.lastLevel=_.last(this.breadcrumbs)},
reset_form:function(){this.uniqueName="";this.$el.find(".selected-level").text("");this.$el.find(".members-list").empty();this.$el.find(".members-list").append('\x3cli class\x3d"i18n"\x3eLoading...\x3c/li\x3e');this.$el.find("#auto-filter").val("")},clear:function(a){a.preventDefault();a=$(this.el).find(".dialog_footer").find('a[href\x3d"#clear"]').data("name");(new LevelMember({},{ui:this,cube:this.cube,dimension:this.dimension,hierarchy:this.hierarchy,level:a})).fetch({success:this.get_members});
this.reset_form();a=_.indexOf(this.breadcrumbs,a);this.breadcrumbs=_.initial(this.breadcrumbs,this.breadcrumbs.length-(a+1));this.populate_breadcrumbs(this.breadcrumbs)},save:function(a){a.preventDefault();a="";if("undefined"===typeof this.uniqueName||_.isEmpty(this.uniqueName))a+="You have to choose a member for the calculated member!";if(""!==a)alert(a);else{if("parent-member-selector"===this.select_type){a="["+this.dimension+"].["+this.hierarchy+"].";var b=void 0!==this.uniqueName.split(a)[1]?
this.uniqueName.split(a)[1]:this.uniqueName.split(a)[0];this.dialog.actualLevel=this.actualLevel;Settings.PARENT_MEMBER_DIMENSION&&Saiku.session.trigger("ParentMemberSelectorModal:save",{dialog:this.dialog,selectedDimension:this.$el.find("#dimension option:selected").val()});this.dialog.pmUniqueName=a+b;this.dialog.pmLevel=this.current_level;this.dialog.lastLevel=this.lastLevel;this.dialog.pmBreadcrumbs=_.uniq(this.breadcrumbs);this.dialog.$el.find("#cms-pmember").val(a+b)}else"Measures"!==this.dimension?
(a="["+this.dimension+"].["+this.hierarchy+"].",b=void 0!==this.uniqueName.split(a)[1]?this.uniqueName.split(a)[1]:this.uniqueName.split(a)[0],null!=this.close_callback&&this.close_callback(a+b)):this.close_callback(this.uniqueName);this.$el.dialog("close")}},select_member:function(a){a.preventDefault();a=$(a.currentTarget);a.closest("ul").children("li").removeClass("highlight_li");a.addClass("highlight_li");this.uniqueName=a.data("uniqueName");this.get_actual_level(this.uniqueName);this.current_level=
a.data("currentLevelUnique");this.selected_level();this.$el.find("#auto-filter").val("")}}),DataSourcesModal=Modal.extend({type:"data-sources",message:'\x3cform class\x3d"form-group-inline"\x3e\x3clabel for\x3d"data-sources"\x3eSelect a data source:\x3c/label\x3e\x3cselect class\x3d"form-control" id\x3d"data-sources"\x3e\x3c/select\x3e\x3c/form\x3e',buttons:[{text:"Add",method:"add"},{text:"Cancel",method:"close"}],events:{"click .dialog_footer a":"call"},initialize:function(a){_.extend(this,a);this.options.title=
"Data Sources";(new DataSources({},{dialog:this})).fetch();this.bind("open")},option_template:function(a){return _.template('\x3coption value\x3d""\x3e-- Select --\x3c/option\x3e\x3c% _.each(obj, function(value) { %\x3e\x3coption value\x3d"\x3c%\x3d value.name %\x3e"\x3e\x3c%\x3d value.name %\x3e\x3c/option\x3e\x3c% }); %\x3e')(a)},callback:function(a){var b=this.option_template(a);this.dataSources=a;this.$el.find("#data-sources").append(b)},populate_form:function(a){var b=this.dataSources,c=b.length,
d;for(d=0;d<c;d++)b[d].name===a&&(this.dialog.$el.find(this.formElements.url).val(b[d].url),this.dialog.$el.find(this.formElements.driver).val(b[d].driver),this.dialog.$el.find(this.formElements.username).val(b[d].username),this.dialog.$el.find(this.formElements.password).val(b[d].password))},add:function(a){a.preventDefault();(a=this.$el.find("#data-sources option:selected").val())&&this.populate_form(a);this.$el.dialog("close")}}),QueryToolbar=Backbone.View.extend({events:{"click .options a.button":"call",
"click .renderer a.button":"switch_render_button"},chart:{},render_mode:"table",spark_mode:null,initialize:function(a){this.workspace=a.workspace;_.bindAll(this,"call","activate_buttons","spark_bar","spark_line","render_row_viz","run_row_viz","switch_render_button");this.render_mode="table";this.spark_mode=null;this.workspace.bind("query:new",this.activate_buttons);this.workspace.bind("query:result",this.activate_buttons);this.workspace.bind("table:rendered",this.run_row_viz)},activate_buttons:function(a){"undefined"!=
typeof a&&null!==a&&($(this.el).find("a").removeClass("disabled_toolbar"),a.data||$(this.el).find("a.export_button, a.stats").addClass("disabled_toolbar"),isIE&&$(this.el).find("a.export_button").addClass("disabled_toolbar"))},template:function(){var a=$("#template-query-toolbar").html()||"";return _.template(a)()},render:function(){$(this.el).html(this.template());$(this.el).find("render_table").addClass("on");$(this.el).find("ul.table").show();return this},switch_render_button:function(a){var b=
$(a.target);a.preventDefault();if($(a.target).hasClass("disabled_toolbar"))return!1;b.parent().siblings().find(".on").removeClass("on");a=0<$(this.el).find("ul.chart li a.on:first").size()?$(this.el).find("ul.chart li a.on:first").attr("href").replace("#",""):null;b.hasClass("render_chart")?(Saiku.events.trigger("queryToolbar:render_chart",this,null),"map"===a?(b=(b=this.workspace.query.getProperty("saiku.ui.map.options"))?b.mapDefinition.type:"",this.switch_render("map"),this.workspace.query.setProperty("saiku.ui.render.mode",
"map"),this.workspace.query.setProperty("saiku.ui.render.type",b)):(this.switch_render("chart"),this.workspace.query.setProperty("saiku.ui.render.mode","chart"),b=0<$(this.el).find("ul.chart li a.on:first").size()?$(this.el).find("ul.chart li a.on:first").attr("href").replace("#",""):null,null!==b&&("charteditor"===b&&(b=$(this.el).find("ul.chart li").not(".chart_editor").find("a.on").attr("href").replace("#","")),this.workspace.query.setProperty("saiku.ui.render.type",b)))):(this.switch_render("table"),
this.workspace.query.setProperty("saiku.ui.render.mode","table"),this.workspace.query.setProperty("saiku.ui.render.type",this.spark_mode))},switch_render:function(a){a="undefined"!=typeof a?a.toLowerCase():"table";$(this.el).find("ul.renderer a.on").removeClass("on");$(this.el).find("ul.renderer a.render_"+a).addClass("on");"chart"==a?($(this.el).find("ul.chart").show(),$(this.el).find("ul.table").hide(),this.render_mode="chart",$(this.workspace.el).find(".workspace_results").children().hide(),$(this.workspace.chart.el).find(".canvas_wrapper").hide(),
this.workspace.chart.show(),this.workspace.set_class_charteditor()):"map"===a?(this.$el.find("ul.renderer a.render_chart").addClass("on"),this.$el.find("ul.chart").show(),this.$el.find("ul.table").hide(),this.render_mode="map",this.workspace.$el.find(".workspace_results").children().hide(),this.workspace.chart.$el.find(".canvas_wrapper").hide(),this.workspace.chart.show()):($(this.el).find("ul.chart").hide(),$(this.el).find("ul.table").show(),$(this.el).find("ul.table .stats").removeClass("on"),$(this.workspace.el).find(".workspace_results").children().hide(),
$(this.workspace.el).find(".workspace_results .table_wrapper").show(),$(this.workspace.chart.el).hide().children().hide(),this.render_mode="table",this.workspace.query.result.hasRun()&&this.workspace.table.render({data:this.workspace.query.result.lastresult()}));return!1},call:function(a){var b=$(a.target).hasClass("button")?$(a.target):$(a.target).parent();if(!b.hasClass("disabled_toolbar")){var c=b.attr("href").replace("#","");if("table"==this.render_mode&&this[c])this[c](a);else if("chart"==this.render_mode){this.workspace.chart.$el.find(".canvas_wrapper").find(".map-render").data("action",
"querytoolbar");if(b.hasClass("chartoption")){var d={mapDefinition:{}};this.workspace.query.setProperty("saiku.ui.map.options",d);this.workspace.query.setProperty("saiku.ui.render.mode","chart");this.workspace.querytoolbar.$el.find('ul.chart [href\x3d"#export_button"]').parent().removeAttr("disabled");this.workspace.querytoolbar.$el.find("ul.chart \x3e li#charteditor").removeAttr("disabled");this.workspace.querytoolbar.$el.find('ul.chart [href\x3d"#map"]').removeClass("on");b.parent().siblings().find(".chartoption.on").removeClass("on");
b.addClass("on");this.workspace.set_class_charteditor()}if("export_button"==c)this.workspace.chart[c](a);else this.workspace.chart.renderer.switch_chart(c),this.workspace.query.setProperty("saiku.ui.render.type",c)}else if("map"===this.render_mode&&"map"!==c)if(this.workspace.chart.$el.find(".canvas_wrapper").find(".map-render").data("action","querytoolbar"),b.hasClass("chartoption")&&(d={mapDefinition:{}},this.workspace.query.setProperty("saiku.ui.map.options",d),this.workspace.query.setProperty("saiku.ui.render.mode",
"chart"),this.workspace.querytoolbar.$el.find('ul.chart [href\x3d"#export_button"]').parent().removeAttr("disabled"),this.workspace.querytoolbar.$el.find("ul.chart \x3e li#charteditor").removeAttr("disabled"),this.workspace.querytoolbar.$el.find('ul.chart [href\x3d"#map"]').removeClass("on"),b.parent().siblings().find(".chartoption.on").removeClass("on"),b.addClass("on")),"export_button"==c)this.workspace.chart[c](a);else this.workspace.chart.renderer.switch_chart(c),this.workspace.query.setProperty("saiku.ui.render.type",
c)}a.preventDefault();return!1},spark_bar:function(){$(this.el).find("ul.table .spark_bar").toggleClass("on");$(this.el).find("ul.table .spark_line").removeClass("on");$(this.workspace.table.el).find("td.spark").remove();$(this.el).find("ul.table .spark_bar").hasClass("on")?(this.spark_mode="spark_bar",this.workspace.query.setProperty("saiku.ui.render.type","spark_bar"),_.delay(this.render_row_viz,10,"spark_bar")):this.spark_mode=null},spark_line:function(){$(this.el).find("ul.table .spark_line").toggleClass("on");
$(this.el).find("ul.table .spark_bar").removeClass("on");$(this.workspace.table.el).find("td.spark").remove();$(this.el).find("ul.table .spark_line").hasClass("on")?(this.spark_mode="spark_line",this.workspace.query.setProperty("saiku.ui.render.type","spark_line"),_.delay(this.render_row_viz,10,"spark_line")):this.spark_mode=null},run_row_viz:function(a){"table"==this.render_mode&&null!==this.spark_mode&&this.render_row_viz(this.spark_mode)},render_row_viz:function(a){$(this.workspace.table.el).find("tr").each(function(b,
c){var d=[];$(c).find("td.data div").each(function(a,b){var c=$(b).attr("alt"),c="undefined"!=typeof c&&""!==c&&null!==c&&"undefined"!=c?parseFloat(c):0;d.push(c)});$("\x3ctd class\x3d'data spark'\x3e\x26nbsp;\x3cdiv id\x3d'chart"+b+"'\x3e\x3c/div\x3e\x3c/td\x3e").appendTo($(c));var e=9*d.length;if(0<d.length){var f=(new pv.Panel).canvas("chart"+b).height(12).width(e).margin(0);"spark_bar"==a?f.add(pv.Bar).data(d).left(pv.Scale.linear(0,d.length).range(0,e).by(pv.index)).height(pv.Scale.linear(0,
_.max(d)).range(0,12)).width(6).bottom(0):"spark_line"==a&&(e/=2,f.width(e),f.add(pv.Line).data(d).left(pv.Scale.linear(0,d.length-1).range(0,e).by(pv.index)).bottom(pv.Scale.linear(d).range(0,12)).strokeStyle("#000").lineWidth(1));f.render()}})}}),WorkspaceToolbar=Backbone.View.extend({enabled:!1,events:{"click a":"call"},initialize:function(a){this.workspace=a.workspace;_.bindAll(this,"call","reflect_properties","run_query","swap_axes_on_dropzones","display_drillthrough","clicked_cell_drillthrough_export",
"clicked_cell_drillacross","clicked_cell_drillthrough","activate_buttons","switch_to_mdx","post_mdx_transform","toggle_fields_action","group_parents");this.workspace.bind("workspace:toolbar:render",this.translate);this.workspace.bind("properties:loaded",this.reflect_properties);this.workspace.trigger("workspace:toolbar:render",{workspace:this.workspace});this.workspace.bind("query:new",this.activate_buttons);this.workspace.bind("query:result",this.activate_buttons)},activate_buttons:function(a){null!==
a&&a.data&&a.data.cellset&&0<a.data.cellset.length?($(a.workspace.toolbar.el).find(".button").removeClass("disabled_toolbar"),$(a.workspace.el).find("td.data").removeClass("cellhighlight").unbind("click"),$(a.workspace.el).find(".table_mode").removeClass("on")):($(a.workspace.toolbar.el).find(".button").addClass("disabled_toolbar").removeClass("on"),$(a.workspace.el).find(".fields_list .disabled_toolbar").removeClass("disabled_toolbar"),$(a.workspace.toolbar.el).find(".about, .new, .open, .save, .edit, .run,.auto,.non_empty,.toggle_fields,.toggle_sidebar,.switch_to_mdx, .mdx").removeClass("disabled_toolbar"));
this.reflect_properties()},template:function(){var a=$("#template-workspace-toolbar").html()||"";return _.template(a)()},render:function(){$(this.el).html(this.template());return this},translate:function(){},call:function(a){a.preventDefault();var b=a.target.hash.replace("#","");if(!$(a.target).hasClass("disabled_toolbar")&&this[b])this[b](a);return!1},reflect_properties:function(){var a=this.workspace.query.model.properties?this.workspace.query.model.properties:Settings.QUERY_PROPERTIES;!0===a["saiku.olap.query.nonempty"]&&
$(this.el).find(".non_empty").addClass("on");!0===a["saiku.olap.query.automatic_execution"]&&$(this.el).find(".auto").addClass("on");!0!==a["saiku.olap.query.drillthrough"]&&$(this.el).find(".drillthrough, .drillthrough_export").addClass("disabled_toolbar");!0!==a["org.saiku.query.explain"]&&$(this.el).find(".explain_query").addClass("disabled_toolbar");!0!==a["org.saiku.connection.scenario"]?$(this.el).find(".query_scenario").addClass("disabled_toolbar"):($(this.el).find(".query_scenario").removeClass("disabled_toolbar"),
$(this.el).find(".drillthrough, .drillthrough_export").addClass("disabled_toolbar"));"true"!=a["saiku.olap.query.limit"]&&!0!==a["saiku.olap.query.filter"]||$(this.workspace.el).find(".fields_list_header").addClass("limit");"undefined"!==this.workspace.query.getProperty("saiku.olap.result.formatter")&&"flattened"==this.workspace.query.getProperty("saiku.olap.result.formatter")&&($(this.el).find(".group_parents").hasClass("on")||$(this.el).find(".group_parents").addClass("on"));0<$(this.workspace.el).find(".workspace_results tbody.ui-selectable").length&&
$(this.el).find(".zoom_mode").addClass("on");$(this.el).find(".spark_bar, .spark_line").removeClass("on");$(this.el).find("a.edit").removeClass("disabled_toolbar");"VIEW"==Settings.MODE||this.workspace.isReadOnly?($(this.el).find("a.edit").hide(),$(this.el).find("a.save").hide()):("view"==this.workspace.viewState?$(this.el).find("a.edit").removeClass("on"):$(this.el).find("a.edit").addClass("on"),$(this.el).find("a.edit").show("normal"))},new_query:function(a){"undefined"!=typeof ga&&ga("send","event",
"Toolbar","New Query");this.workspace.switch_view_state("edit");this.workspace.new_query();return!1},edit_query:function(a){$(a.target).toggleClass("on");$(a.target).hasClass("on")?this.workspace.switch_view_state("edit"):this.workspace.switch_view_state("view")},save_query:function(a){this.workspace.query&&("undefined"!=typeof this.editor&&(a=this.editor.getValue(),this.workspace.query.model.mdx=a),(new SaveQuery({query:this.workspace.query})).render().open())},open_query:function(a){(new OpenDialog).render().open()},
run_query:function(a){this.workspace.query.run(!0)},automatic_execution:function(a){var b=!this.workspace.query.getProperty("saiku.olap.query.automatic_execution");this.workspace.query.setProperty("saiku.olap.query.automatic_execution",b);b?$(a.target).addClass("on"):$(a.target).removeClass("on")},toggle_fields:function(a){a&&$(this.el).find(".toggle_fields").toggleClass("on");$(this.el).find(".toggle_fields").hasClass("on")?this.toggle_fields_action("show"):this.toggle_fields_action("hide")},toggle_fields_action:function(a,
b){"show"==a&&$(".workspace_editor").is(":visible")||"hide"==a&&$(".workspace_editor").is(":hidden")||(b?($(".workspace_editor").css("height",""),$(".workspace_editor").is(":hidden")?$(".workspace_editor").show():$(".workspace_editor").hide()):"hide"==a?$(this.workspace.el).find(".workspace_editor").hide():$(this.workspace.el).find(".workspace_editor").show())},about:function(){(new AboutModal).render().open();return!1},toggle_sidebar:function(){this.workspace.toggle_sidebar()},group_parents:function(a){a&&
$(a.target).toggleClass("on");this.$el.find(".group_parents").hasClass("on")?this.workspace.query.setProperty("saiku.olap.result.formatter","flattened"):this.workspace.query.setProperty("saiku.olap.result.formatter","flat");this.workspace.query.run()},non_empty:function(a){var b=!this.workspace.query.getProperty("saiku.olap.query.nonempty");this.workspace.query.helper.nonEmpty(b);this.workspace.query.setProperty("saiku.olap.query.nonempty",b);$(a.target).toggleClass("on");this.workspace.query.run()},
swap_axis:function(a){$(this.workspace.el).find(".workspace_results table").html("");this.workspace.query.helper.swapAxes();this.workspace.sync_query();this.workspace.query.run(!0)},check_modes:function(a){if("undefined"!==typeof a&&null!==a)if(0<$(this.workspace.el).find(".workspace_results tbody.ui-selectable").length&&$(this.workspace.el).find(".workspace_results tbody").selectable("destroy"),!$(a).hasClass("on"))$(this.workspace.el).find("td.data").removeClass("cellhighlight").unbind("click"),
$(this.workspace.el).find(".table_mode").removeClass("on"),this.workspace.query.run();else if($(a).hasClass("drillthrough_export"))$(this.workspace.el).find("td.data").addClass("cellhighlight").unbind("click").click(this.clicked_cell_drillthrough_export),$(this.workspace.el).find(".query_scenario, .drillthrough, .zoom_mode, .drillacross").removeClass("on");else if($(a).hasClass("drillthrough"))$(this.workspace.el).find("td.data").addClass("cellhighlight").unbind("click").click(this.clicked_cell_drillthrough),
$(this.workspace.el).find(".query_scenario, .drillthrough_export, .zoom_mode, .drillacross").removeClass("on");else if($(a).hasClass("query_scenario"))this.workspace.query.scenario.activate(),$(this.workspace.el).find(".drillthrough, .drillthrough_export, .zoom_mode, .drillacross").removeClass("on");else if($(a).hasClass("drillacross"))$(this.workspace.el).find("td.data").addClass("cellhighlight").unbind("click").click(this.clicked_cell_drillacross),$(this.workspace.el).find(".query_scenario, .drillthrough, .drillthrough_export, .zoom_mode").removeClass("on");
else if($(a).hasClass("zoom_mode")){var b=this;$(b.workspace.el).find(".workspace_results tbody").selectable({filter:"td",stop:function(a,d){var e=[];$(b.workspace.el).find(".workspace_results").find("td.ui-selected div").each(function(a,b){var c=$(b).attr("rel");c&&e.push(c)});$(b.workspace.el).find(".workspace_results").find(".ui-selected").removeClass(".ui-selected");e=_.uniq(e);0<e.length&&b.workspace.query.action.put("/zoomin",{success:function(a,c){b.workspace.query.parse(c);b.workspace.unblock();
b.workspace.sync_query();Saiku.ui.unblock();b.workspace.query.run()},data:{selections:JSON.stringify(e)}})}});$(this.workspace.el).find(".drillthrough, .drillthrough_export, .query_scenario, .drillacross, .about").removeClass("on")}},query_scenario:function(a){$(a.target).toggleClass("on");this.check_modes($(a.target))},zoom_mode:function(a){$(a.target).toggleClass("on");this.check_modes($(a.target))},drillacross:function(a){$(a.target).toggleClass("on");this.check_modes($(a.target))},drillthrough:function(a){$(a.target).toggleClass("on");
this.check_modes($(a.target))},display_drillthrough:function(a,b){this.workspace.table.render({data:b});Saiku.ui.unblock()},export_drillthrough:function(a){$(a.target).toggleClass("on");this.check_modes($(a.target))},clicked_cell_drillacross:function(a){$target=$(a.target).hasClass("data")?$(a.target).find("div"):$(a.target);a=$target.attr("rel");(new DrillAcrossModal({workspace:this.workspace,title:"Drill Across",action:"export",position:a,query:this.workspace.query})).open()},clicked_cell_drillthrough_export:function(a){$target=
$(a.target).hasClass("data")?$(a.target).find("div"):$(a.target);a=$target.attr("rel");(new DrillthroughModal({workspace:this.workspace,maxrows:1E4,title:"Drill-Through to CSV",action:"export",position:a,query:this.workspace.query})).open()},clicked_cell_drillthrough:function(a){$target=$(a.target).hasClass("data")?$(a.target).find("div"):$(a.target);a=$target.attr("rel");(new DrillthroughModal({workspace:this.workspace,maxrows:200,title:"Drill-Through",action:"table",success:this.display_drillthrough,
position:a,query:this.workspace.query})).open()},swap_axes_on_dropzones:function(a,b){this.workspace.query.parse(b);this.workspace.unblock();this.workspace.sync_query();Saiku.ui.unblock();this.workspace.unblock();this.workspace.sync_query();Saiku.ui.unblock()},show_mdx:function(a){(new MDXModal({mdx:this.workspace.query.model.mdx})).render().open()},workspace_titles:function(a){(new TitlesModal({query:this.workspace.query})).render().open()},export_xls:function(a){void 0!=this.workspace.query.name?
(a=this.workspace.query.name.substring(this.workspace.query.name.lastIndexOf("/")+1).slice(0,-5),window.location=Settings.REST_URL+this.workspace.query.url()+"/export/xls/"+this.workspace.query.getProperty("saiku.olap.result.formatter")+"?exportname\x3d"+encodeURIComponent(a)+"xls"):window.location=Settings.REST_URL+this.workspace.query.url()+"/export/xls/"+this.workspace.query.getProperty("saiku.olap.result.formatter")},export_csv:function(a){void 0!=this.workspace.query.name?(a=this.workspace.query.name.substring(this.workspace.query.name.lastIndexOf("/")+
1).slice(0,-6),window.location=Settings.REST_URL+this.workspace.query.url()+"/export/csv/"+this.workspace.query.getProperty("saiku.olap.result.formatter")+"?exportname\x3d"+encodeURIComponent(a)):window.location=Settings.REST_URL+this.workspace.query.url()+"/export/csv/"+this.workspace.query.getProperty("saiku.olap.result.formatter")},export_pdf:function(a){void 0!=this.workspace.query.name?(a=this.workspace.query.name.substring(this.workspace.query.name.lastIndexOf("/")+1).slice(0,-6),window.location=
Settings.REST_URL+this.workspace.query.url()+"/export/pdf/"+this.workspace.query.getProperty("saiku.olap.result.formatter")+"?exportname\x3d"+encodeURIComponent(a)):window.location=Settings.REST_URL+this.workspace.query.url()+"/export/pdf/"+this.workspace.query.getProperty("saiku.olap.result.formatter")},switch_to_mdx:function(a){var b=this;$(this.workspace.el).find(".workspace_fields").addClass("hide");$(this.el).find(".auto, .query_scenario, .buckets, .non_empty, .swap_axis, .mdx, .switch_to_mdx, .zoom_mode, .drillacross").parent().hide();
0<$(this.workspace.el).find(".workspace_results tbody.ui-selectable").length&&$(this.workspace.el).find(".workspace_results tbody").selectable("destroy");$(this.el).find(".run").attr("href","#run_mdx");$(this.el).find(".run, .save, .open, .new, .edit").removeClass("disabled_toolbar");if("view"!=Settings.MODE&&"table"!=Settings.MODE&&!this.workspace.isReadOnly){$mdx_editor=$(this.workspace.el).find(".mdx_input");$(this.workspace.el).find(".workspace_editor .mdx_input, .workspace_editor .editor_info, .workspace_editor").removeClass("hide").show();
this.editor=ace.edit("mdx_editor");this.editor.setShowPrintMargin(!1);this.editor.setFontSize(11);this.editor.commands.addCommand({name:"runmdx",bindKey:{win:"Ctrl-Enter",mac:"Command-Enter"},exec:function(a){b.run_mdx()},readOnly:!0});a=function(){var a=b.editor.getCursorPosition();$mdx_editor.parent().find(".editor_info").html("\x26nbsp; "+(a.row+1)+", "+a.column)};this.editor.on("changeSelection",a);a();var c=function(){var a=$(document).height()/3,a=Math.floor(a/b.editor.renderer.lineHeight),
a=((b.editor.getSession().getScreenLength()>a?a:b.editor.getSession().getScreenLength())+1)*b.editor.renderer.lineHeight+b.editor.renderer.scrollBar.getWidth();$mdx_editor.height(a.toString()+"px");b.editor.resize();b.workspace.adjust()};a=function(){var a=b.editor.session;b.editor.resize();a.setUseWrapMode(!0);if(a.getUseWrapMode()){var c=b.editor.renderer.characterWidth,f=b.editor.renderer.scroller.clientWidth;0<f&&a.setWrapLimitRange(null,parseInt(f/c,10))}};a();c();b.editor.focus();b.editor.clearSelection();
b.editor.getSession().setValue("");b.editor.getSession().on("change",c);$(window).resize(a);b.editor.on("changeSelection",c);b.editor.on("focus",function(a){c();return!0});b.editor.on("blur",function(a){100<$(b.workspace.el).find(".mdx_input").height()&&$(b.workspace.el).find(".mdx_input").height(100);b.editor.resize();b.workspace.adjust();return!0});this.editor.getSession().setMode("ace/mode/text")}this.workspace.dimension_list&&$(this.workspace.el).find(".sidebar_inner ul li a").css({fontWeight:"normal"}).parent("li").removeClass("ui-draggable ui-draggable-disabled ui-state-disabled");
this.activate_buttons({workspace:this.workspace});$(this.workspace.toolbar.el).find(".run").removeClass("disabled_toolbar");$(this.workspace.table.el).empty();this.workspace.adjust();this.post_mdx_transform()},post_mdx_transform:function(){var a=this;"MDX"!==this.workspace.query.model.type&&(this.workspace.query.model.queryModel={},this.workspace.query.model.type="MDX",this.workspace.query.setProperty("saiku.olap.result.formatter","flat"),a.workspace.query.helper.model().parameters={});var b=this.workspace.query.model.mdx;
a.editor&&(a.editor.setValue(b,0),a.editor.clearSelection(),a.editor.focus());$(a.el).find(".group_parents").removeClass("on");if(Settings.ALLOW_PARAMETERS){var c=function(){var b=a.editor.getValue(),c=[];if(b)for(var f=0,g=b.length;f<g-1;f++)if("$"===b[f]&&"{"===b[f+1]){for(var h="",k=!1,f=f+2;f<g;f++)if("}"!==b[f])h+=b[f];else{k=!0;f++;break}k&&h&&0<h.length&&c.push(h)}var l=a.workspace.query.helper.model().parameters,m={};_.each(c,function(a){m[a]=l[a]?l[a]:""});a.workspace.query.helper.model().parameters=
m;a.workspace.update_parameters()},b=function(){_.delay(c,1E3)};a.editor&&(a.editor.getSession().off("change",b),a.editor.getSession().on("change",b));a.workspace.update_parameters()}},run_mdx:function(a){100<$(this.workspace.el).find(".mdx_input").height()&&$(this.workspace.el).find(".mdx_input").height(100);this.editor.resize();a=this.editor.getValue();this.workspace.query.model.mdx=a;this.workspace.query.run(!0)},explain_query:function(a){this.workspace.query.action.gett("/explain",{success:function(a,
c){var d="\x3ctextarea style\x3d'width: "+($("body").width()-165)+"px;height:"+($("body").height()-175)+"px;'\x3e",d=null!==c&&null!==c.error?d+c.error:c.cellset&&0===c.cellset.length?d+"Empty explain plan!":d+c.cellset[1][0].value,d=d+"\x3c/textarea\x3e";Saiku.ui.unblock();$.fancybox('\x3cdiv id\x3d"fancy_results" class\x3d"workspace_results" style\x3d"overflow:visible"\x3e\x3ctable\x3e\x3ctr\x3e\x3cth clas\x3d"row_header"\x3eExplain Plan\x3c/th\x3e\x3c/tr\x3e\x3ctr\x3e\x3ctd\x3e'+d+"\x3c/td\x3e\x3c/tr\x3e\x3c/table\x3e\x3c/div\x3e",
{autoDimensions:!1,autoScale:!1,height:$("body").height()-100,width:$("body").width()-100,transitionIn:"none",transitionOut:"none"})}});return!1}}),WorkspaceDropZone=Backbone.View.extend({template:function(){var a=$("#template-workspace-dropzones").html()||"";return _.template(a)()},events:{"sortstop .fields_list_body.details":"set_measures","sortstop .axis_fields":"select_dimension","click .d_measure":"remove_measure_click","click .d_level":"selections","click .measure_fields.limit":"measure_action",
"click .axis_fields_header.limit":"limit_axis","click .clear_axis":"clear_axis"},initialize:function(a){this.workspace=a.workspace;_.bindAll(this,"clear_axis","set_measures")},render:function(){var a=this;$(this.el).html(this.template());$(this.el).find(".fields_list_body.details ul.connectable").sortable({items:"\x3e li",opacityg:.6,placeholder:"placeholder",tolerance:"pointer",containment:$(a.workspace.el),start:function(a,c){c.placeholder.text(c.helper.text())}});$(this.el).find(".axis_fields ul.connectable").sortable({connectWith:$(a.el).find(".axis_fields ul.connectable"),
forcePlaceholderSize:!1,forceHelperSize:!0,items:"li.selection",opacity:.6,placeholder:"placeholder",tolerance:"touch",cursorAt:{top:10,left:60},containment:$(a.workspace.el),start:function(b,c){var d=$(c.helper).find("a").parent().parent().attr("hierarchycaption");c.placeholder.text(d);$(c.helper).css({width:"auto",height:"auto"});$(a.el).find(".axis_fields ul.hierarchy li.d_level:visible").addClass("temphide").hide()}});return this},set_measures:function(a,b){var c=[];$(this.el).find(".fields_list_body.details ul.connectable li.d_measure").each(function(a,
b){var f={name:$(b).find("a").attr("measure"),type:$(b).find("a").attr("type")};c.push(f);Saiku.events.trigger("workspaceDropZone:select_measure",this,{measure:f})});this.workspace.query.helper.setMeasures(c);this.workspace.sync_query();this.workspace.query.run()},remove_measure_click:function(a){a.preventDefault();($(a.target).hasClass("d_measure")?$(a.target).find("a"):$(a.target)).parent().remove();this.set_measures()},remove_dimension:function(a,b){if($(b.helper).hasClass("d_measure"))$(b.helper).detach(),
this.set_measures();else{var c=$(b.helper).find("a").attr("hierarchy");$(this.el).find('ul.hierarchy[hierarchy\x3d"'+c+'"]').parents(".fields_list").attr("title");$(b.helper).find("a").attr("level");this.workspace.query.helper.removeHierarchy(c);this.workspace.sync_query();this.workspace.query.run()}},synchronize_query:function(){var a=this;this.reset_dropzones();var b=this.workspace.query.helper.model();if(b.hasOwnProperty("queryModel")&&b.queryModel.hasOwnProperty("axes")){var c=b.queryModel.axes,
d;for(d in c){var e=$(a.el).find('.fields_list[title\x3d"'+d+'"]');_.each(c[d].hierarchies,function(b){var c=$(a.workspace.dimension_list.el).find('ul.d_hierarchy[hierarchy\x3d"'+b.name+'"]').clone().removeClass("d_hierarchy").addClass("hierarchy");c.find("li.d_level").hide();for(var d in b.levels)c.find('li a[level\x3d"'+d+'"]').parent().show(),$(a.workspace.dimension_list.el).find('ul.d_hierarchy[hierarchy\x3d"'+b.name+'"] li a[level\x3d"'+d+'"]').parent().draggable("disable").parents(".parent_dimension").find(".folder_collapsed").addClass("selected");
b=$('\x3cli class\x3d"selection"\x3e\x3c/li\x3e');b.append(c);b.appendTo(e.find("ul.connectable"))})}_.each(b.queryModel.details.measures||[],function(b){b=$(a.workspace.dimension_list.el).find('.measure_tree a.measure[measure\x3d"'+b.name+'"]').parent();b.clone().show().appendTo($(a.el).find(".fields_list_body.details ul.connectable"));b.draggable("disable")});this.update_dropzones()}},reset_dropzones:function(){$(this.el).find(".fields_list_body ul.connectable").find("li.selection, li.d_measure").remove();
$(this.workspace.dimension_list.el).find("li.ui-draggable-disabled").draggable("enable");$(this.el).find('.fields_list[title\x3d"ROWS"] .limit').removeClass("on");$(this.el).find('.fields_list[title\x3d"COLUMNS"] .limit').removeClass("on");$(this.workspace.el).find(".fields_list_body .clear_axis").addClass("hide")},update_dropzones:function(){$(this.workspace.el).find(".fields_list_body").each(function(a,b){var c=$(b);0===c.find("ul.connectable li.selection, ul.connectable li.d_measure").length?c.siblings(".clear_axis").addClass("hide"):
c.siblings(".clear_axis").removeClass("hide")})},clear_axis:function(a){a.preventDefault();a=$(a.target).siblings(".fields_list_body").parent().attr("title");"DETAILS"==a?this.workspace.query.helper.clearMeasures():this.workspace.query.helper.clearAxis(a);Saiku.session.trigger("workspaceDropZone:clear_axis",{workspace:this.workspace,axis:a});this.workspace.sync_query();this.workspace.query.run();return!1},select_dimension:function(a,b){Saiku.session.trigger("workspaceDropZone:select_dimension",{workspace:this.workspace});
if($(b.item).is(":visible")){$(this.el).find(".axis_fields ul.hierarchy").each(function(a,b){$(b).find("li.temphide").show().removeClass("temphide")});var c=b.item.find(".level").attr("hierarchy"),d=-1;b.item.parents("ul.connectable").find("li.selection").each(function(a,b){$(b).find("ul.hierarchy").attr("hierarchy")==c&&(d=a)});var e=b.item.parents(".axis_fields").parent().attr("title"),f=$(a.target).parents(".axis_fields").parent().attr("title"),g=b.item.hasClass("d_level"),h=b.item.hasClass("dimension-level-calcmember"),
k;h||(g?(k=b.item.find("a.level").attr("level"),this.workspace.query.helper.includeLevel(e,c,k,d)):this.workspace.query.helper.moveHierarchy(f,e,c,d));$(b.item).detach();this.workspace.sync_query();this.workspace.query.run();Saiku.events.trigger("workspaceDropZone:select_dimension",this,{level:k,uniquename:void 0,toAxis:e,isNew:g,isCalc:h,hierarchy:c})}},find_type_time:function(a,b,c){void 0===this.workspace.metadata&&(this.workspace.metadata=Saiku.session.sessionworkspace.cube[this.workspace.selected_cube]);
var d={};d.dimensions=_.findWhere(this.workspace.metadata.attributes.data.dimensions,{name:a});void 0===b&&(b=a);d.hierarchies=_.findWhere(d.dimensions.hierarchies,{name:b});if(void 0===d.hierarchies||null===d.hierarchies)d.hierarchies=_.findWhere(d.dimensions.hierarchies,{name:a+"."+b});d.level=_.findWhere(d.hierarchies.levels,{name:c});if(null===d.level||void 0===d.level)d.level=_.findWhere(d.hierarchies.levels,{caption:c});return d},selections:function(a,b){a&&a.preventDefault();var c=$(a.target).hasClass("d_level")?
$(a.target).find(".level"):$(a.target),d=c.attr("hierarchy").replace(/[\[\]]/gi,"").split(".")[0],e=c.attr("hierarchy").replace(/[\[\]]/gi,"").split(".")[1]?c.attr("hierarchy").replace(/[\[\]]/gi,"").split(".")[1]:c.attr("hierarchy").replace(/[\[\]]/gi,"").split(".")[0],f=c.attr("level"),g=this.find_type_time(d,e,f),h=c.attr("hierarchy"),k=c.attr("href").replace("#","");this.member=new Member({},{cube:this.workspace.selected_cube,dimension:k});var l=decodeURIComponent(this.member.hierarchy),l=this.workspace.query.helper.getHierarchy(l),
m;l&&l.levels.hasOwnProperty(f)&&(m=l.levels[f]);g.level&&void 0!==g.level.annotations&&null!==g.level.annotations&&(void 0!==g.level.annotations.AnalyzerDateFormat||void 0!==g.level.annotations.SaikuDayFormatString)&&(_.has(m,"selection")&&0===m.selection.members.length||1===_.size(m)&&_.has(m,"name")||_.has(m,"mdx")&&m.mdx||2===_.size(m)&&_.has(m,"name")&&_.has(m,"mdx"))?(new DateFilterModal({dimension:d,hierarchy:e,target:c,name:c.attr("level"),data:g,analyzerDateFormat:g.level.annotations.AnalyzerDateFormat,
dimHier:h,key:k,workspace:this.workspace})).open():(new SelectionsModal({target:c,name:c.text(),key:k,workspace:this.workspace})).open();return!1},measure_action:function(a){var b=this;if("undefined"==typeof this.workspace.query||"QUERYMODEL"!=this.workspace.query.model.type||"view"==Settings.MODE)return!1;a=$(a.target).hasClass("limit")?$(a.target):$(a.target).parent();var c={HEADER:{name:"Position",disabled:!0,i18n:!0},sep1:"---------",BOTTOM_COLUMNS:{name:"Columns | Measures",i18n:!0},TOP_COLUMNS:{name:"Measures | Columns",
i18n:!0},BOTTOM_ROWS:{name:"Rows | Measures",i18n:!0},TOP_ROWS:{name:"Measures | Rows",i18n:!0},sep2:"---------",reset:{name:"Reset Default",i18n:!0},cancel:{name:"Cancel",i18n:!0}};$.each(c,function(a,b){recursive_menu_translate(b,Saiku.i18n.po_file)});$.contextMenu("destroy",".limit");$.contextMenu({appendTo:a,selector:".limit",ignoreRightClick:!0,build:function(a,e){var f=b.workspace.query;return{callback:function(a,b){var c=f.helper.model().queryModel.details;if("cancel"!==a){if("reset"===a)c.location=
SaikuOlapQueryTemplate.queryModel.details.location,c.axis=SaikuOlapQueryTemplate.queryModel.details.axis;else{var d=a.split("_")[0],e=a.split("_")[1];c.location=d;c.axis=e}f.run()}},items:c}}});a.contextMenu()},limit_axis:function(a){var b=this;if("undefined"==typeof this.workspace.query||"QUERYMODEL"!=this.workspace.query.model.type||"view"==Settings.MODE)return!1;var c=$(a.target).hasClass("limit")?$(a.target):$(a.target).parent(),d=c.siblings(".fields_list_body").parent().attr("title");$.contextMenu("destroy",
".limit");$.contextMenu({appendTo:c,selector:".limit",ignoreRightClick:!0,build:function(a,f){var g={},h=Saiku.session.sessionworkspace.cube[b.workspace.selected_cube].get("data").measures,k=b.workspace.query.helper.getAxis(d),l=k.hierarchies,m,n,r,q,s,t,x,z,y,v=!1,B=!1,C=!1;k&&k.filters&&_.each(k.filters,function(a){"N"==a.flavour&&(m=k["function"],n=a.expressions[0],r=a.expressions[1],C=!0);"Generic"==a.flavour&&(q=a.expressions[0],v=!0)});k&&k.sortOrder&&(s=k.sortOrder,t=k.sortEvaluationLiteral,
B=!0);k&&k.aggregators&&0<k.aggregators.length&&(y=k.aggregators[0]);null!==m&&null===r?z=m+"###SEPARATOR###"+n:null!==m&&null!==r&&null!==n&&(z="custom");B&&null!==s&&(x="customsort");_.each(h,function(a){g[a.uniqueName]={name:a.caption,payload:{n:10,sortliteral:a.uniqueName}}});_.each(l,function(a){_.each(a.levels,function(b){g[a.name]={name:a.caption,payload:{n:10,sortliteral:a.name+".["+b.name+"].CURRENTMEMBER.ORDERKEY"}}})});_.each(k.hierarchies,function(a){for(var b in a.levels)console.log(b)});
l=function(a,b){var c={},d;for(d in a)c[b+"###SEPARATOR###"+d]=_.clone(a[d]),c[b+"###SEPARATOR###"+d].fun=b,b==m&&r==d&&a[d].payload.n==n&&(z=b+"Quick",c[b+"###SEPARATOR###"+d].name="\x3cb\x3e"+a[d].name+"\x3c/b\x3e"),b==s&&t==d&&(x=b+"Quick",c[b+"###SEPARATOR###"+d].name="\x3cb\x3e"+a[d].name+"\x3c/b\x3e");return c};l={filter:{name:"Filter",i18n:!0,items:{customfilter:{name:"Custom...",i18n:!0},clearfilter:{name:"Clear Filter",i18n:!0}}},limit:{name:"Limit",i18n:!0,items:{"TopCount###SEPARATOR###10":{name:"Top 10",
i18n:!0},"BottomCount###SEPARATOR###10":{name:"Bottom 10",i18n:!0},TopCountQuick:{name:"Top 10 by...",i18n:!0,items:l(g,"TopCount")},BottomCountQuick:{name:"Bottom 10 by...",i18n:!0,items:l(g,"BottomCount")},customtop:{name:"Custom Limit...",i18n:!0},clearlimit:{name:"Clear Limit",i18n:!0}}},sort:{name:"Sort",i18n:!0,items:{ASCQuick:{name:"Ascending",i18n:!0,items:l(g,"ASC")},DESCQuick:{name:"Descending",i18n:!0,items:l(g,"DESC")},BASCQuick:{name:"Ascending (Breaking Hierarchy)",i18n:!0,items:l(g,
"BASC")},BDESCQuick:{name:"Descending (Breaking Hierarchy)",i18n:!0,items:l(g,"BDESC")},customsort:{name:"Custom...",i18n:!0},clearsort:{name:"Clear Sort",i18n:!0}}},grand_totals:{name:"Grand totals",i18n:!0,items:{show_totals_not:{name:"None",i18n:!0},show_totals_sum:{name:"Sum",i18n:!0},show_totals_min:{name:"Min",i18n:!0},show_totals_max:{name:"Max",i18n:!0},show_totals_avg:{name:"Avg",i18n:!0}}},cancel:{name:"Cancel",i18n:!0}};$.each(l,function(a,b){recursive_menu_translate(b,Saiku.i18n.po_file)});
var u=l.grand_totals.items;if(y)for(var G in u)G.substring(12)==y&&(u[G].name="\x3cb\x3e"+u[G].name+"\x3c/b");else u.show_totals_not.name="\x3cb\x3e"+u.show_totals_not.name+"\x3c/b";g["10"]={payload:{n:10}};v&&(y=l.filter,y.name="\x3cb\x3e"+y.name+"\x3c/b\x3e",y.items.customfilter.name="\x3cb\x3e"+y.items.customfilter.name+"\x3c/b\x3e");B&&(B=l.sort.items,l.sort.name="\x3cb\x3e"+l.sort.name+"\x3c/b\x3e",x in B&&(B[x].name="\x3cb\x3e"+B[x].name+"\x3c/b\x3e"));C&&(B=l.limit.items,l.limit.name="\x3cb\x3e"+
l.limit.name+"\x3c/b\x3e",z in B&&(B[z].name="\x3cb\x3e"+B[z].name+"\x3c/b\x3e"));return{callback:function(a,e){var f;if("cancel"!=a)if("clearfilter"==a)c.removeClass("on"),b.workspace.query.helper.removeFilter(k,"Generic"),b.synchronize_query(),b.workspace.query.run();else if("customfilter"==a)f=function(a){var c=[];c.push(a);b.workspace.query.helper.removeFilter(k,"Generic");k.filters.push({flavour:"Generic",operator:null,"function":"Filter",expressions:c});b.synchronize_query();b.workspace.query.run()},
(new FilterModal({axis:d,success:f,query:b.workspace.query,expression:q,expressionType:"Filter",workspace:b.workspace})).render().open();else if("stringfilter"==a)f=function(a,c,d){c=[];c.push(a+('.CurrentMember.Name MATCHES ("(?i).*'+d+'.*")'));b.workspace.query.helper.removeFilter(k,"Generic");k.filters.push({flavour:"Generic",operator:null,"function":"Filter",expressions:c});b.synchronize_query();b.workspace.query.run()},(new StringFilterModal({axis:d,success:f,query:b.workspace.query,expression:q,
expressionType:"Filter",workspace:b.workspace})).render().open();else if("clearlimit"==a)c.removeClass("on"),b.workspace.query.helper.removeFilter(k,"N"),b.synchronize_query(),b.workspace.query.run();else if("customtop"==a)f=function(a,c,d){var e=[];e.push(c);d&&e.push(d);b.workspace.query.helper.removeFilter(k,"N");k.filters.push({flavour:"N",operator:null,"function":a,expressions:e});b.synchronize_query();b.workspace.query.run()},(new CustomFilterModal({axis:d,measures:h,success:f,query:b.workspace.query,
func:m,n:n,sortliteral:r})).render().open();else if("customsort"==a)f=function(a,c){k.sortOrder=a;k.sortEvaluationLiteral=c;b.synchronize_query();b.workspace.query.run()},(new FilterModal({axis:d,success:f,query:b.workspace.query,expression:t,expressionType:"Order"})).render().open();else{if("clearsort"==a)k.sortOrder=null,k.sortEvaluationLiteral=null,b.synchronize_query();else if(0===a.indexOf("show_totals_")){f=a.substring(12);var l=[];l.push(f);k.aggregators=l}else{f=a.split("###SEPARATOR###")[0];
var v=a.split("###SEPARATOR###")[1];-1<_.indexOf(["ASC","BASC","DESC","BDESC"],f)?(k.sortOrder=f,k.sortEvaluationLiteral=g[v].payload.sortliteral):-1<_.indexOf(["Param"],f)?(console.log("here"),k.sortEvaluationLiteral=g[v].payload.sortliteral):(l=[],l.push(g[v].payload.n),(v=g[v].payload.sortliteral)&&l.push(v),b.workspace.query.helper.removeFilter(k,"N"),k.filters.push({flavour:"N",operator:null,"function":f,expressions:l}));b.synchronize_query()}b.workspace.query.run()}},items:l}}});c.contextMenu()}}),
Table=Backbone.View.extend({className:"table_wrapper",events:{"click th.row":"clicked_cell","click th.col":"clicked_cell"},initialize:function(a){this.workspace=a.workspace;this.renderer=new SaikuTableRenderer;_.bindAll(this,"render","process_data");this.workspace.bind("query:result",this.render);this.id=_.uniqueId("table_");$(this.el).attr("id",this.id)},clicked_cell:function(a){var b=this;0<$(this.workspace.el).find(".workspace_results.ui-selectable").length&&$(this.workspace.el).find(".workspace_results").selectable("destroy");
a=$(a.target).hasClass("row")||$(a.target).hasClass("col")?$(a.target).find("div"):$(a.target);$(document);$.contextMenu("destroy",".row, .col");$.contextMenu({appendTo:a,selector:".row, .col",ignoreRightClick:!0,build:function(a,d){var e=$(d.currentTarget).find("div"),f=$(d.currentTarget).hasClass("row")?"ROWS":"COLUMNS",g=e.attr("rel").split(":"),h=parseInt(g[0]),g=parseInt(g[1]),k=b.workspace.query.result.lastresult().cellset[h][g],h=b.workspace.query;h.get("schema");h.get("connection");h.get("catalog");
h.get("cube");var l=k.properties.dimension,m=k.properties.hierarchy,n=k.properties.level,r="",q=JSON.stringify({hierarchy:m,uniquename:n,type:"level",action:"delete"})+","+JSON.stringify({hierarchy:m,uniquename:k.properties.uniquename,type:"member",action:"add"}),h=k.properties.uniquename,s={},g=b.workspace.selected_cube,t;Saiku.session.sessionworkspace.cube[g]&&t&&measures||("undefined"!==typeof localStorage&&localStorage&&null!==localStorage.getItem("cube."+g)?Saiku.session.sessionworkspace.cube[g]=
new Cube(JSON.parse(localStorage.getItem("cube."+g))):(Saiku.session.sessionworkspace.cube[g]=new Cube({key:g}),Saiku.session.sessionworkspace.cube[g].fetch({async:!1})),t=Saiku.session.sessionworkspace.cube[g].get("data").dimensions);var x=[],g=b.workspace.query.helper.getHierarchy(m);_.each(g.levels,function(a){x.push(m+".["+a.name+"]")});_.each(t,function(a){a.name==l&&_.each(a.hierarchies,function(a){a.uniqueName==m&&_.each(a.levels,function(a){s[a.name]={name:a.caption,payload:JSON.stringify({hierarchy:m,
uniquename:a.uniqueName,type:"level",action:"add"})};-1<_.indexOf(x,a.uniqueName)&&(s[a.name].disabled=!0,s["remove-"+a.name]={name:a.caption,payload:JSON.stringify({hierarchy:m,uniquename:a.uniqueName,type:"level",action:"delete"})});a.uniqueName==n&&(r=a.caption,l_name=a.name);s["keep-"+a.name]=s[a.name];s["include-"+a.name]=JSON.parse(JSON.stringify(s[a.name]));s["keep-"+a.name].payload=q+","+s[a.name].payload})})});s.keeponly={payload:q};s.getchildren={payload:h};s.hasOwnProperty("remove-"+l_name)&&
s.hasOwnProperty("include-"+l_name)&&(s.showall={payload:s["remove-"+l_name].payload+", "+s["include-"+l_name].payload});t=function(a){var b={},c;for(c in s)null!==a&&a.length<c.length&&c.substr(0,a.length)==a&&(b[c]=s[c]);return b};h={name:{name:"\x3cb\x3e"+e.html()+"\x3c/b\x3e",disabled:!0},sep1:"---------",keeponly:{name:"Keep Only",i18n:!0,payload:q}};"Measures"!=l&&(h.fold1key={name:"Include Level",i18n:!0,items:t("include-")},h.fold2key={name:"Keep and Include Level",i18n:!0,items:t("keep-")},
h.fold3key={name:"Remove Level",i18n:!0,items:t("remove-")},h.filterlevel={name:"Filter Level",i18n:!0});$.each(h,function(a,b){recursive_menu_translate(b,Saiku.i18n.po_file)});return{callback:function(a,c){var d=[];if("keeponly"===a){var g=b.workspace.query.helper.getHierarchy(m);g&&g.levels.hasOwnProperty(r)&&(d.push({uniqueName:k.properties.uniquename,caption:k.properties.uniquename}),g.levels[r].selection={type:"INCLUSION",members:d},b.workspace.drop_zones.synchronize_query(),b.workspace.query.run(!0))}else if("filterlevel"===
a)d=k.properties.level.substring(k.properties.level.lastIndexOf(".")+1),d=d.replace("[","").replace("]",""),(new SelectionsModal({target:e,name:"Filter Level",key:k.properties.hierarchy+"/"+d,workspace:b.workspace,axis:"ROWS"})).open();else if("remove"===a.substring(0,a.indexOf("-"))){var h=a.substring(a.indexOf("-")+1);b.workspace.query.helper.removeLevel(m,h);b.workspace.drop_zones.synchronize_query();b.workspace.query.run(!0)}else"keep"===a.substring(0,a.indexOf("-"))?(h=a.substring(a.indexOf("-")+
1),(g=b.workspace.query.helper.getHierarchy(m))&&g.levels.hasOwnProperty(r)&&(d.push({uniqueName:k.properties.uniquename,caption:k.properties.uniquename}),g.levels[r].selection={type:"INCLUSION",members:d},b.workspace.query.helper.includeLevel(f,m,h,null),b.workspace.drop_zones.synchronize_query(),b.workspace.query.run(!0))):"include"===a.substring(0,a.indexOf("-"))&&(h=a.substring(a.indexOf("-")+1),b.workspace.query.helper.includeLevel(f,m,h,null),b.workspace.drop_zones.synchronize_query(),b.workspace.query.run(!0))},
items:h}}});a.contextMenu()},render:function(a,b){"undefined"==typeof a||"undefined"==typeof a.data||$(this.workspace.el).is(":visible")&&!$(this.el).is(":visible")||null!==a.data&&null!==a.data.error||null===a.data||a.data.height&&0===a.data.height||(this.clearOut(),$(this.el).html("Rendering "+a.data.width+" columns and "+a.data.height+" rows..."),_.delay(this.process_data,2,a.data))},clearOut:function(){this.renderer.clear();$(this.workspace.el).find(".workspace_results").unbind("scroll");var a=
document.getElementById(this.id);null==a&&(this.workspace.tab.select(),a=document.getElementById(this.id));var b=a.firstChild;b&&a.removeChild(b)},process_data:function(a){this.workspace.processing.hide();this.workspace.adjust();this.clearOut();$(this.el).html("\x3ctable\x3e\x3c/table\x3e");this.renderer.render(a,{htmlObject:$(this.el).find("table"),batch:Settings.TABLE_LAZY,batchSize:Settings.TABLE_LAZY_SIZE,batchIntervalSize:Settings.TABLE_LAZY_LOAD_ITEMS,batchIntervalTime:Settings.TABLE_LAZY_LOAD_TIME});
this.post_process()},post_process:function(){"QM"==this.workspace.query.get("type")&&"view"!=Settings.MODE?$(this.el).addClass("headerhighlight"):$(this.el).removeClass("headerhighlight");$(this.el).find(".i18n").i18n(Saiku.i18n.po_file);this.workspace.trigger("table:rendered",this)}}),Workspace=Backbone.View.extend({className:"tab_container",events:{"click .sidebar_separator":"toggle_sidebar","change .cubes":"new_query","drop .sidebar":"remove_dimension","drop .workspace_results":"remove_dimension",
"click .refresh_cubes":"refresh","click .cancel":"cancel","click .admin":"admin"},initialize:function(a){_.bindAll(this,"caption","adjust","toggle_sidebar","prepare","new_query","set_class_charteditor","init_query","update_caption","populate_selections","refresh","sync_query","cancel","cancelled","no_results","error","switch_view_state");_.extend(this,Backbone.Events);this.loaded=!1;this.bind("query:result",this.render_result);this.toolbar=new WorkspaceToolbar({workspace:this});this.toolbar.render();
this.upgrade=new Upgrade({workspace:this});this.upgrade.render();this.querytoolbar=new QueryToolbar({workspace:this});this.querytoolbar.render();this.drop_zones=new WorkspaceDropZone({workspace:this});this.drop_zones.render();this.table=new Table({workspace:this});this.chart=new Chart({workspace:this});this.dateFilter=new DateFilterCollection;this.item={};this.viewState=a&&a.viewState?a.viewState:Settings.DEFAULT_VIEW_STATE;this.isReadOnly="view"==Settings.MODE||!1;a&&a.item&&(this.item=a.item)&&
this.item.hasOwnProperty("acl")&&0>_.indexOf(this.item.acl,"WRITE")&&(this.isReadOnly=!0,this.viewState="view");a&&(a.query||a.viewState)||(this.viewState="edit");a&&a.query&&(this.query=a.query,this.query.workspace=this,this.query.save({},{success:this.init_query,error:function(){Saiku.ui.unblock();if(1>$("body").find(".error_loading_query").length){var a=Saiku.i18n&&Saiku.i18n.po_file.error_loading_query?Saiku.i18n.po_file.error_loading_query:null;a||($('\x3cspan class\x3d"i18n error_loading_query"\x3eError Loading Query\x3c/span\x3e').hide().appendTo("body"),
Saiku.i18n.translate(),a=$(".error_loading_query").text())}else a=$(".error_loading_query").text();alert(a)}}));Saiku.session.bind("tab:add",this.prepare);var b=Saiku.URLParams.paramsURI();void 0!=a&&void 0!=a.processURI&&0==a.processURI&&(b={});Saiku.URLParams.equals({schema:b.schema,cube:b.cube});this.data_connections(b)},afterRender:function(){console.log("After render")},caption:function(a){if(this.query&&this.query.model){if(this.item&&this.item.name)return this.item.name.split(".")[0];if(this.query.model.mdx)return this.query.model.name}else if(this.query&&
this.query.get("name"))return this.query.get("name");a&&Saiku.tabs.queryCount++;return"\x3cspan class\x3d'i18n'\x3eUnsaved query\x3c/span\x3e ("+Saiku.tabs.queryCount+")"},selected_cube_template:function(a){var b=Saiku.session.sessionworkspace;b.selected=a;return _.template('\x3cselect class\x3d"cubes"\x3e\x3coption value\x3d"" class\x3d"i18n"\x3eSelect a cube\x3c/option\x3e\x3c% _.each(connections, function(connection) { %\x3e\x3c% _.each(connection.catalogs, function(catalog) { %\x3e\x3c% _.each(catalog.schemas, function(schema) { %\x3e\x3c% if (schema.cubes.length \x3e 0) { %\x3e\x3coptgroup label\x3d"\x3c%\x3d (schema.name !\x3d\x3d "" ? schema.name : catalog.name) %\x3e \x3c%\x3d (connection.name) %\x3e"\x3e\x3c% _.each(schema.cubes, function(cube) { %\x3e\x3c% if ((typeof cube["visible"] \x3d\x3d\x3d "undefined" || cube["visible"]) \x26\x26 selected !\x3d\x3d cube.caption) { %\x3e\x3coption value\x3d"\x3c%\x3d connection.name %\x3e/\x3c%\x3d catalog.name %\x3e/\x3c%\x3d ((schema.name \x3d\x3d\x3d "" || schema.name \x3d\x3d\x3d null) ? "null" : schema.name) %\x3e/\x3c%\x3d encodeURIComponent(cube.name) %\x3e"\x3e\x3c%\x3d ((cube.caption \x3d\x3d\x3d "" || cube.caption \x3d\x3d\x3d null) ? cube.name : cube.caption) %\x3e\x3c/option\x3e\x3c% } else if ((typeof cube["visible"] \x3d\x3d\x3d "undefined" || cube["visible"]) \x26\x26 selected \x3d\x3d\x3d cube.caption) { %\x3e\x3coption value\x3d"\x3c%\x3d connection.name %\x3e/\x3c%\x3d catalog.name %\x3e/\x3c%\x3d ((schema.name \x3d\x3d\x3d "" || schema.name \x3d\x3d\x3d null) ? "null" : schema.name) %\x3e/\x3c%\x3d encodeURIComponent(cube.name) %\x3e" selected\x3e\x3c%\x3d ((cube.caption \x3d\x3d\x3d "" || cube.caption \x3d\x3d\x3d null) ? cube.name : cube.caption) %\x3e\x3c/option\x3e\x3c% } %\x3e\x3c% }); %\x3e\x3c/optgroup\x3e\x3c% } %\x3e\x3c% }); %\x3e\x3c% }); %\x3e\x3c% }); %\x3e\x3c/select\x3e')(b)},
template:function(){var a=$("#template-workspace").html()||"",b=!1;this.isUrlCubeNavigation&&(b=this.selected_cube.split("/")[3],b=this.selected_cube_template(b));return _.template(a)({cube_navigation:b?b:Saiku.session.sessionworkspace.cube_navigation})},refresh:function(a){a&&a.preventDefault();Saiku.session.sessionworkspace.refresh()},render:function(){$(this.el).html(this.template());this.processing=$(this.el).find(".query_processing");this.isReadOnly||Settings.MODE&&("view"==Settings.MODE||"table"==
Settings.MODE||"map"==Settings.MODE||"chart"==Settings.MODE)?($(this.el).find(".workspace_editor").remove(),this.toggle_sidebar(),$(this.el).find(".sidebar_separator").remove(),$(this.el).find(".workspace_inner").css({"margin-left":0}),$(this.el).find(".workspace_fields").remove(),$(this.el).find(".sidebar").hide(),$(this.toolbar.el).find(".run, .auto, .toggle_fields, .toggle_sidebar,.switch_to_mdx, .new").parent().remove()):($(this.el).find(".workspace_editor").append($(this.drop_zones.el)),$(this.el).find(".sidebar").droppable({accept:".d_measure, .selection"}),
$(this.el).find(".workspace_results").droppable({accept:".d_measure, .selection"}));!Settings.MODE||"table"!=Settings.MODE&&"chart"!=Settings.MODE&&"map"!=Settings.MODE?($(this.el).find(".workspace_toolbar").append($(this.toolbar.el)),$(this.el).find(".query_toolbar").append($(this.querytoolbar.el)),$(this.el).find(".upgrade").append($(this.upgrade.el))):($(this.el).find(".workspace_toolbar").remove(),$(this.el).find(".query_toolbar").remove());this.switch_view_state(this.viewState,!0);$(this.el).find(".workspace_results").append($(this.table.el));
this.chart.render_view();this.tab.bind("tab:select",this.adjust);$(window).resize(this.adjust);Saiku.session.trigger("workspace:new",{workspace:this});if(Settings.PLUGIN&&0==Settings.BIPLUGIN5&&Saiku.session.isAdmin){var a=$("\x3ca /\x3e").attr({href:"#adminconsole",title:"Admin Console"}).click(Saiku.AdminConsole.show_admin).addClass("button admin_console");$(this.el).find(".refresh_cubes_nav").css("margin-right","40px");$(this.el).find(".admin_console_nav").append(a)}Saiku.session.isAdmin||!1!==
Settings.SHOW_REFRESH_NONADMIN||$(this.el).find(".refresh_cubes_nav").hide();return this},clear:function(){this.table.clearOut();$(this.el).find(".workspace_results table,.connectable").html("");$(this.el).find(".workspace_results_info").empty();$(this.el).find(".parameter_input").empty();$(this.chart.el).find("div.canvas").empty();$(this.querytoolbar.el).find("ul.options a.on").removeClass("on");$(this.el).find('.fields_list[title\x3d"ROWS"] .limit').removeClass("on");$(this.el).find('.fields_list[title\x3d"COLUMNS"] .limit').removeClass("on");
Saiku.session.trigger("workspace:clear",{workspace:this})},adjust:function(){var a=$(this.el).find(".sidebar_separator"),b=87;if(!0===Settings.PLUGIN||!0===Settings.BIPLUGIN)b=2,"table"==Settings.MODE&&(b=-5);if(0===$("#header").length||$("#header").is("hidden"))b=2;a.height($("body").height()-b);$(this.el).find(".sidebar").height($("body").height()-b);$(this.querytoolbar.el).find("div").height($("body").height()-b-10);var a=$(this.el).find(".workspace_editor").is(":hidden")?0:$(this.el).find(".workspace_editor").height(),
c=$(this.el).find(".query_processing").is(":hidden")?0:$(this.el).find(".query_processing").height()+62,d=$(this.el).find(".upgradeheader").is(":hidden")?0:$(this.el).find(".upgrade").height();$(this.el).find(".workspace_results").css({height:$("body").height()-b-$(this.el).find(".workspace_toolbar").height()-$(this.el).find(".workspace_results_info").height()-a-c-d-20});this.querytoolbar&&$(this.querytoolbar.el).find("a").tipsy({delayIn:700,fade:!0});this.toolbar&&$(this.toolbar.el).find("a").tipsy({delayIn:900,
fade:!0});$(this.el).find(".workspace_fields").css({height:$("body").height()-b-$(this.el).find(".workspace_toolbar").height()-d-20});this.trigger("workspace:adjust",{workspace:this})},toggle_sidebar:function(){$(this.el).find(".sidebar").toggleClass("hide");$(this.toolbar.el).find(".toggle_sidebar").toggleClass("on");var a=($(this.el).find(".sidebar").is(":visible")?$(this.el).find(".sidebar").width():0)+$(this.el).find(".sidebar_separator").width()+1;$(this.el).find(".workspace_inner").css({"margin-left":a})},
prepare:function(){},setDefaultFilters:function(a,b){_.each(a,function(a){var d=a.filtername,e=d.substring(0,d.lastIndexOf("[")-1),d=d.substring(d.lastIndexOf("["));b.helper.setDefaultFilter(e,d,a.filtervalue)})},data_connections:function(a){var b=this;_.each(Saiku.session.sessionworkspace.connections,function(c){_.each(c.catalogs,function(d){_.each(d.schemas,function(e){0<e.cubes.length&&_.each(e.cubes,function(f){if("undefined"===typeof f.visible||f.visible){var g=""===e.name||null===e.name?"null":
e.name;f=""===f.caption||null===f.caption?f.name:f.caption;a.schema===g&&a.cube===f&&(b.selected_cube=c.name+"/"+d.name+"/"+g+"/"+f,b.isUrlCubeNavigation=!0,b.paramsURI=a,_.delay(b.new_query,1E3))}})})})})},create_new_query:function(a){a.query&&(a.query.destroy(),a.query.clear(),a.query.name&&(a.query.name=void 0,a.update_caption(!0)),a.query.name=void 0);a.clear();a.processing.hide();Saiku.session.trigger("workspace:clear",{workspace:a});a.selected_cube=$(a.el).find(".cubes").val()?$(a.el).find(".cubes").val():
a.selected_cube;if(!a.selected_cube)return $(a.el).find(".calculated_measures, .addMeasure").hide(),$(a.el).find(".dimension_tree").html(""),$(a.el).find(".measure_tree").html(""),!1;a.metadata=Saiku.session.sessionworkspace.cube[a.selected_cube];for(var b=a.selected_cube.split("/"),c=b[3],d=4,e=b.length;d<e;d++)c+="/"+b[d];Saiku.events.trigger("workspace:new_query",this,{view:this,cube:c});this.query=new Query({cube:{connection:b[0],catalog:b[1],schema:"null"==b[2]?"":b[2],name:decodeURIComponent(c)}},
{workspace:a});a.query=this.query;a.query.save({},{data:{json:JSON.stringify(this.query.model)},async:!1});a.init_query()},extractDefaultFilters:function(a){var b=[],c,d;for(d in a)if(-1<d.indexOf("default_filter_")){var e=d.replace("default_filter_","");c=a[d];b.push({filtername:e,filtervalue:c})}return b},new_query:function(){this.query?Settings.QUERY_OVERWRITE_WARNING?(new WarningModal({title:"New Query",message:"You are about to clear your existing query",okay:this.create_new_query,okayobj:this})).render().open():
this.create_new_query(this):this.create_new_query(this)},init_query:function(a){var b=this;try{var c=this.query.model.properties?this.query.model.properties:{},d="RENDER_MODE"in Settings?Settings.RENDER_MODE:"saiku.ui.render.mode"in c?c["saiku.ui.render.mode"]:null,e="RENDER_TYPE"in Settings?Settings.RENDER_TYPE:"saiku.ui.render.type"in c?c["saiku.ui.render.type"]:null;"table"==Settings.MODE?d="table":"chart"==Settings.MODE?d="chart":"map"==Settings.MODE&&(d="map");"undefined"!=typeof d&&null!==d&&
this.querytoolbar.switch_render(d);"chart"==d?(!Settings.MODE||"chart"!==Settings.MODE||"map_heat"!==e&&"map_geo"!==e&&"map_marker"!==e||(this.query.setProperty("saiku.ui.render.mode","chart"),e="stackedBar"),$(this.chart.el).find(".canvas_wrapper").hide(),this.chart.renderer.switch_chart(e),$(this.querytoolbar.el).find('ul.chart [href\x3d"#'+e+'"]').parent().siblings().find(".on").removeClass("on"),$(this.querytoolbar.el).find('ul.chart [href\x3d"#'+e+'"]').addClass("on"),this.set_class_charteditor()):
"table"==d&&e in this.querytoolbar?(this.querytoolbar.render_mode="table",this.querytoolbar.spark_mode=e,$(this.querytoolbar.el).find("ul.table a."+e).addClass("on")):"map"===d&&(this.querytoolbar.$el.find("ul.chart \x3e li").find("a").removeClass("on"),this.querytoolbar.$el.find('ul.chart [href\x3d"#'+d+'"]').addClass("on"))}catch(f){Saiku.error(this.cid,f)}"table"==Settings.MODE&&this.query?this.query.run(!0):("MDX"==this.query.model.type?(this.query.setProperty("saiku.olap.result.formatter","flat"),
$(this.el).find(".sidebar").hasClass("hide")||this.toggle_sidebar(),$(this.el).find(".workspace_fields").addClass("hide"),this.toolbar.switch_to_mdx()):($(this.el).find(".workspace_editor").removeClass("hide").show(),$(this.el).find(".workspace_fields").removeClass("disabled").removeClass("hide"),$(this.el).find(".workspace_editor .mdx_input").addClass("hide"),$(this.el).find(".workspace_editor .editor_info").addClass("hide"),$(this.toolbar.el).find(".auto, .toggle_fields, .query_scenario, .buckets, .non_empty, .swap_axis, .mdx, .switch_to_mdx, .zoom_mode, .drillacross").parent().show(),
$(this.el).find(".run").attr("href","#run_query")),this.adjust(),this.switch_view_state(this.viewState,!0),$(this.el).find(".sidebar").hasClass("hide")||"chart"!=Settings.MODE&&"table"!=Settings.MODE&&"map"!=Settings.MODE&&"view"!=Settings.MODE&&!this.isReadOnly||this.toggle_sidebar(),"view"==Settings.MODE&&this.query||this.isReadOnly?(this.query.run(!0),void 0===this.selected_cube&&(c=this.query.model.cube.schema,this.selected_cube=this.query.model.cube.connection+"/"+this.query.model.cube.catalog+
"/"+(""===c||null===c?"null":c)+"/"+encodeURIComponent(this.query.model.cube.name),$(this.el).find(".cubes").val(this.selected_cube))):(void 0===this.selected_cube&&(c=this.query.model.cube.schema,this.selected_cube=this.query.model.cube.connection+"/"+this.query.model.cube.catalog+"/"+(""===c||null===c?"null":c)+"/"+encodeURIComponent(this.query.model.cube.name),$(this.el).find(".cubes").val(this.selected_cube)),this.selected_cube?(c=Saiku.session.sessionworkspace.cube[this.selected_cube],this.dimension_list=
new DimensionList({workspace:this,cube:c}),this.dimension_list.render(),$(this.el).find(".metadata_attribute_wrapper").html("").append($(this.dimension_list.el)),c.has("data")||c.fetch({success:function(){b.trigger("cube:loaded")}}),this.trigger("query:new",{workspace:this})):($(this.el).find(".calculated_measures, .addMeasure").hide(),$(this.el).find(".dimension_tree").html(""),$(this.el).find(".measure_tree").html("")),"undefined"!=typeof a&&this.query.run(!0),Saiku.i18n.translate()))},set_class_charteditor:function(){this.query.getProperty("saiku.ui.chart.options")&&
$(this.querytoolbar.el).find('ul.chart [href\x3d"#charteditor"]').addClass("on")},synchronize_query:function(){this.isReadOnly||Settings.hasOwnProperty("MODE")},sync_query:function(a){if("QUERYMODEL"===this.query.helper.model().type&&(a=a?a:$(this.dimension_list.el),!this.isReadOnly&&(!Settings.hasOwnProperty("MODE")||"table"!=Settings.MODE&&"view"!=Settings.MODE))){a.find(".selected").removeClass("selected");var b=this.query.helper.getCalculatedMeasures();b&&0<b.length?(b=_.template($("#template-calculated-measures").html(),
{measures:b}),a.find(".calculated_measures").html(b),a.find(".calculated_measures").find(".measure").parent("li").draggable({cancel:".not-draggable",connectToSortable:$(this.el).find(".fields_list_body.details ul.connectable"),helper:"clone",placeholder:"placeholder",opacity:.6,tolerance:"touch",containment:$(this.el),cursorAt:{top:10,left:35}})):a.find(".calculated_measures").empty();this.drop_zones.synchronize_query()}Saiku.i18n.translate()},populate_selections:function(a){console.log("populate_selections");
a.workspace.sync_query();return!1},update_caption:function(a){a=this.caption(a);this.tab.set_caption(a)},remove_dimension:function(a,b){"QUERYMODEL"==this.query.model.type&&this.drop_zones.remove_dimension(a,b)},update_parameters:function(){var a=this;$(this.el).find(".parameter_input").html("");if(a.hasOwnProperty("query")&&Settings.ALLOW_PARAMETERS&&"view"!==Settings.MODE&&"view"!==a.viewState){var b="\x3cspan class\x3d'i18n'\x3eParameters\x3c/span\x3e: ",c=this.query.helper.model().parameters,
d=!1,e;for(e in c){var f="",g;c[e]&&null!==c[e]&&(f=c[e],g=c[e].split(","));void 0!=f&&""!=f&&(f+=",");d=this.query.helper.getSelectionsForParameter(e);_.each(d,function(a){-1<$.inArray(a.name,g)||(f=f+a.name+",")});var f=f.substr(0,f.lastIndexOf(",")),b=b+("\x3cb\x3e"+e+"\x3c/b\x3e \x3cinput type\x3d'text' placeholder\x3d'"+e+"' value\x3d'"+f+"' /\x3e"),d=!0,h=f.split(","),k=a.query.helper.getLevelForParameter(e);_.each(h,function(b){void 0!=b&&""!=b&&a.query.helper.addtoSelection(b,k)})}b+="";d?
$(this.el).find(".parameter_input").html(b):$(this.el).find(".parameter_input").html("");$(this.el).find(".parameter_input input").off("change");$(this.el).find(".parameter_input input").on("change",function(b){var c=$(b.target).attr("placeholder");b=$(b.target).val();a.query.helper.model().parameters[c]=b})}},render_result:function(a){$(this.el).find(".workspace_results_info").empty();if(null!==a.data&&null!==a.data.error)return this.error(a);if(null===a.data||a.data.cellset&&0===a.data.cellset.length)return this.no_results(a);
var b=(new Date).getHours();10>b&&(b="0"+b);var c=(new Date).getMinutes();10>c&&(c="0"+c);b=b+":"+c;c=null!==a.data.runtime?(a.data.runtime/1E3).toFixed(2):"";b='\x3cb\x3e\x3cspan class\x3d"i18n"\x3eInfo:\x3c/span\x3e\x3c/b\x3e \x26nbsp;'+b+"\x26emsp;/ \x26nbsp;"+a.data.width+" x "+a.data.height+"\x26nbsp; / \x26nbsp;"+c+"s";this.update_parameters();$(this.el).find(".workspace_results_info").html(b);a=a.workspace.query.getProperty("saiku.ui.headings");void 0!=a&&(a=JSON.parse(a),b="",null!=a.title&&
""!=a.title&&(b='\x3ch3\x3e\x3cspan class\x3d"i18n"\x3eTitle:\x3c/span\x3e\x3c/h3\x3e \x26nbsp;'+a.title+"\x3cbr/\x3e"),null!=a.variable&&""!=a.variable&&(b+='\x3ch3\x3e\x3cspan class\x3d"i18n"\x3eVariable:\x3c/span\x3e\x3c/h3\x3e \x26nbsp;'+a.variable+"\x3cbr/\x3e"),null!=a.explanation&&""!=a.explanation&&(b+='\x3ch3\x3e\x3cspan class\x3d"i18n"\x3eExplanation:\x3c/span\x3e\x3c/h3\x3e \x26nbsp;'+a.explanation),$(this.el).find(".workspace_results_titles").html(b));this.adjust();Saiku.i18n.translate()},
switch_view_state:function(a,b){var c=a||"edit";"edit"==c?(this.toolbar.toggle_fields_action("show",b),this.query&&"MDX"==this.query.get("type")&&this.toolbar.editor.gotoLine(0),$(this.el).find(".sidebar").hasClass("hide")&&this.toggle_sidebar(),$(this.toolbar.el).find(".auto, .toggle_fields, .toggle_sidebar,.switch_to_mdx, .new").parent().css({display:"block"})):"view"==c&&(this.toolbar.toggle_fields_action("hide",b),$(this.el).find(".sidebar").hasClass("hide")||this.toggle_sidebar(),$(this.toolbar.el).find(".auto, .toggle_fields, .toggle_sidebar,.switch_to_mdx").parent().hide());
this.viewState=c;this.update_parameters();$(window).trigger("resize")},block:function(a){Settings.LOGO_32x32?$(this.el).block({message:'\x3cimg class\x3d"saiku_logo_override" style\x3d"float:left" src\x3d"'+Settings.LOGO_32x32+'"/\x3e '+a}):$(this.el).block({message:'\x3cspan class\x3d"saiku_logo" style\x3d"float:left"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e '+a});Saiku.i18n.translate()},unblock:function(){isIE||$(this.el).unblock();Saiku.ui.unblock()},cancel:function(a){var b=this;a&&a.preventDefault();
this.query.action.del("/cancel",{success:function(){b.cancelled()}})},admin:function(a){Saiku.AdminConsole.show_admin()},cancelled:function(a){this.processing.html('\x3cspan class\x3d"processing_image"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e \x3cspan class\x3d"i18n"\x3eCanceling Query...\x3c/span\x3e').show()},no_results:function(a){this.processing.html('\x3cspan class\x3d"i18n"\x3eNo Results\x3c/span\x3e').show()},error:function(a){this.processing.html(safe_tags_replace(a.data.error)).show()}}),DeleteRepositoryObject=
Modal.extend({type:"delete",buttons:[{text:"Yes",method:"del"},{text:"No",method:"close"}],initialize:function(a){this.options.title="Confirm deletion";this.query=a.query;this.success=a.success;this.message='\x3cspan class\x3d"i18n"\x3eAre you sure you want to delete \x3c/span\x3e\x3cspan\x3e'+this.query.get("name")+"?\x3c/span\x3e"},del:function(){this.query.set("id",_.uniqueId("query_"));this.query.id=_.uniqueId("query_");this.query.url=this.query.url()+"?file\x3d"+encodeURIComponent(this.query.get("file"));
this.query.destroy({success:this.success,dataType:"text",error:this.error,wait:!0});this.close()},error:function(){$(this.el).find("dialog_body").html('\x3cspan class\x3d"i18n"\x3eCould not delete repository object\x3c/span\x3e')}}),MoveRepositoryObject=Modal.extend({type:"save",closeText:"Move",events:{click:"select_root_folder","click .dialog_footer a":"call","click .query":"select_name","dblclick .query":"open_query","click li.folder":"toggle_folder","keyup .search_file":"search_file","click .cancel_search":"cancel_search",
"click .export_btn":"export_zip","change .file":"select_file"},buttons:[{id:"test",text:"Move",method:"open_query"},{text:"Cancel",method:"close"}],initialize:function(a){var b=this;this.movefolder=a.query;this.success=a.success;this.message='\x3cbr/\x3e\x3cb\x3e\x3cdiv class\x3d\'query_name\'\x3e\x3cspan class\x3d\'i18n\'\x3ePlease select a folder.....\x3c/span\x3e\x3c/div\x3e\x3c/b\x3e\x3cbr/\x3e\x3cdiv class\x3d\'RepositoryObjects i18n\'\x3eLoading...\x3c/div\x3e\x3cbr\x3e\x3cdiv style\x3d"height:25px; line-height:25px;"\x3e\x3cb\x3e\x3cspan class\x3d"i18n"\x3eSearch:\x3c/span\x3e\x3c/b\x3e \x26nbsp; \x3cspan class\x3d"search"\x3e\x3cinput type\x3d"text" class\x3d"search_file"\x3e\x3c/input\x3e\x3cspan class\x3d"cancel_search"\x3e\x3c/span\x3e\x3c/span\x3e\x3c/div\x3e';
_.extend(this.options,{title:"Move"});this.selected_folder=null;this.repository=new Repository({},{dialog:this});this.bind("open",function(){var a=$("body").height()/2+$("body").height()/6;420<a&&(a=420);$(this.el).find(".RepositoryObjects").height(a);$(this.el).dialog("option","position","center");$(this.el).parents(".ui-dialog").css({width:"550px"});$(this.el).find(".dialog_footer").find('a[href\x3d"#open_query"]').hide();b.repository.fetch()});_.bindAll(this,"populate","toggle_folder","select_name",
"select_file","select_folder","open_query")},populate:function(a){function b(a){_.forEach(a,function(a){"FOLDER"===a.type&&(c.queries[a.path]=a,b(a.repoObjects))})}var c=this;$(this.el).find(".RepositoryObjects").html(_.template($("#template-repository-objects").html())({repoObjects:a}));c.queries={};b(a)},select_root_folder:function(a){"name"!==$(a.target).attr("name")&&this.unselect_current_selected_folder()},toggle_folder:function(a){var b=$(a.currentTarget);this.unselect_current_selected_folder();
b.children(".folder_row").addClass("selected");var c=b.children(".folder_content");b.children(".folder_row").find(".sprite").hasClass("collapsed")?(b.children(".folder_row").find(".sprite").removeClass("collapsed"),c.removeClass("hide")):(b.children(".folder_row").find(".sprite").addClass("collapsed"),c.addClass("hide"));this.select_folder();this.select_name(a);return!1},select_name:function(a){a=$(a.currentTarget);this.unselect_current_selected_folder();a.parent().parent().has(".folder").children(".folder_row").addClass("selected");
a=a.find("a").attr("href");a=a.replace("#","");$(this.el).find(".query_name").html(a);$(this.el).find(".dialog_footer").find('a[href\x3d"#open_query"]').show();this.select_folder();return!1},unselect_current_selected_folder:function(){$(this.el).find(".selected").removeClass("selected")},select_folder:function(){var a=$(this.el).find(".selected"),a=0<a.length?a.children("a").attr("href").replace("#",""):null;if("undefined"!=typeof a&&null!==a&&""!==a){var b=$("#importForm");b.find(".directory").val(a);
var c=Settings.REST_URL+(new RepositoryZipExport).url()+"upload";b.attr("action",c);$(this.el).find(".zip_folder").text(a);this.selected_folder=a;$(this.el).find(".export_btn, .import_btn").removeAttr("disabled");this.select_file()}else $(this.el).find(".import_btn, .export_btn").attr("disabled","true")},select_file:function(){var a=$("#importForm").find(".file").val();"undefined"!=typeof a&&""!==a&&null!==a&&null!==this.selected_folder?$(this.el).find(".import_btn").removeAttr("disabled"):$(this.el).find(".import_btn").attr("disabled",
"true")},open_query:function(a){var b=$(a.currentTarget),c=$(this.el).find(".query_name").html();b.hasClass("query")&&(c=b.find("a").attr("href").replace("#",""));var d=this;(new MoveObject).save({source:this.movefolder.get("file"),target:c},{success:function(){d.close();d.success()}});a.preventDefault();return!1}}),MoveObject=Backbone.Model.extend({url:function(){return"api/repository/resource/move"}}),OpenQuery=Backbone.View.extend({className:"tab_container",events:{"click .query":"view_query",
"dblclick .query":"select_and_open_query","click .add_folder":"add_folder","click li.folder":"toggle_folder","click .workspace_toolbar a.button":"prevent_default","click .workspace_toolbar a.run":"open_query","click .workspace_toolbar a.edit":"edit_query","click .workspace_toolbar [href\x3d#edit_folder]":"edit_folder","click .workspace_toolbar [href\x3d#delete_folder]":"delete_repoObject","click .workspace_toolbar [href\x3d#delete_query]":"delete_repoObject","click .workspace_toolbar [href\x3d#edit_permissions]":"edit_permissions",
"click .queries":"click_canvas","keyup .search_file":"search_file","click .cancel_search":"cancel_search"},template:function(){return _.template($("#template-open-dialog").html())()},template_repository_objects:function(a){$(this.el).find(".sidebar ul").html(_.template($("#template-repository-objects").html())({repoObjects:a}))},caption:function(){return'\x3cspan class\x3d"i18n"\x3eRepository\x3c/span\x3e'},render:function(){$(this.el).html(this.template());this.tab.bind("tab:select",this.fetch_queries);
this.tab.bind("tab:select",this.adjust);$(window).resize(this.adjust);var a=this,b={open:{name:"Open",i18n:!0},edit:{name:"Edit",i18n:!0},"delete":{name:"Delete",i18n:!0},move:{name:"Move",i18n:!0},sep1:"---------","new":{name:"New Folder",i18n:!0},opencontents:{name:"Open Folder Contents",i18n:!0}};$.each(b,function(a,b){recursive_menu_translate(b,Saiku.i18n.po_file)});$.contextMenu("destroy","li.query, div.folder_row");$.contextMenu({selector:"li.query, div.folder_row",events:{show:function(b){$(a.el).find(".selected").removeClass("selected");
$(this).addClass("selected");var d=$(this).find("a").attr("href").replace("#",""),d=a.queries[d];"undefined"!=typeof d.acl&&0>_.indexOf(d.acl,"WRITE")?(b.commands["delete"].disabled=!0,b.items["delete"].disabled=!0,b.commands.edit.disabled=!0,b.items.edit.disabled=!0,b.commands.move.disabled=!0,b.items.move.disabled=!0):(b.commands["delete"].disabled=!1,b.items["delete"].disabled=!1,b.commands.edit.disabled=!1,b.items.edit.disabled=!1,b.commands.move.disabled=!1,b.items.move.disabled=!1);$(this).hasClass("folder_row")?
(b.commands.open.disabled=!0,b.items.open.disabled=!0):(b.commands.open.disabled=!1,b.items.open.disabled=!1)}},callback:function(b,d){var e=$(this).find("a").attr("href").replace("#",""),f=a.queries[e];a.selected_query=new SavedQuery({file:e,name:f.name,type:f.type});"open"==b&&$(this).hasClass("query")&&a.open_query();"edit"==b&&$(this).hasClass("query")?a.edit_query():"new"==b?a.add_folder():"delete"==b?a.delete_repoObject():"move"==b?a.move_repoObject():"opencontents"==b&&a.open_contents()},items:b});
Saiku.session.trigger("openQuery:new",{openQuery:this});Settings.REPOSITORY_LAZY&&this.$el.find(".search_file").prop("disabled",!0);return this},initialize:function(a){_.bindAll(this,"adjust","fetch_queries","clear_query","select_and_open_query","cancel_search","add_folder");this.repository=new Repository({},{dialog:this})},fetch_queries:function(){this.repository.fetch()},populate:function(a){function b(a){_.forEach(a,function(a){c.queries[a.path]=a;"FOLDER"===a.type&&b(a.repoObjects)})}var c=this;
c.template_repository_objects(a);c.queries={};b(a)},search_file:function(a){var b=$(this.el).find(".search_file").val().toLowerCase();"undefined"==typeof b||""===b||null===b||27==a.which||9==a.which?this.cancel_search():($(this.el).find(".search_file").val()?$(this.el).find(".cancel_search").show():$(this.el).find(".cancel_search").hide(),$(this.el).find("li.query").removeClass("hide"),$(this.el).find("li.query a").each(function(a){-1==$(this).text().toLowerCase().indexOf(b)&&$(this).parent("li.query").addClass("hide")}),
$(this.el).find("li.folder").addClass("hide"),$(this.el).find("li.query").not(".hide").parents("li.folder").removeClass("hide"),$(this.el).find("li.folder .folder_row").find(".sprite").removeClass("collapsed"),$(this.el).find("li.folder .folder_content").removeClass("hide"));return!1},cancel_search:function(a){$(this.el).find("input.search_file").val("");$(this.el).find(".cancel_search").hide();$(this.el).find("li.query, li.folder").removeClass("hide");$(this.el).find(".folder_row").find(".sprite").addClass("collapsed");
$(this.el).find("li.folder .folder_content").addClass("hide");$(this.el).find(".search_file").val("").focus();$(this.el).find(".cancel_search").hide()},view_query:function(a){a.preventDefault();a=$(a.currentTarget);var b=a.find("a");this.unselect_current_selected();a.addClass("selected");a=b.attr("href").replace("#","");var b=b.text(),c=this.queries[a];$(this.el).find(".workspace_toolbar").removeClass("hide");$(this.el).find(".for_queries").addClass("hide");$(this.el).find(".for_folder").addClass("hide");
$(this.el).find(".add_folder").parent().addClass("hide");"undefined"!=typeof c.acl&&-1<_.indexOf(c.acl,"READ")&&$(this.el).find(".for_queries .run").parent().removeClass("hide");"undefined"!=typeof c.acl&&-1<_.indexOf(c.acl,"WRITE")&&($(this.el).find(".for_queries .delete").parent().removeClass("hide"),$(this.el).find(".for_queries .edit").parent().removeClass("hide"));"undefined"!=typeof c.acl&&-1<_.indexOf(c.acl,"GRANT")&&$(this.el).find(".for_queries .edit_permissions").parent().removeClass("hide");
try{var d=a.split("/");if(1<d.length){var e=d.splice(0,d.length-1).join("/"),f=this.queries[e];"undefined"!=typeof f.acl&&-1<_.indexOf(f.acl,"WRITE")&&$(this.el).find(".add_folder").parent().removeClass("hide")}else 1==d.length&&$(this.el).find(".add_folder").parent().removeClass("hide")}catch(g){}var d=$(this.el).find(".workspace_results").html("\x3ch3\x3e\x3cstrong\x3e"+c.name+"\x3c/strong\x3e\x3c/h3\x3e"),d=$('\x3cul id\x3d"query_info" /\x3e').appendTo(d),h;for(h in c)c.hasOwnProperty(h)&&"name"!=
h&&d.append($("\x3cli /\x3e").html("\x3cstrong\x3e"+h+"\x3c/strong\x3e : "+c[h]));this.selected_query=new SavedQuery({file:a,name:b,type:c.type});return!1},view_folder:function(a){var b=$(a.currentTarget).children("div").children("a");a=b.attr("href").replace("#","");var b=b.text(),c=this.queries[a];$(this.el).find(".workspace_toolbar").removeClass("hide");$(this.el).find(".add_folder").parent().addClass("hide");$(this.el).find(".for_queries").addClass("hide");$(this.el).find(".for_folder").addClass("hide");
"undefined"!=typeof c.acl&&-1<_.indexOf(c.acl,"WRITE")&&($(this.el).find(".for_folder .delete").parent().removeClass("hide"),$(this.el).find(".add_folder").parent().removeClass("hide"));"undefined"!=typeof c.acl&&-1<_.indexOf(c.acl,"GRANT")&&$(this.el).find(".for_folder .edit_permissions").parent().removeClass("hide");$(this.el).find(".workspace_results").html("\x3ch3\x3e\x3cstrong\x3e"+b+"\x3c/strong\x3e\x3c/h3\x3e");this.selected_query=new SavedQuery({file:a,name:b,type:c.type})},prevent_default:function(a){a.preventDefault();
return!1},add_folder:function(a){$selected=$(this.el).find(".selected");a="";if("undefined"!==typeof $selected&&$selected)if($selected.hasClass("folder_row"))a=$selected.children("a").attr("href"),a=1<a.length?a.substring(1,a.length):a,a+="/";else if($selected.hasClass("query")&&!$selected.parent().hasClass("RepositoryObjects")){var b=$selected.find("a");a=b.attr("href");b=b.text();a=a.substring(1,a.length-b.length)}(new AddFolderModal({path:a,success:this.clear_query})).render().open();return!1},
click_canvas:function(a){$(a.currentTarget).hasClass("sidebar")&&$(this.el).find(".selected").removeClass("selected");$(this.el).find(".add_folder").parent().removeClass("hide");return!1},toggle_folder:function(a){var b=$(a.currentTarget),c=b.children(".folder_row").find("a").attr("href"),c=c.replace("#","");this.unselect_current_selected();b.children(".folder_row").addClass("selected");var d=b.children(".folder_content");b.children(".folder_row").find(".sprite").hasClass("collapsed")?(b.children(".folder_row").find(".sprite").removeClass("collapsed"),
d.removeClass("hide"),Settings.REPOSITORY_LAZY&&this.fetch_lazyload(b,c)):(b.children(".folder_row").find(".sprite").addClass("collapsed"),d.addClass("hide"),Settings.REPOSITORY_LAZY&&b.find(".folder_content").remove());this.view_folder(a);return!1},fetch_lazyload:function(a,b){(new RepositoryLazyLoad({},{dialog:this,folder:a,path:b})).fetch();Saiku.ui.block("Loading...")},template_repository_folder_lazyload:function(a,b){a.find(".folder_content").remove();a.append(_.template($("#template-repository-folder-lazyload").html())({repoObjects:b}))},
populate_lazyload:function(a,b){Saiku.ui.unblock();this.template_repository_folder_lazyload(a,b)},select_and_open_query:function(a){a=$(a.currentTarget).find("a");var b=a.attr("href").replace("#","");a.text();this.selected_query=new SavedQuery({file:b,name:b});this.open_query()},open_query:function(a){Saiku.ui.block("Opening query...");var b=this.queries[this.selected_query.get("file")],c=_.extend({file:this.selected_query.get("file"),formatter:Settings.CELLSET_FORMATTER},Settings.PARAMS),c=new Query(c,
{name:this.selected_query.get("name")}),d=null;a&&!a.hasOwnProperty("currentTarget")&&(d=a);"saiku"===b.fileType?Saiku.tabs.add(new Workspace({query:c,item:b,viewState:d,processURI:!1})):Saiku.session.trigger("openQuery:open_query",{query:c,item:b,viewState:d});return!1},open_contents:function(a){var b=[],c=this.queries[this.selected_query.get("file")];_.forEach(c.repoObjects,function(a){"FILE"===a.type&&b.push(a)});(new WarningModal({title:"Open Multiple Queries",message:'\x3cspan class\x3d"i18n"\x3eYou are about to open\x3c/span\x3e '+
b.length+' \x3cspan class\x3d"i18n"\x3equeries\x3c/span\x3e',okay:this.run_open_contents,okayobj:{files:b,viewstate:a}})).render().open();return!1},run_open_contents:function(a){_.forEach(a.files,function(b){Saiku.ui.block("Opening query...");var c=_.extend({file:b.path,formatter:Settings.CELLSET_FORMATTER},Settings.PARAMS),c=new Query(c,{name:b.name}),d=null;a.viewstate&&!a.viewstate.hasOwnProperty("currentTarget")&&(d=viewstate);Saiku.tabs.add(new Workspace({query:c,item:b,viewState:d,processURI:!1}))})},
edit_query:function(){this.open_query("edit")},delete_repoObject:function(a){(new DeleteRepositoryObject({query:this.selected_query,success:this.clear_query})).render().open();return!1},move_repoObject:function(a){(new MoveRepositoryObject({query:this.selected_query,success:this.clear_query})).render().open();return!1},edit_folder:function(a){alert("todo: edit folder properties/permissions");return!1},edit_permissions:function(a){(new PermissionsModal({workspace:this.workspace,title:"\x3cspan class\x3d'i18n'\x3ePermissions\x3c/span\x3e",
file:this.selected_query.get("file")})).open()},clear_query:function(){$(this.el).find(".workspace_toolbar").addClass("hide");$(this.el).find(".workspace_results").html("");this.fetch_queries()},adjust:function(){$separator=$(this.el).find(".sidebar_separator");$separator.height($("body").height()-87);$(this.el).find(".sidebar").css({width:350,height:$("body").height()-87});$(this.el).find(".workspace_inner").css({"margin-left":355});$(this.el).find(".workspace").css({"margin-left":-355});$(this.el).find(".workspace_results").css({width:$(document).width()-
$(this.el).find(".sidebar").width()-30,height:$(document).height()-$("#header").height()-$(this.el).find(".workspace_toolbar").height()-$(this.el).find(".workspace_fields").height()-40})},toggle_sidebar:function(){$(this.el).find(".sidebar").toggleClass("hide");var a=$(this.el).find(".sidebar").hasClass("hide")?5:265;$(this.el).find(".workspace_inner").css({"margin-left":a})},unselect_current_selected:function(){$(this.el).find(".selected").removeClass("selected")}}),SaveQuery=Modal.extend({type:"save",
closeText:"Save",events:{click:"select_root_folder","click .dialog_footer a":"call","submit form":"save","click .query":"select_name","click li.folder":"toggle_folder","keyup .search_file":"search_file","click .cancel_search":"cancel_search"},buttons:[{text:"Save",method:"save"},{text:"Cancel",method:"close"}],folder_name:null,file_name:null,initialize:function(a){var b=this,c="",d="";if(a.query.name){a.query.name=a.query.name.replace(/:/g,"/");var e=a.query.name.split("/"),d=a.query.name;this.file_name=
c=e[e.length-1];1<e.length&&(this.folder_name=e.splice(0,e.length-1).join("/"))}this.query=a.query;this.message=_.template("\x3cform id\x3d'save_query_form'\x3e\x3cdiv class\x3d\"box-search-file form-inline\" style\x3d\"height:35px; padding-top:10px; line-height:25px;\"\x3e\x3clabel class\x3d\"i18n\"\x3eSearch:\x3c/label\x3e \x26nbsp; \x3cinput type\x3d\"text\" class\x3d\"form-control search_file\"\x3e\x3c/input\x3e\x3cspan class\x3d\"cancel_search\"\x3e\x3c/span\x3e\x3c/div\x3e\x3cdiv class\x3d'RepositoryObjects'\x3e\x3cspan class\x3d'i18n'\x3eLoading...\x3c/span\x3e\x3c/div\x3e\x3cdiv class\x3d'form-inline' style\x3d'padding-top:4px'\x3e\x3clabel for\x3d'name' class\x3d'i18n'\x3eFile:\x3c/label\x3e\x26nbsp;\x3cinput type\x3d'text' name\x3d'name' class\x3d'form-control' value\x3d'\x3c%\x3d name %\x3e' /\x3e\x3c/div\x3e\x3cbr /\x3e\x3c/form\x3e")({name:d});
_.extend(this.options,{title:"Save query"});this.repository=new Repository({},{dialog:this});this.bind("open",function(){var a=$("body").height()/2+$("body").height()/6;420<a&&(a=420);var c=($("body").height()-600)/2*100/$("body").height();$(this.el).find(".RepositoryObjects").height(a);$(this.el).dialog("option","position","center");$(this.el).parents(".ui-dialog").css({width:"550px",top:c+"%"});b.repository.fetch();Settings.REPOSITORY_LAZY&&this.$el.find(".box-search-file").hide()});_.bindAll(this,
"copy_to_repository","close","toggle_folder","select_name","populate","set_name","cancel_search");if(isIE&&9>isIE)$(this.el).find("form").on("submit",this.save)},populate:function(a){$(this.el).find(".RepositoryObjects").html(_.template($("#template-repository-objects").html())({repoObjects:a}));this.context_menu_disabled();this.select_last_location()},context_menu_disabled:function(){this.$el.find(".RepositoryObjects").find(".folder_row, .query").addClass("context-menu-disabled")},select_root_folder:function(a){"name"!==
$(a.target).attr("name")&&this.unselect_current_selected_folder()},toggle_folder:function(a){a=$(a.currentTarget);var b=a.children(".folder_row").find("a").attr("href"),b=b.replace("#","");this.unselect_current_selected_folder();a.children(".folder_row").addClass("selected");var c=a.find("a").attr("href").replace("#","");this.set_name(c,null);c=a.children(".folder_content");a.children(".folder_row").find(".sprite").hasClass("collapsed")?(a.children(".folder_row").find(".sprite").removeClass("collapsed"),
c.removeClass("hide"),Settings.REPOSITORY_LAZY&&this.fetch_lazyload(a,b)):(a.children(".folder_row").find(".sprite").addClass("collapsed"),c.addClass("hide"),Settings.REPOSITORY_LAZY&&a.find(".folder_content").remove());this.set_last_location(b);$(this.el).find('input[name\x3d"name"]').focus();return!1},fetch_lazyload:function(a,b){(new RepositoryLazyLoad({},{dialog:this,folder:a,path:b})).fetch();Saiku.ui.block("Loading...")},template_repository_folder_lazyload:function(a,b){a.find(".folder_content").remove();
a.append(_.template($("#template-repository-folder-lazyload").html())({repoObjects:b}))},populate_lazyload:function(a,b){Saiku.ui.unblock();this.template_repository_folder_lazyload(a,b)},set_name:function(a,b){if(null!==a){this.folder_name=a;var c=(null!==this.folder_name?this.folder_name+"/":"")+(null!==this.file_name?this.file_name:"");$(this.el).find('input[name\x3d"name"]').val(c)}null!==b&&$(this.el).find('input[name\x3d"name"]').val(b)},search_file:function(a){var b=$(this.el).find(".search_file").val().toLowerCase();
"undefined"==typeof b||""===b||null===b||27==a.which||9==a.which?this.cancel_search():($(this.el).find(".search_file").val()?$(this.el).find(".cancel_search").show():$(this.el).find(".cancel_search").hide(),$(this.el).find("li.query").removeClass("hide"),$(this.el).find("li.query a").filter(function(a){return-1==$(this).text().toLowerCase().indexOf(b)}).parent().addClass("hide"),$(this.el).find("li.folder").addClass("hide"),$(this.el).find("li.query").not(".hide").parents("li.folder").removeClass("hide"),
$(this.el).find("li.folder .folder_row").find(".sprite").removeClass("collapsed"),$(this.el).find("li.folder .folder_content").removeClass("hide"));return!1},cancel_search:function(a){$(this.el).find("input.search_file").val("");$(this.el).find(".cancel_search").hide();$(this.el).find("li.query, li.folder").removeClass("hide");$(this.el).find(".folder_row").find(".sprite").addClass("collapsed");$(this.el).find("li.folder .folder_content").addClass("hide");$(this.el).find(".search_file").val("").focus();
$(this.el).find(".cancel_search").hide()},select_name:function(a){a=$(a.currentTarget);this.unselect_current_selected_folder();a.addClass("selected");var b=a.find("a").attr("href").replace("#","");this.set_name(null,b);a=a.parent().parent().has(".folder").children(".folder_row").find("a").attr("href");a=a.replace("#","");this.set_last_location(a);$(this.el).find('input[name\x3d"name"]').focus();return!1},unselect_current_selected_folder:function(){$(this.el).find(".selected").removeClass("selected")},
save:function(a){var b=this,c=$(this.el).find('input[name\x3d"name"]').val();null!==this.folder_name&&void 0!==this.folder_name&&0<this.folder_name.length?null!==c&&0<c.length?this.repository.fetch({success:function(d,e){var f=[];f.push.apply(f,b.get_files(e));if(-1<f.indexOf(c)&&b.query.get("name")!=c)(new OverwriteModal({name:c,foldername:"",parent:b})).render().open();else return b.query.set({name:c,folder:""}),b.query.trigger("query:save"),b.copy_to_repository(),a.stopPropagation(),a.preventDefault(),
!1}}):alert("You need to enter a name!"):alert("You need select a folder!");return!1},save_remote:function(a,b,c){c.query.set({name:a,folder:b});c.query.trigger("query:save");c.copy_to_repository();event.preventDefault();return!1},get_files:function(a){var b=this,c=[];_.each(a,function(a){"FOLDER"===a.type?c.push.apply(c,b.get_files(a.repoObjects)):c.push(a.path)});return c},copy_to_repository:function(){var a=this,b=this.query.get("folder"),c=this.query.get("name"),c=6<c.length&&c.indexOf(".saiku")==
c.length-6?c:c+".saiku",c=b+c;this.query.workspace.tab.$el.find(".saikutab").text(c.replace(/^.*[\\\/]/,"").split(".")[0]);(new SavedQuery({name:this.query.get("name"),file:c,content:JSON.stringify(this.query.model)})).save({},{success:this.close,error:function(b,c,f){c&&403==c.status&&c.responseText?alert(c.responseText):a.close();return!0},dataType:"text"})},set_last_location:function(a){"undefined"!==typeof localStorage&&localStorage&&!Settings.REPOSITORY_LAZY&&(Settings.LOCALSTORAGE_EXPIRATION&&
0!==Settings.LOCALSTORAGE_EXPIRATION?localStorage.setItem("last-folder",a):localStorage.clear())},select_last_location:function(){localStorage.getItem("last-folder")&&!Settings.REPOSITORY_LAZY&&$(this.el).find('a[href\x3d"\\#'+localStorage.getItem("last-folder")+'"]').parent().parent().has(".folder").children(".folder_row").find(".sprite").removeClass("collapsed").parentsUntil($("div.RepositoryObjects")).each(function(){$(this).hasClass("folder")&&($(this).children(".folder_row").find(".sprite").removeClass("collapsed"),
$(this).children(".folder_content").removeClass("hide"))})}}),OpenDialog=Modal.extend({type:"save",closeText:"Open",events:{click:"select_root_folder","click .dialog_footer a":"call","click .query":"select_name","dblclick .query":"open_query","click li.folder":"toggle_folder","keyup .search_file":"search_file","click .cancel_search":"cancel_search","click .export_btn":"export_zip","change .file":"select_file"},buttons:[{id:"test",text:"Open",method:"open_query"},{text:"Cancel",method:"close"}],initialize:function(a){var b=
this;this.message='\x3cdiv class\x3d"box-search-file form-inline" style\x3d"padding-top:10px; height:35px; line-height:25px;"\x3e\x3clabel class\x3d"i18n"\x3eSearch:\x3c/label\x3e \x26nbsp; \x3cinput type\x3d"text" class\x3d"form-control search_file"\x3e\x3c/input\x3e\x3cspan class\x3d"cancel_search"\x3e\x3c/span\x3e\x3c/div\x3e\x3cdiv class\x3d\'RepositoryObjects i18n\'\x3eLoading...\x3c/div\x3e\x3cbr\x3e\x3cb\x3e\x3cdiv class\x3d\'query_name\'\x3e\x3cspan class\x3d\'i18n\'\x3ePlease select a file.....\x3c/span\x3e\x3c/div\x3e\x3c/b\x3e\x3cbr/\x3e';
Settings.ALLOW_IMPORT_EXPORT&&(this.message+="\x3cspan class\x3d'export_zip'\x3e \x3c/span\x3e \x3cb\x3e\x3cspan class\x3d'i18n'\x3eImport or Export Files for Folder\x3c/span\x3e: \x3c/b\x3e \x3cspan class\x3d'i18n zip_folder'\x3e\x3c Select Folder... \x3e\x3c/span\x3e \x26nbsp; \x3cinput type\x3d'submit' value\x3d'Export' class\x3d'export_btn' disabled /\x3e\x3cbr/\x3e\x3cbr /\x3e\x3cbr /\x3e\x3cform id\x3d'importForm' target\x3d'_blank' method\x3d'POST' enctype\x3d'multipart/form-data'\x3e\x3cinput type\x3d'hidden' name\x3d'directory' class\x3d'directory'/\x3e\x3cinput type\x3d'file' name\x3d'file' class\x3d'file'/\x3e\x3cinput type\x3d'submit' value\x3d'Import' class\x3d'import_btn' disabled /\x3e\x3c/form\x3e");
_.extend(this.options,{title:"Open"});this.selected_folder=null;this.repository=new Repository({},{dialog:this});this.bind("open",function(){var a=$("body").height()/2+$("body").height()/6;420<a&&(a=420);var d=($("body").height()-600)/2*100/$("body").height();$(this.el).find(".RepositoryObjects").height(a);$(this.el).dialog("option","position","center");$(this.el).parents(".ui-dialog").css({width:"550px",top:d+"%"});$(this.el).find(".dialog_footer").find('a[href\x3d"#open_query"]').hide();b.repository.fetch();
Settings.REPOSITORY_LAZY&&this.$el.find(".box-search-file").hide()});_.bindAll(this,"close","toggle_folder","select_name","populate","cancel_search","export_zip","select_folder","select_file","select_last_location")},populate:function(a){function b(a){_.forEach(a,function(a){c.queries[a.path]=a;"FOLDER"===a.type&&b(a.repoObjects)})}var c=this;$(this.el).find(".RepositoryObjects").html(_.template($("#template-repository-objects").html())({repoObjects:a}));c.queries={};b(a);this.context_menu_disabled();
this.select_last_location()},context_menu_disabled:function(){this.$el.find(".RepositoryObjects").find(".folder_row, .query").addClass("context-menu-disabled")},select_root_folder:function(a){"name"!==$(a.target).attr("name")&&this.unselect_current_selected_folder()},toggle_folder:function(a){a=$(a.currentTarget);var b=a.children(".folder_row").find("a").attr("href"),b=b.replace("#","");this.unselect_current_selected_folder();a.children(".folder_row").addClass("selected");var c=a.children(".folder_content");
a.children(".folder_row").find(".sprite").hasClass("collapsed")?(a.children(".folder_row").find(".sprite").removeClass("collapsed"),c.removeClass("hide"),Settings.REPOSITORY_LAZY&&this.fetch_lazyload(a,b)):(a.children(".folder_row").find(".sprite").addClass("collapsed"),c.addClass("hide"),Settings.REPOSITORY_LAZY&&a.find(".folder_content").remove());this.select_folder();this.set_last_location(b);return!1},fetch_lazyload:function(a,b){(new RepositoryLazyLoad({},{dialog:this,folder:a,path:b})).fetch();
Saiku.ui.block("Loading...")},template_repository_folder_lazyload:function(a,b){a.find(".folder_content").remove();a.append(_.template($("#template-repository-folder-lazyload").html())({repoObjects:b}))},populate_lazyload:function(a,b){Saiku.ui.unblock();this.template_repository_folder_lazyload(a,b)},select_name:function(a){a=$(a.currentTarget);this.unselect_current_selected_folder();var b=a.parent().parent().has(".folder").children(".folder_row").find("a").attr("href"),b=b.replace("#","");this.set_last_location(b);
a.addClass("selected");a=a.find("a").attr("href");a=a.replace("#","");$(this.el).find(".query_name").html(a);$(this.el).find(".dialog_footer").find('a[href\x3d"#open_query"]').show();this.select_folder();return!1},unselect_current_selected_folder:function(){$(this.el).find(".selected").removeClass("selected")},search_file:function(a){var b=$(this.el).find(".search_file").val().toLowerCase();"undefined"==typeof b||""===b||null===b||27==a.which||9==a.which?this.cancel_search():($(this.el).find(".search_file").val()?
$(this.el).find(".cancel_search").show():$(this.el).find(".cancel_search").hide(),$(this.el).find("li.query").removeClass("hide"),$(this.el).find("li.query a").filter(function(a){return-1==$(this).text().toLowerCase().indexOf(b)}).parent().addClass("hide"),$(this.el).find("li.folder").addClass("hide"),$(this.el).find("li.query").not(".hide").parents("li.folder").removeClass("hide"),$(this.el).find("li.folder .folder_row").find(".sprite").removeClass("collapsed"),$(this.el).find("li.folder .folder_content").removeClass("hide"));
return!1},cancel_search:function(a){$(this.el).find("input.search_file").val("");$(this.el).find(".cancel_search").hide();$(this.el).find("li.query, li.folder").removeClass("hide");$(this.el).find(".folder_row").find(".sprite").addClass("collapsed");$(this.el).find("li.folder .folder_content").addClass("hide");$(this.el).find(".search_file").val("").focus();$(this.el).find(".cancel_search").hide()},export_zip:function(a){a=this.selected_folder;if("undefined"!=typeof a&&""!==a){var b=Settings.REST_URL+
(new RepositoryZipExport({directory:a})).url();window.open(b+"?directory\x3d"+a+"\x26type\x3dsaiku")}},select_folder:function(){var a=$(this.el).find(".selected"),a=0<a.length?a.children("a").attr("href").replace("#",""):null;if("undefined"!=typeof a&&null!==a&&""!==a){var b=$("#importForm");b.find(".directory").val(a);var c=Settings.REST_URL+(new RepositoryZipExport).url()+"upload";b.attr("action",c);$(this.el).find(".zip_folder").text(a);this.selected_folder=a;$(this.el).find(".export_btn, .import_btn").removeAttr("disabled");
this.select_file()}else $(this.el).find(".import_btn, .export_btn").attr("disabled","true")},select_file:function(){var a=$("#importForm").find(".file").val();"undefined"!=typeof a&&""!==a&&null!==a&&null!==this.selected_folder?$(this.el).find(".import_btn").removeAttr("disabled"):$(this.el).find(".import_btn").attr("disabled","true")},open_query:function(a){var b=$(a.currentTarget),c=$(this.el).find(".query_name").html();b.hasClass("query")&&(c=b.find("a").attr("href").replace("#",""));new SavedQuery({file:c});
this.close();Saiku.ui.block("Opening query...");var b=this.queries[c],d=_.extend({file:c,formatter:Settings.CELLSET_FORMATTER},Settings.PARAMS),c=new Query(d,{name:c});Saiku.tabs.add(new Workspace({query:c,item:b,processURI:!1}));a.preventDefault();return!1},set_last_location:function(a){"undefined"!==typeof localStorage&&localStorage&&!Settings.REPOSITORY_LAZY&&(Settings.LOCALSTORAGE_EXPIRATION&&0!==Settings.LOCALSTORAGE_EXPIRATION?localStorage.setItem("last-folder",a):localStorage.clear())},select_last_location:function(){localStorage.getItem("last-folder")&&
!Settings.REPOSITORY_LAZY&&$(this.el).find('a[href\x3d"\\#'+localStorage.getItem("last-folder")+'"]').parent().parent().has(".folder").children(".folder_row").find(".sprite").removeClass("collapsed").parentsUntil($("div.RepositoryObjects")).each(function(){$(this).hasClass("folder")&&($(this).children(".folder_row").find(".sprite").removeClass("collapsed"),$(this).children(".folder_content").removeClass("hide"))})}}),Tab=Backbone.View.extend({tagName:"li",events:{"click a":"select","mousedown a":"remove",
"click .close_tab":"remove"},template:function(){return _.template("\x3ca class\x3d'saikutab' href\x3d'#\x3c%\x3d id %\x3e'\x3e\x3c%\x3d caption %\x3e\x3c/a\x3e\x3cspan class\x3d'close_tab sprite'\x3eClose tab\x3c/span\x3e")({id:this.id,caption:this.caption})},initialize:function(a){_.extend(this,Backbone.Events);_.extend(this,a);this.content.tab=this;this.caption=this.content.caption();this.id=_.uniqueId("tab_");this.close=a.close},render:function(){var a=this;this.content.render();$(this.el).html(this.template());
!1===this.close&&($(this.el).find(".close_tab").hide(),$(this.el).css("padding-right","10px"));var b={"new":{name:"New",i18n:!0},duplicate:{name:"Duplicate",i18n:!0},closeothers:{name:"Close Others",i18n:!0},closethis:{name:"Close This",i18n:!0}};$.each(b,function(a,b){recursive_menu_translate(b,Saiku.i18n.po_file)});$.contextMenu("destroy",".saikutab");$.contextMenu({selector:".saikutab",callback:function(b,d){var e=d.$trigger.attr("href").replace("#",""),e=Saiku.tabs.find(e);"closethis"==b?(e.remove(),
a.select()):"closeothers"==b?(e.select(),Saiku.tabs.close_others(e)):"duplicate"==b?Saiku.tabs.duplicate(e):"new"==b&&Saiku.tabs.new_tab()},items:b});return this},set_caption:function(a){$(this.el).find(".saikutab").html(a)},destroy:function(){this.content&&this.content.query&&this.content.query.destroy()},select:function(){this.parent.select(this);$(this.el).addClass("selected");this.trigger("tab:select");return!1},remove:function(a){if(!a||2===a.which||$(a.target).hasClass("close_tab")){this.parent.remove(this);
try{$(this.el).remove(),this.destroy()}catch(b){Log.log(JSON.stringify({Message:"Tab could not be removed",Tab:JSON.stringify(this)}))}}return!1},rendered:function(){return $.contains(document,this.el)}}),TabPager=Backbone.View.extend({className:"pager_contents",events:{"click a":"select"},initialize:function(a){this.tabset=a.tabset;$(this.el).hide().appendTo("body");$(window).click(function(a){$(a.target).hasClass("pager_contents")||$(".pager_contents").hide()})},render:function(){for(var a="",b=
0,c=this.tabset._tabs.length;b<c;b++)a+="\x3ca href\x3d'#"+b+"'\x3e"+this.tabset._tabs[b].caption+"\x3c/a\x3e\x3cbr /\x3e";$(this.el).html(a);$(this.el).find(".i18n").i18n(Saiku.i18n.po_file)},select:function(a){var b=$(a.target).attr("href").replace("#","");this.tabset._tabs[b].select();$(this.el).hide();a.preventDefault();return!1}}),TabSet=Backbone.View.extend({className:"tabs",queryCount:0,dashCount:0,events:{"click a.pager":"togglePager","click a.new":"new_tab"},_tabs:[],render:function(){$(this.el).html('\x3ca href\x3d"#pager" class\x3d"pager sprite"\x3e\x3c/a\x3e\x3cul\x3e\x3cli class\x3d"newtab"\x3e\x3ca class\x3d"new"\x3e+\x26nbsp;\x26nbsp;\x3c/a\x3e\x3c/li\x3e\x3c/ul\x3e').appendTo($("#header"));
this.content=$('\x3cdiv id\x3d"tab_panel"\x3e').appendTo($("body"));this.pager=new TabPager({tabset:this});return this},add:function(a,b){"dashboards"===a.pluginName?this.dashCount++:this.queryCount++;var c=new Tab({content:a,close:b});this._tabs.push(c);c.parent=this;c.render().select();$(c.el).insertBefore($(this.el).find("ul li.newtab"));Saiku.session.trigger("tab:add",{tab:c});this.pager.render();Saiku.i18n.translate();Saiku.session.trigger("workspace:toolbar:render",null);return c},find:function(a){for(var b=
0,c=this._tabs.length;b<c;b++)if(this._tabs[b].id==a)return this._tabs[b];return null},select:function(a){$(this.el).find("li").removeClass("selected");Saiku.session.tabSelected=a.id;Saiku.session.trigger("tab:select",{tab:a});this.content.children().detach();this.content.append($(a.content.el))},remove:function(a){for(var b=0,c=this._tabs.length;b<c;b++)this._tabs[b]==a&&(this._tabs.splice(b,1),Saiku.session.trigger("tab:remove",{tab:a}),this.pager.render(),this._tabs[this._tabs[b]?b:this._tabs.length-
1].select());return!0},close_others:function(a){var b=_.indexOf(this._tabs,a);this._tabs[b].select();for(b=0;1<this._tabs.length;)this._tabs[b]!=a?this._tabs[b].remove():b++},close_all:function(){for(var a=0,b=this._tabs.length;a<b;a++)this._tabs[a].remove()},togglePager:function(){$(this.pager.el).toggle();return!1},new_tab:function(){this.add(new Workspace);this._tabs[this._tabs.length-1].select();return!1},duplicate:function(a){Saiku.ui.block("Duplicating tab...");a.content.query?this.add(new Workspace({query:new Query({json:JSON.stringify(a.content.query.model)},
Settings.PARAMS),viewState:a.content.viewState})):this.add(new Workspace);Saiku.ui.unblock();return!1}}),RepositoryUrl="api/repository",repoPathUrl=function(){return Settings.BIPLUGIN?"pentaho/repository":RepositoryUrl},RepositoryObject=Backbone.Model.extend({initialize:function(a,b){b&&b.dialog&&(this.dialog=b.dialog,this.file=b.file)},parse:function(a){if(this.dialog)return this.dialog.generate_grids_reports(a),a},url:function(){return this.file?repoPathUrl()+"/resource?file\x3d"+this.file:repoPathUrl()+
"/resource"}}),RepositoryAclObject=Backbone.Model.extend({url:function(){return repoPathUrl()+"/resource/acl"},parse:function(a){"OK"!=a&&_.extend(this.attributes,a)}}),RepositoryZipExport=Backbone.Model.extend({url:function(){return repoPathUrl()+"/zip"}}),SavedQuery=Backbone.Model.extend({parse:function(a){},url:function(){return repoPathUrl()+"/resource"},move_query_to_workspace:function(a,b){var c=b,d=a.get("file"),e;for(e in Settings)if("PARAM"==e.match("^PARAM"))var f=e.substring(5,e.length),
g=new RegExp("\\$\\{"+f+"\\}","g"),f=new RegExp("\\$\\{"+f.toLowerCase()+"\\}","g"),c=c.replace(g,Settings[e]),c=c.replace(f,Settings[e]);c=new Query({xml:c,formatter:Settings.CELLSET_FORMATTER},{name:d});Saiku.tabs.add(new Workspace({query:c}))}}),Repository=Backbone.Collection.extend({model:SavedQuery,file:null,initialize:function(a,b){b&&b.dialog&&(this.dialog=b.dialog,this.type=b.type)},parse:function(a){this.dialog&&this.dialog.populate(a);return a},url:function(){var a=repoPathUrl()+"?type\x3d"+
(this.type?this.type:"saiku,sdb");Settings.REPO_BASE&&!this.file&&(a+="\x26path\x3d"+Settings.REPO_BASE);return a}}),RepositoryLazyLoad=Backbone.Model.extend({url:function(){return repoPathUrl()+"?type\x3d"+(this.type?this.type:"saiku,sdb")+"\x26path\x3d"+this.path},initialize:function(a,b){b&&b.dialog&&(this.dialog=b.dialog,this.folder=b.folder,this.path=b.path)},parse:function(a){this.dialog&&this.dialog.populate_lazyload(this.folder,a);return a}}),Result=Backbone.Model.extend({result:null,firstRun:!1,
initialize:function(a,b){this.query=b.query},parse:function(a){this.query.workspace.unblock();this.query.workspace.processing.hide();this.result=a;a.error||(this.query.model=_.extend({},a.query));this.firstRun=!0;this.query.workspace.trigger("query:result",{workspace:this.query.workspace,data:a})},hasRun:function(){return this.firstRun},lastresult:function(){return this.result},url:function(){return"api/query/execute"}}),QueryAction=Backbone.Model.extend({initialize:function(a,b){this.query=b.query;
this.url=this.query.url},gett:function(a,b){this.handle("fetch",a,b)},post:function(a,b){this.handle("save",a,b)},put:function(a,b){this.id=_.uniqueId("queryaction_");this.handle("save",a,b);delete this.id},del:function(a,b){this.id=_.uniqueId("queryaction_");this.handle("delete",a,b);delete this.id},handle:function(a,b,c){this.url=this.query.url()+b;this.attributes=c.data?c.data:{};"save"==a?this.save({},c):"delete"==a?(this.set("id",this.id),this.destroy(c)):"fetch"==a&&(this.parse=function(){},
this.fetch(c))}}),QueryScenario=Backbone.Model.extend({initialize:function(a,b){_.bindAll(this,"attach_listeners","activate","clicked_cell","save_writeback","cancel_writeback","check_input");this.query=b.query},activate:function(){$(this.query.workspace.el).find("td.data").unbind("click").addClass("cellhighlight").click(this.clicked_cell)},attach_listeners:function(a){a.workspace.query&&a.workspace.query.properties&&"true"===a.workspace.query.properties.properties["org.saiku.connection.scenario"]&&
$(a.workspace.el).find(".query_scenario").hasClass("on")&&$(a.workspace.el).find("td.data").click(this.clicked_cell)},clicked_cell:function(a){a=$(a.target).hasClass("data")?$(a.target).find("div"):$(a.target);var b=a.attr("alt");a.attr("rel");b=$("\x3cinput type\x3d'text' value\x3d'"+b+"' /\x3e").keyup(this.check_input).blur(this.cancel_writeback);a.html("").append(b);b.focus()},check_input:function(a){13==a.which?this.save_writeback(a):27!=a.which&&9!=a.which||this.cancel_writeback(a);return!1},
save_writeback:function(a){a=$(a.target).closest("input");this.set({value:a.val(),position:a.parent().attr("rel")});this.save();var b=a.val();a.parent().text(b)},cancel_writeback:function(a){a=$(a.target).closest("input");a.parent().text(a.parent().attr("alt"))},parse:function(){this.query.run()},url:function(){return this.query.url()+"/cell/"+this.get("position")+"/"+this.get("value")}}),Query=Backbone.Model.extend({formatter:Settings.CELLSET_FORMATTER,properties:null,initialize:function(a,b){_.extend(this,
b);_.bindAll(this,"run");this.uuid="xxxxxxxx-xxxx-xxxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){var b=16*Math.random()|0;return("x"==a?b:b&3|8).toString(16)}).toUpperCase();this.model=_.extend({name:this.uuid},SaikuOlapQueryTemplate);a.cube&&(this.model.cube=a.cube);this.helper=new SaikuOlapQueryHelper(this);this.action=new QueryAction({},{query:this});this.result=new Result({limit:Settings.RESULT_LIMIT},{query:this});this.scenario=new QueryScenario({},{query:this})},parse:function(a){this.id=
this.uuid;a.name&&(this.uuid=this.id=a.name);this.model=_.extend(this.model,a);this.model.properties=_.extend({},Settings.QUERY_PROPERTIES,this.model.properties)},setProperty:function(a,b){this.model.properties[a]=b},getProperty:function(a){return this.model.properties[a]},run:function(a,b){var c=this;Saiku.ui.unblock();if("undefined"==typeof this.model.properties||!1!==this.model.properties["saiku.olap.query.automatic_execution"]||!1!==a&&void 0!==a&&null!==a){this.workspace.unblock();$(this.workspace.el).find(".workspace_results_info").empty();
this.workspace.trigger("query:run");this.result.result=null;var d=!1,e='\x3cspan class\x3d"i18n"\x3eQuery Validation failed!\x3c/span\x3e',f=this.helper.model(),g;for(g in this.attributes){var h=this.attributes[g];if("PARAM"===g.substring(0,5)){var k=g.substring(5,g.length);f.parameters[k]=h}}"OLAP"==f.queryType&&("QUERYMODEL"==f.type?(g=0<Object.keys(f.queryModel.axes.COLUMNS.hierarchies).length,h=0<Object.keys(f.queryModel.axes.ROWS.hierarchies).length,k="COLUMNS"==f.queryModel.details.axis&&0<
f.queryModel.details.measures.length,h&&g&&k||(e=""),g||k||(e+='\x3cspan class\x3d"i18n"\x3eYou need to include at least one measure or a level on columns for a valid query.\x3c/span\x3e'),h||(e+='\x3cspan class\x3d"i18n"\x3eYou need to include at least one level on rows for a valid query.\x3c/span\x3e'),(g||k)&&h&&(d=!0)):"MDX"==f.type&&((d=f.mdx&&0<f.mdx.length)||(e='\x3cspan class\x3d"i18n"\x3eYou need to enter some MDX statement to execute.\x3c/span\x3e')));d?(this.workspace.table.clearOut(),
$(this.workspace.processing).html('\x3cspan class\x3d"processing_image"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e \x3cspan class\x3d"i18n"\x3eRunning query...\x3c/span\x3e [\x26nbsp;\x3ca class\x3d"cancel i18n" href\x3d"#cancel"\x3eCancel\x3c/a\x3e\x26nbsp;]').show(),this.workspace.adjust(),this.workspace.trigger("query:fetch"),Saiku.i18n.translate(),this.workspace.block('\x3cspan class\x3d"processing_image"\x3e\x26nbsp;\x26nbsp;\x3c/span\x3e \x3cspan class\x3d"i18n"\x3eRunning query...\x3c/span\x3e [\x26nbsp;\x3ca class\x3d"cancel i18n" href\x3d"#cancel"\x3eCancel\x3c/a\x3e\x26nbsp;]'),
this.result.save({},{contentType:"application/json",data:JSON.stringify(f),error:function(){Saiku.ui.unblock();c.workspace.table.clearOut();$(c.workspace.processing).html('\x3cspan class\x3d"i18n"\x3eError executing query. Please check the server logs or contact your administrator!\x3c/span\x3e').show();c.workspace.adjust();Saiku.i18n.translate()}})):(this.workspace.table.clearOut(),$(this.workspace.processing).html(e).show(),this.workspace.adjust(),Saiku.i18n.translate())}},enrich:function(){var a=
this;this.workspace.query.action.post("/../enrich",{contentType:"application/json",data:JSON.stringify(a.model),async:!1,success:function(b,c){a.model=c}})},url:function(){return"api/query/"+encodeURI(this.uuid)}}),Session=Backbone.Model.extend({username:null,password:null,sessionid:null,upgradeTimeout:null,isAdmin:!1,id:null,initialize:function(a,b){_.extend(this,Backbone.Events);_.bindAll(this,"check_session","process_session","load_session","login","brute_force");b&&b.username&&b.password?(this.username=
b.username,this.password=b.password,Settings.DEMO?this.check_session():this.save({username:this.username,password:this.password},{success:this.check_session,error:this.check_session})):this.check_session()},check_session:function(){null===this.sessionid||null===this.username||null===this.password?(this.clear(),this.fetch({success:this.process_session,error:this.brute_force})):(this.username=encodeURIComponent(options.username),this.load_session())},brute_force:function(a,b){this.clear();this.fetch({success:this.process_session,
error:this.show_error})},show_error:function(a,b){Saiku.ui.unblock();this.form=new SessionErrorModal({issue:b.responseText});this.form.render().open()},load_session:function(){this.sessionworkspace=new SessionWorkspace},process_session:function(a,b){null===b||null==b.sessionid?(Saiku.ui.unblock(),this.form=Settings.DEMO?new DemoLoginForm({session:this}):new LoginForm({session:this}),this.form.render().open()):(this.sessionid=b.sessionid,this.roles=b.roles,this.isAdmin=b.isadmin,this.username=encodeURIComponent(b.username),
this.language=b.language,"undefined"!=typeof this.language&&this.language!=Saiku.i18n.locale&&(Saiku.i18n.locale=this.language,Saiku.i18n.automatic_i18n()),(new License).fetch_license("api/license/",function(a){"success"===a.status&&(Settings.LICENSE=a.data.toJSON());Saiku.session.isAdmin&&(new LicenseQuota).fetch_quota("api/license/quota",function(a){"success"===a.status&&(Settings.LICENSEQUOTA=a.data.toJSON())})}),this.load_session());return this},error:function(){$(this.form.el).dialog("open")},
login:function(a,b){var c=this;this.save({username:a,password:b},{dataType:"text",success:this.check_session,error:function(a,b){c.login_failed(b.responseText)}})},login_failed:function(a){this.form=new LoginForm({session:this});this.form.render().open();this.form.setError(a)},logout:function(){Saiku.ui.unblock();$("#header").empty().hide();$("#tab_panel").remove();Saiku.tabs=new TabSet;Saiku.toolbar.remove();Saiku.toolbar=new Toolbar;"undefined"!==typeof localStorage&&localStorage&&localStorage.clear();
this.set("id",_.uniqueId("queryaction_"));this.destroy({async:!1});this.clear();this.roles=this.password=this.username=this.sessionid=null;this.isAdmin=!1;this.destroy({async:!1});document.location.reload(!1);delete this.id},url:function(){return"session"}}),SessionErrorModal=Modal.extend({initialize:function(a,b){_.extend(this.options,{title:"Error"});this.reportedissue=a.issue;this.message="There has been an error creating a session:\x3cbr\x3e"+this.reportedissue},events:{"click a":"close"},dummy:function(){return!0},
type:"info"}),SplashScreen=Backbone.View.extend({events:{"click .run_query":"run_query","click .run_dashboards":"run_dashboard","click .head":"click_head","click .beg_tut":"run_tour"},click_head:function(a){a.preventDefault();var b=a.target;a=$(b).attr("class").split(" ");$("nav li").removeClass("active");$(b).parent().addClass("active");$(".stabs section").hide();b="";-1<a.indexOf("welcome")?b="welcome":-1<a.indexOf("features")?b="features":-1<a.indexOf("help")?b="help":-1<a.indexOf("enterprise")&&
(b="enterprise");$("#"+b).fadeIn()},run_tour:function(){this.toolbar=Saiku.toolbar;(new Tour({toolbar:this.toolbar})).run_tour()},initialize:function(a){_.bindAll(this,"caption");_.extend(this,Backbone.Events)},run_query:function(){Saiku.tabs.add(new Workspace);return!1},run_dashboard:function(){if(void 0===Saiku.Dashboards)alert("Please upgrade to Saiku Enterprise for Dashboards");else{var a=_.find(Saiku.tabs._tabs,function(a){return a.content instanceof Dashboards});a?a.select():Saiku.tabs.add(new Dashboards)}return!1},
template:function(){var a=$("\x3cdiv\x3e \x3cdiv id\x3d'splash'\x3e \x3cnav\x3e \x3cul\x3e \x3cli class\x3d'active'\x3e\x3ca class\x3d'welcome head' href\x3d'#'\x3eWelcome\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class\x3d'features head' href\x3d'#'\x3eFeatures\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca class\x3d'help head' href\x3d'#'\x3eGet Help\x3c/a\x3e\x3c/li\x3e \x3cli class\x3d'enterprisetoggle enterprise'\x3e\x3ca class\x3d'enterprise head' href\x3d'#'\x3eEnterprise\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3ch2\x3eExplore Data. Visualise. Act.\x3c/h2\x3e \x3c/nav\x3e \x3csection class\x3d'stabs'\x3e \x3csection style\x3d'margin-top:50px;min-height:700px;' id\x3d'welcome'\x3e \x3cdiv style\x3d'width:50%;float:left;'\x3e \x3ch1 class\x3d'saikulogo'\x3eSaiku\x3c/h1\x3e \x3cp\x3eSaiku has the power to change the way you think about your business and make decisions. Saiku provides powerful, web based analytics for everyone in your organisation. Quickly and easily analyse data from any data source to discover what is really happening inside and outside your organisation. \x3ci class\x3d'icon icon-remove' style\x3d'height: 100px;'\x3e\x3c/i\x3e \x3c/p\x3e \x3ch2\x3eQuick Links\x3c/h2\x3e \x3cul class\x3d'quicklinks'\x3e \x3cli\x3e\x3ca class\x3d'run_query' href\x3d'#'\x3eCreate a new query\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca href\x3d'#' title\x3d'Dashboards' class\x3d'run_dashboards'\x3eCreate a dashboard\x3c/a\x3e\x3c/li\x3e \x3cli\x3e \x3ca href\x3d'http://saiku.meteorite.bi' target\x3d'_blank'\x3eVisit the website\x3c/a\x3e\x3c/li\x3e \x3cli\x3e\x3ca href\x3d'#' class\x3d'help head'\x3eTutorials\x3c/a\x3e\x3c/li\x3e \x3c/ul\x3e \x3cp class\x3d'fixed'\x3e\x3ca class\x3d'enterprisetoggle button' href\x3d'http://meteorite.bi' target\x3d'_blank'\x3eGet Enterprise\x3c/a\x3e\x3c/p\x3e \x3ch2\x3eNews\x3c/h2\x3e \x3cdiv id\x3d'news'\x3e\x3c/div\x3e \x3c/div\x3e \x3cdiv style\x3d'width:40%;margin-left:10%;float:left;' id\x3d'dyn_content' class\x3d'enterprisetoggle'\x3e \x3ch2\x3eDiscover more about Saiku\x3c/h2\x3e\x3cp\x3eSaiku Analytics provides both a Community Version and an Enterprise Version with added features. To find out more you can \x3ca href\x3d'http://meteorite.bo'\x3evisit our website\x3c/a\x3e or watch the videos on our \x3ca href\x3d'https://www.youtube.com/channel/UChivLeroOJx0_JamfuZ_XHA'\x3eYoutube channel\x3c/a\x3e.\x3c/p\x3e\x3cp\x3eIf you are using Saiku Analytics in a business or commercial product, you can help give back in many ways. Swing by our \x3ca href\x3d'http://webchat.freenode.net/?channels\x3d##saiku'IRC channel\x3c/a\x3e and help foster the community, join the \x3ca href\x3d'http://community.meteorite.bi'\x3emailing lists\x3c/a\x3e and ask/answer questions, \x3ca href\x3d'http://meteorite.bi'\x3esponsor a new feature\x3c/a\x3e, or best of all \x3ca href\x3d'http://www.meteorite.bi/saiku-pricing'\x3epurchase an EE license\x3c/a\x3e, which funds development of Saiku Community Edition along with Enterprise Edition.\x3c/p\x3e\x3cdiv\x3e\x3c/div\x3e \x3c/div\x3e \x3c/section\x3e \x3csection style\x3d'display:none !important;margin-top:50px' id\x3d'features'\x3e \x3ch1 class\x3d'saikulogo'\x3eSaiku\x3c/h1\x3e \x3ch2\x3eFeatures\x3c/h2\x3e \x3ch3\x3eWeb Based Analysis\x3c/h3\x3e \x3cp\x3eSaiku provides the user with an entirely browser based experience. We support all modern browsers, and our user interface is 100% HTML and Javascript. \x3cbr/\x3eSaiku uses REST based communications, this allows the development of custom user interfaces and facilitates the easy integration of the Saiku Server into other applications and services.\x3c/p\x3e \x3ch3\x3eStandards Compliant\x3c/h3\x3e \x3cp\x3eSaiku is based upon the Microsoft MDX query language and will work on most JDBC compliant data sources. We also provide a number of connectors to NOSQL data sources.\x3c/p\x3e \x3ch3\x3eDynamic charting\x3c/h3\x3e \x3cp\x3eSaiku uses a flexible charting engine to provide a wide range of charts and graphs. These are all HTML \x26 Javascript only and don't require flash to be installed on the computer.\x3c/p\x3e \x3ch3\x3ePluggable visualisation engine\x3c/h3\x3e \x3cp\x3eSaiku Enterprise boasts a fully pluggable visualisation engine. This allows developers to build third party extensions and plug them into Saiku Enterprise to extend or replace the existing visualisations.\x3c/p\x3e \x3c/section\x3e \x3csection style\x3d'display:none !important;margin-top:50px' id\x3d'help'\x3e \x3ch1 class\x3d'saikulogo'\x3eSaiku\x3c/h1\x3e \x3ch2\x3eHelp\x3c/h2\x3e \x3cp\x3eWe provide Training, Consulting and Support to ensure you get the most from Saiku and your data. Our services cover all aspects of data analysis including data strategy, design, architecture, deployment and application/software support.\x3c/p\x3e \x3ctable style\x3d'margin-bottom:100px;'\x3e \x3ctr\x3e \x3cth\x3eTutorials\x3c/th\x3e\x3cth\x3eWiki\x3c/th\x3e \x3cth\x3eSupport\x3c/th\x3e \x3c/tr\x3e \x3ctr\x3e\x3ctd\x3eWe have a number of click through tutorials to help get your started: \x3cul\x3e\x3cli\x3e\x3ca href\x3d'#' class\x3d'beg_tut'\x3eBeginners(Query building and charts)\x3c/a\x3e\x3c/li\x3e\x3c/ul\x3e \x3ctd\x3eWhy not try our new \x3ca href\x3d'http://wiki.meteorite.bi' target\x3d'_blank'\x3eWiki site\x3c/a\x3e\x3cbr/\x3efor community documentation.\x3c/td\x3e \x3ctd\x3eIf you require more, \x3cbr/\x3e\x3ca href\x3d'mailto:info@meteorite.bi'\x3econtact us\x3c/a\x3e for support!.\x3c/td\x3e \x3c/tr\x3e \x3c/table\x3e \x3c/section\x3e \x3csection style\x3d'display:none !important;margin-top:50px' id\x3d'enterprise'\x3e \x3ch1 class\x3d'saikulogo'\x3eSaiku\x3c/h1\x3e \x3ch2\x3eEnterprise\x3c/h2\x3e \x3cp\x3eSaiku Enterprise is our fully supported and tested server and Pentaho plugin system. Buy Saiku Enterprise from as little as $15 per user per month and enjoy the addtional features Saiku Enterprise has to offer\x3c/p\x3e \x3cp\x3eTo find out more visit our \x3ca href\x3d'http://meteorite.bi' target\x3d'_blank'\x3esite\x3c/a\x3e or \x3ca href\x3d'mailto:info@meteorite.bi'\x3eschedule a call\x3c/a\x3e with one of us and we can show you why you should choose Saiku Enterprise!\x3c/p\x3e \x3c/section\x3e \x3c/section\x3e \x3c/div\x3e \x3c/div\x3e").html()||
"";return _.template(a)({})},setupPage:function(a){a=$(window).height();$("body").height(a);$(".stabs section").each(function(){$(this).height()});a=$("nav li.active a").attr("class");$("#"+a).fadeIn()},render:function(){new License;Settings.BIPLUGIN5?($(this.el).html(this.template()),void 0!=Settings.LICENSE.licenseType&&"trial"!=Settings.LICENSE.licenseType&&"Open Source License"!=Settings.LICENSE.licenseType&&$(this.el).find(".enterprisetoggle").css("visibility","hidden"),this.getContent(),this.getNews(),
this.setupPage(this),$("#splash").find("\x3e nav \x3e ul \x3e li.active \x3e a").click(function(){var a=$(this).attr("class");$("nav li").removeClass("active");$(this).parent().addClass("active");$(".stabs section").hide();$("#"+a).fadeIn()})):($(this.el).html(this.template()),void 0!=Settings.LICENSE.licenseType&&"trial"!=Settings.LICENSE.licenseType&&"Open Source License"!=Settings.LICENSE.licenseType&&$(this.el).find(".enterprisetoggle").css("visibility","hidden"),this.getContent(),this.getNews(),
this.setupPage(this),$("#splash \x3e nav \x3e ul \x3e li.active \x3e a").click(function(){var a=$(this).attr("class");$("nav li").removeClass("active");$(this).parent().addClass("active");$(".stabs section").hide();$("#"+a).fadeIn()}));return this},remove:function(){$(this.el).remove()},caption:function(a){return'\x3cspan class\x3d"i18n"\x3eHome\x3c/span\x3e'},getNews:function(){var a=this;$.ajax({type:"GET",url:"http://meteorite.bi/news.json",async:!1,contentType:"application/json",dataType:"jsonp",
jsonpCallback:"jsonCallback",success:function(b){for(var c=0;c<b.item.length;c++)$(a.el).find("#news").append("\x3ch4 style\x3d'margin-left: 0.5%;color:#6D6E71;'\x3e"+b.item[c].title+"\x3c/h4\x3e\x3cstrong style\x3d'margin-left: 0.5%;color:#6D6E71;'\x3e"+b.item[c].date+"\x3c/strong\x3e\x3cbr/\x3e\x3cp style\x3d'color:#6D6E71;'\x3e"+b.item[c].body+"\x3c/p\x3e")},error:function(a){console.log(a.message)}})},getContent:function(){var a=this;new License;$.ajax({type:"GET",url:"http://meteorite.bi/content.json",
async:!1,contentType:"application/json",dataType:"jsonp",jsonpCallback:"jsonCallback2",cache:!0,success:function(b){$(a.el).find("#dyn_content").html(b.item[0].content);$(a.el).find(".responsive-container").fitVids();$(self.el).html(a.template());"trial"!=Settings.LICENSE.licenseType&&"Open Source License"!=Settings.LICENSE.licenseType&&$(self.el).find(".enterprisetoggle").css("visibility","hidden")},error:function(a){$(self.el).html(self.template());"trial"!=Settings.LICENSE.licenseType&&"Open Source License"!=
Settings.LICENSE.licenseType&&$(self.el).find(".enterprisetoggle").css("visibility","hidden")}})}}),SessionWorkspace=Backbone.Model.extend({initialize:function(a,b){_.extend(this,Backbone.Events);_.bindAll(this,"process_datasources","prefetch_dimensions");this.initialized=!1;this.first=!0;"undefined"!==typeof localStorage&&localStorage&&(Settings.LOCALSTORAGE_EXPIRATION&&0!==Settings.LOCALSTORAGE_EXPIRATION||localStorage.clear(),localStorage.getItem("expiration")&&localStorage.getItem("expiration")<=
(new Date).getTime()?localStorage.clear():localStorage.getItem("saiku-version")&&localStorage.getItem("saiku-version")===Settings.VERSION||(localStorage.clear(),localStorage.setItem("saiku-version",Settings.VERSION)));Saiku.ui.block("Loading datasources....");this.fetch({success:this.process_datasources},{})},refresh:function(){"undefined"!==typeof localStorage&&localStorage&&localStorage.clear();this.clear();"undefined"!==typeof localStorage&&localStorage&&localStorage.setItem("saiku-version",Settings.VERSION);
this.fetch({success:this.process_datasources},{})},destroy:function(){"undefined"!==typeof localStorage&&localStorage&&localStorage.clear();return!1},render_default_tab:function(a,b){null!=b&&b.unbind("report:rendered");for(var c=this,d=0;d<a.length;d++)if(a[0].visible){filePath=a[0].path;if(filePath.indexOf(".saiku")===filePath.length-6){Saiku.ui.block("Loading default report...");fileName=filePath.replace(/^.*[\\\/]/,"");var e=new SavedQuery({file:filePath,name:fileName}),d={fileType:"saiku",name:fileName.split(".saiku")[0]},
f=_.extend({file:e.get("file"),formatter:Settings.CELLSET_FORMATTER},Settings.PARAMS),e=new Query(f,{name:e.get("name")}),d=new Workspace({query:e,item:d,viewState:null});Saiku.tabs.add(d);a.shift();d.bind("report:rendered",function(){c.render_default_tab(a)})}else filePath.indexOf(".sdb")===filePath.length-4&&(Saiku.Dashboards?(Saiku.ui.block("Loading default report..."),Saiku.tabs.add(new DashboardViewTab({file:a[d].path}))):!Settings.INITIAL_QUERY&&paramsURI.splash?Saiku.tabs.add(new SplashScreen):
Settings.INITIAL_QUERY||Saiku.tabs.add(new Workspace));break}else a.shift()},process_datasources:function(a,b){if("undefined"!==typeof localStorage&&localStorage&&null===localStorage.getItem("session")){localStorage.setItem("session",JSON.stringify(b));var c=(new Date).getTime()+Settings.LOCALSTORAGE_EXPIRATION;"undefined"!==typeof localStorage&&localStorage&&localStorage.setItem("expiration",c)}this.cube_navigation=_.template($("#template-cubes").html())({connections:b});this.cube={};this.connections=
b;_.delay(this.prefetch_dimensions,20);if(this.initialized)Settings.INITIAL_QUERY||Saiku.tabs.add(new Workspace);else{$(Saiku.toolbar.el).prependTo($("#header"));$("#header").show();Saiku.ui.unblock();Saiku.tabs.render();Saiku.events.trigger("session:new",{session:this});var d=Saiku.URLParams.paramsURI();if(!_.has(d,"splash"))d.splash=!0;else if(_.has(d,"splash")&&d.splash||_.has(d,"splash")&&null===d.splash)d.splash=!0;if(Settings.DEFAULT_REPORT_SHOW){var e=function(){var a,b;if(0<_.size(Settings.DEFAULT_REPORTS)&&
0<k.length)for(b=0;b<k.length;b++)if(k[0].visible){a=k[0].path;if(a.indexOf(".saiku")===a.length-6){Saiku.ui.block("Loading default report...");b=a.replace(/^.*[\\\/]/,"");a=new SavedQuery({file:a,name:b});b={fileType:"saiku",name:b.split(".saiku")[0]};var c=_.extend({file:a.get("file"),formatter:Settings.CELLSET_FORMATTER},Settings.PARAMS);a=new Query(c,{name:a.get("name")});var e=new Workspace({query:a,item:b,viewState:null});Saiku.tabs.add(e);k.shift();e.bind("report:rendered",function(){h.render_default_tab(k,
e)})}else a.indexOf(".sdb")===a.length-4&&(Saiku.Dashboards?(Saiku.ui.block("Loading default report..."),Saiku.tabs.add(new DashboardViewTab({file:k[b].path})),k.shift(),h.render_default_tab(k,null)):!Settings.INITIAL_QUERY&&d.splash?Saiku.tabs.add(new SplashScreen):Settings.INITIAL_QUERY||Saiku.tabs.add(new Workspace));break}else k.shift();else!Settings.INITIAL_QUERY&&d.splash?Saiku.tabs.add(new SplashScreen):Settings.INITIAL_QUERY||Saiku.tabs.add(new Workspace)};!Settings.INITIAL_QUERY&&d.splash?
Saiku.tabs.add(new SplashScreen):Settings.INITIAL_QUERY||Saiku.tabs.add(new Workspace);var c=Settings.DEFAULT_REPORTS._,f=[];_.each(Saiku.session.roles,function(a){a=Settings.DEFAULT_REPORTS[a];void 0!=a&&0<a.length&&(f=f.concat(a))});var g=0,h=this,k=c.concat(Settings.DEFAULT_REPORTS[Saiku.session.username]).concat(f),g=setInterval(function(){"undefined"!==typeof window.DashboardViewTab&&(clearInterval(g),e())},100)}else!Settings.INITIAL_QUERY&&d.splash?Saiku.tabs.add(new SplashScreen):Settings.INITIAL_QUERY||
Saiku.tabs.add(new Workspace)}},prefetch_dimensions:function(){for(var a=0,b=this.connections.length;a<b;a++)for(var c=this.connections[a],d=0,e=c.catalogs.length;d<e;d++)for(var f=c.catalogs[d],g=0,h=f.schemas.length;g<h;g++)for(var k=f.schemas[g],l=0,m=k.cubes.length;l<m;l++){var n=c.name+"/"+f.name+"/"+(""===k.name||null===k.name?"null":k.name)+"/"+encodeURIComponent(k.cubes[l].name);"undefined"!==typeof localStorage&&localStorage&&null!==localStorage.getItem("cube."+n)?this.cube[n]=new Cube(JSON.parse(localStorage.getItem("cube."+
n))):(this.cube[n]=new Cube({key:n}),!0===Settings.DIMENSION_PREFETCH&&this.cube[n].fetch())}!this.initialized&&Backbone.history&&(Backbone.history.start(),this.initialized=!0)},url:function(){return this.first?(this.first=!1,encodeURI(Saiku.session.username+"/discover")):encodeURI(Saiku.session.username+"/discover/refresh")}}),Member=Backbone.Model.extend({initialize:function(a,b){this.cube=b.cube;var c=b.dimension.split("/");this.hierarchy=decodeURIComponent(c[0]);this.level=decodeURIComponent(c[1])},
url:function(){return encodeURI(Saiku.session.username+"/discover/")+this.cube+"/hierarchies/"+encodeURIComponent(this.hierarchy)+"/levels/"+encodeURIComponent(this.level)}}),Plugin=Backbone.Model.extend({}),PluginCollection=Backbone.Collection.extend({model:Plugin,url:"info"}),SettingsOverride=Backbone.Model.extend({}),SettingsOverrideCollection=Backbone.Collection.extend({model:SettingsOverride,url:"info/ui-settings"}),License=Backbone.Model.extend({url:"api/license",initialize:function(){_.bindAll(this,
"fetch_license")},fetch_license:function(a,b){this.fetch({success:function(a){b&&"function"===typeof b&&b({status:"success",data:a})},error:function(a){b&&"function"===typeof b&&b({status:"error",data:a})}})}}),LicenseUserModel=Backbone.Model.extend({url:"api/license/users"}),LicenseUsersCollection=Backbone.Collection.extend({url:"api/license/users",model:LicenseUserModel}),LicenseQuota=Backbone.Model.extend({url:"api/license/quota",initialize:function(){_.bindAll(this,"fetch_quota")},fetch_quota:function(a,
b){this.fetch({success:function(a){b&&"function"===typeof b&&b({status:"success",data:a})},error:function(a){b&&"function"===typeof b&&b({status:"error",data:a})}})}}),Saiku={toolbar:{},tabs:new TabSet,splash:new SplashScreen({toolbar:this.toolbar}),session:null,events:_.extend({},Backbone.Events),routers:[],leaflet:"undefined"!==typeof L?L:{},ui:{block:function(a){$(".processing_message").html(a);$(".processing_message").removeClass("i18n_translated").addClass("i18n");Saiku.i18n.translate();$(".processing,.processing_container").show()},
unblock:function(){$(".processing,.processing_container, .blockOverlay").hide();$(".blockUI").fadeOut("slow")}},log:function(a,b){console&&console.log&&(console.log("Logging for: "+a),b&&console.log(b))},error:function(a,b){console&&console.error&&(console.error("Logging for: "+a),console.error(b))},URLParams:{buildValue:function(a){return/^\s*$/.test(a)?null:/^(true|false)$/i.test(a)?"true"===a.toLowerCase():isFinite(a)?parseFloat(a):a},paramsURI:function(){var a={},b=window.location.search.substr(1).split("\x26"),
c=b.length,d,e;if(1<window.location.search.length)for(d=0;d<c;d++)e=b[d].split("\x3d"),a[decodeURIComponent(e[0])]=1<e.length?this.buildValue(decodeURIComponent(e[1])):null;return a},equals:function(){var a=Array.prototype.slice.call(arguments),b=this.paramsURI();return _.isEqual(b,a[0])?!0:!1}},loadCSS:function(a,b){var c=window.document.createElement("link"),d=window.document.getElementsByTagName("script")[0];c.rel="stylesheet";c.href=a;c.media="only x";d.parentNode.insertBefore(c,d);setTimeout(function(){c.media=
b||"all"});return c},loadJS:function(a,b){var c=window.document.createElement("script"),d=window.document.getElementsByTagName("script")[0];c.src=a;c.async=!0;d.parentNode.insertBefore(c,d);b&&"function"===typeof b&&(c.onload=b);return c},toPattern:function(a,b){var c=("object"===typeof b?b.pattern:b).split(""),d=a.toString().replace(/[^0-9a-zA-Z]/g,""),e=0,f=c.length,g;for(g=0;g<f&&!(e>=d.length);g++)if("9"===c[g]&&d[e].match(/[0-9]/)||"A"===c[g]&&d[e].match(/[a-zA-Z]/)||"S"===c[g]&&d[e].match(/[0-9a-zA-Z]/))c[g]=
d[e++];else if("9"===c[g]||"A"===c[g]||"S"===c[g])c=c.slice(0,g);return c.join("").substr(0,g)}};Saiku.singleton=function(){var a;Saiku.singleton=function(){if(a)return a;a=this;this.set=function(a){this.data=a};this.get=function(){return this.data}};return Saiku.singleton}();Backbone.emulateHTTP=!1;
Settings.BIPLUGIN||$(document).ready(function(){var a=new PluginCollection;a.fetch({success:function(){var b=new SettingsOverrideCollection;b.fetch({success:function(){var c=a.size(),d=0;a.each(function(a){d+=1;if("js/saiku/plugins/I18n/plugin.js"!=a.attributes.path)jQuery.ajax({async:!1,type:"GET",url:a.attributes.path,data:null,success:function(){if(d==c){var a=b.size(),e=0;b.each(function(b){e+=1;for(var c in b.attributes)Settings[c]=b.attributes[c];void 0!=Settings.CSS&&Saiku.loadCSS(Settings.CSS,
null);a==e&&(Saiku.session=new Session({},{username:Settings.USERNAME,password:Settings.PASSWORD}),Saiku.toolbar=new Toolbar)})}},dataType:"script"});else if(d==c){var f=b.size(),g=0;b.each(function(a){g+=1;for(var b in a.attributes)Settings[b]=a.attributes[b];void 0!=Settings.CSS&&Saiku.loadCSS(Settings.CSS,null);f==g&&(Saiku.session=new Session({},{username:Settings.USERNAME,password:Settings.PASSWORD}),Saiku.toolbar=new Toolbar)})}})},error:function(){var b=a.size(),d=0;a.each(function(a){d+=1;
"js/saiku/plugins/I18n/plugin.js"!=a.attributes.path?jQuery.ajax({async:!1,type:"GET",url:a.attributes.path,data:null,success:function(){d==b&&(void 0!=Settings.CSS&&Saiku.loadCSS(Settings.CSS,null),Saiku.session=new Session({},{username:Settings.USERNAME,password:Settings.PASSWORD}),Saiku.toolbar=new Toolbar)},dataType:"script"}):d==b&&(void 0!=Settings.CSS&&Saiku.loadCSS(Settings.CSS,null),Saiku.session=new Session({},{username:Settings.USERNAME,password:Settings.PASSWORD}),Saiku.toolbar=new Toolbar)})}})}})});
var SaikuTimeLogger=function(a){this._element=$(a);this._timestamps=[];this._events=[]};SaikuTimeLogger.prototype.log=function(a){var b=(new Date).getTime();a||(a="Unknown");if(0<this._timestamps.length){var c=this._timestamps[this._timestamps.length-1];1<b-c&&this._element.append("\x3cdiv\x3e"+(b-c)+" ms "+a+" (previous: "+this._events[this._events.length-1]+" )\x3c/div\x3e")}this._timestamps.push(b);this._events.push(a)};
var DateFilterModal=Modal.extend({type:"date-filter",buttons:[{text:"Clear",method:"clear_date_filter"},{text:"Save",method:"save"},{text:"Open Standard Filter",method:"open_standard_filter"},{text:"Cancel",method:"finished"},{text:"Help",method:"help"}],events:{"click a":"call","focus .selection-date":"selection_date","click .selection-radio":"disable_divselections","click .operator-radio":"show_fields","click #add-date":"add_selected_date","click .del-date":"del_selected_date"},template_days_mdx:"Filter({parent}.Members, {parent}.CurrentMember.NAME {comparisonOperator} '{dates}'",
template_many_years_mdx:" {logicalOperator} {parent}.CurrentMember.NAME {comparisonOperator} '{dates}'",template_mdx:"IIF(ISEMPTY(CurrentDateMember([{dimension}.{hierarchy}], '[\"{dimension}.{hierarchy}\"]\\.{analyzerDateFormat}', EXACT)), {}, { {parent} CurrentDateMember([{dimension}.{hierarchy}], '[\"{dimension}.{hierarchy}\"]\\.{analyzerDateFormat}', EXACT)})",template_last_mdx:"{parent} LastPeriods({periodAmount}, CurrentDateMember([{dimension}.{hierarchy}], '[\"{dimension}.{hierarchy}\"]\\.{analyzerDateFormat}', EXACT))",
template_dialog:_.template('\x3cdiv class\x3d"box-selections"\x3e\x3cdiv class\x3d"selection-option"\x3e\x3cinput type\x3d"radio" class\x3d"selection-radio" name\x3d"selection-radio" id\x3d"selection-radio-operator" level-type\x3d"TIME_DAYS" disabled\x3e\x3c/div\x3e\x3cdiv class\x3d"available-selections" selection-name\x3d"operator" available\x3d"false"\x3e\x3cspan class\x3d"i18n"\x3eOperator:\x3c/span\x3e\x3cbr\x3e\x3cdiv class\x3d"selection-options"\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-equals" value\x3d"\x3d" data-operator\x3d"equals"\x3e \x3cspan class\x3d"i18n"\x3eEquals\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-after" value\x3d"\x3e" data-operator\x3d"after"\x3e \x3cspan class\x3d"i18n"\x3eAfter\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-before" value\x3d"\x3c" data-operator\x3d"before"\x3e \x3cspan class\x3d"i18n"\x3eBefore\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-between" value\x3d"\x3e\x3d|\x3c\x3d" data-operator\x3d"between"\x3e \x3cspan class\x3d"i18n"\x3eBetween\x3c/span\x3e\x3c/label\x3e\x3cbr\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-different" value\x3d"\x3c\x3e" data-operator\x3d"different"\x3e \x3cspan class\x3d"i18n"\x3eDifferent\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-after-equals" value\x3d"\x3e\x3d" data-operator\x3d"after\x26equals"\x3e \x3cspan class\x3d"i18n"\x3eAfter\x26amp;Equals\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-before-equals" value\x3d"\x3c\x3d" data-operator\x3d"before\x26equals"\x3e \x3cspan class\x3d"i18n"\x3eBefore\x26amp;Equals\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"operator-radio" class\x3d"operator-radio" id\x3d"op-notbetween" value\x3d"\x3e\x3d||\x3c\x3d" data-operator\x3d"notbetween"\x3e \x3cspan class\x3d"i18n"\x3eNot Between\x3c/span\x3e\x3c/label\x3e\x3cbr\x3e\x3c/div\x3e\x3cdiv class\x3d"inline-form-group"\x3e\x3cdiv class\x3d"form-group" id\x3d"div-selection-date" hidden\x3e\x3clabel class\x3d"i18n"\x3eSelect a date:\x3c/label\x3e\x3cinput type\x3d"text" class\x3d"selection-date" id\x3d"selection-date" placeholder\x3d"Choose a date"\x3e\x3ca class\x3d"form_button i18n" id\x3d"add-date"\x3eadd\x3c/a\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group" id\x3d"div-selected-date" hidden\x3e\x3cfieldset\x3e\x3clegend class\x3d"i18n"\x3eSelected date:\x3c/legend\x3e\x3cul id\x3d"selected-date"\x3e\x3c/ul\x3e\x3c/fieldset\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group" id\x3d"div-select-start-date" hidden\x3e\x3clabel class\x3d"i18n"\x3eSelect a start date:\x3c/label\x3e\x3cinput type\x3d"text" class\x3d"selection-date" id\x3d"start-date" placeholder\x3d"Choose a date"\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group" id\x3d"div-select-end-date" hidden\x3e\x3clabel class\x3d"i18n"\x3eSelect an end date:\x3c/label\x3e\x3cinput type\x3d"text" class\x3d"selection-date" id\x3d"end-date" placeholder\x3d"Choose a date"\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"box-selections"\x3e\x3cdiv class\x3d"selection-option"\x3e\x3cinput type\x3d"radio" class\x3d"selection-radio" name\x3d"selection-radio" id\x3d"selection-radio-fixed-date"\x3e\x3c/div\x3e\x3cdiv class\x3d"available-selections" selection-name\x3d"fixed-date" available\x3d"false"\x3e\x3cspan class\x3d"i18n"\x3eFixed Date:\x3c/span\x3e\x3cbr\x3e\x3cdiv class\x3d"selection-options"\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"fixed-radio" id\x3d"fd-yesterday" data-leveltype\x3d"TIME_DAYS"\x3e \x3cspan class\x3d"i18n"\x3eYesterday\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"fixed-radio" id\x3d"fd-today" data-leveltype\x3d"TIME_DAYS"\x3e \x3cspan class\x3d"i18n"\x3eToday\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"fixed-radio" id\x3d"fd-week" data-leveltype\x3d"TIME_WEEKS"\x3e \x3cspan class\x3d"i18n"\x3eCurrent Week\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"fixed-radio" id\x3d"fd-month" data-leveltype\x3d"TIME_MONTHS"\x3e \x3cspan class\x3d"i18n"\x3eCurrent Month\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"fixed-radio" id\x3d"fd-quarter" data-leveltype\x3d"TIME_QUARTERS"\x3e \x3cspan class\x3d"i18n"\x3eCurrent Quarter\x3c/span\x3e\x3c/label\x3e\x3cbr\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-selection"\x3e\x3clabel\x3e\x3cinput type\x3d"radio" name\x3d"fixed-radio" id\x3d"fd-year" data-leveltype\x3d"TIME_YEARS"\x3e \x3cspan class\x3d"i18n"\x3eCurrent Year\x3c/span\x3e\x3c/label\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3cdiv class\x3d"box-selections"\x3e\x3cdiv class\x3d"selection-option"\x3e\x3cinput type\x3d"radio" class\x3d"selection-radio" name\x3d"selection-radio" id\x3d"selection-radio-available"\x3e\x3c/div\x3e\x3cdiv class\x3d"available-selections" selection-name\x3d"rolling-date" available\x3d"false"\x3e\x3cspan class\x3d"i18n"\x3eRolling Date:\x3c/span\x3e\x3cbr\x3e\x3cdiv class\x3d"selection-options"\x3e\x3cdiv class\x3d"form-group-rolling"\x3e\x3cselect\x3e\x3coption class\x3d"i18n" value\x3d"last"\x3eLast\x3c/option\x3e\x3coption class\x3d"keep-disabled i18n" value\x3d"next" disabled\x3eNext\x3c/option\x3e\x3c/select\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-rolling"\x3e\x3cinput type\x3d"text" id\x3d"date-input"\x3e\x3c/div\x3e\x3cdiv class\x3d"form-group-rolling"\x3e\x3cselect id\x3d"period-select"\x3e\x3coption name\x3d"TIME_DAYS" class\x3d"i18n" id\x3d"rd-days"\x3eDay(s)\x3c/option\x3e\x3coption name\x3d"TIME_WEEKS" class\x3d"i18n" id\x3d"rd-weeks"\x3eWeek(s)\x3c/option\x3e\x3coption name\x3d"TIME_MONTHS" class\x3d"i18n" id\x3d"rd-months"\x3eMonth(s)\x3c/option\x3e\x3coption name\x3d"TIME_YEARS" class\x3d"i18n" id\x3d"rd-years"\x3eYear(s)\x3c/option\x3e\x3c/select\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e\x3c/div\x3e'),
initialize:function(a){_.extend(this,a);this.options.title="Date Filter";this.message="Loading...";this.query=a.workspace.query;this.selectedDates=[];this.levelInfo={cube:this.get_cube_name(),dimension:this.dimension,hierarchy:this.hierarchy,name:this.name};_.bindAll(this,"finished");this.bind("open",this.post_render);this.render();this.show_button_clear()?(this.$el.find(".dialog_footer a:nth-child(1)").show(),this.$el.find(".dialog_footer a:nth-child(3)").hide()):this.$el.find(".dialog_footer a:nth-child(1)").hide();
this.$el.parent().find(".ui-dialog-titlebar-close").bind("click",this.finished);this.member=new Member({},{cube:this.workspace.selected_cube,dimension:this.key});this.$el.find(".dialog_body").html(this.template_dialog);this.$el.find(".available-selections *").prop("disabled",!0).off("click");this.dataLevels=this.save_data_levels();this.check_saikuDayFormatString();this.add_values_fixed_date();this.add_values_last_periods();this.populate();Saiku.i18n.translate()},help:function(a){a.preventDefault();
window.open("http://wiki.meteorite.bi/display/SAIK/Advanced+Date+Filtering")},open_standard_filter:function(a){a.preventDefault();(new SelectionsModal({source:"DateFilterModal",target:this.target,name:this.name,key:this.key,objDateFilter:{dimension:this.dimension,hierarchy:this.hierarchy,data:this.data,analyzerDateFormat:this.analyzerDateFormat,dimHier:this.dimHier},workspace:this.workspace})).open();this.$el.dialog("destroy").remove()},post_render:function(a){var b=($(window).width()-600)/2,c=600>
$(window).width()?$(window).width():600;$(a.modal.el).parents(".ui-dialog").css({width:c,left:"inherit",margin:"0",height:490}).offset({left:b})},check_saikuDayFormatString:function(){var a=this;this.$el.find(".selection-radio").each(function(b,c){_.find(a.dataLevels,function(b){a.name===b.name&&b.saikuDayFormatString&&$(c).prop("disabled",!1)})})},show_fields:function(a){a=a.type?$(a.currentTarget):$(a);var b=a.data("operator");if(void 0!==b)switch(b){case "equals":case "different":a.closest(".selection-options").find("#div-selection-date").show();
a.closest(".selection-options").find("#div-selected-date").show();a.closest(".selection-options").find("#div-select-start-date").hide();a.closest(".selection-options").find("#div-select-end-date").hide();a.closest(".selection-options").find("#add-date").show();this.clear_operators();break;case "after":case "after\x26equals":case "before":case "before\x26equals":a.closest(".selection-options").find("#div-selection-date").show();a.closest(".selection-options").find("#div-selected-date").hide();a.closest(".selection-options").find("#div-select-start-date").hide();
a.closest(".selection-options").find("#div-select-end-date").hide();a.closest(".selection-options").find("#add-date").hide();this.clear_operators();break;case "between":case "notbetween":a.closest(".selection-options").find("#div-selection-date").hide();a.closest(".selection-options").find("#div-selected-date").hide();a.closest(".selection-options").find("#div-select-start-date").show();a.closest(".selection-options").find("#div-select-end-date").show();a.closest(".selection-options").find("#add-date").hide();
this.clear_operators();break;default:a.closest(".selection-options").find("#div-selection-date").hide(),a.closest(".selection-options").find("#div-selected-date").hide(),a.closest(".selection-options").find("#div-select-start-date").hide(),a.closest(".selection-options").find("#div-select-end-date").hide(),a.closest(".selection-options").find("#add-date").hide(),this.clear_operators()}else this.$el.find(".selection-options").find("#div-selection-date").hide(),this.$el.find(".selection-options").find("#div-selected-date").hide(),
this.$el.find(".selection-options").find("#div-select-start-date").hide(),this.$el.find(".selection-options").find("#div-select-end-date").hide(),this.$el.find(".selection-options").find("#add-date").hide(),this.clear_operators()},save_data_levels:function(){var a=this,b=[];_.each(this.data.hierarchies.levels,function(c,d,e){if(void 0!==e[d].annotations.AnalyzerDateFormat||void 0!==e[d].annotations.SaikuDayFormatString)void 0!==e[d].annotations.AnalyzerDateFormat?b.push({name:e[d].name,analyzerDateFormat:e[d].annotations.AnalyzerDateFormat.replace(/[.]/gi,
"\\."),levelType:e[d].levelType,saikuDayFormatString:e[d].annotations.SaikuDayFormatString||""}):b.push({name:e[d].name,analyzerDateFormat:"",levelType:e[d].levelType,saikuDayFormatString:e[d].annotations.SaikuDayFormatString||""}),e[d].annotations.SaikuDayFormatString&&(a.saikuDayFormatString=e[d].annotations.SaikuDayFormatString)});return b},add_values_fixed_date:function(){var a=this;this.$el.find(".available-selections").each(function(b,c){"fixed-date"===$(c).attr("selection-name")&&($(c).find("input:radio").each(function(b,
c){var f=$(c).data("leveltype");_.find(a.dataLevels,function(b,d){f===b.levelType?$(c).val(a.dataLevels[d].analyzerDateFormat):"yesterday"!==f&&"today"!==f||b.name!==a.name||_.isEmpty(a.dataLevels[d].analyzerDateFormat)||void 0===a.dataLevels[d].analyzerDateFormat||null===a.dataLevels[d].analyzerDateFormat||"TIME_DAYS"!==a.dataLevels[d].levelType||$(c).val(a.dataLevels[d].analyzerDateFormat)})}),$(c).find("input:radio").each(function(a,b){null!==$(b).val()&&void 0!==$(b).val()&&""!==$(b).val()&&"on"!==
$(b).val()||$(b).addClass("keep-disabled")}))})},add_values_last_periods:function(){var a=this;this.$el.find(".available-selections").each(function(b,c){"rolling-date"===$(c).attr("selection-name")&&($(c).find("#period-select \x3e option").each(function(b,c){var f=$(c).attr("name");_.find(a.dataLevels,function(b,d){f===b.levelType&&$(c).val(a.dataLevels[d].analyzerDateFormat)})}),$(c).find("#period-select \x3e option").each(function(a,b){null!==$(b).attr("value")&&void 0!==$(b).attr("value")&&""!==
$(b).attr("value")||$(b).addClass("keep-disabled")}))})},selection_date:function(a){a=$(a.currentTarget);var b=this.saikuDayFormatString.replace(/yyyy/gi,"yy");a.datepicker({dateFormat:b})},clear_selections:function(a){this.show_fields(a);this.$el.find('input[type\x3d"text"]').val("");this.$el.find("select").prop("selectedIndex",0);this.$el.find("#selected-date").empty();this.$el.find(".available-selections *").prop("checked",!1);this.selectedDates=[]},clear_operators:function(){this.$el.find('input[type\x3d"text"]').val("");
this.$el.find("#selected-date").empty();this.selectedDates=[]},disable_divselections:function(a){var b=Array.prototype.slice.call(arguments),c=a.type?$(a.currentTarget):$(a);b[1]||this.clear_selections(a);this.$el.find(".available-selections").attr("available",!1);this.$el.find(".available-selections *").prop("disabled",!0).off("click");c.closest(".box-selections").find(".available-selections").attr("available",!0);c.closest(".box-selections").find(".available-selections *:not(.keep-disabled)").prop("disabled",
!1).on("click");a.type&&c.closest(".box-selections").find("select").each(function(a,b){$(b).find("option:not([disabled])").first().attr("selected","selected")})},day_format_string:function(){var a=this.saikuDayFormatString;return a=a.replace(/[a-zA-Z]/gi,"9")},add_selected_date:function(a){a.preventDefault();var b=$(a.currentTarget),c=this.day_format_string();a=this.$el.find("#selection-date");b=b.closest(".inline-form-group").find("#div-selected-date").find("#selected-date");""!==a.val()?(c=Saiku.toPattern(a.val(),
c),a.css("border","1px solid #ccc"),b.append($("\x3cli\x3e\x3c/li\x3e").text(c).append('\x3ca href\x3d"#" class\x3d"del-date" data-date\x3d"'+c+'"\x3ex\x3c/a\x3e')),this.selectedDates.push(c)):a.css("border","1px solid red");a.val("")},del_selected_date:function(a){a.preventDefault();a=$(a.currentTarget);var b=a.data("date");this.selectedDates=_.without(this.selectedDates,b);a.parent().remove()},populate:function(){var a=this.get_date_filter(),b;if(a&&!_.isEmpty(a))if("operator"===a.type){var c=this.$el.find("#"+
a.checked),d=c.data("operator"),e=this;b=this.$el.find("#selection-radio-operator");b.prop("checked",!0);c.prop("checked",!0);this.disable_divselections(b,!0);this.show_fields(c);this.selectedDates=a.values;"after"===d||"after\x26equals"===d||"before"===d||"before\x26equals"===d?this.$el.find("#selection-date").val(this.selectedDates[0]):"between"===d?(e.$el.find("#start-date").val(this.selectedDates[0]),e.$el.find("#end-date").val(this.selectedDates[1])):"notbetween"===d?(e.$el.find("#start-date").val(this.selectedDates[0]),
e.$el.find("#end-date").val(this.selectedDates[1])):_.each(this.selectedDates,function(a,b){e.$el.find("#selected-date").append($("\x3cli\x3e\x3c/li\x3e").text(a).append('\x3ca href\x3d"#" class\x3d"del-date" data-date\x3d"'+a+'"\x3ex\x3c/a\x3e'))})}else"fixed-date"===a.type?(b=this.$el.find("#selection-radio-fixed-date"),b.prop("checked",!0),this.$el.find("#"+a.checked).prop("checked",!0)):(b=this.$el.find("#selection-radio-available"),b.prop("checked",!0),this.$el.find("#date-input").val(a.periodAmount),
this.$el.find('select#period-select option[id\x3d"'+a.periodSelect+'"]').prop("selected",!0)),this.disable_divselections(b,!0)},populate_mdx:function(a,b,c){a.tagdim=a.dimension.replace(/m/g,"\\m").replace(/y/g,"\\y").replace(/q/g,"\\q").replace(/d/g,"\\d");a.taghier=a.hierarchy.replace(/m/g,"\\m").replace(/y/g,"\\y").replace(/q/g,"\\q").replace(/d/g,"\\d");a.workinglevel!==a.level&&void 0!==a.workinglevel?(a.parent="[{dimension}.{hierarchy}].[{level}].members,",a.parent=a.parent.replace(/{(\w+)}/g,
function(b,c){return a[c]})):a.parent="";this.template_mdx=this.template_mdx.replace(/{(\w+)}/g,function(b,c){return a[c]});if("dayperiods"===b){a.parent="[{dimension}.{hierarchy}].[{level}]";a.parent=a.parent.replace(/{(\w+)}/g,function(b,c){return a[c]});if(1<this.selectedDates.length){b=this.selectedDates.length;for(c=0;c<b;c++)if(a.dates=this.selectedDates[c],"\x3e\x3d|\x3c\x3d"===a.comparisonOperator)0===c?(a.comparisonOperator=a.comparisonOperator.split("|")[0],this.template_days_mdx=this.template_days_mdx.replace(/{(\w+)}/g,
function(b,c){return a[c]}),a.comparisonOperator="\x3e\x3d|\x3c\x3d"):(a.logicalOperator="AND",a.comparisonOperator=a.comparisonOperator.split("|")[1],this.template_days_mdx+=this.template_many_years_mdx.replace(/{(\w+)}/g,function(b,c){return a[c]}));else if("\x3e\x3d||\x3c\x3d"===a.comparisonOperator)if(0===c)this.template_days_mdx="EXCEPT({parent}.Members, "+this.template_days_mdx,a.comparisonOperator=a.comparisonOperator.split("||")[0],this.template_days_mdx=this.template_days_mdx.replace(/{(\w+)}/g,
function(b,c){return a[c]}),a.comparisonOperator="\x3e\x3d||\x3c\x3d";else return a.logicalOperator="AND",a.comparisonOperator=a.comparisonOperator.split("||")[1],this.template_days_mdx+=this.template_many_years_mdx.replace(/{(\w+)}/g,function(b,c){return a[c]}),this.template_days_mdx+"))";else 0===c?this.template_days_mdx=this.template_days_mdx.replace(/{(\w+)}/g,function(b,c){return a[c]}):(a.logicalOperator="\x3c\x3e"===a.comparisonOperator?"AND":"OR",this.template_days_mdx+=this.template_many_years_mdx.replace(/{(\w+)}/g,
function(b,c){return a[c]}));return this.template_days_mdx+")"}a.dates=this.selectedDates[0];return this.template_days_mdx=this.template_days_mdx.replace(/{(\w+)}/g,function(b,c){return a[c]})+")"}return"lastperiods"===b?this.template_last_mdx=this.template_last_mdx.replace(/{(\w+)}/g,function(b,c){return a[c]}):"yesterday"!==b?this.template_mdx:this.template_mdx+".lag(1)"},save:function(a){a.preventDefault();a=$("\x3cdiv\x3eSaving...\x3c/div\x3e");$(this.el).find(".dialog_body").children().hide();
$(this.el).find(".dialog_body").prepend(a);var b=this,c,d,e,f,g=null,h={};if(null===b.hierarchy||void 0===b.hierarchy)b.hierarchy=b.dimension;this.$el.find(".available-selections").each(function(a,k){if("true"===$(k).attr("available")){h.type=$(k).attr("selection-name");"operator"===$(k).attr("selection-name")?$(k).find("input:radio").each(function(a,e){if(!0===$(e).is(":checked")){var f=$(e).data("operator");h.checked=$(e).attr("id");if("after"===f||"after\x26equals"===f||"before"===f||"before\x26equals"===
f)b.selectedDates=[],b.selectedDates.push(b.$el.find("#selection-date").val());else if("between"===f||"notbetween"===f)b.selectedDates=[],b.selectedDates.push(b.$el.find("#start-date").val()),b.selectedDates.push(b.$el.find("#end-date").val());c="dayperiods";d=$(e).val();h.values=b.selectedDates}}):"fixed-date"===$(k).attr("selection-name")?$(k).find("input:radio").each(function(a,b){!0===$(b).is(":checked")&&(c=$(b).attr("id").split("-")[1],e=$(b).val(),h.checked=$(b).attr("id"))}):"rolling-date"===
$(k).attr("selection-name")&&(e=$("#period-select").find(":selected").val(),c="lastperiods",f=$(k).find("input:text").val(),h.fixedDateName=c,h.periodAmount=$(k).find("input:text").val(),h.periodSelect=$("#period-select").find(":selected").attr("id"));var l=b.dataLevels.length,q,s;for(s=0;s<l;s++)b.dataLevels[s].analyzerDateFormat===e&&(q=b.dataLevels[s].name);l={dimension:b.dimension,hierarchy:b.hierarchy,level:b.name,analyzerDateFormat:e,periodAmount:f,comparisonOperator:d,workinglevel:q};g="dayperiods"===
c&&""!==b.selectedDates[0]&&void 0!==b.selectedDates[0]||"lastperiods"===c&&!_.isEmpty(e)&&"Day(s)"!==e&&!_.isEmpty(f)||"dayperiods"!==c&&"lastperiods"!==c&&!_.isEmpty(e)?b.populate_mdx(l,c):null}});var k=decodeURIComponent(this.member.hierarchy);a=decodeURIComponent(this.member.level);k=this.workspace.query.helper.getHierarchy(k);this.get_cube_name();_.extend(h,this.levelInfo);if("dayperiods"===c&&""!==this.selectedDates[0]&&void 0!==b.selectedDates[0]||"lastperiods"===c&&!_.isEmpty(e)&&"Day(s)"!==
e&&!_.isEmpty(f)||"dayperiods"!==c&&"lastperiods"!==c&&!_.isEmpty(e))this.set_date_filter(h);else{var l=this.get_uuid(h);this.workspace.dateFilter.remove(l);this.workspace.query.setProperty("saiku.ui.datefilter.data",this.workspace.dateFilter.toJSON())}k&&k.levels.hasOwnProperty(a)&&(k.levels[a]={mdx:g,name:a});this.finished()},get_cube_name:function(){return decodeURIComponent(this.workspace.selected_cube.split("/")[3])},get_uuid:function(a){return"["+a.cube+"]."+this.dimHier+".["+a.name+"]"},set_date_filter:function(a){var b=
this.workspace.dateFilter,c=b.toJSON(),d=this.get_uuid(a);a.id=d;a.key=this.key;c&&!_.isEmpty(c)?b.get(d)?(b=b.get(d),b.set(a)):b.add(a):b.add(a);this.workspace.query.setProperty("saiku.ui.datefilter.data",b.toJSON())},get_date_filter:function(){var a={cube:this.get_cube_name(),dimension:this.dimension,hierarchy:this.hierarchy,name:this.name},a=this.get_uuid(a);return a=(a=this.workspace.dateFilter.get(a))?a.toJSON():[]},clear_date_filter:function(a){a.preventDefault();this.workspace.dateFilter.toJSON();
var b;b=this.get_uuid(this.levelInfo);var c=decodeURIComponent(this.member.hierarchy),d=decodeURIComponent(this.member.level);(c=this.workspace.query.helper.getHierarchy(c))&&c.levels.hasOwnProperty(d)&&(c.levels[d]={mdx:null,name:d});this.workspace.dateFilter.remove(b);this.workspace.query.setProperty("saiku.ui.datefilter.data",this.workspace.dateFilter.toJSON());this.clear_selections(a);this.finished()},show_button_clear:function(){var a=this.workspace.dateFilter,b=a.toJSON(),c;c=this.get_uuid(this.levelInfo);
return b&&!_.isEmpty(b)?a.get(c)?!0:!1:!1},finished:function(a){this.$el.dialog("destroy").remove();a||this.query.run()}}),DateFilterObserver=Backbone.View.extend({initialize:function(a){this.workspace=a.workspace;_.bindAll(this,"receive_data","workspace_levels");this.workspace.bind("query:result",this.receive_data);Saiku.session.bind("dimensionList:select_dimension",this.receive_data);Saiku.session.bind("workspaceDropZone:select_dimension",this.receive_data);Saiku.session.bind("workspaceDropZone:clear_axis",
this.receive_data)},receive_data:function(a){var b=this.workspace.dateFilter.toJSON();this.check_dateFilter_saved();if(b&&!_.isEmpty(b))return _.delay(this.workspace_levels,1E3,a)},get_cube_name:function(){return decodeURIComponent(this.workspace.selected_cube.split("/")[3])},workspace_levels:function(a){a=this.get_cube_name();var b=this.workspace.query.helper.getAxis("COLUMNS"),c=this.workspace.query.helper.getAxis("ROWS"),d=this.workspace.query.helper.getAxis("FILTER"),e=[];"COLUMNS"===b.location&&
0<b.hierarchies.length&&e.push(this.get_axes(a,b));"ROWS"===c.location&&0<c.hierarchies.length&&e.push(this.get_axes(a,c));"FILTER"===d.location&&0<d.hierarchies.length&&e.push(this.get_axes(a,d));e=_.compact(_.union(e[0],e[1],e[2]));this.check_dateFilter_model(e)},get_axes:function(a,b){var c=[],d=b.hierarchies.length,e;for(e=0;e<d;e++)for(var f in b.hierarchies[e].levels)b.hierarchies[e].levels.hasOwnProperty(f)&&c.push("["+a+"]."+b.hierarchies[e].name+".["+f+"]");return c},check_dateFilter_saved:function(){var a=
this.workspace.checkDateFilterSaved;this.workspace.item&&!_.isEmpty(this.workspace.item)&&void 0===a&&(a=this.workspace.query.getProperty("saiku.ui.datefilter.data"),this.workspace.dateFilter.add(a));this.workspace.checkDateFilterSaved=!0},check_dateFilter_model:function(a){var b=[],c=[],d=this.workspace.dateFilter.toJSON(),e=d.length,f=a.length,g=0,h=0;if(0<f&&d&&!_.isEmpty(d))for(;h<f;)a[h]===d[g].id?c.push(d[g].id):b.push(d[g].id),g+1<e?g++:(g=0,h++);else if(0===f&&d&&!_.isEmpty(d)){for(a=0;a<
e;a++)this.workspace.dateFilter.remove(d[a].id);this.workspace.query.setProperty("saiku.ui.datefilter.data",this.workspace.dateFilter.toJSON())}this.remove_dateFilter_model(_.difference(b,c))},remove_dateFilter_model:function(a){var b=a.length,c;for(c=0;c<b;c++)this.workspace.dateFilter.remove(a[c]);this.workspace.query.setProperty("saiku.ui.datefilter.data",this.workspace.dateFilter.toJSON())}});
Saiku.events.bind("session:new",function(){function a(a){"undefined"===typeof a.workspace.dateFilterObserver&&(a.workspace.dateFilterObserver=new DateFilterObserver({workspace:a.workspace}))}for(var b=0,c=Saiku.tabs._tabs.length;b<c;b++)a({workspace:Saiku.tabs._tabs[b].content});Saiku.session.bind("workspace:new",a)});
var WarningModal=Modal.extend({type:"info",buttons:[{text:"Okay",method:"okay"},{text:"Cancel",method:"close"}],initialize:function(a){this.options.title=a.title;this.message='\x3cspan class\x3d"i18n"\x3e'+a.message+"\x3c/span\x3e";this.cancelfunction=a.cancel;this.okayfunction=a.okay;this.okaycallbackobject=a.okayobj;this.cancelcallbackobject=a.cancelobj},close:function(a){"#close"===a.target.hash&&a.preventDefault();null!=this.cancelfunction&&this.cancelfunction(this.cancelcallbackobject);this.$el.dialog("destroy").remove()},
okay:function(a){a.preventDefault();null!=this.okayfunction&&this.okayfunction(this.okaycallbackobject);this.$el.dialog("destroy").remove()}}),TitlesModal=Modal.extend({type:"info",buttons:[{text:"Okay",method:"okay"},{text:"Cancel",method:"close"}],message:_.template("\x3cform id\x3d'login_form'\x3e\x3clabel for\x3d'title' class\x3d'i18n'\x3eTitle\x3c/label\x3e\x3cinput type\x3d'text' id\x3d'title' name\x3d'title' value\x3d'' /\x3e\x3clabel for\x3d'variable' class\x3d'i18n'\x3eVariable\x3c/label\x3e\x3cinput type\x3d'text' id\x3d'variable' name\x3d'variable' value\x3d'' /\x3e\x3clabel for\x3d'explanation' class\x3d'i18n'\x3eExplanation\x3c/label\x3e\x3cinput type\x3d'text' id\x3d'explanation' name\x3d'explanation' value\x3d'' /\x3e\x3c/form\x3e")(),
initialize:function(a){this.options.title="Report Titles";this.query=a.query},close:function(a){"#close"===a.target.hash&&a.preventDefault();this.$el.dialog("destroy").remove()},okay:function(a){a.preventDefault();a={title:$(this.el).find("#title").val(),variable:$(this.el).find("#variable").val(),explanation:$(this.el).find("#explanation").val()};a=JSON.stringify(a);this.query.setProperty("saiku.ui.headings",a);this.query.run(!0);this.$el.dialog("destroy").remove()}});
(function(a){var b;a:{try{document.createElement("$")}catch(c){b=c;break a}b=void 0}a.Base64||(a.Base64={encode:function(a){for(var c,f,g,h,k,l,m=0,n=a.length,r=Math.max,q="";m<n;){c=a.charCodeAt(m++)||0;f=a.charCodeAt(m++)||0;l=a.charCodeAt(m++)||0;if(255<r(c,f,l))throw b;g=c>>2&63;c=(c&3)<<4|f>>4&15;h=(f&15)<<2|l>>6&3;k=l&63;f?l||(k=64):h=k=64;q+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(g)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(c)+
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(h)+"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\x3d".charAt(k)}return q}})})(this);
Backbone.sync=function(a,b,c){methodMap={create:"POST",read:"GET",update:"PUT","delete":"DELETE"};var d=methodMap[a],e=Settings.REST_URL+(_.isFunction(b.url)?b.url():b.url);"undefined"==typeof Settings.ERRORS&&(Settings.ERRORS=0);var f=function(){Settings.ERRORS++;Settings.ERRORS<Settings.ERROR_TOLERANCE?Saiku.session.logout():Saiku.ui.block("Communication problem with the server. Please reload the application...")};a=!0;!1===c.async&&(a=!1);var g="json";"undefined"!=typeof c.dataType&&(g=c.dataType);
var h="application/x-www-form-urlencoded";"undefined"!=typeof c.contentType&&(h=c.contentType);b=b.attributes;"undefined"!=typeof c.data&&(b=c.data);b={url:e,type:d,cache:!1,data:b,contentType:h,dataType:g,success:function(a,b,d){Settings.ERRORS=0;Saiku.ui.unblock();c.success(a,b,d)},statusCode:{0:function(){f()},401:function(){f()}},error:function(a,b,f){!isIE&&"undefined"!=typeof console&&console&&console.error&&(console.error("Error performing "+d+" on "+e),console.error(f));c.error&&c.error(a,
b,f)},async:a};!1===c.processData&&(b.processData=!1);if(Settings.BIPLUGIN&&!Settings.BIPLUGIN5||Backbone.emulateHTTP)if("PUT"===d||"DELETE"===d)Backbone.emulateHTTP&&(b.data._method=d),b.type="POST",b.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)};$.ajax(b)};
var QueryRouter=Backbone.Router.extend({routes:{"query/open/*query_name":"open_query","query/open":"open_query_repository"},open_query:function(a){Settings.ACTION="OPEN_QUERY";var b;b=!Settings.BIPLUGIN5&&Settings.BIPLUGIN?(Settings.GET.SOLUTION?Settings.GET.SOLUTION+"/":"")+(Settings.GET.PATH&&"/"!=Settings.GET.PATH?Settings.GET.PATH+"/":"")+(Settings.GET.ACTION||""):a;var c=_.extend({file:b},Settings.PARAMS);(new Repository({},{dialog:{populate:function(a){if(a&&0<a.length){var e=new Query(c,{name:b});
Saiku.tabs.add(new Workspace({query:e,item:a[0]}))}else Saiku.tabs.add(new Workspace);Settings.INITIAL_QUERY=!1}},file:b})).fetch({async:!1,data:{path:b}})},open_query_repository:function(){Toolbar.prototype.open_query()}});Saiku.routers.push(new QueryRouter);
var Tour=Backbone.View.extend({initialize:function(a){_.bindAll(this,"run_tour");_.extend(this,Backbone.Events);this.toolbar=a.toolbar},run_tour:function(){var a=this,b=[{content:"\x3cp\x3eClick here to open a new query.\x3c/p\x3e",highlightTarget:!0,nextButton:!1,closeButton:!0,target:$("#new_query"),my:"top left",at:"right bottom",setup:function(a,b){Saiku.events.bind("toolbar:new_query",this.onSelectKitten)},teardown:function(a,b){Saiku.events.unbind("toolbar:new_query",this.onSelectKitten)},bind:["onSelectKitten"],
onSelectKitten:function(a,b,e,f){b.view=f;a.next()}},{content:"\x3cp\x3eSelect the Foodmart Sales Cube\x3c/p\x3e",highlightTarget:!0,nextButton:!1,closeButton:!0,target:$(".cubes"),my:"bottom center",at:"top center",setup:function(a,b){Saiku.events.bind("workspace:new_query",this.onSelectCube)},teardown:function(a,b){Saiku.events.unbind("workspace:new_query",this.onSelectCube)},bind:["onSelectCube"],onSelectCube:function(b,d,e,f){"Sales"===f.cube?(d.view=f.view,setTimeout(function(){a.exec||(a.exec=
!0);b.next()},200)):$(".tour-container").html("\x3cp\x3eYou didn't select the Sales cube.\x3c/p\x3e")}},{content:"\x3cp\x3eGreat, next we need to execute a query.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".dimension_tree"),my:"bottom center",at:"top center",setup:function(a,b){return{target:$(".dimension_tree")}}},{content:"\x3cp\x3eFirst lets expand the Customer dimension.\x3c/p\x3e",highlightTarget:!0,nextButton:!1,closeButton:!0,target:$('a[title\x3d"Customer"]'),my:"left center",
at:"right center",setup:function(a,b){Saiku.events.bind("workspace:expandDimension",this.onExpandDimension);return{target:$('a[title\x3d"Customer"]')}},bind:["onExpandDimension"],onExpandDimension:function(a,b,e,f){a.next()}},{content:"\x3cp\x3eGreat next drag the State Province level to the Rows dropzone.\x3c/p\x3e",highlightTarget:!0,nextButton:!1,closeButton:!0,target:$(".rows_fields"),my:"left center",at:"right center",setup:function(a,b){Saiku.events.bind("workspaceDropZone:select_dimension",
this.onSelectLevel);$('a[title\x3d"State Province"]').addClass("tour-highlight");return{target:$(".rows_fields")}},bind:["onSelectLevel"],onSelectLevel:function(a,b,e,f){"[Customer].[Customers]"===f.hierarchy&&"State Province"===f.level?a.next():$(".tour-container").html("\x3cp\x3eYou didn't select the correct level. Remove this one and replace it with the highlighted level.\x3c/p\x3e")}},{content:"\x3cp\x3eNext we'll add a measure. Drag Unit Sales into the Measures Drop Zone.\x3c/p\x3e",highlightTarget:!0,
nextButton:!1,closeButton:!0,target:$(".rows_fields"),my:"left top",at:"right bottom",setup:function(a,b){Saiku.events.bind("workspaceDropZone:select_measure",this.onSelectMeasure);return{target:$('a[title\x3d"[Measures].[Unit Sales]"]')}},bind:["onSelectMeasure"],onSelectMeasure:function(a,b,e,f){"Unit Sales"===f.measure.name?a.next():$(".tour-container").html("\x3cp\x3eYou didn't select the correct measure. Remove this one and replace it with the highlighted measure.\x3c/p\x3e")}},{content:"\x3cp\x3eGreat, we've now run a very basic query. Now we'll view it as a chart.\x3c/p\x3e",
highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"bottom center",at:"top center",setup:function(a,b){return{target:$("div.table_wrapper")}}},{content:"\x3cp\x3eTo view your data as a chart, click on the chart icon.\x3c/p\x3e",highlightTarget:!0,nextButton:!1,closeButton:!0,target:$(".rows_fields"),my:"right center",at:"left center",setup:function(a,b){Saiku.events.bind("queryToolbar:render_chart",this.onClickChartIcon);return{target:$(".query_toolbar_vertical")}},bind:["onClickChartIcon"],
onClickChartIcon:function(a,b,e,f){a.next()}},{content:"\x3cp\x3eYou can now select from the different chart type Saiku offers.\x3c/p\x3eSaiku Enterprise users can set chart properties by clicking on the properties button.\x3c/p\x3e\x3cp\x3eYou can also export your chart to a file by clicking on the Export button.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"right center",at:"left center",setup:function(a,b){Saiku.events.bind("queryToolbar:render_chart",
this.onClickChartIcon);return{target:$(".query_toolbar_vertical")}},bind:["onClickChartIcon"],onClickChartIcon:function(a,b,e,f){a.next()}},{content:"\x3cp\x3eOn the workspace toolbar there are a number of useful buttons.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$(".workspace_toolbar")}}},{content:"\x3cp\x3eEdit Query. This button will hide the query design area on the left of the workspace.\x3c/p\x3e",
highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$('a[original-title\x3d"Edit query"]')}}},{content:"\x3cp\x3eRun Query/Automatic Execution. These icons allow you to manually run a query, or, toggle automatic query execution so that you have to exeucte the query manually.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,
b){return{target:$('a[original-title\x3d"Run query"]')}}},{content:"\x3cp\x3eHide Parents. This button allows you to show the parent levels in the result set.\x3c/p\x3e\x3cp\x3eHidden by default, some queries are easier understood when you can see the data hierarchy.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$('a[original-title\x3d"Hide Parents"]')}}},{content:"\x3cp\x3eNon Empty. This button hides null fields so minimise the resultset. Click this button to show the empty fields.\x3c/p\x3e",
highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$('a[original-title\x3d"Non-empty"]')}}},{content:"\x3cp\x3eZoom. Zoom into a large table, by dragging over the area you want to show.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$('a[original-title\x3d"Zoom into table"]')}}},{content:"\x3cp\x3eDrill Across. A way to discover more about your data. Select drill across and enable the required dimensions in the popup, the new result set will show you a more granular output of your previous query.\x3c/p\x3e",
highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$('a[original-title\x3d"Drill across on cell"]')}}},{content:"\x3cp\x3eDrill Through. Drill through to the lowest level to show how your query was constructed.\x3c/p\x3e",highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,b){return{target:$('a[original-title\x3d"Drill through on cell"]')}}},
{content:'\x3cp\x3eWe\'ve now run through the basics that Saiku Analytics has to offer. There is far more that we haven\'t explored so you might want to try one of the more advanced tutorials or just get started and explore yourself.\x3c/p\x3e\x3cp\x3eFor more help, visit \x3ca href\x3d"http://wiki.meteorite.bi" target\x3d"_blank"\x3ehttp://wiki.meteorite.bi\x3c/a\x3e.\x3c/p\x3e',highlightTarget:!0,nextButton:!0,closeButton:!0,target:$(".rows_fields"),my:"top center",at:"bottom center",setup:function(a,
b){return{target:$('a[original-title\x3d"Drill through on cell"]')}}}];(new Tourist.Tour({steps:b,stepOptions:{view:this.toolbar},tipClass:"QTip",tipOptions:{showEffect:"slidein"}})).start()}});