=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]+" | "+x[C]+" |
"}}y+="
";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]+" | "+x[C]+" |
"}}y+="
";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";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";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;