=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/plugin/chart.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/plugin/chart.js 2014-02-08 18:09:18 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/plugin/chart.js 2014-05-23 12:51:26 +0000 @@ -1,1 +1,1 @@ -Ext.onReady(function(){function b(){var o=0;var l=0;var j=0;var i=0;var p=0;var m=0;var k=0;this.addData=function(n,s){if(p==0){m=n;k=s}else{var r=n-m;var q=s-k;j+=r*r*p/(p+1);i+=r*q*p/(p+1);m+=r/(p+1);k+=q/(p+1)}o+=n;l+=s;p++};this.predict=function(n){var q=this.getSlope();return this.getIntercept(q)+q*n};this.getSlope=function(){if(p<2){return Number.NaN}return i/j};this.getIntercept=function(n){return(l-n*o)/p}}Ext.Ajax.method="GET";DV={};DV.instances=[];DV.i18n={};DV.isDebug=false;DV.isSessionStorage=("sessionStorage" in window&&window.sessionStorage!==null);DV.getCore=function(o){var k={},m={},l={},i={},j={},n;(function(){k.finals={ajax:{path_module:"/dhis-web-visualizer/",path_api:"/api/",path_commons:"/dhis-web-commons-ajax-json/",data_get:"chartValues.json",indicator_get:"indicatorGroups/",indicator_getall:"indicators.json?paging=false&links=false",indicatorgroup_get:"indicatorGroups.json?paging=false&links=false",dataelement_get:"dataElementGroups/",dataelement_getall:"dataElements.json?domainType=aggregate&paging=false&links=false",dataelementgroup_get:"dataElementGroups.json?paging=false&links=false",dataset_get:"dataSets.json?paging=false&links=false"},dimension:{data:{value:"data",name:DV.i18n.data,dimensionName:"dx",objectName:"dx"},indicator:{value:"indicator",name:DV.i18n.indicator,dimensionName:"dx",objectName:"in"},dataElement:{value:"dataelement",name:DV.i18n.data_element,dimensionName:"dx",objectName:"de"},operand:{value:"operand",name:"Operand",dimensionName:"dx",objectName:"dc"},dataSet:{value:"dataset",name:DV.i18n.dataset,dimensionName:"dx",objectName:"ds"},category:{name:DV.i18n.categories,dimensionName:"co",objectName:"co"},period:{value:"period",name:DV.i18n.period,dimensionName:"pe",objectName:"pe"},fixedPeriod:{value:"periods"},relativePeriod:{value:"relativePeriods"},organisationUnit:{value:"organisationUnits",name:DV.i18n.organisation_units,dimensionName:"ou",objectName:"ou"},dimension:{value:"dimension"},value:{value:"value"}},chart:{series:"series",category:"category",filter:"filter",column:"column",stackedcolumn:"stackedcolumn",bar:"bar",stackedbar:"stackedbar",line:"line",area:"area",pie:"pie",radar:"radar"},data:{domain:"domain_",targetLine:"targetline_",baseLine:"baseline_",trendLine:"trendline_"},image:{png:"png",pdf:"pdf"},cmd:{init:"init_",none:"none_",urlparam:"id"},root:{id:"root"}};n=k.finals.dimension;n.objectNameMap={};n.objectNameMap[n.data.objectName]=n.data;n.objectNameMap[n.indicator.objectName]=n.indicator;n.objectNameMap[n.dataElement.objectName]=n.dataElement;n.objectNameMap[n.operand.objectName]=n.operand;n.objectNameMap[n.dataSet.objectName]=n.dataSet;n.objectNameMap[n.category.objectName]=n.category;n.objectNameMap[n.period.objectName]=n.period;n.objectNameMap[n.organisationUnit.objectName]=n.organisationUnit;n.objectNameMap[n.dimension.objectName]=n.dimension;k.period={periodTypes:[{id:"Daily",name:DV.i18n.daily},{id:"Weekly",name:DV.i18n.weekly},{id:"Monthly",name:DV.i18n.monthly},{id:"BiMonthly",name:DV.i18n.bimonthly},{id:"Quarterly",name:DV.i18n.quarterly},{id:"SixMonthly",name:DV.i18n.sixmonthly},{id:"SixMonthlyApril",name:DV.i18n.sixmonthly_april},{id:"Yearly",name:DV.i18n.yearly},{id:"FinancialOct",name:DV.i18n.financial_oct},{id:"FinancialJuly",name:DV.i18n.financial_july},{id:"FinancialApril",name:DV.i18n.financial_april}]};k.layout={west_width:424,west_fieldset_width:416,west_width_padding:4,west_fill:2,west_fill_accordion_indicator:59,west_fill_accordion_dataelement:59,west_fill_accordion_dataset:33,west_fill_accordion_period:296,west_fill_accordion_organisationunit:62,west_maxheight_accordion_indicator:350,west_maxheight_accordion_dataelement:350,west_maxheight_accordion_dataset:350,west_maxheight_accordion_period:513,west_maxheight_accordion_organisationunit:500,west_maxheight_accordion_group:350,west_scrollbarheight_accordion_indicator:300,west_scrollbarheight_accordion_dataelement:300,west_scrollbarheight_accordion_dataset:300,west_scrollbarheight_accordion_period:450,west_scrollbarheight_accordion_organisationunit:450,west_scrollbarheight_accordion_group:300,east_tbar_height:31,east_gridcolumn_height:30,form_label_width:55,window_favorite_ypos:100,window_confirm_width:250,window_share_width:500,grid_favorite_width:420,grid_row_height:27,treepanel_minheight:135,treepanel_maxheight:400,treepanel_fill_default:310,treepanel_toolbar_menu_width_group:140,treepanel_toolbar_menu_width_level:120,multiselect_minheight:100,multiselect_maxheight:250,multiselect_fill_default:345,multiselect_fill_reportingrates:315};k.chart={style:{inset:30,fontFamily:"Arial,Sans-serif,Lucida Grande,Ubuntu"},theme:{dv1:["#94ae0a","#0b3b68","#a61120","#ff8809","#7c7474","#a61187","#ffd13e","#24ad9a","#a66111","#414141","#4500c4","#1d5700"]}};k.status={icon:{error:"error_s.png",warning:"warning.png",ok:"ok.png"}}}());(function(){m.layout={};m.layout.Record=function(p){var p=Ext.clone(p);return function(){if(!Ext.isObject(p)){console.log("Record: config is not an object: "+p);return}if(!Ext.isString(p.id)){alert("Record: id is not text: "+p);return}p.id=p.id.replace(".","-");return p}()};m.layout.Dimension=function(p){var p=Ext.clone(p);return function(){if(!Ext.isObject(p)){console.log("Dimension: config is not an object: "+p);return}if(!Ext.isString(p.dimension)){console.log("Dimension: name is not a string: "+p);return}if(p.dimension!==k.finals.dimension.category.objectName){var q=[];if(!Ext.isArray(p.items)){console.log("Dimension: items is not an array: "+p);return}for(var r=0;r0)){alert("No values found");return}if(p.headers.length!==p.rows[0].length){console.log("Response: headers.length !== rows[0].length")}return p}()}}());(function(){l.prototype={};l.prototype.array={};l.prototype.array.getLength=function(q,p){if(!Ext.isArray(q)){if(!p){console.log("support.prototype.array.getLength: not an array")}return null}return q.length};l.prototype.array.sort=function(r,q,p){if(!l.prototype.array.getLength(r)){return}p=p||"name";r.sort(function(t,s){if(Ext.isObject(t)&&Ext.isObject(s)&&p){t=t[p];s=s[p]}if(Ext.isString(t)&&Ext.isString(s)){t=t.toLowerCase();s=s.toLowerCase();if(q==="DESC"){return ts?-1:0)}else{return ts?1:0)}}else{if(Ext.isNumber(t)&&Ext.isNumber(s)){return q==="DESC"?s-t:t-s}}return 0});return r};l.prototype.object={};l.prototype.object.getLength=function(p,s){if(!Ext.isObject(p)){if(!s){console.log("support.prototype.object.getLength: not an object")}return null}var r=0;for(var q in p){if(p.hasOwnProperty(q)){r++}}return r};l.prototype.object.hasObject=function(q,t,s){if(!l.prototype.object.getLength(q)){return null}for(var r in q){var p=q[r];if(q.hasOwnProperty(r)&&p[t]===s){return true}}return null};l.prototype.str={};l.prototype.str.replaceAll=function(r,q,p){return r.replace(new RegExp(q,"g"),p)}}());(function(){i.layout={};i.layout.cleanDimensionArray=function(q){if(!l.prototype.array.getLength(q)){return null}var r=[];for(var p=0;pt[r]){return 1}return 0});for(var q=0,p;q0){r=true;A[v]=A[v].substr(0,z)}}A=Ext.Array.unique(A)}if(u!==n.category.dimensionName){t+=":"+A.join(";")}if(x<(w.length-1)){t+="&"}}if(r){t+="&dimension="+k.finals.dimension.category.dimensionName}if(Ext.isArray(C)&&C.length){for(var x=0,y;x8000?"8000":(q.length>4000?"4000":"2000");r="Too many items selected (url has "+q.length+" characters). Please reduce to less than "+p+" characters."}r+="\n\nHint: A good way to reduce the number of items is to use relative periods and level/group organisation unit selection modes.";alert(r)};j.chart={};j.chart.createChart=function(K){var u=K.app.xResponse,A=K.app.xLayout,w,s,D,t,H,J,q,x,G,C,I,v,B,r,F,E,z,y,p={};t=function(){var X=k.finals.dimension.period.dimensionName,N=A.columns[0].dimensionName,O=A.rows[0].dimensionName,V=[],W=A.columnIds,R=A.rowIds,ab=[],Z=[],Q=[],Y;for(var U=0,T,M;U
'+M.value[1]+'
'+L.data[k.finals.data.domain]+"
")}}};B=function(M){var L=k.chart.theme.dv1.slice(0,M.rangeFields.length);if(A.targetLineValue||A.baseLineValue){L.push("#051a2e")}if(A.targetLineValue){L.push("#051a2e")}if(A.baseLineValue){L.push("#051a2e")}Ext.chart.theme.dv1=Ext.extend(Ext.chart.theme.Base,{constructor:function(N){Ext.chart.theme.Base.prototype.constructor.call(this,Ext.apply({seriesThemes:L,colors:L},N))}})};r=function(V){var R=30,Q=7,W,X=0,S="",N,U=false,P="top",T=0;if(A.type===k.finals.chart.pie){W=V.getCount();V.each(function(Y){S+=Y.data[V.domainFields[0]]})}else{W=V.rangeFields.length;for(var O=0,M,L;OK.app.centerRegion.getWidth()-50){U=true;P="right"}if(P==="right"){T=5}return Ext.create("Ext.chart.Legend",{position:P,isVertical:U,labelFont:"13px "+k.chart.style.fontFamily,boxStroke:"#ffffff",boxStrokeWidth:0,padding:T})};F=function(M){var O=A.filterIds,L=[],Q="",P;if(A.type===k.finals.chart.pie){O=O.concat(A.columnIds)}if(Ext.isArray(O)&&O.length){for(var N=0;N
'+Q.data[M.rangeFields[0]]+'
'+Q.data[k.finals.data.domain]+"
")}}}];L=k.chart.theme.dv1.slice(0,u.nameHeaderMap[A.rowDimensionNames[0]].ids.length);Ext.chart.theme.dv1=Ext.extend(Ext.chart.theme.Base,{constructor:function(Q){Ext.chart.theme.Base.prototype.constructor.call(this,Ext.apply({seriesThemes:L,colors:L},Q))}});P=y(M,null,O);P.insetPadding=40;P.shadow=true;return P};p.radar=function(){var L=t(),R=[],O=[],N=q(L),P;R.push({type:"Radial",position:"radial",label:{display:true}});for(var M=0,Q;M0)){alert("No values found");return}if(p.headers.length!==p.rows[0].length){console.log("Response: headers.length !== rows[0].length")}return p}()}}());(function(){l.prototype={};l.prototype.array={};l.prototype.array.getLength=function(q,p){if(!Ext.isArray(q)){if(!p){console.log("support.prototype.array.getLength: not an array")}return null}return q.length};l.prototype.array.sort=function(r,q,p){if(!l.prototype.array.getLength(r)){return}p=p||"name";r.sort(function(t,s){if(Ext.isObject(t)&&Ext.isObject(s)&&p){t=t[p];s=s[p]}if(Ext.isString(t)&&Ext.isString(s)){t=t.toLowerCase();s=s.toLowerCase();if(q==="DESC"){return ts?-1:0)}else{return ts?1:0)}}else{if(Ext.isNumber(t)&&Ext.isNumber(s)){return q==="DESC"?s-t:t-s}}return 0});return r};l.prototype.object={};l.prototype.object.getLength=function(p,s){if(!Ext.isObject(p)){if(!s){console.log("support.prototype.object.getLength: not an object")}return null}var r=0;for(var q in p){if(p.hasOwnProperty(q)){r++}}return r};l.prototype.object.hasObject=function(q,t,s){if(!l.prototype.object.getLength(q)){return null}for(var r in q){var p=q[r];if(q.hasOwnProperty(r)&&p[t]===s){return true}}return null};l.prototype.str={};l.prototype.str.replaceAll=function(r,q,p){return r.replace(new RegExp(q,"g"),p)}}());(function(){i.layout={};i.layout.cleanDimensionArray=function(q){if(!l.prototype.array.getLength(q)){return null}var r=[];for(var p=0;pt[r]){return 1}return 0});for(var q=0,p;q0){r=true;A[v]=A[v].substr(0,z)}}A=Ext.Array.unique(A)}if(u!==n.category.dimensionName){t+=":"+A.join(";")}if(x<(w.length-1)){t+="&"}}if(r){t+="&dimension="+k.finals.dimension.category.dimensionName}if(Ext.isArray(C)&&C.length){for(var x=0,y;x8000?"8000":(q.length>4000?"4000":"2000");r="Too many items selected (url has "+q.length+" characters). Please reduce to less than "+p+" characters."}r+="\n\nHint: A good way to reduce the number of items is to use relative periods and level/group organisation unit selection modes.";alert(r)};j.chart={};j.chart.createChart=function(K){var u=K.app.xResponse,A=K.app.xLayout,w,s,D,t,H,J,q,x,G,C,I,v,B,r,F,E,z,y,p={};t=function(){var ac=k.finals.dimension.period.dimensionName,M=A.columns[0].dimensionName,Q=A.rows[0].dimensionName,ad=[],L=A.columnIds,P=A.rowIds,N=[],ab=[],O=[],R;for(var aa=0,S,X,U,T;aa
'+N+'
'+L.data[k.finals.data.domain]+"
")}}};B=function(M){var L=k.chart.theme.dv1.slice(0,M.rangeFields.length);if(A.targetLineValue||A.baseLineValue){L.push("#051a2e")}if(A.targetLineValue){L.push("#051a2e")}if(A.baseLineValue){L.push("#051a2e")}Ext.chart.theme.dv1=Ext.extend(Ext.chart.theme.Base,{constructor:function(N){Ext.chart.theme.Base.prototype.constructor.call(this,Ext.apply({seriesThemes:L,colors:L},N))}})};r=function(V){var R=30,Q=7,W,X=0,S="",N,U=false,P="top",T=0;if(A.type===k.finals.chart.pie){W=V.getCount();V.each(function(Y){S+=Y.data[V.domainFields[0]]})}else{W=V.rangeFields.length;for(var O=0,M,L;OK.app.centerRegion.getWidth()-50){U=true;P="right"}if(P==="right"){T=5}return Ext.create("Ext.chart.Legend",{position:P,isVertical:U,labelFont:"13px "+k.chart.style.fontFamily,boxStroke:"#ffffff",boxStrokeWidth:0,padding:T})};F=function(M){var O=A.filterIds,L=[],Q="",P;if(A.type===k.finals.chart.pie){O=O.concat(A.columnIds)}if(Ext.isArray(O)&&O.length){for(var N=0;N
'+Q.data[M.rangeFields[0]]+'
'+Q.data[k.finals.data.domain]+"
")}}}];L=k.chart.theme.dv1.slice(0,u.nameHeaderMap[A.rowDimensionNames[0]].ids.length);Ext.chart.theme.dv1=Ext.extend(Ext.chart.theme.Base,{constructor:function(Q){Ext.chart.theme.Base.prototype.constructor.call(this,Ext.apply({seriesThemes:L,colors:L},Q))}});P=y(M,null,O);P.insetPadding=40;P.shadow=true;return P};p.radar=function(){var L=t(),R=[],O=[],N=q(L),P;R.push({type:"Radial",position:"radial",label:{display:true}});for(var M=0,Q;Mthis.maxSelections){m.push(k(i.maxSelectionsText,i.maxSelections))}return m},onDisable:function(){this.callParent();this.disabled=true;this.updateReadOnly()},onEnable:function(){this.callParent();this.disabled=false;this.updateReadOnly()},setReadOnly:function(i){this.readOnly=i;this.updateReadOnly()},updateReadOnly:function(){var j=this,i=j.boundList,k=j.readOnly||j.disabled;if(i){i.getSelectionModel().setLocked(k)}},onDestroy:function(){Ext.destroyMembers(this,"panel","boundList","dragZone","dropZone");this.callParent()}});OpenLayers.Util.OSM={};OpenLayers.Util.OSM.MISSING_TILE_URL="http://www.openstreetmap.org/openlayers/img/404.png";OpenLayers.Util.OSM.originalOnImageLoadError=OpenLayers.Util.onImageLoadError;OpenLayers.Util.onImageLoadError=function(){if(this.src.match(/^http:\/\/[abc]\.[a-z]+\.openstreetmap\.org\//)){this.src=OpenLayers.Util.OSM.MISSING_TILE_URL}else{if(this.src.match(/^http:\/\/[def]\.tah\.openstreetmap\.org\//)){}else{OpenLayers.Util.OSM.originalOnImageLoadError}}};OpenLayers.Layer.OSM.Mapnik=OpenLayers.Class(OpenLayers.Layer.OSM,{initialize:function(k,l){var i=["http://a.tile.openstreetmap.org/${z}/${x}/${y}.png","http://b.tile.openstreetmap.org/${z}/${x}/${y}.png","http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"];l=OpenLayers.Util.extend({numZoomLevels:19,buffer:0,transitionEffect:"resize"},l);var j=[k,i,l];OpenLayers.Layer.OSM.prototype.initialize.apply(this,j)},CLASS_NAME:"OpenLayers.Layer.OSM.Mapnik"});OpenLayers.Layer.OSM.Osmarender=OpenLayers.Class(OpenLayers.Layer.OSM,{initialize:function(k,l){var i=["http://a.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png","http://b.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png","http://c.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png"];l=OpenLayers.Util.extend({numZoomLevels:18,buffer:0,transitionEffect:"resize"},l);var j=[k,i,l];OpenLayers.Layer.OSM.prototype.initialize.apply(this,j)},CLASS_NAME:"OpenLayers.Layer.OSM.Osmarender"});OpenLayers.Layer.OSM.CycleMap=OpenLayers.Class(OpenLayers.Layer.OSM,{initialize:function(k,l){var i=["http://a.tile.opencyclemap.org/cycle/${z}/${x}/${y}.png","http://b.tile.opencyclemap.org/cycle/${z}/${x}/${y}.png","http://c.tile.opencyclemap.org/cycle/${z}/${x}/${y}.png"];l=OpenLayers.Util.extend({numZoomLevels:19,buffer:0,transitionEffect:"resize"},l);var j=[k,i,l];OpenLayers.Layer.OSM.prototype.initialize.apply(this,j)},CLASS_NAME:"OpenLayers.Layer.OSM.CycleMap"});OpenLayers.Control.Circle=OpenLayers.Class(OpenLayers.Control,{feature:null,layer:null,radius:5,origin:null,sides:40,angle:null,snapAngle:null,dragControl:null,initialize:function(i){OpenLayers.Control.prototype.initialize.apply(this,arguments)},activate:function(){var j=OpenLayers.Control.prototype.activate.call(this);if(j){var i={displayInLayerSwitcher:false,calculateInRange:function(){return true}};this.map.addLayer(this.layer)}return j},deactivate:function(){var i=OpenLayers.Control.prototype.deactivate.call(this);if(i){if(this.layer.map!=null){this.layer.destroy(false);if(this.feature){this.feature.destroy()}}this.layer=null;this.feature=null}return i},createGeometry:function(){this.angle=Math.PI*((1/this.sides)-(1/2));if(this.snapAngle){this.angle+=this.snapAngle*(Math.PI/180)}this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle)},modifyGeometry:function(){var k,n,i,j;var m=this.feature.geometry.components[0];if(m.components.length!=(this.sides+1)){this.createGeometry();m=this.feature.geometry.components[0]}for(var l=0;l=0;--k){l=this.layer.selectedFeatures[k];if(!j||j.except!=l){this.unselect(l,"click")}}},clickFeature:function(i){if((this.onSelect.name!=""||this.onClickSelect.name!="")&&!this.hover){var j=(OpenLayers.Util.indexOf(this.layer.selectedFeatures,i)>-1);if(j){if(this.toggleSelect()){this.unselect(i)}else{if(!this.multipleSelect()){this.unselectAll({except:i})}}}else{if(!this.multipleSelect()){this.unselectAll({except:i})}}this.select(i,"click")}},multipleSelect:function(){return this.multiple||this.handler.evt[this.multipleKey]},toggleSelect:function(){return this.toggle||this.handler.evt[this.toggleKey]},clickoutFeature:function(i){if(((this.onClickUnselect.name!=""||this.onHoverSelect.name=="")&&!this.hover)&&this.clickout){this.unselectAll()}},overFeature:function(i){if((this.onHoverSelect.name!=""||this.hover)&&(OpenLayers.Util.indexOf(this.layer.selectedFeatures,i)==-1)){this.select(i,"hover")}},outFeature:function(i){if(this.onHoverUnselect.name!=""||this.hover){this.unselect(i,"hover")}},select:function(k,i){this.layer.selectedFeatures.push(k);var j=this.selectStyle||this.renderIntent;this.layer.drawFeature(k,j);this.layer.events.triggerEvent("featureselected",{feature:k});switch(i){case"hover":this.onHoverSelect(k);break;case"click":if(this.onClickSelect.name!=""){this.onClickSelect(k)}else{if(this.onSelect.name!=""){this.onSelect(k)}}break;default:this.onSelect(k);break}},unselect:function(j,i){this.layer.drawFeature(j,"default");OpenLayers.Util.removeItem(this.layer.selectedFeatures,j);this.layer.events.triggerEvent("featureunselected",{feature:j});switch(i){case"hover":this.onHoverUnselect(j);break;case"click":if(this.onClickUnselect.name!=""){this.onClickUnselect(j)}else{if(this.onUnselect.name!=""){this.onUnselect(j)}}break;default:this.onUnselect(j);break}},setMap:function(i){this.handler.setMap(i);OpenLayers.Control.prototype.setMap.apply(this,arguments)},CLASS_NAME:"OpenLayers.Control.newSelectFeature"});Ext.define("GeoExt.data.LayerModel",{alternateClassName:"GeoExt.data.LayerRecord",extend:"Ext.data.Model",requires:["Ext.data.proxy.Memory","Ext.data.reader.Json"],alias:"model.gx_layer",statics:{createFromLayer:function(i){return this.proxy.reader.readRecords([i]).records[0]}},fields:["id",{name:"title",type:"string",mapping:"name"},{name:"legendURL",type:"string",mapping:"metadata.legendURL"},{name:"hideTitle",type:"bool",mapping:"metadata.hideTitle"},{name:"hideInLegend",type:"bool",mapping:"metadata.hideInLegend"}],proxy:{type:"memory",reader:{type:"json"}},getLayer:function(){return this.raw}});Ext.define("GeoExt.data.LayerStore",{requires:["GeoExt.data.LayerModel"],extend:"Ext.data.Store",model:"GeoExt.data.LayerModel",statics:{MAP_TO_STORE:1,STORE_TO_MAP:2},map:null,constructor:function(i){var l=this;i=Ext.apply({},i);var k=(GeoExt.MapPanel&&i.map instanceof GeoExt.MapPanel)?i.map.map:i.map;delete i.map;if(i.layers){i.data=i.layers}delete i.layers;var j={initDir:i.initDir};delete i.initDir;l.callParent([i]);if(k){this.bind(k,j)}},bind:function(k,j){var i=this;if(i.map){return}i.map=k;j=Ext.apply({},j);var m=j.initDir;if(j.initDir==undefined){m=GeoExt.data.LayerStore.MAP_TO_STORE|GeoExt.data.LayerStore.STORE_TO_MAP}var l=k.layers.slice(0);if(m&GeoExt.data.LayerStore.STORE_TO_MAP){i.each(function(n){i.map.addLayer(n.getLayer())},i)}if(m&GeoExt.data.LayerStore.MAP_TO_STORE){i.loadRawData(l,true)}k.events.on({changelayer:i.onChangeLayer,addlayer:i.onAddLayer,removelayer:i.onRemoveLayer,scope:i});i.on({load:i.onLoad,clear:i.onClear,add:i.onAdd,remove:i.onRemove,update:i.onUpdate,scope:i});i.data.on({replace:i.onReplace,scope:i});i.fireEvent("bind",i,k)},unbind:function(){var i=this;if(i.map){i.map.events.un({changelayer:i.onChangeLayer,addlayer:i.onAddLayer,removelayer:i.onRemoveLayer,scope:i});i.un("load",i.onLoad,i);i.un("clear",i.onClear,i);i.un("add",i.onAdd,i);i.un("remove",i.onRemove,i);i.data.un("replace",i.onReplace,i);i.map=null}},onChangeLayer:function(i){var k=i.layer;var m=this.findBy(function(o,n){return o.getLayer()===k});if(m>-1){var j=this.getAt(m);if(i.property==="order"){if(!this._adding&&!this._removing){var l=this.map.getLayerIndex(k);if(l!==m){this._removing=true;this.remove(j);delete this._removing;this._adding=true;this.insert(l,[j]);delete this._adding}}}else{if(i.property==="name"){j.set("title",k.name)}else{this.fireEvent("update",this,j,Ext.data.Record.EDIT)}}}},onAddLayer:function(i){var k=this;if(!k._adding){k._adding=true;var j=k.proxy.reader.read(i.layer);k.add(j.records);delete k._adding}},onRemoveLayer:function(j){if(this.map.unloadDestroy){if(!this._removing){var i=j.layer;this._removing=true;this.remove(this.getByLayer(i));delete this._removing}}else{this.unbind()}},onLoad:function(o,i,k){if(k){if(!Ext.isArray(i)){i=[i]}if(!this._addRecords){this._removing=true;for(var m=this.map.layers.length-1;m>=0;m--){this.map.removeLayer(this.map.layers[m])}delete this._removing}var j=i.length;if(j>0){var l=new Array(j);for(var n=0;n=0;i--){this.map.removeLayer(this.map.layers[i])}delete this._removing},onAdd:function(i,j,m){if(!this._adding){this._adding=true;var k;for(var l=j.length-1;l>=0;--l){k=j[l].getLayer();this.map.addLayer(k);if(m!==this.map.layers.length-1){this.map.setLayerIndex(k,m)}}delete this._adding}},onRemove:function(i,j,l){if(!this._removing){var k=j.getLayer();if(this.map.getLayer(k.id)!=null){this._removing=true;this.removeMapLayer(j);delete this._removing}}},onUpdate:function(m,j,i){if(i===Ext.data.Record.EDIT){if(j.modified&&j.modified.title){var l=j.getLayer();var k=j.get("title");if(k!==l.name){l.setName(k)}}}},removeMapLayer:function(i){this.map.removeLayer(i.getLayer())},onReplace:function(k,j,i){this.removeMapLayer(j)},getByLayer:function(i){var j=this.findBy(function(k){return k.getLayer()===i});if(j>-1){return this.getAt(j)}},destroy:function(){var i=this;i.unbind();i.callParent()},loadRecords:function(j,i){if(i&&i.addRecords){this._addRecords=true}this.callParent(arguments)}});Ext.define("GeoExt.panel.Map",{extend:"Ext.panel.Panel",requires:["GeoExt.data.LayerStore"],alias:"widget.gx_mappanel",alternateClassName:"GeoExt.MapPanel",statics:{guess:function(){var i=Ext.ComponentQuery.query("gx_mappanel");return((i&&i.length>0)?i[0]:null)}},center:null,zoom:null,extent:null,prettyStateKeys:false,map:null,layers:null,stateEvents:["aftermapmove","afterlayervisibilitychange","afterlayeropacitychange","afterlayerorderchange","afterlayernamechange","afterlayeradd","afterlayerremove"],initComponent:function(){if(!(this.map instanceof OpenLayers.Map)){this.map=new OpenLayers.Map(Ext.applyIf(this.map||{},{allOverlays:true}))}var i=this.layers;if(!i||i instanceof Array){this.layers=Ext.create("GeoExt.data.LayerStore",{layers:i,map:this.map.layers.length>0?this.map:null})}if(Ext.isString(this.center)){this.center=OpenLayers.LonLat.fromString(this.center)}else{if(Ext.isArray(this.center)){this.center=new OpenLayers.LonLat(this.center[0],this.center[1])}}if(Ext.isString(this.extent)){this.extent=OpenLayers.Bounds.fromString(this.extent)}else{if(Ext.isArray(this.extent)){this.extent=OpenLayers.Bounds.fromArray(this.extent)}}this.callParent(arguments);this.on("resize",this.onResize,this);this.on("afterlayout",function(){if(typeof this.map.getViewport==="function"){this.items.each(function(j){if(typeof j.addToMapPanel==="function"){j.getEl().appendTo(this.map.getViewport())}},this)}},this);this.map.events.on({moveend:this.onMoveend,changelayer:this.onChangelayer,addlayer:this.onAddlayer,removelayer:this.onRemovelayer,scope:this})},onMoveend:function(i){this.fireEvent("aftermapmove",this,this.map,i)},onChangelayer:function(i){var j=this.map;if(i.property){if(i.property==="visibility"){this.fireEvent("afterlayervisibilitychange",this,j,i)}else{if(i.property==="order"){this.fireEvent("afterlayerorderchange",this,j,i)}else{if(i.property==="nathis"){this.fireEvent("afterlayernathischange",this,j,i)}else{if(i.property==="opacity"){this.fireEvent("afterlayeropacitychange",this,j,i)}}}}}},onAddlayer:function(){this.fireEvent("afterlayeradd")},onRemovelayer:function(){this.fireEvent("afterlayerremove")},onResize:function(){var i=this.map;if(this.body.dom!==i.div){i.render(this.body.dom);this.layers.bind(i);if(i.layers.length>0){this.setInitialExtent()}else{this.layers.on("add",this.setInitialExtent,this,{single:true})}}else{i.updateSize()}},setInitialExtent:function(){var i=this.map;if(!i.getCenter()){if(this.center||this.zoom){i.setCenter(this.center,this.zoom)}else{if(this.extent instanceof OpenLayers.Bounds){i.zoomToExtent(this.extent,true)}else{i.zoomToMaxExtent()}}}},getState:function(){var m=this,k=m.map,l=m.callParent(arguments)||{},i;if(!k){return}var j=k.getCenter();j&&Ext.applyIf(l,{x:j.lon,y:j.lat,zoom:k.getZoom()});m.layers.each(function(n){i=n.getLayer();layerId=this.prettyStateKeys?n.get("title"):n.get("id");l=m.addPropertyToState(l,"visibility_"+layerId,i.getVisibility());l=m.addPropertyToState(l,"opacity_"+layerId,(i.opacity===null)?1:i.opacity)},m);return l},applyState:function(r){var i=this;map=i.map;i.center=new OpenLayers.LonLat(r.x,r.y);i.zoom=r.zoom;var m,p,l,o,q,k;var n=map.layers;for(m=0,p=n.length;m');if(q.uiProvider&&q.uiProvider instanceof "string"){}return n.join("")}},defaultRenderer:function(i){return i}});Ext.define("GeoExt.tree.View",{extend:"Ext.tree.View",alias:"widget.gx_treeview",initComponent:function(){var i=this;i.on("itemupdate",this.onItem,this);i.on("itemadd",this.onItem,this);i.on("createchild",this.createChild,this);return i.callParent(arguments)},onItem:function(j,n,k,i){var l=this;if(!(j instanceof Array)){j=[j]}for(var m=0;m1){var o=(q===0)?q+1:q-1;x=p.store.findBy(function(i){return m.childNodes[o].get("layer")===i.getLayer()});if(q===0){x++}}else{if(n.parentNode===m.parentNode){var u=m;do{u=u.previousSibling}while(u&&!(u.get("container") instanceof w.self&&u.lastChild));if(u){x=p.store.findBy(function(i){return u.lastChild.get("layer")===i.getLayer()})}else{var t=m;do{t=t.nextSibling}while(t&&!(t.get("container") instanceof w.self&&t.firstChild));if(t){x=p.store.findBy(function(i){return t.firstChild.get("layer")===i.getLayer()})}x++}}}if(x!==undefined){p.store.insert(x,[r])}else{p.store.insert(oldRecordIndex,[r])}delete s._reordering}delete p._reordering},addStoreHandlers:function(i){if(!this._storeHandlers){this._storeHandlers={add:function(m,k,l){this.onStoreAdd(m,k,l,i)},remove:function(l,k){this.onStoreRemove(k,i)}};for(var j in this._storeHandlers){this.store.on(j,this._storeHandlers[j],this)}}},removeStoreHandlers:function(){if(this._storeHandlers){for(var i in this._storeHandlers){this.store.un(i,this._storeHandlers[i],this)}delete this._storeHandlers}},createNode:function(i){if(this.baseAttrs){Ext.apply(i,this.baseAttrs)}return i},destroy:function(){this.removeStoreHandlers()}});Ext.define("GeoExt.tree.LayerContainer",{extend:"Ext.AbstractPlugin",requires:["GeoExt.tree.LayerLoader"],alias:"plugin.gx_layercontainer",defaultText:"Layers",init:function(k){var i=this;var j=i.loader;i.loader=(j&&j instanceof GeoExt.tree.LayerLoader)?j:new GeoExt.tree.LayerLoader(j);k.set("container",i);if(!k.get("text")){k.set("text",i.defaultText);k.commit()}i.loader.load(k)},recordIndexToNodeIndex:function(p,l){var m=this;var i=m.loader.store;var n=i.getCount();var j=l.childNodes.length;var k=-1;for(var o=n-1;o>=0;--o){if(m.loader.filter(i.getAt(o))===true){++k;if(p===o||k>j-1){break}}}return k}});Ext.define("GeoExt.tree.BaseLayerContainer",{extend:"GeoExt.tree.LayerContainer",alias:"plugin.gx_baselayercontainer",defaultText:"Base Layers",init:function(k){var i=this;var j=i.loader;i.loader=Ext.applyIf(j||{},{baseAttrs:Ext.applyIf((j&&j.baseAttrs)||{},{iconCls:"gx-tree-baselayer-icon",checkedGroup:"baselayer"}),filter:function(m){var l=m.getLayer();return l.displayInLayerSwitcher===true&&l.isBaseLayer===true}});i.callParent(arguments)}});Ext.define("GeoExt.tree.Panel",{extend:"Ext.tree.Panel",alias:"widget.gx_treepanel",requires:["GeoExt.tree.Column","GeoExt.tree.View"],viewType:"gx_treeview",initComponent:function(){var i=this;if(!i.columns){if(i.initialConfig.hideHeaders===undefined){i.hideHeaders=true}i.addCls(Ext.baseCSSPrefix+"autowidth-table");i.columns=[{xtype:"gx_treecolumn",text:"Name",width:Ext.isIE6?null:10000,dataIndex:i.displayField}]}i.callParent()}});Ext.Ajax.method="GET";GIS={core:{instances:[]},i18n:{},isDebug:false,logg:[]};GIS.core.getOLMap=function(j){var k,i;i=function(m,o){var n,l;n=new OpenLayers.Control.Button({displayClass:"olControlButton",trigger:function(){o.call(j.olmap)}});l=new OpenLayers.Control.Panel({defaultControl:n});l.addControls([n]);k.addControl(l);l.div.className+=" "+m;l.div.childNodes[0].className+=" "+m+"Button"};k=new OpenLayers.Map({controls:[new OpenLayers.Control.Navigation({zoomWheelEnabled:true,documentDrag:true}),new OpenLayers.Control.MousePosition({prefix:'LON ',separator:', LAT ',suffix:''}),new OpenLayers.Control.Permalink(),new OpenLayers.Control.ScaleLine({geodesic:true,maxWidth:170,minWidth:100})],displayProjection:new OpenLayers.Projection("EPSG:4326"),maxExtent:new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508),mouseMove:{},relocate:{}});k.events.register("mousemove",null,function(l){j.olmap.mouseMove.x=l.clientX;j.olmap.mouseMove.y=l.clientY});k.zoomToVisibleExtent=function(){j.util.map.zoomToVisibleExtent(this)};k.closeAllLayers=function(){j.layer.event.core.reset();j.layer.facility.core.reset();j.layer.boundary.core.reset();j.layer.thematic1.core.reset();j.layer.thematic2.core.reset();j.layer.thematic3.core.reset();j.layer.thematic4.core.reset()};i("zoomIn",k.zoomIn);i("zoomOut",k.zoomOut);i("zoomVisible",k.zoomToVisibleExtent);i("measure",function(){GIS.core.MeasureWindow(j).show()});return k};GIS.core.getLayers=function(j){var o={},k,m=["1","2","3","4"];if(window.google){o.googleStreets=new OpenLayers.Layer.Google("Google Streets",{numZoomLevels:20,animationEnabled:true,layerType:j.conf.finals.layer.type_base,layerOpacity:1,setLayerOpacity:function(i){if(i){this.layerOpacity=parseFloat(i)}this.setOpacity(this.layerOpacity)}});o.googleStreets.id="googleStreets";o.googleHybrid=new OpenLayers.Layer.Google("Google Hybrid",{type:google.maps.MapTypeId.HYBRID,numZoomLevels:20,animationEnabled:true,layerType:j.conf.finals.layer.type_base,layerOpacity:1,setLayerOpacity:function(i){if(i){this.layerOpacity=parseFloat(i)}this.setOpacity(this.layerOpacity)}});o.googleHybrid.id="googleHybrid"}o.openStreetMap=new OpenLayers.Layer.OSM.Mapnik("OpenStreetMap",{layerType:j.conf.finals.layer.type_base,layerOpacity:1,setLayerOpacity:function(i){if(i){this.layerOpacity=parseFloat(i)}this.setOpacity(this.layerOpacity)}});o.openStreetMap.id="openStreetMap";o.event=GIS.core.VectorLayer(j,"event",GIS.i18n.event_layer,{opacity:0.8});o.event.core=new mapfish.GeoStat.Event(j.olmap,{layer:o.event,gis:j});o.facility=GIS.core.VectorLayer(j,"facility",GIS.i18n.facility_layer,{opacity:1});o.facility.core=new mapfish.GeoStat.Facility(j.olmap,{layer:o.facility,gis:j});o.boundary=GIS.core.VectorLayer(j,"boundary",GIS.i18n.boundary_layer,{opacity:0.8});o.boundary.core=new mapfish.GeoStat.Boundary(j.olmap,{layer:o.boundary,gis:j});for(var l=0,n;l",{xtype:"button",hideLabel:true,text:GIS.i18n.cancel,handler:function(){r.olmap.relocate.active=false;r.olmap.relocate.window.destroy();r.olmap.getViewport().style.cursor="auto"}}],listeners:{close:function(){r.olmap.relocate.active=false;r.olmap.getViewport().style.cursor="auto"}}});r.olmap.relocate.window.show();r.olmap.relocate.window.setMinWidth(220);r.util.gui.window.setPositionTopRight(r.olmap.relocate.window)};C=function(){Ext.Ajax.request({url:r.init.contextPath+r.conf.finals.url.path_module+"getFacilityInfo.action",params:{id:z.id},success:function(F){var E=Ext.decode(F.responseText);if(l.infrastructuralWindow){l.infrastructuralWindow.destroy()}l.infrastructuralWindow=Ext.create("Ext.window.Window",{title:GIS.i18n.information,layout:"column",iconCls:"gis-window-title-icon-information",cls:"gis-container-default",width:460,height:400,period:null,items:[{cls:"gis-container-inner",columnWidth:0.4,bodyStyle:"padding-right:4px",items:function(){var G=[];if(z.name){G.push({html:GIS.i18n.name,cls:"gis-panel-html-title"},{html:z.name,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.pa){G.push({html:GIS.i18n.parent_unit,cls:"gis-panel-html-title"},{html:E.pa,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.ty){G.push({html:GIS.i18n.type,cls:"gis-panel-html-title"},{html:E.ty,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.co){G.push({html:GIS.i18n.code,cls:"gis-panel-html-title"},{html:E.co,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.ad){G.push({html:GIS.i18n.address,cls:"gis-panel-html-title"},{html:E.ad,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.em){G.push({html:GIS.i18n.email,cls:"gis-panel-html-title"},{html:E.em,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.pn){G.push({html:GIS.i18n.phone_number,cls:"gis-panel-html-title"},{html:E.pn,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}return G}()},{xtype:"form",cls:"gis-container-inner gis-form-widget",columnWidth:0.6,bodyStyle:"padding-left:4px",items:[{html:GIS.i18n.infrastructural_data,cls:"gis-panel-html-title"},{cls:"gis-panel-html-separator"},{xtype:"combo",fieldLabel:GIS.i18n.period,editable:false,valueField:"id",displayField:"name",forceSelection:true,width:255,labelWidth:70,store:r.store.infrastructuralPeriodsByType,lockPosition:false,listeners:{select:function(){n=this.getValue();l.widget.infrastructuralDataElementValuesStore.load({params:{periodId:n,organisationUnitId:z.internalId}})}}},{cls:"gis-panel-html-separator"},{xtype:"grid",cls:"gis-grid",height:300,width:255,scroll:"vertical",columns:[{id:"dataElementName",text:"Data element",dataIndex:"dataElementName",sortable:true,width:195},{id:"value",header:"Value",dataIndex:"value",sortable:true,width:60}],disableSelection:true,store:l.widget.infrastructuralDataElementValuesStore}]}],listeners:{show:function(){if(n){this.down("combo").setValue(n);infrastructuralDataElementValuesStore.load({params:{periodId:n,organisationUnitId:z.internalId}})}}}});l.infrastructuralWindow.show();r.util.gui.window.setPositionTopRight(l.infrastructuralWindow)}})};w=function(I,G,H){var F=Ext.clone(l.core.view),E;F.parentGraphMap={};F.parentGraphMap[I]=G;F.rows=[{dimension:q.organisationUnit.objectName,items:[{id:I},{id:"LEVEL-"+H}]}];if(F){E=l.core.getLoader();E.updateGui=true;E.zoomToVisibleExtent=true;E.hideMask=true;E.load(F)}};var v=[Ext.create("Ext.menu.Item",{text:"Float up",iconCls:"gis-menu-item-icon-float",cls:"gis-plugin",disabled:!z.hasCoordinatesUp,handler:function(){w(z.grandParentId,z.grandParentParentGraph,parseInt(z.level)-1)}}),Ext.create("Ext.menu.Item",{text:"Drill down",iconCls:"gis-menu-item-icon-drill",cls:"gis-menu-item-first gis-plugin",disabled:!z.hasCoordinatesDown,handler:function(){w(z.id,z.parentGraph,parseInt(z.level)+1)}})];if(t&&A){v.push({xtype:"menuseparator"});v.push(Ext.create("Ext.menu.Item",{text:GIS.i18n.relocate,iconCls:"gis-menu-item-icon-relocate",disabled:!r.init.user.isAdmin,handler:function(E){r.olmap.relocate.active=true;r.olmap.relocate.feature=D;r.olmap.getViewport().style.cursor="crosshair";B()}}));v.push(Ext.create("Ext.menu.Item",{text:"Swap lon/lat",iconCls:"gis-menu-item-icon-relocate",disabled:!r.init.user.isAdmin,handler:function(E){var G=D.attributes.id,F=Ext.clone(D.geometry).transform("EPSG:900913","EPSG:4326");if(Ext.isNumber(F.x)&&Ext.isNumber(F.y)&&r.init.user.isAdmin){Ext.Ajax.request({url:r.init.contextPath+"/api/organisationUnits/"+G+".json?links=false",success:function(H){var I=Ext.decode(H.responseText);I.coordinates="["+F.y.toFixed(5)+","+F.x.toFixed(5)+"]";Ext.Ajax.request({url:r.init.contextPath+"/api/metaData?preheatCache=false",method:"POST",headers:{"Content-Type":"application/json"},params:Ext.encode({organisationUnits:[I]}),success:function(K){var J=D.geometry.x,L=D.geometry.y;delete D.geometry.bounds;D.geometry.x=L;D.geometry.y=J;l.redraw();console.log(D.attributes.name+" relocated to "+I.coordinates)}})}})}}}));v.push(Ext.create("Ext.menu.Item",{text:GIS.i18n.show_information_sheet,iconCls:"gis-menu-item-icon-information",handler:function(E){if(r.store.infrastructuralPeriodsByType.isLoaded){C()}else{r.store.infrastructuralPeriodsByType.load({params:{name:r.init.systemSettings.infrastructuralPeriodType},callback:function(){C()}})}}}))}v[v.length-1].addCls("gis-menu-item-last");x=new Ext.menu.Menu({baseCls:"gis-plugin",shadow:false,showSeparator:false,defaults:{bodyStyle:"padding-right:6px"},items:v,listeners:{afterrender:function(){this.getEl().addCls("gis-toolbar-btn-menu")}}});x.showAt([r.olmap.mouseMove.x,r.olmap.mouseMove.y])};u={onHoverSelect:i,onHoverUnselect:k,onClickSelect:j};if(l.id==="event"){u.onClickSelect=function o(D){var z=["label","value","nameColumnMap","psi","ps","longitude","latitude","eventdate","ou","oucode","ouname"],x=D.attributes,v=x.nameColumnMap,y='',B=' style="font-weight:bold; padding-right:10px; vertical-align:top"',w=' style="max-width:170px"',A;y+=""+v.ou+""+x.ouname+"";y+=""+v.eventdate+""+x.eventdate+"";y+=""+v.longitude+""+x.longitude+"";y+=""+v.latitude+""+x.latitude+"";for(var C in x){if(x.hasOwnProperty(C)&&!Ext.Array.contains(z,C)){y+=""+v[C]+""}}y+="
"+x[C]+"
";if(Ext.isObject(p)&&p.destroy){A=p.getPosition();p.destroy();p=null}p=Ext.create("Ext.window.Window",{title:"Event",layout:"fit",resizable:false,bodyStyle:"background-color:#fff; padding:5px",html:y,autoShow:true,listeners:{show:function(E){if(A){E.setPosition(A)}else{r.util.gui.window.setPositionTopRight(E)}},destroy:function(){p=null}}})}}m=new OpenLayers.Control.newSelectFeature(l,u);r.olmap.addControl(m);m.activate()};GIS.core.OrganisationUnitLevelStore=function(i){return Ext.create("Ext.data.Store",{fields:["id","name","level"],proxy:{type:"jsonp",url:i.init.contextPath+i.conf.finals.url.path_api+"organisationUnitLevels.jsonp?viewClass=detailed&links=false&paging=false",reader:{type:"json",root:"organisationUnitLevels"}},autoLoad:true,cmp:[],isLoaded:false,loadFn:function(j){if(this.isLoaded){j.call()}else{this.load(j)}},getRecordByLevel:function(j){return this.getAt(this.findExact("level",j))},listeners:{load:function(){if(!this.isLoaded){this.isLoaded=true;i.util.gui.combo.setQueryMode(this.cmp,"local")}this.sort("level","ASC")}}})};GIS.core.StyleMap=function(l,j){var k={fillOpacity:1,strokeColor:"#fff",strokeWidth:1},i={fillOpacity:0.9,strokeColor:"#fff",strokeWidth:1,cursor:"pointer"};if(l==="boundary"){k.fillOpacity=0;k.strokeColor="#000";k.strokeWidth=1;i.fillColor="#000";i.fillOpacity=0.15;i.strokeColor="#000";i.strokeWidth=1}if(j){k.label="${label}";k.fontFamily="arial,sans-serif,ubuntu,consolas";k.fontSize=j.fontSize?j.fontSize+"px":"13px";k.fontWeight=j.strong?"bold":"normal";k.fontStyle=j.italic?"italic":"normal";k.fontColor=j.color?(j.color.split("").shift()!=="#"?"#"+j.color:j.color):"#000000"}return new OpenLayers.StyleMap({"default":k,select:i})};GIS.core.VectorLayer=function(i,m,k,j){var l=new OpenLayers.Layer.Vector(k,{strategies:[new OpenLayers.Strategy.Refresh({force:true})],styleMap:GIS.core.StyleMap(m),visibility:false,displayInLayerSwitcher:false,layerType:i.conf.finals.layer.type_vector,layerOpacity:j?j.opacity||1:1,setLayerOpacity:function(n){if(n){this.layerOpacity=parseFloat(n)}this.setOpacity(this.layerOpacity)},hasLabels:false});l.id=m;return l};GIS.core.MeasureWindow=function(i){var k,j,l,n,m;m=new OpenLayers.StyleMap({"default":new OpenLayers.Style()});n=new OpenLayers.Control.Measure(OpenLayers.Handler.Path,{persist:true,immediate:true,handlerOption:{layerOptions:{styleMap:m}}});l=function(o){if(o.measure){j.setText(o.measure.toFixed(2)+" "+o.units)}};i.olmap.addControl(n);n.events.on({measurepartial:l,measure:l});n.geodesic=true;n.activate();j=Ext.create("Ext.form.Label",{style:"height: 20px",text:"0 km"});k=Ext.create("Ext.window.Window",{title:GIS.i18n.measure_distance,layout:"fit",cls:"gis-container-default gis-plugin",bodyStyle:"text-align: center",width:130,minWidth:130,resizable:false,items:j,listeners:{show:function(){var o=i.viewport.eastRegion.getPosition()[0]-this.getWidth()-3,p=i.viewport.centerRegion.getPosition()[1]+26;this.setPosition(o,p)},destroy:function(){n.deactivate();i.olmap.removeControl(n)}}});return k};GIS.core.MapLoader=function(j){var n,l,o,m,k=[],i;n=function(){Ext.data.JsonP.request({url:j.init.contextPath+j.conf.finals.url.path_api+"maps/"+j.map.id+".jsonp?viewClass=dimensional&links=false",success:function(v){if(Ext.isArray(v.mapViews)){for(var t=0,p;t1){for(var p=1;pt){return 1}return 0});return q};j.object.getLength=function(p){var r=0;for(var q in p){if(p.hasOwnProperty(q)){r++}}return r}}());i.init=o;i.conf=l;i.util=j;(function(){var p=i.conf.finals.dimension;m.layout={};m.response={};m.layout.Record=function(r){var q={};return function(){if(!Ext.isObject(r)){console.log("Record config is not an object: "+r);return}if(!Ext.isString(r.id)){alert("Record id is not text: "+r);return}q.id=r.id.replace(".","-");if(Ext.isString(r.name)){q.name=r.name}return Ext.clone(q)}()};m.layout.Dimension=function(q){var r={};return function(){if(!Ext.isObject(q)){return}if(!Ext.isString(q.dimension)){console.log("Dimension name is not text: "+q);return}if(q.dimension!==l.finals.dimension.category.objectName){var s=[];if(!Ext.isArray(q.items)){console.log("Dimension items is not an array: "+q);return}for(var t=0;t0)){alert("No values found");return false}if(r.headers.length!==r.rows[0].length){alert("Data invalid");return false}q.headers=r.headers;q.metaData=r.metaData;q.width=r.width;q.height=r.height;q.rows=r.rows;return q}()}}());(function(){k.organisationUnitLevels=GIS.core.OrganisationUnitLevelStore(i)}());i.api=m;i.store=k;i.olmap=GIS.core.getOLMap(i);i.layer=GIS.core.getLayers(i);i.thematicLayers=[i.layer.thematic1,i.layer.thematic2,i.layer.thematic3,i.layer.thematic4];if(window.google){n.push(i.layer.googleStreets,i.layer.googleHybrid)}n.push(i.layer.openStreetMap,i.layer.thematic4,i.layer.thematic3,i.layer.thematic2,i.layer.thematic1,i.layer.boundary,i.layer.facility,i.layer.event);i.olmap.addLayers(n);GIS.core.instances.push(i);e=i.layer.event;return i};(function(){window.mapfish={_scriptName:"MapFish.js",_getScriptLocation:function(){if(window.gMfLocation){return window.gMfLocation}var t="";var u=mapfish._scriptName;var q=document.getElementsByTagName("script");for(var s=0;s-1)&&(r+u.length==v.length)){t=v.slice(0,-u.length);break}}}return t}};var o=new Array("core/Color.js","core/GeoStat.js","core/GeoStat/Boundary.js","core/GeoStat/Thematic1.js","core/GeoStat/Thematic2.js","core/GeoStat/Facility.js","core/GeoStat/Symbol.js","core/Util.js");var p="";var n=mapfish._getScriptLocation();for(var j=0;j<\/script>";p+=m}else{var l=document.createElement("script");l.src=n+o[j];var k=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;k.appendChild(l)}}if(p){}mapfish.Color=OpenLayers.Class({getColorRgb:function(){}});mapfish.ColorRgb=OpenLayers.Class(mapfish.Color,{redLevel:null,greenLevel:null,blueLevel:null,initialize:function(r,q,i){this.redLevel=r;this.greenLevel=q;this.blueLevel=i},equals:function(i){return i.redLevel==this.redLevel&&i.greenLevel==this.greenLevel&&i.blueLevel==this.blueLevel},getColorRgb:function(){return this},getRgbArray:function(){return[this.redLevel,this.greenLevel,this.blueLevel]},hex2rgbArray:function(q){if(q.charAt(0)=="#"){q=q.substr(1)}var r=[parseInt(q.substring(0,2),16),parseInt(q.substring(2,4),16),parseInt(q.substring(4,6),16)];for(var s=0;s255){OpenLayers.Console.error("Invalid rgb hex color string: rgbHexString")}}return r},setFromHex:function(i){var q=this.hex2rgbArray(i);this.redLevel=q[0];this.greenLevel=q[1];this.blueLevel=q[2]},setFromRgb:function(q){var i=dojo.colorFromString(q);this.redLevel=i.r;this.greenLevel=i.g;this.blueLevel=i.b},toHexString:function(){var s=this.toHex(this.redLevel);var q=this.toHex(this.greenLevel);var i=this.toHex(this.blueLevel);return"#"+s+q+i},toHex:function(u){var r="0123456789ABCDEF";if(u<0||u>255){var t="Invalid decimal value for color level";OpenLayers.Console.error(t)}var s=Math.floor(u/16);var q=u%16;return r.charAt(s)+r.charAt(q)},CLASS_NAME:"mapfish.ColorRgb"});mapfish.ColorRgb.getColorsArrayByRgbInterpolation=function(y,t,v){var z=[];var r=y.getColorRgb();var q=t.getColorRgb();var x=r.getRgbArray();var w=q.getRgbArray();if(v==1){return[r]}for(var u=0;u-1};mapfish.Util.relativeToAbsoluteURL=function(q){if(/^\w+:/.test(q)||!q){return q}var i=location.protocol+"//"+location.host;if(q.indexOf("/")==0){return i+q}var r=location.pathname.replace(/\/[^\/]*$/,"");return i+r+"/"+q};mapfish.Util.fixArray=function(i){if(i==""||i==null){return[]}else{if(i instanceof Array){return i}else{return i.split(",")}}};mapfish.GeoStat=OpenLayers.Class({layer:null,format:null,url:null,requestSuccess:function(i){},requestFailure:function(i){},indicator:null,defaultSymbolizer:{},legendDiv:null,initialize:function(r,i){this.map=r;this.addOptions(i);if(!this.layer){var q=new OpenLayers.Layer.Vector("geostat",{displayInLayerSwitcher:false,visibility:false});r.addLayer(q);this.layer=q}this.setUrl(this.url);this.legendDiv=Ext.get(i.legendDiv)},setUrl:function(i){this.url=i;if(this.url){OpenLayers.Request.GET({url:this.url,scope:this,success:this.requestSuccess,failure:this.requestFailure})}},getColors:function(i,r){var s=new mapfish.ColorRgb(),q=new mapfish.ColorRgb();s.setFromHex(i);q.setFromHex(r);return[s,q]},addOptions:function(i){if(i){if(!this.options){this.options={}}OpenLayers.Util.extend(this.options,i);OpenLayers.Util.extend(this,i)}},extendStyle:function(s,r,i){var q=this.layer.styleMap.styles["default"];if(s){q.rules=s}if(r){q.setDefaultStyle(OpenLayers.Util.applyDefaults(r,q.defaultStyle))}if(i){if(!q.context){q.context={}}OpenLayers.Util.extend(q.context,i)}},applyClassification:function(i){this.layer.renderer.clear();this.layer.redraw();this.updateLegend();this.layer.setVisibility(true)},showDetails:function(i){},hideDetails:function(i){},CLASS_NAME:"mapfish.GeoStat"});mapfish.GeoStat.Distribution=OpenLayers.Class({labelGenerator:function(q,s,t){var i=parseFloat(q.lowerBound).toFixed(1),r=parseFloat(q.upperBound).toFixed(1);return i+" - "+r+"  ("+q.nbVal+")"},values:null,nbVal:null,minVal:null,maxVal:null,initialize:function(i,q){OpenLayers.Util.extend(this,q);this.values=i;this.nbVal=i.length;this.minVal=this.nbVal?mapfish.Util.min(this.values):0;this.maxVal=this.nbVal?mapfish.Util.max(this.values):0},classifyWithBounds:function(q){var z=[];var w=[];var y=[];for(var v=0;v0){s[0]=i[0];for(j=1;j0){r.push(this.bins[this.bins.length-1].upperBound)}return r},CLASS_NAME:"mapfish.GeoStat.Classification"});mapfish.GeoStat.Event=OpenLayers.Class(mapfish.GeoStat,{colors:[new mapfish.ColorRgb(120,120,0),new mapfish.ColorRgb(255,0,0)],method:mapfish.GeoStat.Distribution.CLASSIFY_BY_QUANTILS,numClasses:5,minSize:4,maxSize:4,minVal:null,maxVal:null,defaultSymbolizer:{fillOpacity:1},classification:null,colorInterpolation:null,gis:null,view:null,featureStore:Ext.create("Ext.data.Store",{fields:["id","name"],features:[],loadFeatures:function(r){if(r&&r.length){var s=[];for(var q=0;qthis.minVal){this.bounds.unshift(this.minVal);this.colorInterpolation.unshift(new mapfish.ColorRgb(240,240,240))}if(this.bounds[this.bounds.length-1]'+(this.view.legendSet.names[q]||"")+"
"+this.classification.bins[q].label;r.appendChild(t);t=document.createElement("div");t.style.clear="left";r.appendChild(t)}}else{for(var q=0;q';Ext.query(".zoomOutButton")[q].innerHTML='';Ext.query(".zoomVisibleButton")[q].innerHTML='';Ext.query(".measureButton")[q].innerHTML=''}if(Ext.isDefined(k.map.baseLayer)){var r=Ext.isString(k.map.baseLayer)?k.map.baseLayer.split(" ").join("").toLowerCase():k.map.baseLayer;if(!r||r==="none"||r==="off"){k.layer.googleStreets.setVisibility(false)}else{if(r==="gh"||r==="googlehybrid"){k.olmap.setBaseLayer(k.layer.googleHybrid)}else{if(r==="osm"||r==="openstreetmap"){k.olmap.setBaseLayer(k.layer.openStreetMap)}}}}};i=function(){if(!n()){return}c();k=GIS.core.getInstance(g);k.el=l.el;GIS.core.createSelectHandlers(k,k.layer.boundary);GIS.core.createSelectHandlers(k,k.layer.thematic1);GIS.core.createSelectHandlers(k,k.layer.thematic2);GIS.core.createSelectHandlers(k,k.layer.thematic3);GIS.core.createSelectHandlers(k,k.layer.thematic4);GIS.core.createSelectHandlers(k,k.layer.facility);k.map=l;k.viewport=j();k.olmap.mask=Ext.create("Ext.LoadMask",k.viewport.centerRegion.getEl(),{msg:"Loading"});GIS.core.MapLoader(k).load()}()};GIS.plugin.getMap=function(i){if(Ext.isString(i.url)&&i.url.split("").pop()==="/"){i.url=i.url.substr(0,i.url.length-1)}if(b){d(i)}else{f.push(i);if(!h){h=true;a(i.url)}}};DHIS=Ext.isObject(window.DHIS)?DHIS:{};DHIS.getMap=GIS.plugin.getMap}); +Ext.onReady(function(){Ext.define("Ext.ux.button.ColorButton",{extend:"Ext.button.Button",alias:"widget.colorbutton",width:109,height:22,defaultValue:null,value:"f1f1f1",getValue:function(){return this.value},setValue:function(i){this.value=i;if(Ext.isDefined(this.getEl())){this.getEl().dom.style.background="#"+i}},reset:function(){this.setValue(this.defaultValue)},menu:{},menuHandler:function(){},initComponent:function(){var i=this;this.defaultValue=this.value;this.menu=Ext.create("Ext.menu.Menu",{showSeparator:false,items:{xtype:"colorpicker",closeAction:"hide",listeners:{select:function(k,j){i.setValue(j);i.menu.hide();i.menuHandler(k,j)}}}});this.callParent()},listeners:{render:function(){this.setValue(this.value)}}});Ext.define("Ext.ux.layout.component.form.MultiSelect",{extend:"Ext.layout.component.field.Field",alias:["layout.multiselectfield"],type:"multiselectfield",defaultHeight:200,sizeBodyContents:function(j,i){var k=this;if(!Ext.isNumber(i)){i=k.defaultHeight}k.owner.panel.setSize(j,i)}});Ext.define("Ext.ux.form.MultiSelect",{extend:"Ext.form.field.Base",alternateClassName:"Ext.ux.Multiselect",alias:["widget.multiselect","widget.multiselectfield"],uses:["Ext.view.BoundList","Ext.form.FieldSet","Ext.ux.layout.component.form.MultiSelect","Ext.view.DragZone","Ext.view.DropZone"],ddReorder:false,appendOnly:false,displayField:"text",allowBlank:true,minSelections:0,maxSelections:Number.MAX_VALUE,blankText:"This field is required",minSelectionsText:"Minimum {0} item(s) required",maxSelectionsText:"Maximum {0} item(s) allowed",delimiter:",",componentLayout:"multiselectfield",fieldBodyCls:Ext.baseCSSPrefix+"form-multiselect-body",initComponent:function(){var i=this;i.bindStore(i.store,true);if(i.store.autoCreated){i.valueField=i.displayField="field1";if(!i.store.expanded){i.displayField="field2"}}if(!Ext.isDefined(i.valueField)){i.valueField=i.displayField}i.callParent()},bindStore:function(i,k){var l=this,m=l.store,j=l.boundList;if(m&&!k&&m!==i&&m.autoDestroy){m.destroy()}l.store=i?Ext.data.StoreManager.lookup(i):null;if(j){j.bindStore(i||null)}},onRender:function(m,i){var n=this,j,l,k;n.callParent(arguments);l=n.boundList=Ext.create("Ext.view.BoundList",{multiSelect:true,store:n.store,displayField:n.displayField,border:false});k=l.getSelectionModel();n.mon(k,{selectionChange:n.onSelectionChange,scope:n});j=n.panel=Ext.create("Ext.panel.Panel",{title:n.listTitle,tbar:n.tbar,items:[l],renderTo:n.bodyEl,layout:"fit"});j.ownerCt=n;n.setRawValue(n.rawValue)},getSubTplMarkup:function(){return""},afterRender:function(){var i=this;i.callParent();if(i.ddReorder&&!i.dragGroup&&!i.dropGroup){i.dragGroup=i.dropGroup="MultiselectDD-"+Ext.id()}if(i.draggable||i.dragGroup){i.dragZone=Ext.create("Ext.view.DragZone",{view:i.boundList,ddGroup:i.dragGroup,dragText:"{0} Item{1}"})}if(i.droppable||i.dropGroup){i.dropZone=Ext.create("Ext.view.DropZone",{view:i.boundList,ddGroup:i.dropGroup,handleNodeDrop:function(p,o,j){var k=this.view,m=k.getStore(),l=p.records,n;p.view.store.remove(l);n=m.indexOf(o);if(j==="after"){n++}m.insert(n,l);k.getSelectionModel().select(l)}})}},onSelectionChange:function(){this.checkChange()},clearValue:function(){this.setValue([])},getSubmitValue:function(){var j=this,i=j.delimiter,k=j.getValue();return Ext.isString(i)?k.join(i):k},getRawValue:function(){var j=this,i=j.boundList;if(i){j.rawValue=Ext.Array.map(i.getSelectionModel().getSelection(),function(k){return k.get(j.valueField)})}return j.rawValue},setRawValue:function(k){var j=this,i=j.boundList,l;k=Ext.Array.from(k);j.rawValue=k;if(i){l=[];Ext.Array.forEach(k,function(o){var n,m=j.store.findRecord(j.valueField,o,n,n,true,true);if(m){l.push(m)}});i.getSelectionModel().select(l,false,true)}return k},valueToRaw:function(i){return i},isEqual:function(n,m){var k=Ext.Array.from,l,j;n=k(n);m=k(m);j=n.length;if(j!==m.length){return false}for(l=0;lthis.maxSelections){m.push(k(i.maxSelectionsText,i.maxSelections))}return m},onDisable:function(){this.callParent();this.disabled=true;this.updateReadOnly()},onEnable:function(){this.callParent();this.disabled=false;this.updateReadOnly()},setReadOnly:function(i){this.readOnly=i;this.updateReadOnly()},updateReadOnly:function(){var j=this,i=j.boundList,k=j.readOnly||j.disabled;if(i){i.getSelectionModel().setLocked(k)}},onDestroy:function(){Ext.destroyMembers(this,"panel","boundList","dragZone","dropZone");this.callParent()}});OpenLayers.Util.OSM={};OpenLayers.Util.OSM.MISSING_TILE_URL="http://www.openstreetmap.org/openlayers/img/404.png";OpenLayers.Util.OSM.originalOnImageLoadError=OpenLayers.Util.onImageLoadError;OpenLayers.Util.onImageLoadError=function(){if(this.src.match(/^http:\/\/[abc]\.[a-z]+\.openstreetmap\.org\//)){this.src=OpenLayers.Util.OSM.MISSING_TILE_URL}else{if(this.src.match(/^http:\/\/[def]\.tah\.openstreetmap\.org\//)){}else{OpenLayers.Util.OSM.originalOnImageLoadError}}};OpenLayers.Layer.OSM.Mapnik=OpenLayers.Class(OpenLayers.Layer.OSM,{initialize:function(k,l){var i=["http://a.tile.openstreetmap.org/${z}/${x}/${y}.png","http://b.tile.openstreetmap.org/${z}/${x}/${y}.png","http://c.tile.openstreetmap.org/${z}/${x}/${y}.png"];l=OpenLayers.Util.extend({numZoomLevels:19,buffer:0,transitionEffect:"resize"},l);var j=[k,i,l];OpenLayers.Layer.OSM.prototype.initialize.apply(this,j)},CLASS_NAME:"OpenLayers.Layer.OSM.Mapnik"});OpenLayers.Layer.OSM.Osmarender=OpenLayers.Class(OpenLayers.Layer.OSM,{initialize:function(k,l){var i=["http://a.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png","http://b.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png","http://c.tah.openstreetmap.org/Tiles/tile/${z}/${x}/${y}.png"];l=OpenLayers.Util.extend({numZoomLevels:18,buffer:0,transitionEffect:"resize"},l);var j=[k,i,l];OpenLayers.Layer.OSM.prototype.initialize.apply(this,j)},CLASS_NAME:"OpenLayers.Layer.OSM.Osmarender"});OpenLayers.Layer.OSM.CycleMap=OpenLayers.Class(OpenLayers.Layer.OSM,{initialize:function(k,l){var i=["http://a.tile.opencyclemap.org/cycle/${z}/${x}/${y}.png","http://b.tile.opencyclemap.org/cycle/${z}/${x}/${y}.png","http://c.tile.opencyclemap.org/cycle/${z}/${x}/${y}.png"];l=OpenLayers.Util.extend({numZoomLevels:19,buffer:0,transitionEffect:"resize"},l);var j=[k,i,l];OpenLayers.Layer.OSM.prototype.initialize.apply(this,j)},CLASS_NAME:"OpenLayers.Layer.OSM.CycleMap"});OpenLayers.Control.Circle=OpenLayers.Class(OpenLayers.Control,{feature:null,layer:null,radius:5,origin:null,sides:40,angle:null,snapAngle:null,dragControl:null,initialize:function(i){OpenLayers.Control.prototype.initialize.apply(this,arguments)},activate:function(){var j=OpenLayers.Control.prototype.activate.call(this);if(j){var i={displayInLayerSwitcher:false,calculateInRange:function(){return true}};this.map.addLayer(this.layer)}return j},deactivate:function(){var i=OpenLayers.Control.prototype.deactivate.call(this);if(i){if(this.layer.map!=null){this.layer.destroy(false);if(this.feature){this.feature.destroy()}}this.layer=null;this.feature=null}return i},createGeometry:function(){this.angle=Math.PI*((1/this.sides)-(1/2));if(this.snapAngle){this.angle+=this.snapAngle*(Math.PI/180)}this.feature.geometry=OpenLayers.Geometry.Polygon.createRegularPolygon(this.origin,this.radius,this.sides,this.snapAngle)},modifyGeometry:function(){var k,n,i,j;var m=this.feature.geometry.components[0];if(m.components.length!=(this.sides+1)){this.createGeometry();m=this.feature.geometry.components[0]}for(var l=0;l=0;--k){l=this.layer.selectedFeatures[k];if(!j||j.except!=l){this.unselect(l,"click")}}},clickFeature:function(i){if((this.onSelect.name!=""||this.onClickSelect.name!="")&&!this.hover){var j=(OpenLayers.Util.indexOf(this.layer.selectedFeatures,i)>-1);if(j){if(this.toggleSelect()){this.unselect(i)}else{if(!this.multipleSelect()){this.unselectAll({except:i})}}}else{if(!this.multipleSelect()){this.unselectAll({except:i})}}this.select(i,"click")}},multipleSelect:function(){return this.multiple||this.handler.evt[this.multipleKey]},toggleSelect:function(){return this.toggle||this.handler.evt[this.toggleKey]},clickoutFeature:function(i){if(((this.onClickUnselect.name!=""||this.onHoverSelect.name=="")&&!this.hover)&&this.clickout){this.unselectAll()}},overFeature:function(i){if((this.onHoverSelect.name!=""||this.hover)&&(OpenLayers.Util.indexOf(this.layer.selectedFeatures,i)==-1)){this.select(i,"hover")}},outFeature:function(i){if(this.onHoverUnselect.name!=""||this.hover){this.unselect(i,"hover")}},select:function(k,i){this.layer.selectedFeatures.push(k);var j=this.selectStyle||this.renderIntent;this.layer.drawFeature(k,j);this.layer.events.triggerEvent("featureselected",{feature:k});switch(i){case"hover":this.onHoverSelect(k);break;case"click":if(this.onClickSelect.name!=""){this.onClickSelect(k)}else{if(this.onSelect.name!=""){this.onSelect(k)}}break;default:this.onSelect(k);break}},unselect:function(j,i){this.layer.drawFeature(j,"default");OpenLayers.Util.removeItem(this.layer.selectedFeatures,j);this.layer.events.triggerEvent("featureunselected",{feature:j});switch(i){case"hover":this.onHoverUnselect(j);break;case"click":if(this.onClickUnselect.name!=""){this.onClickUnselect(j)}else{if(this.onUnselect.name!=""){this.onUnselect(j)}}break;default:this.onUnselect(j);break}},setMap:function(i){this.handler.setMap(i);OpenLayers.Control.prototype.setMap.apply(this,arguments)},CLASS_NAME:"OpenLayers.Control.newSelectFeature"});Ext.define("GeoExt.data.LayerModel",{alternateClassName:"GeoExt.data.LayerRecord",extend:"Ext.data.Model",requires:["Ext.data.proxy.Memory","Ext.data.reader.Json"],alias:"model.gx_layer",statics:{createFromLayer:function(i){return this.proxy.reader.readRecords([i]).records[0]}},fields:["id",{name:"title",type:"string",mapping:"name"},{name:"legendURL",type:"string",mapping:"metadata.legendURL"},{name:"hideTitle",type:"bool",mapping:"metadata.hideTitle"},{name:"hideInLegend",type:"bool",mapping:"metadata.hideInLegend"}],proxy:{type:"memory",reader:{type:"json"}},getLayer:function(){return this.raw}});Ext.define("GeoExt.data.LayerStore",{requires:["GeoExt.data.LayerModel"],extend:"Ext.data.Store",model:"GeoExt.data.LayerModel",statics:{MAP_TO_STORE:1,STORE_TO_MAP:2},map:null,constructor:function(i){var l=this;i=Ext.apply({},i);var k=(GeoExt.MapPanel&&i.map instanceof GeoExt.MapPanel)?i.map.map:i.map;delete i.map;if(i.layers){i.data=i.layers}delete i.layers;var j={initDir:i.initDir};delete i.initDir;l.callParent([i]);if(k){this.bind(k,j)}},bind:function(k,j){var i=this;if(i.map){return}i.map=k;j=Ext.apply({},j);var m=j.initDir;if(j.initDir==undefined){m=GeoExt.data.LayerStore.MAP_TO_STORE|GeoExt.data.LayerStore.STORE_TO_MAP}var l=k.layers.slice(0);if(m&GeoExt.data.LayerStore.STORE_TO_MAP){i.each(function(n){i.map.addLayer(n.getLayer())},i)}if(m&GeoExt.data.LayerStore.MAP_TO_STORE){i.loadRawData(l,true)}k.events.on({changelayer:i.onChangeLayer,addlayer:i.onAddLayer,removelayer:i.onRemoveLayer,scope:i});i.on({load:i.onLoad,clear:i.onClear,add:i.onAdd,remove:i.onRemove,update:i.onUpdate,scope:i});i.data.on({replace:i.onReplace,scope:i});i.fireEvent("bind",i,k)},unbind:function(){var i=this;if(i.map){i.map.events.un({changelayer:i.onChangeLayer,addlayer:i.onAddLayer,removelayer:i.onRemoveLayer,scope:i});i.un("load",i.onLoad,i);i.un("clear",i.onClear,i);i.un("add",i.onAdd,i);i.un("remove",i.onRemove,i);i.data.un("replace",i.onReplace,i);i.map=null}},onChangeLayer:function(i){var k=i.layer;var m=this.findBy(function(o,n){return o.getLayer()===k});if(m>-1){var j=this.getAt(m);if(i.property==="order"){if(!this._adding&&!this._removing){var l=this.map.getLayerIndex(k);if(l!==m){this._removing=true;this.remove(j);delete this._removing;this._adding=true;this.insert(l,[j]);delete this._adding}}}else{if(i.property==="name"){j.set("title",k.name)}else{this.fireEvent("update",this,j,Ext.data.Record.EDIT)}}}},onAddLayer:function(i){var k=this;if(!k._adding){k._adding=true;var j=k.proxy.reader.read(i.layer);k.add(j.records);delete k._adding}},onRemoveLayer:function(j){if(this.map.unloadDestroy){if(!this._removing){var i=j.layer;this._removing=true;this.remove(this.getByLayer(i));delete this._removing}}else{this.unbind()}},onLoad:function(o,i,k){if(k){if(!Ext.isArray(i)){i=[i]}if(!this._addRecords){this._removing=true;for(var m=this.map.layers.length-1;m>=0;m--){this.map.removeLayer(this.map.layers[m])}delete this._removing}var j=i.length;if(j>0){var l=new Array(j);for(var n=0;n=0;i--){this.map.removeLayer(this.map.layers[i])}delete this._removing},onAdd:function(i,j,m){if(!this._adding){this._adding=true;var k;for(var l=j.length-1;l>=0;--l){k=j[l].getLayer();this.map.addLayer(k);if(m!==this.map.layers.length-1){this.map.setLayerIndex(k,m)}}delete this._adding}},onRemove:function(i,j,l){if(!this._removing){var k=j.getLayer();if(this.map.getLayer(k.id)!=null){this._removing=true;this.removeMapLayer(j);delete this._removing}}},onUpdate:function(m,j,i){if(i===Ext.data.Record.EDIT){if(j.modified&&j.modified.title){var l=j.getLayer();var k=j.get("title");if(k!==l.name){l.setName(k)}}}},removeMapLayer:function(i){this.map.removeLayer(i.getLayer())},onReplace:function(k,j,i){this.removeMapLayer(j)},getByLayer:function(i){var j=this.findBy(function(k){return k.getLayer()===i});if(j>-1){return this.getAt(j)}},destroy:function(){var i=this;i.unbind();i.callParent()},loadRecords:function(j,i){if(i&&i.addRecords){this._addRecords=true}this.callParent(arguments)}});Ext.define("GeoExt.panel.Map",{extend:"Ext.panel.Panel",requires:["GeoExt.data.LayerStore"],alias:"widget.gx_mappanel",alternateClassName:"GeoExt.MapPanel",statics:{guess:function(){var i=Ext.ComponentQuery.query("gx_mappanel");return((i&&i.length>0)?i[0]:null)}},center:null,zoom:null,extent:null,prettyStateKeys:false,map:null,layers:null,stateEvents:["aftermapmove","afterlayervisibilitychange","afterlayeropacitychange","afterlayerorderchange","afterlayernamechange","afterlayeradd","afterlayerremove"],initComponent:function(){if(!(this.map instanceof OpenLayers.Map)){this.map=new OpenLayers.Map(Ext.applyIf(this.map||{},{allOverlays:true}))}var i=this.layers;if(!i||i instanceof Array){this.layers=Ext.create("GeoExt.data.LayerStore",{layers:i,map:this.map.layers.length>0?this.map:null})}if(Ext.isString(this.center)){this.center=OpenLayers.LonLat.fromString(this.center)}else{if(Ext.isArray(this.center)){this.center=new OpenLayers.LonLat(this.center[0],this.center[1])}}if(Ext.isString(this.extent)){this.extent=OpenLayers.Bounds.fromString(this.extent)}else{if(Ext.isArray(this.extent)){this.extent=OpenLayers.Bounds.fromArray(this.extent)}}this.callParent(arguments);this.on("resize",this.onResize,this);this.on("afterlayout",function(){if(typeof this.map.getViewport==="function"){this.items.each(function(j){if(typeof j.addToMapPanel==="function"){j.getEl().appendTo(this.map.getViewport())}},this)}},this);this.map.events.on({moveend:this.onMoveend,changelayer:this.onChangelayer,addlayer:this.onAddlayer,removelayer:this.onRemovelayer,scope:this})},onMoveend:function(i){this.fireEvent("aftermapmove",this,this.map,i)},onChangelayer:function(i){var j=this.map;if(i.property){if(i.property==="visibility"){this.fireEvent("afterlayervisibilitychange",this,j,i)}else{if(i.property==="order"){this.fireEvent("afterlayerorderchange",this,j,i)}else{if(i.property==="nathis"){this.fireEvent("afterlayernathischange",this,j,i)}else{if(i.property==="opacity"){this.fireEvent("afterlayeropacitychange",this,j,i)}}}}}},onAddlayer:function(){this.fireEvent("afterlayeradd")},onRemovelayer:function(){this.fireEvent("afterlayerremove")},onResize:function(){var i=this.map;if(this.body.dom!==i.div){i.render(this.body.dom);this.layers.bind(i);if(i.layers.length>0){this.setInitialExtent()}else{this.layers.on("add",this.setInitialExtent,this,{single:true})}}else{i.updateSize()}},setInitialExtent:function(){var i=this.map;if(!i.getCenter()){if(this.center||this.zoom){i.setCenter(this.center,this.zoom)}else{if(this.extent instanceof OpenLayers.Bounds){i.zoomToExtent(this.extent,true)}else{i.zoomToMaxExtent()}}}},getState:function(){var m=this,k=m.map,l=m.callParent(arguments)||{},i;if(!k){return}var j=k.getCenter();j&&Ext.applyIf(l,{x:j.lon,y:j.lat,zoom:k.getZoom()});m.layers.each(function(n){i=n.getLayer();layerId=this.prettyStateKeys?n.get("title"):n.get("id");l=m.addPropertyToState(l,"visibility_"+layerId,i.getVisibility());l=m.addPropertyToState(l,"opacity_"+layerId,(i.opacity===null)?1:i.opacity)},m);return l},applyState:function(r){var i=this;map=i.map;i.center=new OpenLayers.LonLat(r.x,r.y);i.zoom=r.zoom;var m,p,l,o,q,k;var n=map.layers;for(m=0,p=n.length;m');if(q.uiProvider&&q.uiProvider instanceof "string"){}return n.join("")}},defaultRenderer:function(i){return i}});Ext.define("GeoExt.tree.View",{extend:"Ext.tree.View",alias:"widget.gx_treeview",initComponent:function(){var i=this;i.on("itemupdate",this.onItem,this);i.on("itemadd",this.onItem,this);i.on("createchild",this.createChild,this);return i.callParent(arguments)},onItem:function(j,n,k,i){var l=this;if(!(j instanceof Array)){j=[j]}for(var m=0;m1){var o=(q===0)?q+1:q-1;x=p.store.findBy(function(i){return m.childNodes[o].get("layer")===i.getLayer()});if(q===0){x++}}else{if(n.parentNode===m.parentNode){var u=m;do{u=u.previousSibling}while(u&&!(u.get("container") instanceof w.self&&u.lastChild));if(u){x=p.store.findBy(function(i){return u.lastChild.get("layer")===i.getLayer()})}else{var t=m;do{t=t.nextSibling}while(t&&!(t.get("container") instanceof w.self&&t.firstChild));if(t){x=p.store.findBy(function(i){return t.firstChild.get("layer")===i.getLayer()})}x++}}}if(x!==undefined){p.store.insert(x,[r])}else{p.store.insert(oldRecordIndex,[r])}delete s._reordering}delete p._reordering},addStoreHandlers:function(i){if(!this._storeHandlers){this._storeHandlers={add:function(m,k,l){this.onStoreAdd(m,k,l,i)},remove:function(l,k){this.onStoreRemove(k,i)}};for(var j in this._storeHandlers){this.store.on(j,this._storeHandlers[j],this)}}},removeStoreHandlers:function(){if(this._storeHandlers){for(var i in this._storeHandlers){this.store.un(i,this._storeHandlers[i],this)}delete this._storeHandlers}},createNode:function(i){if(this.baseAttrs){Ext.apply(i,this.baseAttrs)}return i},destroy:function(){this.removeStoreHandlers()}});Ext.define("GeoExt.tree.LayerContainer",{extend:"Ext.AbstractPlugin",requires:["GeoExt.tree.LayerLoader"],alias:"plugin.gx_layercontainer",defaultText:"Layers",init:function(k){var i=this;var j=i.loader;i.loader=(j&&j instanceof GeoExt.tree.LayerLoader)?j:new GeoExt.tree.LayerLoader(j);k.set("container",i);if(!k.get("text")){k.set("text",i.defaultText);k.commit()}i.loader.load(k)},recordIndexToNodeIndex:function(p,l){var m=this;var i=m.loader.store;var n=i.getCount();var j=l.childNodes.length;var k=-1;for(var o=n-1;o>=0;--o){if(m.loader.filter(i.getAt(o))===true){++k;if(p===o||k>j-1){break}}}return k}});Ext.define("GeoExt.tree.BaseLayerContainer",{extend:"GeoExt.tree.LayerContainer",alias:"plugin.gx_baselayercontainer",defaultText:"Base Layers",init:function(k){var i=this;var j=i.loader;i.loader=Ext.applyIf(j||{},{baseAttrs:Ext.applyIf((j&&j.baseAttrs)||{},{iconCls:"gx-tree-baselayer-icon",checkedGroup:"baselayer"}),filter:function(m){var l=m.getLayer();return l.displayInLayerSwitcher===true&&l.isBaseLayer===true}});i.callParent(arguments)}});Ext.define("GeoExt.tree.Panel",{extend:"Ext.tree.Panel",alias:"widget.gx_treepanel",requires:["GeoExt.tree.Column","GeoExt.tree.View"],viewType:"gx_treeview",initComponent:function(){var i=this;if(!i.columns){if(i.initialConfig.hideHeaders===undefined){i.hideHeaders=true}i.addCls(Ext.baseCSSPrefix+"autowidth-table");i.columns=[{xtype:"gx_treecolumn",text:"Name",width:Ext.isIE6?null:10000,dataIndex:i.displayField}]}i.callParent()}});Ext.Ajax.method="GET";GIS={core:{instances:[]},i18n:{},isDebug:false,logg:[]};GIS.core.getOLMap=function(j){var k,i;i=function(m,o){var n,l;n=new OpenLayers.Control.Button({displayClass:"olControlButton",trigger:function(){o.call(j.olmap)}});l=new OpenLayers.Control.Panel({defaultControl:n});l.addControls([n]);k.addControl(l);l.div.className+=" "+m;l.div.childNodes[0].className+=" "+m+"Button"};k=new OpenLayers.Map({controls:[new OpenLayers.Control.Navigation({zoomWheelEnabled:false,documentDrag:true}),new OpenLayers.Control.MousePosition({prefix:'LON ',separator:', LAT ',suffix:''}),new OpenLayers.Control.Permalink(),new OpenLayers.Control.ScaleLine({geodesic:true,maxWidth:170,minWidth:100})],displayProjection:new OpenLayers.Projection("EPSG:4326"),maxExtent:new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508),mouseMove:{},relocate:{}});k.events.register("mousemove",null,function(l){j.olmap.mouseMove.x=l.clientX;j.olmap.mouseMove.y=l.clientY});k.zoomToVisibleExtent=function(){j.util.map.zoomToVisibleExtent(this)};k.closeAllLayers=function(){j.layer.event.core.reset();j.layer.facility.core.reset();j.layer.boundary.core.reset();j.layer.thematic1.core.reset();j.layer.thematic2.core.reset();j.layer.thematic3.core.reset();j.layer.thematic4.core.reset()};i("zoomIn",k.zoomIn);i("zoomOut",k.zoomOut);i("zoomVisible",k.zoomToVisibleExtent);i("measure",function(){GIS.core.MeasureWindow(j).show()});return k};GIS.core.getLayers=function(j){var o={},k,m=["1","2","3","4"];if(window.google){o.googleStreets=new OpenLayers.Layer.Google("Google Streets",{numZoomLevels:20,animationEnabled:true,layerType:j.conf.finals.layer.type_base,layerOpacity:1,setLayerOpacity:function(i){if(i){this.layerOpacity=parseFloat(i)}this.setOpacity(this.layerOpacity)}});o.googleStreets.id="googleStreets";o.googleHybrid=new OpenLayers.Layer.Google("Google Hybrid",{type:google.maps.MapTypeId.HYBRID,numZoomLevels:20,animationEnabled:true,layerType:j.conf.finals.layer.type_base,layerOpacity:1,setLayerOpacity:function(i){if(i){this.layerOpacity=parseFloat(i)}this.setOpacity(this.layerOpacity)}});o.googleHybrid.id="googleHybrid"}o.openStreetMap=new OpenLayers.Layer.OSM.Mapnik("OpenStreetMap",{layerType:j.conf.finals.layer.type_base,layerOpacity:1,setLayerOpacity:function(i){if(i){this.layerOpacity=parseFloat(i)}this.setOpacity(this.layerOpacity)}});o.openStreetMap.id="openStreetMap";o.event=GIS.core.VectorLayer(j,"event",GIS.i18n.event_layer,{opacity:0.8});o.event.core=new mapfish.GeoStat.Event(j.olmap,{layer:o.event,gis:j});o.facility=GIS.core.VectorLayer(j,"facility",GIS.i18n.facility_layer,{opacity:1});o.facility.core=new mapfish.GeoStat.Facility(j.olmap,{layer:o.facility,gis:j});o.boundary=GIS.core.VectorLayer(j,"boundary",GIS.i18n.boundary_layer,{opacity:0.8});o.boundary.core=new mapfish.GeoStat.Boundary(j.olmap,{layer:o.boundary,gis:j});for(var l=0,n;l",{xtype:"button",hideLabel:true,text:GIS.i18n.cancel,handler:function(){r.olmap.relocate.active=false;r.olmap.relocate.window.destroy();r.olmap.getViewport().style.cursor="auto"}}],listeners:{close:function(){r.olmap.relocate.active=false;r.olmap.getViewport().style.cursor="auto"}}});r.olmap.relocate.window.show();r.olmap.relocate.window.setMinWidth(220);r.util.gui.window.setPositionTopRight(r.olmap.relocate.window)};C=function(){Ext.Ajax.request({url:r.init.contextPath+r.conf.finals.url.path_module+"getFacilityInfo.action",params:{id:z.id},success:function(F){var E=Ext.decode(F.responseText);if(l.infrastructuralWindow){l.infrastructuralWindow.destroy()}l.infrastructuralWindow=Ext.create("Ext.window.Window",{title:GIS.i18n.information,layout:"column",iconCls:"gis-window-title-icon-information",cls:"gis-container-default",width:460,height:400,period:null,items:[{cls:"gis-container-inner",columnWidth:0.4,bodyStyle:"padding-right:4px",items:function(){var G=[];if(z.name){G.push({html:GIS.i18n.name,cls:"gis-panel-html-title"},{html:z.name,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.pa){G.push({html:GIS.i18n.parent_unit,cls:"gis-panel-html-title"},{html:E.pa,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.ty){G.push({html:GIS.i18n.type,cls:"gis-panel-html-title"},{html:E.ty,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.co){G.push({html:GIS.i18n.code,cls:"gis-panel-html-title"},{html:E.co,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.ad){G.push({html:GIS.i18n.address,cls:"gis-panel-html-title"},{html:E.ad,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.em){G.push({html:GIS.i18n.email,cls:"gis-panel-html-title"},{html:E.em,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}if(E.pn){G.push({html:GIS.i18n.phone_number,cls:"gis-panel-html-title"},{html:E.pn,cls:"gis-panel-html"},{cls:"gis-panel-html-separator"})}return G}()},{xtype:"form",cls:"gis-container-inner gis-form-widget",columnWidth:0.6,bodyStyle:"padding-left:4px",items:[{html:GIS.i18n.infrastructural_data,cls:"gis-panel-html-title"},{cls:"gis-panel-html-separator"},{xtype:"combo",fieldLabel:GIS.i18n.period,editable:false,valueField:"id",displayField:"name",forceSelection:true,width:255,labelWidth:70,store:r.store.infrastructuralPeriodsByType,lockPosition:false,listeners:{select:function(){n=this.getValue();l.widget.infrastructuralDataElementValuesStore.load({params:{periodId:n,organisationUnitId:z.internalId}})}}},{cls:"gis-panel-html-separator"},{xtype:"grid",cls:"gis-grid",height:300,width:255,scroll:"vertical",columns:[{id:"dataElementName",text:"Data element",dataIndex:"dataElementName",sortable:true,width:195},{id:"value",header:"Value",dataIndex:"value",sortable:true,width:60}],disableSelection:true,store:l.widget.infrastructuralDataElementValuesStore}]}],listeners:{show:function(){if(n){this.down("combo").setValue(n);infrastructuralDataElementValuesStore.load({params:{periodId:n,organisationUnitId:z.internalId}})}}}});l.infrastructuralWindow.show();r.util.gui.window.setPositionTopRight(l.infrastructuralWindow)}})};w=function(I,G,H){var F=Ext.clone(l.core.view),E;F.parentGraphMap={};F.parentGraphMap[I]=G;F.rows=[{dimension:q.organisationUnit.objectName,items:[{id:I},{id:"LEVEL-"+H}]}];if(F){E=l.core.getLoader();E.updateGui=true;E.zoomToVisibleExtent=true;E.hideMask=true;E.load(F)}};var v=[Ext.create("Ext.menu.Item",{text:"Float up",iconCls:"gis-menu-item-icon-float",cls:"gis-plugin",disabled:!z.hasCoordinatesUp,handler:function(){w(z.grandParentId,z.grandParentParentGraph,parseInt(z.level)-1)}}),Ext.create("Ext.menu.Item",{text:"Drill down",iconCls:"gis-menu-item-icon-drill",cls:"gis-menu-item-first gis-plugin",disabled:!z.hasCoordinatesDown,handler:function(){w(z.id,z.parentGraph,parseInt(z.level)+1)}})];if(t&&A){v.push({xtype:"menuseparator"});v.push(Ext.create("Ext.menu.Item",{text:GIS.i18n.relocate,iconCls:"gis-menu-item-icon-relocate",disabled:!r.init.user.isAdmin,handler:function(E){r.olmap.relocate.active=true;r.olmap.relocate.feature=D;r.olmap.getViewport().style.cursor="crosshair";B()}}));v.push(Ext.create("Ext.menu.Item",{text:"Swap lon/lat",iconCls:"gis-menu-item-icon-relocate",disabled:!r.init.user.isAdmin,handler:function(E){var G=D.attributes.id,F=Ext.clone(D.geometry).transform("EPSG:900913","EPSG:4326");if(Ext.isNumber(F.x)&&Ext.isNumber(F.y)&&r.init.user.isAdmin){Ext.Ajax.request({url:r.init.contextPath+"/api/organisationUnits/"+G+".json?links=false",success:function(H){var I=Ext.decode(H.responseText);I.coordinates="["+F.y.toFixed(5)+","+F.x.toFixed(5)+"]";Ext.Ajax.request({url:r.init.contextPath+"/api/metaData?preheatCache=false",method:"POST",headers:{"Content-Type":"application/json"},params:Ext.encode({organisationUnits:[I]}),success:function(K){var J=D.geometry.x,L=D.geometry.y;delete D.geometry.bounds;D.geometry.x=L;D.geometry.y=J;l.redraw();console.log(D.attributes.name+" relocated to "+I.coordinates)}})}})}}}));v.push(Ext.create("Ext.menu.Item",{text:GIS.i18n.show_information_sheet,iconCls:"gis-menu-item-icon-information",handler:function(E){if(r.store.infrastructuralPeriodsByType.isLoaded){C()}else{r.store.infrastructuralPeriodsByType.load({params:{name:r.init.systemSettings.infrastructuralPeriodType},callback:function(){C()}})}}}))}v[v.length-1].addCls("gis-menu-item-last");x=new Ext.menu.Menu({baseCls:"gis-plugin",shadow:false,showSeparator:false,defaults:{bodyStyle:"padding-right:6px"},items:v,listeners:{afterrender:function(){this.getEl().addCls("gis-toolbar-btn-menu")}}});x.showAt([r.olmap.mouseMove.x,r.olmap.mouseMove.y])};u={onHoverSelect:i,onHoverUnselect:k,onClickSelect:j};if(l.id==="event"){u.onClickSelect=function o(D){var z=["label","value","nameColumnMap","psi","ps","longitude","latitude","eventdate","ou","oucode","ouname"],x=D.attributes,v=x.nameColumnMap,y='',B=' style="font-weight:bold; padding-right:10px; vertical-align:top"',w=' style="max-width:170px"',A;y+=""+v.ou+""+x.ouname+"";y+=""+v.eventdate+""+x.eventdate+"";y+=""+v.longitude+""+x.longitude+"";y+=""+v.latitude+""+x.latitude+"";for(var C in x){if(x.hasOwnProperty(C)&&!Ext.Array.contains(z,C)){y+=""+v[C]+""}}y+="
"+x[C]+"
";if(Ext.isObject(p)&&p.destroy){A=p.getPosition();p.destroy();p=null}p=Ext.create("Ext.window.Window",{title:"Event",layout:"fit",resizable:false,bodyStyle:"background-color:#fff; padding:5px",html:y,autoShow:true,listeners:{show:function(E){if(A){E.setPosition(A)}else{r.util.gui.window.setPositionTopRight(E)}},destroy:function(){p=null}}})}}m=new OpenLayers.Control.newSelectFeature(l,u);r.olmap.addControl(m);m.activate()};GIS.core.OrganisationUnitLevelStore=function(i){return Ext.create("Ext.data.Store",{fields:["id","name","level"],proxy:{type:"jsonp",url:i.init.contextPath+i.conf.finals.url.path_api+"organisationUnitLevels.jsonp?viewClass=detailed&links=false&paging=false",reader:{type:"json",root:"organisationUnitLevels"}},autoLoad:true,cmp:[],isLoaded:false,loadFn:function(j){if(this.isLoaded){j.call()}else{this.load(j)}},getRecordByLevel:function(j){return this.getAt(this.findExact("level",j))},listeners:{load:function(){if(!this.isLoaded){this.isLoaded=true;i.util.gui.combo.setQueryMode(this.cmp,"local")}this.sort("level","ASC")}}})};GIS.core.StyleMap=function(l,j){var k={fillOpacity:1,strokeColor:"#fff",strokeWidth:1},i={fillOpacity:0.9,strokeColor:"#fff",strokeWidth:1,cursor:"pointer"};if(l==="boundary"){k.fillOpacity=0;k.strokeColor="#000";k.strokeWidth=1;i.fillColor="#000";i.fillOpacity=0.15;i.strokeColor="#000";i.strokeWidth=1}if(j){k.label="${label}";k.fontFamily="arial,sans-serif,ubuntu,consolas";k.fontSize=(j.fontSize||13)+"px";k.fontWeight=j.strong?"bold":"normal";k.fontStyle=j.italic?"italic":"normal";k.fontColor=j.color?(j.color.split("").shift()!=="#"?"#"+j.color:j.color):"#000000"}return new OpenLayers.StyleMap({"default":k,select:i})};GIS.core.VectorLayer=function(i,m,k,j){var l=new OpenLayers.Layer.Vector(k,{strategies:[new OpenLayers.Strategy.Refresh({force:true})],styleMap:GIS.core.StyleMap(m),visibility:false,displayInLayerSwitcher:false,layerType:i.conf.finals.layer.type_vector,layerOpacity:j?j.opacity||1:1,setLayerOpacity:function(n){if(n){this.layerOpacity=parseFloat(n)}this.setOpacity(this.layerOpacity)},hasLabels:false});l.id=m;return l};GIS.core.MeasureWindow=function(i){var k,j,l,n,m;m=new OpenLayers.StyleMap({"default":new OpenLayers.Style()});n=new OpenLayers.Control.Measure(OpenLayers.Handler.Path,{persist:true,immediate:true,handlerOption:{layerOptions:{styleMap:m}}});l=function(o){if(o.measure){j.setText(o.measure.toFixed(2)+" "+o.units)}};i.olmap.addControl(n);n.events.on({measurepartial:l,measure:l});n.geodesic=true;n.activate();j=Ext.create("Ext.form.Label",{style:"height: 20px",text:"0 km"});k=Ext.create("Ext.window.Window",{title:GIS.i18n.measure_distance,layout:"fit",cls:"gis-container-default gis-plugin",bodyStyle:"text-align: center",width:130,minWidth:130,resizable:false,items:j,listeners:{show:function(){var o=i.viewport.eastRegion.getPosition()[0]-this.getWidth()-3,p=i.viewport.centerRegion.getPosition()[1]+26;this.setPosition(o,p)},destroy:function(){n.deactivate();i.olmap.removeControl(n)}}});return k};GIS.core.MapLoader=function(j){var n,l,o,m,k=[],i;n=function(){Ext.data.JsonP.request({url:j.init.contextPath+j.conf.finals.url.path_api+"maps/"+j.map.id+".jsonp?viewClass=dimensional&links=false",success:function(v){if(Ext.isArray(v.mapViews)){for(var t=0,p;t1){for(var p=1;pt){return 1}return 0});return q};j.object.getLength=function(p){var r=0;for(var q in p){if(p.hasOwnProperty(q)){r++}}return r}}());i.init=o;i.conf=l;i.util=j;(function(){var p=i.conf.finals.dimension;m.layout={};m.response={};m.layout.Record=function(r){var q={};return function(){if(!Ext.isObject(r)){console.log("Record config is not an object: "+r);return}if(!Ext.isString(r.id)){alert("Record id is not text: "+r);return}q.id=r.id.replace(".","-");if(Ext.isString(r.name)){q.name=r.name}return Ext.clone(q)}()};m.layout.Dimension=function(q){var r={};return function(){if(!Ext.isObject(q)){return}if(!Ext.isString(q.dimension)){console.log("Dimension name is not text: "+q);return}if(q.dimension!==l.finals.dimension.category.objectName){var s=[];if(!Ext.isArray(q.items)){console.log("Dimension items is not an array: "+q);return}for(var t=0;t0)){alert("No values found");return false}if(r.headers.length!==r.rows[0].length){alert("Data invalid");return false}q.headers=r.headers;q.metaData=r.metaData;q.width=r.width;q.height=r.height;q.rows=r.rows;return q}()}}());(function(){k.organisationUnitLevels=GIS.core.OrganisationUnitLevelStore(i)}());i.api=m;i.store=k;i.olmap=GIS.core.getOLMap(i);i.layer=GIS.core.getLayers(i);i.thematicLayers=[i.layer.thematic1,i.layer.thematic2,i.layer.thematic3,i.layer.thematic4];if(window.google){n.push(i.layer.googleStreets,i.layer.googleHybrid)}n.push(i.layer.openStreetMap,i.layer.thematic4,i.layer.thematic3,i.layer.thematic2,i.layer.thematic1,i.layer.boundary,i.layer.facility,i.layer.event);i.olmap.addLayers(n);GIS.core.instances.push(i);e=i.layer.event;return i};(function(){window.mapfish={_scriptName:"MapFish.js",_getScriptLocation:function(){if(window.gMfLocation){return window.gMfLocation}var t="";var u=mapfish._scriptName;var q=document.getElementsByTagName("script");for(var s=0;s-1)&&(r+u.length==v.length)){t=v.slice(0,-u.length);break}}}return t}};var o=new Array("core/Color.js","core/GeoStat.js","core/GeoStat/Boundary.js","core/GeoStat/Thematic1.js","core/GeoStat/Thematic2.js","core/GeoStat/Facility.js","core/GeoStat/Symbol.js","core/Util.js");var p="";var n=mapfish._getScriptLocation();for(var j=0;j<\/script>";p+=m}else{var l=document.createElement("script");l.src=n+o[j];var k=document.getElementsByTagName("head").length?document.getElementsByTagName("head")[0]:document.body;k.appendChild(l)}}if(p){}mapfish.Color=OpenLayers.Class({getColorRgb:function(){}});mapfish.ColorRgb=OpenLayers.Class(mapfish.Color,{redLevel:null,greenLevel:null,blueLevel:null,initialize:function(r,q,i){this.redLevel=r;this.greenLevel=q;this.blueLevel=i},equals:function(i){return i.redLevel==this.redLevel&&i.greenLevel==this.greenLevel&&i.blueLevel==this.blueLevel},getColorRgb:function(){return this},getRgbArray:function(){return[this.redLevel,this.greenLevel,this.blueLevel]},hex2rgbArray:function(q){if(q.charAt(0)=="#"){q=q.substr(1)}var r=[parseInt(q.substring(0,2),16),parseInt(q.substring(2,4),16),parseInt(q.substring(4,6),16)];for(var s=0;s255){OpenLayers.Console.error("Invalid rgb hex color string: rgbHexString")}}return r},setFromHex:function(i){var q=this.hex2rgbArray(i);this.redLevel=q[0];this.greenLevel=q[1];this.blueLevel=q[2]},setFromRgb:function(q){var i=dojo.colorFromString(q);this.redLevel=i.r;this.greenLevel=i.g;this.blueLevel=i.b},toHexString:function(){var s=this.toHex(this.redLevel);var q=this.toHex(this.greenLevel);var i=this.toHex(this.blueLevel);return"#"+s+q+i},toHex:function(u){var r="0123456789ABCDEF";if(u<0||u>255){var t="Invalid decimal value for color level";OpenLayers.Console.error(t)}var s=Math.floor(u/16);var q=u%16;return r.charAt(s)+r.charAt(q)},CLASS_NAME:"mapfish.ColorRgb"});mapfish.ColorRgb.getColorsArrayByRgbInterpolation=function(y,t,v){var z=[];var r=y.getColorRgb();var q=t.getColorRgb();var x=r.getRgbArray();var w=q.getRgbArray();if(v==1){return[r]}for(var u=0;u-1};mapfish.Util.relativeToAbsoluteURL=function(q){if(/^\w+:/.test(q)||!q){return q}var i=location.protocol+"//"+location.host;if(q.indexOf("/")==0){return i+q}var r=location.pathname.replace(/\/[^\/]*$/,"");return i+r+"/"+q};mapfish.Util.fixArray=function(i){if(i==""||i==null){return[]}else{if(i instanceof Array){return i}else{return i.split(",")}}};mapfish.GeoStat=OpenLayers.Class({layer:null,format:null,url:null,requestSuccess:function(i){},requestFailure:function(i){},indicator:null,defaultSymbolizer:{},legendDiv:null,initialize:function(r,i){this.map=r;this.addOptions(i);if(!this.layer){var q=new OpenLayers.Layer.Vector("geostat",{displayInLayerSwitcher:false,visibility:false});r.addLayer(q);this.layer=q}this.setUrl(this.url);this.legendDiv=Ext.get(i.legendDiv)},setUrl:function(i){this.url=i;if(this.url){OpenLayers.Request.GET({url:this.url,scope:this,success:this.requestSuccess,failure:this.requestFailure})}},getColors:function(i,r){var s=new mapfish.ColorRgb(),q=new mapfish.ColorRgb();s.setFromHex(i);q.setFromHex(r);return[s,q]},addOptions:function(i){if(i){if(!this.options){this.options={}}OpenLayers.Util.extend(this.options,i);OpenLayers.Util.extend(this,i)}},extendStyle:function(s,r,i){var q=this.layer.styleMap.styles["default"];if(s){q.rules=s}if(r){q.setDefaultStyle(OpenLayers.Util.applyDefaults(r,q.defaultStyle))}if(i){if(!q.context){q.context={}}OpenLayers.Util.extend(q.context,i)}},applyClassification:function(i){this.layer.renderer.clear();this.layer.redraw();this.updateLegend();this.layer.setVisibility(true)},showDetails:function(i){},hideDetails:function(i){},CLASS_NAME:"mapfish.GeoStat"});mapfish.GeoStat.Distribution=OpenLayers.Class({labelGenerator:function(q,s,t){var i=parseFloat(q.lowerBound).toFixed(1),r=parseFloat(q.upperBound).toFixed(1);return i+" - "+r+"  ("+q.nbVal+")"},values:null,nbVal:null,minVal:null,maxVal:null,initialize:function(i,q){OpenLayers.Util.extend(this,q);this.values=i;this.nbVal=i.length;this.minVal=this.nbVal?mapfish.Util.min(this.values):0;this.maxVal=this.nbVal?mapfish.Util.max(this.values):0},classifyWithBounds:function(q){var z=[];var w=[];var y=[];for(var v=0;v0){s[0]=i[0];for(j=1;j0){r.push(this.bins[this.bins.length-1].upperBound)}return r},CLASS_NAME:"mapfish.GeoStat.Classification"});mapfish.GeoStat.Event=OpenLayers.Class(mapfish.GeoStat,{colors:[new mapfish.ColorRgb(120,120,0),new mapfish.ColorRgb(255,0,0)],method:mapfish.GeoStat.Distribution.CLASSIFY_BY_QUANTILS,numClasses:5,minSize:4,maxSize:4,minVal:null,maxVal:null,defaultSymbolizer:{fillOpacity:1},classification:null,colorInterpolation:null,gis:null,view:null,featureStore:Ext.create("Ext.data.Store",{fields:["id","name"],features:[],loadFeatures:function(r){if(r&&r.length){var s=[];for(var q=0;qthis.minVal){this.bounds.unshift(this.minVal);this.colorInterpolation.unshift(new mapfish.ColorRgb(240,240,240))}if(this.bounds[this.bounds.length-1]'+(this.view.legendSet.names[q]||"")+"
"+this.classification.bins[q].label;r.appendChild(t);t=document.createElement("div");t.style.clear="left";r.appendChild(t)}}else{for(var q=0;q';Ext.query(".zoomOutButton")[q].innerHTML='';Ext.query(".zoomVisibleButton")[q].innerHTML='';Ext.query(".measureButton")[q].innerHTML=''}if(Ext.isDefined(k.map.baseLayer)){var r=Ext.isString(k.map.baseLayer)?k.map.baseLayer.split(" ").join("").toLowerCase():k.map.baseLayer;if(!r||r==="none"||r==="off"){k.layer.googleStreets.setVisibility(false)}else{if(r==="gh"||r==="googlehybrid"){k.olmap.setBaseLayer(k.layer.googleHybrid)}else{if(r==="osm"||r==="openstreetmap"){k.olmap.setBaseLayer(k.layer.openStreetMap)}}}}};i=function(){if(!n()){return}c();k=GIS.core.getInstance(g);k.el=l.el;GIS.core.createSelectHandlers(k,k.layer.boundary);GIS.core.createSelectHandlers(k,k.layer.thematic1);GIS.core.createSelectHandlers(k,k.layer.thematic2);GIS.core.createSelectHandlers(k,k.layer.thematic3);GIS.core.createSelectHandlers(k,k.layer.thematic4);GIS.core.createSelectHandlers(k,k.layer.facility);k.map=l;k.viewport=j();k.olmap.mask=Ext.create("Ext.LoadMask",k.viewport.centerRegion.getEl(),{msg:"Loading"});GIS.core.MapLoader(k).load()}()};GIS.plugin.getMap=function(i){if(Ext.isString(i.url)&&i.url.split("").pop()==="/"){i.url=i.url.substr(0,i.url.length-1)}if(b){d(i)}else{f.push(i);if(!h){h=true;a(i.url)}}};DHIS=Ext.isObject(window.DHIS)?DHIS:{};DHIS.getMap=GIS.plugin.getMap}); === modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/plugin/table.js' --- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/plugin/table.js 2014-02-08 18:09:18 +0000 +++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/plugin/table.js 2014-05-23 12:51:26 +0000 @@ -1,1 +1,1 @@ -Ext.onReady(function(){Ext.Ajax.method="GET";PT={};PT.instances=[];PT.i18n={};PT.isDebug=false;PT.isSessionStorage=("sessionStorage" in window&&window.sessionStorage!==null);PT.getCore=function(m){var i={},k={},j={},g={},h={},l;(function(){i.finals={url:{path_module:"/dhis-web-pivot/",organisationunitchildren_get:"getOrganisationUnitChildren.action"},dimension:{data:{value:"data",name:PT.i18n.data,dimensionName:"dx",objectName:"dx",warning:{filter:"..."}},category:{name:PT.i18n.categories,dimensionName:"co",objectName:"co"},indicator:{value:"indicators",name:PT.i18n.indicators,dimensionName:"dx",objectName:"in"},dataElement:{value:"dataElements",name:PT.i18n.data_elements,dimensionName:"dx",objectName:"de"},operand:{value:"operand",name:"Operand",dimensionName:"dx",objectName:"dc"},dataSet:{value:"dataSets",name:PT.i18n.data_sets,dimensionName:"dx",objectName:"ds"},period:{value:"period",name:PT.i18n.periods,dimensionName:"pe",objectName:"pe"},fixedPeriod:{value:"periods"},relativePeriod:{value:"relativePeriods"},organisationUnit:{value:"organisationUnits",name:PT.i18n.organisation_units,dimensionName:"ou",objectName:"ou"},dimension:{value:"dimension"},value:{value:"value"}},root:{id:"root"}};l=i.finals.dimension;l.objectNameMap={};l.objectNameMap[l.data.objectName]=l.data;l.objectNameMap[l.indicator.objectName]=l.indicator;l.objectNameMap[l.dataElement.objectName]=l.dataElement;l.objectNameMap[l.operand.objectName]=l.operand;l.objectNameMap[l.dataSet.objectName]=l.dataSet;l.objectNameMap[l.category.objectName]=l.category;l.objectNameMap[l.period.objectName]=l.period;l.objectNameMap[l.organisationUnit.objectName]=l.organisationUnit;l.objectNameMap[l.dimension.objectName]=l.dimension;i.period={periodTypes:[{id:"Daily",name:PT.i18n.daily},{id:"Weekly",name:PT.i18n.weekly},{id:"Monthly",name:PT.i18n.monthly},{id:"BiMonthly",name:PT.i18n.bimonthly},{id:"Quarterly",name:PT.i18n.quarterly},{id:"SixMonthly",name:PT.i18n.sixmonthly},{id:"SixMonthlyApril",name:PT.i18n.sixmonthly_april},{id:"Yearly",name:PT.i18n.yearly},{id:"FinancialOct",name:PT.i18n.financial_oct},{id:"FinancialJuly",name:PT.i18n.financial_july},{id:"FinancialApril",name:PT.i18n.financial_april}]};i.layout={west_width:424,west_fieldset_width:416,west_width_padding:4,west_fill:2,west_fill_accordion_indicator:59,west_fill_accordion_dataelement:59,west_fill_accordion_dataset:33,west_fill_accordion_period:296,west_fill_accordion_organisationunit:62,west_maxheight_accordion_indicator:400,west_maxheight_accordion_dataelement:400,west_maxheight_accordion_dataset:400,west_maxheight_accordion_period:513,west_maxheight_accordion_organisationunit:900,west_maxheight_accordion_group:340,west_maxheight_accordion_options:449,west_scrollbarheight_accordion_indicator:300,west_scrollbarheight_accordion_dataelement:300,west_scrollbarheight_accordion_dataset:300,west_scrollbarheight_accordion_period:450,west_scrollbarheight_accordion_organisationunit:450,west_scrollbarheight_accordion_group:300,east_tbar_height:31,east_gridcolumn_height:30,form_label_width:55,window_favorite_ypos:100,window_confirm_width:250,window_share_width:500,grid_favorite_width:420,grid_row_height:27,treepanel_minheight:135,treepanel_maxheight:400,treepanel_fill_default:310,treepanel_toolbar_menu_width_group:140,treepanel_toolbar_menu_width_level:120,multiselect_minheight:100,multiselect_maxheight:250,multiselect_fill_default:345,multiselect_fill_reportingrates:315};i.pivot={digitGroupSeparator:{comma:",",space:" "},displayDensity:{compact:"3px",normal:"5px",comfortable:"10px"},fontSize:{small:"10px",normal:"11px",large:"13px"}}}());(function(){k.layout={};k.layout.Record=function(n){var n=Ext.clone(n);return function(){if(!Ext.isObject(n)){console.log("Record: config is not an object: "+n);return}if(!Ext.isString(n.id)){alert("Record: id is not text: "+n);return}n.id=n.id.replace(".","-");return n}()};k.layout.Dimension=function(n){var n=Ext.clone(n);return function(){if(!Ext.isObject(n)){console.log("Dimension: config is not an object: "+n);return}if(!Ext.isString(n.dimension)){console.log("Dimension: name is not a string: "+n);return}if(n.dimension!==i.finals.dimension.category.objectName){var o=[];if(!Ext.isArray(n.items)){console.log("Dimension: items is not an array: "+n);return}for(var p=0;p0)){alert("No values found");return}if(n.headers.length!==n.rows[0].length){console.log("Response: headers.length !== rows[0].length")}return n}()}}());(function(){j.prototype={};j.prototype.array={};j.prototype.array.getLength=function(o,n){if(!Ext.isArray(o)){if(!n){console.log("support.prototype.array.getLength: not an array")}return null}return o.length};j.prototype.array.sort=function(p,o,n){if(!j.prototype.array.getLength(p)){return}n=n||"name";p.sort(function(r,q){if(Ext.isObject(r)&&Ext.isObject(q)&&n){r=r[n];q=q[n]}if(Ext.isString(r)&&Ext.isString(q)){r=r.toLowerCase();q=q.toLowerCase();if(o==="DESC"){return rq?-1:0)}else{return rq?1:0)}}else{if(Ext.isNumber(r)&&Ext.isNumber(q)){return o==="DESC"?q-r:r-q}}return -1});return p};j.prototype.object={};j.prototype.object.getLength=function(n,q){if(!Ext.isObject(n)){if(!q){console.log("support.prototype.object.getLength: not an object")}return null}var p=0;for(var o in n){if(n.hasOwnProperty(o)){p++}}return p};j.prototype.object.hasObject=function(o,r,q){if(!j.prototype.object.getLength(o)){return null}for(var p in o){var n=o[p];if(o.hasOwnProperty(p)&&n[r]===q){return true}}return null};j.prototype.str={};j.prototype.str.replaceAll=function(p,o,n){return p.replace(new RegExp(o,"g"),n)};j.prototype.str.toggleDirection=function(n){return n==="DESC"?"ASC":"DESC"};j.prototype.number={};j.prototype.number.getNumberOfDecimals=function(n){var o=new String(n);return(o.indexOf(".")>-1)?(o.length-o.indexOf(".")-1):0};j.prototype.number.roundIf=function(p,n){p=parseFloat(p);n=parseFloat(n);if(Ext.isNumber(p)&&Ext.isNumber(n)){var o=j.prototype.number.getNumberOfDecimals(p);return o>n?Ext.Number.toFixed(p,n):p}return p};j.prototype.number.prettyPrint=function(n,o){o=o||"space";if(o==="none"){return n}return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,i.pivot.digitGroupSeparator[o])};j.color={};j.color.hexToRgb=function(p){var o=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,n;p=p.replace(o,function(s,u,t,q){return u+u+t+t+q+q});n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(p);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null}}());(function(){g.layout={};g.layout.cleanDimensionArray=function(o){if(!j.prototype.array.getLength(o)){return null}var p=[];for(var n=0;nr[p]){return 1}return 0});for(var o=0,n;o':"")+o.names[n[r]]+(s?"":"")+" / "}}q+=o.names[u];return q};g.layout.getExtendedLayout=function(s){var s=Ext.clone(s),u;u={columns:[],rows:[],filters:[],columnObjectNames:[],columnDimensionNames:[],rowObjectNames:[],rowDimensionNames:[],axisDimensions:[],axisObjectNames:[],axisDimensionNames:[],sortedAxisDimensionNames:[],filterDimensions:[],filterObjectNames:[],filterDimensionNames:[],sortedFilterDimensions:[],dimensions:[],objectNames:[],dimensionNames:[],objectNameDimensionsMap:{},objectNameItemsMap:{},objectNameIdsMap:{},dimensionNameDimensionsMap:{},dimensionNameItemsMap:{},dimensionNameIdsMap:{},dimensionNameSortedIdsMap:{},sortableIdObjects:[]};Ext.applyIf(u,s);if(s.columns){for(var q=0,r,t,n;q1){for(var U=1,W,O;U1){for(var U=1,F;U1?j.prototype.array.sort(Ext.clone(s))[1]:y,J=N[N.length-1];for(var U=0,V,C,p,G=[];U0){p=true;y[t]=y[t].substr(0,x)}}y=Ext.Array.unique(y)}if(s!==z){r+=":"+y.join(";")}if(v<(u.length-1)){r+="&"}}if(p){r+="&dimension="+i.finals.dimension.category.dimensionName}if(Ext.isArray(B)&&B.length){for(var v=0,w;v8000?"8000":(o.length>4000?"4000":"2000");p="Too many items selected (url has "+o.length+" characters). Please reduce to less than "+n+" characters."}p+="\n\nHint: A good way to reduce the number of items is to use relative periods and level/group organisation unit selection modes.";alert(p)};h.pivot={};h.pivot.getHtml=function(C,p,I,B){var v,D,n,o,F,s,q,u,z,E,K,t=function(L){if(!L){return null}var M=L.xItems.unique;if(M){return M.length<2?1:(L.size/M[0].length)}return null},H=t(I),A=t(B),y=[],J=[],r=[],x={},w=Ext.isObject(C.legendSet)&&Ext.isArray(C.legendSet.mapLegends)&&C.legendSet.mapLegends.length,G;v=function(L,M){M=M||2;return parseFloat(j.prototype.number.roundIf(L,2)).toString()};D=function(O,X){var U,V,R,S,M,N,Z,L=Ext.isObject(O)&&Ext.isString(O.type)&&O.type.substr(0,5)==="value"&&!O.empty,T=Ext.isObject(O)&&Ext.isString(O.type)&&O.type==="value"&&!O.empty,Y="",Q="";if(!Ext.isObject(O)){return""}if(L&&C.legendSet){var W=parseFloat(O.value);V=C.legendSet.mapLegends;for(var P=0;P'+M+"";Q+='
';Q+='
 
';Q+="
"}else{Q+='style="padding:'+N+"; font-size:"+Z+';">'+M+""}return Q};n=function(L){return !!C.showSubTotals&&L&&L.dims>1};o=function(){return !!C.showTotals};doSortableColumnHeaders=function(){return(B&&B.dims===1)};F=function(){var T=[],L;L=function(){return(I&&B)?D({cls:"pivot-dim-empty cursor-default",colSpan:B.dims,rowSpan:I.dims,htmlValue:" "}):""};if(!(I&&Ext.isObject(I))){return T}for(var Q=0,S;Q';for(var L=0;L"+G[L].join("")+""}return M+=""};return function(){G=Ext.Array.clean([].concat(F()||[],s()||[],E()||[]));return{html:K(G),uuidDimUuidsMap:x}}()}}());(function(){if(Ext.isArray(m.dimensions)){j.prototype.array.sort(m.dimensions);for(var n=0,o;n0)){alert("No values found");return}if(n.headers.length!==n.rows[0].length){console.log("Response: headers.length !== rows[0].length")}return n}()}}());(function(){j.prototype={};j.prototype.array={};j.prototype.array.getLength=function(o,n){if(!Ext.isArray(o)){if(!n){console.log("support.prototype.array.getLength: not an array")}return null}return o.length};j.prototype.array.sort=function(p,o,n){if(!j.prototype.array.getLength(p)){return}n=n||"name";p.sort(function(r,q){if(Ext.isObject(r)&&Ext.isObject(q)&&n){r=r[n];q=q[n]}if(Ext.isString(r)&&Ext.isString(q)){r=r.toLowerCase();q=q.toLowerCase();if(o==="DESC"){return rq?-1:0)}else{return rq?1:0)}}else{if(Ext.isNumber(r)&&Ext.isNumber(q)){return o==="DESC"?q-r:r-q}}return -1});return p};j.prototype.object={};j.prototype.object.getLength=function(n,q){if(!Ext.isObject(n)){if(!q){console.log("support.prototype.object.getLength: not an object")}return null}var p=0;for(var o in n){if(n.hasOwnProperty(o)){p++}}return p};j.prototype.object.hasObject=function(o,r,q){if(!j.prototype.object.getLength(o)){return null}for(var p in o){var n=o[p];if(o.hasOwnProperty(p)&&n[r]===q){return true}}return null};j.prototype.str={};j.prototype.str.replaceAll=function(p,o,n){return p.replace(new RegExp(o,"g"),n)};j.prototype.str.toggleDirection=function(n){return n==="DESC"?"ASC":"DESC"};j.prototype.number={};j.prototype.number.getNumberOfDecimals=function(n){var o=new String(n);return(o.indexOf(".")>-1)?(o.length-o.indexOf(".")-1):0};j.prototype.number.roundIf=function(p,n){p=parseFloat(p);n=parseFloat(n);if(Ext.isNumber(p)&&Ext.isNumber(n)){var o=j.prototype.number.getNumberOfDecimals(p);return o>n?Ext.Number.toFixed(p,n):p}return p};j.prototype.number.prettyPrint=function(n,o){o=o||"space";if(o==="none"){return n}return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g,i.pivot.digitGroupSeparator[o])};j.color={};j.color.hexToRgb=function(p){var o=/^#?([a-f\d])([a-f\d])([a-f\d])$/i,n;p=p.replace(o,function(s,u,t,q){return u+u+t+t+q+q});n=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(p);return n?{r:parseInt(n[1],16),g:parseInt(n[2],16),b:parseInt(n[3],16)}:null}}());(function(){g.layout={};g.layout.cleanDimensionArray=function(o){if(!j.prototype.array.getLength(o)){return null}var p=[];for(var n=0;nr[p]){return 1}return 0});for(var o=0,n;o':"")+o.names[n[r]]+(s?"":"")+" / "}}q+=o.names[u];return q};g.layout.getExtendedLayout=function(s){var s=Ext.clone(s),u;u={columns:[],rows:[],filters:[],columnObjectNames:[],columnDimensionNames:[],rowObjectNames:[],rowDimensionNames:[],axisDimensions:[],axisObjectNames:[],axisDimensionNames:[],sortedAxisDimensionNames:[],filterDimensions:[],filterObjectNames:[],filterDimensionNames:[],sortedFilterDimensions:[],dimensions:[],objectNames:[],dimensionNames:[],objectNameDimensionsMap:{},objectNameItemsMap:{},objectNameIdsMap:{},dimensionNameDimensionsMap:{},dimensionNameItemsMap:{},dimensionNameIdsMap:{},dimensionNameSortedIdsMap:{},dimensionNameAxisMap:{}};Ext.applyIf(u,s);if(s.columns){for(var q=0,r,t,n;q1){for(var V=1,X,P;V1){for(var V=1,A;V1?j.prototype.array.sort(Ext.clone(s))[1]:z,D=O[O.length-1];for(var V=0,W,F,p,J=[];V0){p=true;z[u]=z[u].substr(0,y)}}z=Ext.Array.unique(z)}if(s!==A){r+=":"+z.join(";")}if(w<(v.length-1)){r+="&"}}if(p){r+="&dimension="+i.finals.dimension.category.dimensionName}if(Ext.isArray(C)&&C.length){for(var w=0,x;w8000?"8000":(o.length>4000?"4000":"2000");p="Too many items selected (url has "+o.length+" characters). Please reduce to less than "+n+" characters."}p+="\n\nHint: A good way to reduce the number of items is to use relative periods and level/group organisation unit selection modes.";alert(p)};h.pivot={};h.pivot.sort=function(t,y,n){var y=Ext.clone(y),o=t.sorting.id,r=t.rows[0],p=y.idValueMap,u=t.sorting?t.sorting.direction:"DESC",s;r.ids=[];if(Ext.isString(o)){o=o.toLowerCase()==="total"?"total_":o}else{if(Ext.isNumber(o)){if(o===0){o="total_"}else{o=n.ids[parseInt(o)-1]}}else{return t}}for(var q=0,x,w,v;q'+N+"";R+='
';R+='
 
';R+="
"}else{R+='style="padding:'+O+"; font-size:"+aa+';">'+N+""}return R};n=function(M){return !!D.showSubTotals&&M&&M.dims>1};o=function(){return !!D.showTotals};doSortableColumnHeaders=function(){return(C&&C.dims===1)};G=function(){var U=[],M;M=function(){return(J&&C)?E({cls:"pivot-dim-empty cursor-default",colSpan:C.dims,rowSpan:J.dims,htmlValue:" "}):""};if(!(J&&Ext.isObject(J))){return U}for(var R=0,T;R';for(var M=0;M"+H[M].join("")+""}return N+=""};return function(){H=Ext.Array.clean([].concat(G()||[],t()||[],F()||[]));return{html:L(H),uuidDimUuidsMap:y,xColAxis:J,xRowAxis:C,tdCount:q}}()}}());(function(){if(Ext.isArray(m.dimensions)){j.prototype.array.sort(m.dimensions);for(var n=0,o;nAggregated values
Show aggregated event report', - style: 'margin-right:1px', + column = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.column, + icon: 'images/column.png', + name: ns.core.conf.finals.chart.column, + tooltipText: NS.i18n.column_chart, pressed: true, listeners: { - mouseout: function(cmp) { - cmp.addCls('x-btn-default-toolbar-small-over'); - } - } - }); - paramButtonMap[aggregateButton.param] = aggregateButton; - - caseButton = Ext.create('Ext.button.Button', { - width: 224, - param: 'individual_cases', - text: 'Individual cases
Show case-based event report', - style: 'margin-right:1px', - listeners: { - mouseout: function(cmp) { - cmp.addCls('x-btn-default-toolbar-small-over'); - } - } - }); - paramButtonMap[caseButton.param] = caseButton; - - typeToolbar = Ext.create('Ext.toolbar.Toolbar', { - style: 'padding:1px; background:#f5f5f5; border:0 none', - height: 41, - getType: function() { - return aggregateButton.pressed ? aggregateButton.param : caseButton.param; - }, - setType: function(dataType) { - var button = paramButtonMap[dataType]; - - if (button) { - button.toggle(true); + added: buttonAddedListener + } + }); + + stackedcolumn = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.stackedcolumn, + icon: 'images/column-stacked.png', + name: ns.core.conf.finals.chart.stackedcolumn, + tooltipText: NS.i18n.stacked_column_chart, + listeners: { + added: buttonAddedListener + } + }); + + bar = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.bar, + icon: 'images/bar.png', + name: ns.core.conf.finals.chart.bar, + tooltipText: NS.i18n.bar_chart, + listeners: { + added: buttonAddedListener + } + }); + + stackedbar = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.stackedbar, + icon: 'images/bar-stacked.png', + name: ns.core.conf.finals.chart.stackedbar, + tooltipText: NS.i18n.stacked_bar_chart, + listeners: { + added: buttonAddedListener + } + }); + + line = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.line, + icon: 'images/line.png', + name: ns.core.conf.finals.chart.line, + tooltipText: NS.i18n.line_chart, + listeners: { + added: buttonAddedListener + } + }); + + area = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.area, + icon: 'images/area.png', + name: ns.core.conf.finals.chart.area, + tooltipText: NS.i18n.area_chart, + listeners: { + added: buttonAddedListener + } + }); + + pie = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.pie, + icon: 'images/pie.png', + name: ns.core.conf.finals.chart.pie, + tooltipText: NS.i18n.pie_chart, + listeners: { + added: buttonAddedListener + } + }); + + radar = Ext.create('Ext.button.Button', { + xtype: 'button', + chartType: ns.core.conf.finals.chart.radar, + icon: 'images/radar.png', + name: ns.core.conf.finals.chart.radar, + tooltipText: NS.i18n.radar_chart, + listeners: { + added: buttonAddedListener + } + }); + + chartType = Ext.create('Ext.toolbar.Toolbar', { + height: 45, + style: 'padding-top:0px; border-style:none', + getChartType: function() { + for (var i = 0; i < buttons.length; i++) { + if (buttons[i].pressed) { + return buttons[i].chartType; + } + } + }, + setChartType: function(type) { + for (var i = 0; i < buttons.length; i++) { + if (buttons[i].chartType === type) { + buttons[i].toggle(true); + } } }, defaults: { height: 40, - toggleGroup: 'mode', - cls: 'x-btn-default-toolbar-small-over', + toggleGroup: 'charttype', handler: function(b) { - onTypeClick(b); - } - }, - items: [ - aggregateButton, - caseButton - ], - listeners: { - added: function() { - ns.app.typeToolbar = this; - } - } - }); - - onTypeClick = function(button) { - if (!button.pressed) { - button.toggle(); - } - - update(); + if (!b.pressed) { + b.toggle(); + } + }, + listeners: { + afterrender: function(b) { + if (b.xtype === 'button') { + Ext.create('Ext.tip.ToolTip', { + target: b.getEl(), + html: b.tooltipText, + 'anchor': 'bottom' + }); + } + } + } + }, + items: [ + { + xtype: 'label', + text: NS.i18n.chart_type, + style: 'font-size:11px; font-weight:bold; padding:13px 8px 0 6px' + }, + column, + stackedcolumn, + bar, + stackedbar, + line, + area, + pie, + radar + ] + }); + + getDimensionStore = function() { + return Ext.create('Ext.data.Store', { + fields: ['id', 'name'], + data: function() { + var data = [ + {id: dimConf.data.dimensionName, name: dimConf.data.name}, + {id: dimConf.period.dimensionName, name: dimConf.period.name}, + {id: dimConf.organisationUnit.dimensionName, name: dimConf.organisationUnit.name} + ]; + + return data.concat(Ext.clone(ns.core.init.dimensions)); + }() + }); }; + colStore = getDimensionStore(); + ns.app.stores.col = colStore; + + rowStore = getDimensionStore(); + ns.app.stores.row = rowStore; + + filterStore = getDimensionStore(); + ns.app.stores.filter = filterStore; + + series = Ext.create('Ext.form.field.ComboBox', { + cls: 'ns-combo', + baseBodyCls: 'small', + style: 'margin-bottom:0', + name: ns.core.conf.finals.chart.series, + queryMode: 'local', + editable: false, + valueField: 'id', + displayField: 'name', + width: (ns.core.conf.layout.west_fieldset_width / 3), + value: ns.core.conf.finals.dimension.data.dimensionName, + filterNext: function() { + category.filter(this.getValue()); + filter.filter([this.getValue(), category.getValue()]); + }, + store: colStore, + listeners: { + added: function(cb) { + cb.filterNext(); + }, + select: function(cb) { + cb.filterNext(); + } + } + }); + + category = Ext.create('Ext.form.field.ComboBox', { + cls: 'ns-combo', + baseBodyCls: 'small', + style: 'margin-bottom:0', + name: ns.core.conf.finals.chart.category, + queryMode: 'local', + editable: false, + lastQuery: '', + valueField: 'id', + displayField: 'name', + width: (ns.core.conf.layout.west_fieldset_width / 3), + value: ns.core.conf.finals.dimension.period.dimensionName, + filter: function(value) { + if (Ext.isString(value)) { + if (value === this.getValue()) { + this.clearValue(); + } + + this.store.clearFilter(); + + this.store.filterBy(function(record, id) { + return id !== value; + }); + } + }, + filterNext: function() { + filter.filter([series.getValue(), this.getValue()]); + }, + store: rowStore, + listeners: { + added: function(cb) { + cb.filterNext(); + }, + select: function(cb) { + cb.filterNext(); + } + } + }); + + filter = Ext.create('Ext.form.field.ComboBox', { + cls: 'ns-combo', + multiSelect: true, + baseBodyCls: 'small', + style: 'margin-bottom:0', + name: ns.core.conf.finals.chart.filter, + queryMode: 'local', + editable: false, + lastQuery: '', + valueField: 'id', + displayField: 'name', + width: (ns.core.conf.layout.west_fieldset_width / 3) + 1, + value: ns.core.conf.finals.dimension.organisationUnit.dimensionName, + filter: function(values) { + var a = Ext.clone(this.getValue()), + b = []; + + for (var i = 0; i < a.length; i++) { + if (!Ext.Array.contains(values, a[i])) { + b.push(a[i]); + } + } + + this.clearValue(); + this.setValue(b); + + this.store.filterBy(function(record, id) { + return !Ext.Array.contains(values, id); + }); + }, + store: filterStore, + listeners: { + beforedeselect: function(cb) { + return cb.getValue().length !== 1; + } + } + }); + + layout = Ext.create('Ext.toolbar.Toolbar', { + id: 'chartlayout_tb', + style: 'padding:2px 0 0 1px; background:#f5f5f5; border:0 none; border-top:1px dashed #ccc; border-bottom:1px solid #ccc', + height: 45, + items: [ + { + xtype: 'container', + bodyStyle: 'border-style:none; background-color:transparent; padding:0', + style: 'margin:0', + items: [ + { + xtype: 'label', + text: NS.i18n.series, + style: 'font-size:11px; font-weight:bold; padding:0 4px' + }, + { bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' }, + series + ] + }, + { + xtype: 'container', + bodyStyle: 'border-style:none; background-color:transparent; padding:0', + style: 'margin:0', + items: [ + { + xtype: 'label', + text: NS.i18n.category, + style: 'font-size:11px; font-weight:bold; padding:0 4px' + }, + { bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' }, + category + ] + }, + { + xtype: 'container', + bodyStyle: 'border-style:none; background-color:transparent; padding:0', + items: [ + { + xtype: 'label', + text: NS.i18n.filters, + style: 'font-size:11px; font-weight:bold; padding:0 4px' + }, + { bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' }, + filter + ] + } + ] + }); + widget = LayerWidgetEvent(); accordion = Ext.create('Ext.panel.Panel', { @@ -6441,8 +6693,6 @@ } }); - - getLayoutWindow = function(dataType) { if (dataType === 'aggregated_values') { return ns.app.aggregateLayoutWindow;