dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #15310
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 5492: (DV) Favorites implemented. Work in progress.
Merge authors:
Jan Henrik Øverland (janhenrik-overland)
------------------------------------------------------------
revno: 5492 [merge]
committer: Jan Henrik Overland <janhenrik.overland@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2011-12-19 23:32:46 +0100
message:
(DV) Favorites implemented. Work in progress.
removed:
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesPluginAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesPluginAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValues.vm
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValuesPlugin.vm
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValues.vm
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValuesPlugin.vm
added:
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/AddOrUpdateChartAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/DeleteChartsAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable2.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/edit.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/favorite.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf2.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png2.png
modified:
dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java
dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml
dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java
dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/META-INF/dhis/beans.xml
dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/struts.xml
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png.png
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/lib/ext/resources/themes/images/gray/form/text-bg.gif
dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2011-12-15 11:34:43 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/startup/TableAlteror.java 2011-12-19 19:04:38 +0000
@@ -262,6 +262,7 @@
executeSql( "ALTER TABLE chart DROP COLUMN individualmonthsthisyear" );
executeSql( "ALTER TABLE chart DROP COLUMN individualquartersthisyear" );
executeSql( "ALTER TABLE chart RENAME COLUMN title TO name" );
+ executeSql( "ALTER TABLE chart ALTER COLUMN dimension DROP NOT NULL" );
executeSql( "ALTER TABLE datamartexport DROP COLUMN last3months" );
executeSql( "ALTER TABLE datamartexport DROP COLUMN last6months" );
=== modified file 'dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml'
--- dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml 2011-12-06 17:41:41 +0000
+++ dhis-2/dhis-services/dhis-service-reporting/src/main/resources/org/hisp/dhis/chart/hibernate/Chart.hbm.xml 2011-12-15 11:07:16 +0000
@@ -91,12 +91,19 @@
<component name="relatives">
<property name="reportingMonth" />
+ <property name="reportingBimonth" />
+ <property name="reportingQuarter" />
<property name="monthsThisYear" />
<property name="quartersThisYear" />
<property name="thisYear" />
<property name="monthsLastYear" />
<property name="quartersLastYear" />
<property name="lastYear" />
+ <property name="last5Years" />
+ <property name="last12Months" />
+ <property name="last6BiMonths" />
+ <property name="last4Quarters" />
+ <property name="last2SixMonths" />
</component>
<property name="userOrganisationUnit" not-null="true" />
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/AddOrUpdateChartAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/AddOrUpdateChartAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/AddOrUpdateChartAction.java 2011-12-19 21:47:47 +0000
@@ -0,0 +1,285 @@
+package org.hisp.dhis.visualizer.action;
+
+/*
+ * Copyright (c) 2004-2010, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.hisp.dhis.chart.Chart;
+import org.hisp.dhis.chart.ChartService;
+import org.hisp.dhis.dataelement.DataElement;
+import org.hisp.dhis.dataelement.DataElementService;
+import org.hisp.dhis.indicator.Indicator;
+import org.hisp.dhis.indicator.IndicatorService;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.organisationunit.OrganisationUnitService;
+import org.hisp.dhis.period.RelativePeriods;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Jan Henrik Overland
+ */
+public class AddOrUpdateChartAction
+ implements Action
+{
+ // -------------------------------------------------------------------------
+ // Dependencies
+ // -------------------------------------------------------------------------
+
+ private ChartService chartService;
+
+ public void setChartService( ChartService chartService )
+ {
+ this.chartService = chartService;
+ }
+
+ private IndicatorService indicatorService;
+
+ public void setIndicatorService( IndicatorService indicatorService )
+ {
+ this.indicatorService = indicatorService;
+ }
+
+ private DataElementService dataElementService;
+
+ public void setDataElementService( DataElementService dataElementService )
+ {
+ this.dataElementService = dataElementService;
+ }
+
+ private OrganisationUnitService organisationUnitService;
+
+ public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )
+ {
+ this.organisationUnitService = organisationUnitService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Input
+ // -------------------------------------------------------------------------
+
+ private String uid;
+
+ public void setUid( String uid )
+ {
+ this.uid = uid;
+ }
+
+ private String name;
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ private String type;
+
+ public void setType( String type )
+ {
+ this.type = type;
+ }
+
+ private String series;
+
+ public void setSeries( String series )
+ {
+ this.series = series;
+ }
+
+ private String category;
+
+ public void setCategory( String category )
+ {
+ this.category = category;
+ }
+
+ private String filter;
+
+ public void setFilter( String filter )
+ {
+ this.filter = filter;
+ }
+
+ private Collection<Integer> indicatorIds;
+
+ public void setIndicatorIds( Collection<Integer> indicatorIds )
+ {
+ this.indicatorIds = indicatorIds;
+ }
+
+ private Collection<Integer> dataElementIds;
+
+ public void setDataElementIds( Collection<Integer> dataElementIds )
+ {
+ this.dataElementIds = dataElementIds;
+ }
+
+ private boolean lastMonth;
+
+ public void setLastMonth( boolean lastMonth )
+ {
+ this.lastMonth = lastMonth;
+ }
+
+ private boolean last12Months;
+
+ public void setLast12Months( boolean last12Months )
+ {
+ this.last12Months = last12Months;
+ }
+
+ private boolean lastQuarter;
+
+ public void setLastQuarter( boolean lastQuarter )
+ {
+ this.lastQuarter = lastQuarter;
+ }
+
+ private boolean last4Quarters;
+
+ public void setLast4Quarters( boolean last4Quarters )
+ {
+ this.last4Quarters = last4Quarters;
+ }
+
+ private boolean lastSixMonth;
+
+ public void setLastSixMonth( boolean lastSixMonth )
+ {
+ this.lastSixMonth = lastSixMonth;
+ }
+
+ private boolean last2SixMonths;
+
+ public void setLast2SixMonths( boolean last2SixMonths )
+ {
+ this.last2SixMonths = last2SixMonths;
+ }
+
+ private boolean thisYear;
+
+ public void setThisYear( boolean thisYear )
+ {
+ this.thisYear = thisYear;
+ }
+
+ private boolean last5Years;
+
+ public void setLast5Years( boolean last5Years )
+ {
+ this.last5Years = last5Years;
+ }
+
+ private Collection<Integer> organisationUnitIds;
+
+ public void setOrganisationUnitIds( Collection<Integer> organisationUnitIds )
+ {
+ this.organisationUnitIds = organisationUnitIds;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ public String execute()
+ throws Exception
+ {
+ Chart chart = null;
+
+ if ( uid != null )
+ {
+ chart = chartService.getChart( uid );
+ }
+ else
+ {
+ chart = new Chart();
+ }
+
+ if ( name != null )
+ {
+ chart.setName( name );
+ }
+
+ if ( type != null )
+ {
+ chart.setType( type );
+ }
+
+ if ( series != null )
+ {
+ chart.setSeries( series );
+ }
+
+ if ( category != null )
+ {
+ chart.setCategory( category );
+ }
+
+ if ( filter != null )
+ {
+ chart.setFilter( filter );
+ }
+
+ if ( indicatorIds != null )
+ {
+ chart.setIndicators( new ArrayList<Indicator>( indicatorService.getIndicators( indicatorIds ) ) );
+ }
+
+ if ( dataElementIds != null )
+ {
+ chart.setDataElements( new ArrayList<DataElement>( dataElementService.getDataElements( dataElementIds ) ) );
+ }
+
+ if ( lastMonth || last12Months || lastQuarter || last4Quarters || lastSixMonth || last2SixMonths
+ || thisYear || last5Years )
+ {
+ RelativePeriods rp = new RelativePeriods();
+ rp.setReportingMonth( lastMonth );
+ rp.setLast12Months( last12Months );
+ rp.setReportingQuarter( lastQuarter );
+ rp.setLast4Quarters( last4Quarters );
+ rp.setLastSixMonth( lastSixMonth );
+ rp.setLast2SixMonths( last2SixMonths );
+ rp.setThisYear( thisYear );
+ rp.setLast5Years( last5Years );
+
+ chart.setRelatives( rp );
+ }
+
+ if ( organisationUnitIds != null )
+ {
+ chart.setOrganisationUnits( new ArrayList<OrganisationUnit>( organisationUnitService
+ .getOrganisationUnits( organisationUnitIds ) ) );
+ }
+
+ chartService.saveOrUpdate( chart );
+
+ return SUCCESS;
+ }
+}
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/DeleteChartsAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/DeleteChartsAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/DeleteChartsAction.java 2011-12-14 19:46:03 +0000
@@ -0,0 +1,79 @@
+package org.hisp.dhis.visualizer.action;
+
+/*
+ * Copyright (c) 2004-2010, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ * be used to endorse or promote products derived from this software without
+ * specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+import java.util.Collection;
+import org.hisp.dhis.chart.ChartService;
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Jan Henrik Overland
+ */
+public class DeleteChartsAction
+ implements Action
+{
+ // -------------------------------------------------------------------------
+ // Dependencies
+ // -------------------------------------------------------------------------
+
+ private ChartService chartService;
+
+ public void setChartService( ChartService chartService )
+ {
+ this.chartService = chartService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Input
+ // -------------------------------------------------------------------------
+
+ private Collection<String> uids;
+
+ public void setUids( Collection<String> uids )
+ {
+ this.uids = uids;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ public String execute()
+ throws Exception
+ {
+ if ( uids != null )
+ {
+ for ( String uid : uids )
+ {
+ chartService.deleteChart( chartService.getChart( uid ) );
+ }
+ }
+
+ return SUCCESS;
+ }
+}
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesAction.java 2011-12-06 17:41:41 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesAction.java 1970-01-01 00:00:00 +0000
@@ -1,105 +0,0 @@
-package org.hisp.dhis.visualizer.action;
-
-/*
- * Copyright (c) 2004-2010, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import java.util.Collection;
-
-import org.hisp.dhis.aggregation.AggregatedDataValue;
-import org.hisp.dhis.aggregation.AggregatedDataValueService;
-
-import com.opensymphony.xwork2.Action;
-
-/**
- * @author Jan Henrik Overland
- */
-public class GetAggregatedDataValuesAction
- implements Action
-{
- // -------------------------------------------------------------------------
- // Dependencies
- // -------------------------------------------------------------------------
-
- private AggregatedDataValueService aggregatedDataValueService;
-
- public void setAggregatedDataValueService( AggregatedDataValueService aggregatedDataValueService )
- {
- this.aggregatedDataValueService = aggregatedDataValueService;
- }
-
- // -------------------------------------------------------------------------
- // Input
- // -------------------------------------------------------------------------
-
- private Collection<Integer> dataElementIds;
-
- public void setDataElementIds( Collection<Integer> dataElementIds )
- {
- this.dataElementIds = dataElementIds;
- }
-
- private Collection<Integer> periodIds;
-
- public void setPeriodIds( Collection<Integer> periodIds )
- {
- this.periodIds = periodIds;
- }
-
- private Collection<Integer> organisationUnitIds;
-
- public void setOrganisationUnitIds( Collection<Integer> organisationUnitIds )
- {
- this.organisationUnitIds = organisationUnitIds;
- }
-
- // -------------------------------------------------------------------------
- // Output
- // -------------------------------------------------------------------------
-
- private Collection<AggregatedDataValue> object;
-
- public Collection<AggregatedDataValue> getObject()
- {
- return object;
- }
-
- // -------------------------------------------------------------------------
- // Action implementation
- // -------------------------------------------------------------------------
-
- public String execute()
- throws Exception
- {
- if ( dataElementIds != null && periodIds != null && organisationUnitIds != null )
- {
- object = aggregatedDataValueService
- .getAggregatedDataValueTotals( dataElementIds, periodIds, organisationUnitIds );
- }
-
- return SUCCESS;
- }
-}
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesPluginAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesPluginAction.java 2011-12-06 15:57:32 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedDataValuesPluginAction.java 1970-01-01 00:00:00 +0000
@@ -1,227 +0,0 @@
-package org.hisp.dhis.visualizer.action;
-
-/*
- * Copyright (c) 2004-2010, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.hisp.dhis.aggregation.AggregatedDataValue;
-import org.hisp.dhis.aggregation.AggregatedDataValueService;
-import org.hisp.dhis.dataelement.DataElementService;
-import org.hisp.dhis.i18n.I18nFormat;
-import org.hisp.dhis.organisationunit.OrganisationUnitService;
-import org.hisp.dhis.period.Period;
-import org.hisp.dhis.period.PeriodService;
-import org.hisp.dhis.period.RelativePeriods;
-
-import com.opensymphony.xwork2.Action;
-
-/**
- * @author Jan Henrik Overland
- */
-public class GetAggregatedDataValuesPluginAction
- implements Action
-{
- // -------------------------------------------------------------------------
- // Dependencies
- // -------------------------------------------------------------------------
-
- private AggregatedDataValueService aggregatedDataValueService;
-
- public void setAggregatedDataValueService( AggregatedDataValueService aggregatedDataValueService )
- {
- this.aggregatedDataValueService = aggregatedDataValueService;
- }
-
- private DataElementService dataElementService;
-
- public void setDataElementService( DataElementService dataElementService )
- {
- this.dataElementService = dataElementService;
- }
-
- private PeriodService periodService;
-
- public void setPeriodService( PeriodService periodService )
- {
- this.periodService = periodService;
- }
-
- private OrganisationUnitService organisationUnitService;
-
- public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )
- {
- this.organisationUnitService = organisationUnitService;
- }
-
- private I18nFormat format;
-
- public void setFormat( I18nFormat format )
- {
- this.format = format;
- }
-
- // -------------------------------------------------------------------------
- // Input
- // -------------------------------------------------------------------------
-
- private Collection<Integer> dataElementIds;
-
- public void setDataElementIds( Collection<Integer> dataElementIds )
- {
- this.dataElementIds = dataElementIds;
- }
-
- private Collection<Integer> organisationUnitIds;
-
- public void setOrganisationUnitIds( Collection<Integer> organisationUnitIds )
- {
- this.organisationUnitIds = organisationUnitIds;
- }
-
- private boolean lastMonth;
-
- public void setLastMonth( boolean lastMonth )
- {
- this.lastMonth = lastMonth;
- }
-
- private boolean monthsThisYear;
-
- public void setMonthsThisYear( boolean monthsThisYear )
- {
- this.monthsThisYear = monthsThisYear;
- }
-
- private boolean monthsLastYear;
-
- public void setMonthsLastYear( boolean monthsLastYear )
- {
- this.monthsLastYear = monthsLastYear;
- }
-
- private boolean lastQuarter;
-
- public void setLastQuarter( boolean lastQuarter )
- {
- this.lastQuarter = lastQuarter;
- }
-
- private boolean quartersThisYear;
-
- public void setQuartersThisYear( boolean quartersThisYear )
- {
- this.quartersThisYear = quartersThisYear;
- }
-
- private boolean quartersLastYear;
-
- public void setQuartersLastYear( boolean quartersLastYear )
- {
- this.quartersLastYear = quartersLastYear;
- }
-
- private boolean thisYear;
-
- public void setThisYear( boolean thisYear )
- {
- this.thisYear = thisYear;
- }
-
- private boolean lastYear;
-
- public void setLastYear( boolean lastYear )
- {
- this.lastYear = lastYear;
- }
-
- private boolean lastFiveYears;
-
- public void setLastFiveYears( boolean lastFiveYears )
- {
- this.lastFiveYears = lastFiveYears;
- }
-
- // -------------------------------------------------------------------------
- // Output
- // -------------------------------------------------------------------------
-
- private Collection<AggregatedDataValue> object;
-
- public Collection<AggregatedDataValue> getObject()
- {
- return object;
- }
-
- // -------------------------------------------------------------------------
- // Action implementation
- // -------------------------------------------------------------------------
-
- public String execute()
- throws Exception
- {
- if ( dataElementIds != null
- && organisationUnitIds != null
- && (lastMonth || monthsThisYear || monthsLastYear || lastQuarter || quartersThisYear || quartersLastYear
- || thisYear || lastYear || lastFiveYears) )
- {
- RelativePeriods rp = new RelativePeriods();
- rp.setReportingMonth( lastMonth );
- rp.setMonthsThisYear( monthsThisYear );
- rp.setMonthsLastYear( monthsLastYear );
- rp.setReportingQuarter( lastQuarter );
- rp.setQuartersThisYear( quartersThisYear );
- rp.setQuartersLastYear( quartersLastYear );
- rp.setThisYear( thisYear );
- rp.setLastYear( lastYear );
- rp.setLast5Years( lastFiveYears );
-
- Collection<Period> periods = rp.getRelativePeriods();
-
- Collection<Integer> periodIds = new ArrayList<Integer>();
-
- for ( Period period : periods )
- {
- periodIds.add( period.getId() );
- }
-
- object = aggregatedDataValueService
- .getAggregatedDataValueTotals( dataElementIds, periodIds, organisationUnitIds );
-
- for ( AggregatedDataValue value : object )
- {
- value.setDataElementName( dataElementService.getDataElement( value.getDataElementId() ).getName() );
- value.setPeriodName( format.formatPeriod( periodService.getPeriod( value.getPeriodId() ) ) );
- value.setOrganisationUnitName( organisationUnitService.getOrganisationUnit(
- value.getOrganisationUnitId() ).getName() );
- }
- }
-
- return SUCCESS;
- }
-}
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesAction.java 2011-11-21 12:44:20 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesAction.java 1970-01-01 00:00:00 +0000
@@ -1,105 +0,0 @@
-package org.hisp.dhis.visualizer.action;
-
-/*
- * Copyright (c) 2004-2010, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import java.util.Collection;
-
-import org.hisp.dhis.aggregation.AggregatedDataValueService;
-import org.hisp.dhis.aggregation.AggregatedIndicatorValue;
-
-import com.opensymphony.xwork2.Action;
-
-/**
- * @author Jan Henrik Overland
- */
-public class GetAggregatedIndicatorValuesAction
- implements Action
-{
- // -------------------------------------------------------------------------
- // Dependencies
- // -------------------------------------------------------------------------
-
- private AggregatedDataValueService aggregatedDataValueService;
-
- public void setAggregatedDataValueService( AggregatedDataValueService aggregatedDataValueService )
- {
- this.aggregatedDataValueService = aggregatedDataValueService;
- }
-
- // -------------------------------------------------------------------------
- // Input
- // -------------------------------------------------------------------------
-
- private Collection<Integer> indicatorIds;
-
- public void setIndicatorIds( Collection<Integer> indicatorIds )
- {
- this.indicatorIds = indicatorIds;
- }
-
- private Collection<Integer> periodIds;
-
- public void setPeriodIds( Collection<Integer> periodIds )
- {
- this.periodIds = periodIds;
- }
-
- private Collection<Integer> organisationUnitIds;
-
- public void setOrganisationUnitIds( Collection<Integer> organisationUnitIds )
- {
- this.organisationUnitIds = organisationUnitIds;
- }
-
- // -------------------------------------------------------------------------
- // Output
- // -------------------------------------------------------------------------
-
- private Collection<AggregatedIndicatorValue> object;
-
- public Collection<AggregatedIndicatorValue> getObject()
- {
- return object;
- }
-
- // -------------------------------------------------------------------------
- // Action implementation
- // -------------------------------------------------------------------------
-
- public String execute()
- throws Exception
- {
- if ( indicatorIds != null && periodIds != null && organisationUnitIds != null )
- {
- object = aggregatedDataValueService.getAggregatedIndicatorValues( indicatorIds, periodIds,
- organisationUnitIds );
- }
-
- return SUCCESS;
- }
-}
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesPluginAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesPluginAction.java 2011-11-12 14:18:22 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/GetAggregatedIndicatorValuesPluginAction.java 1970-01-01 00:00:00 +0000
@@ -1,227 +0,0 @@
-package org.hisp.dhis.visualizer.action;
-
-/*
- * Copyright (c) 2004-2010, University of Oslo
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- * * Redistributions of source code must retain the above copyright notice, this
- * list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * * Neither the name of the HISP project nor the names of its contributors may
- * be used to endorse or promote products derived from this software without
- * specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
- * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.hisp.dhis.aggregation.AggregatedDataValueService;
-import org.hisp.dhis.aggregation.AggregatedIndicatorValue;
-import org.hisp.dhis.i18n.I18nFormat;
-import org.hisp.dhis.indicator.IndicatorService;
-import org.hisp.dhis.organisationunit.OrganisationUnitService;
-import org.hisp.dhis.period.Period;
-import org.hisp.dhis.period.PeriodService;
-import org.hisp.dhis.period.RelativePeriods;
-
-import com.opensymphony.xwork2.Action;
-
-/**
- * @author Jan Henrik Overland
- */
-public class GetAggregatedIndicatorValuesPluginAction
- implements Action
-{
- // -------------------------------------------------------------------------
- // Dependencies
- // -------------------------------------------------------------------------
-
- private AggregatedDataValueService aggregatedDataValueService;
-
- public void setAggregatedDataValueService( AggregatedDataValueService aggregatedDataValueService )
- {
- this.aggregatedDataValueService = aggregatedDataValueService;
- }
-
- private IndicatorService indicatorService;
-
- public void setIndicatorService( IndicatorService indicatorService )
- {
- this.indicatorService = indicatorService;
- }
-
- private PeriodService periodService;
-
- public void setPeriodService( PeriodService periodService )
- {
- this.periodService = periodService;
- }
-
- private OrganisationUnitService organisationUnitService;
-
- public void setOrganisationUnitService( OrganisationUnitService organisationUnitService )
- {
- this.organisationUnitService = organisationUnitService;
- }
-
- private I18nFormat format;
-
- public void setFormat( I18nFormat format )
- {
- this.format = format;
- }
-
- // -------------------------------------------------------------------------
- // Input
- // -------------------------------------------------------------------------
-
- private Collection<Integer> indicatorIds;
-
- public void setIndicatorIds( Collection<Integer> indicatorIds )
- {
- this.indicatorIds = indicatorIds;
- }
-
- private Collection<Integer> organisationUnitIds;
-
- public void setOrganisationUnitIds( Collection<Integer> organisationUnitIds )
- {
- this.organisationUnitIds = organisationUnitIds;
- }
-
- private boolean lastMonth;
-
- public void setLastMonth( boolean lastMonth )
- {
- this.lastMonth = lastMonth;
- }
-
- private boolean monthsThisYear;
-
- public void setMonthsThisYear( boolean monthsThisYear )
- {
- this.monthsThisYear = monthsThisYear;
- }
-
- private boolean monthsLastYear;
-
- public void setMonthsLastYear( boolean monthsLastYear )
- {
- this.monthsLastYear = monthsLastYear;
- }
-
- private boolean lastQuarter;
-
- public void setLastQuarter( boolean lastQuarter )
- {
- this.lastQuarter = lastQuarter;
- }
-
- private boolean quartersThisYear;
-
- public void setQuartersThisYear( boolean quartersThisYear )
- {
- this.quartersThisYear = quartersThisYear;
- }
-
- private boolean quartersLastYear;
-
- public void setQuartersLastYear( boolean quartersLastYear )
- {
- this.quartersLastYear = quartersLastYear;
- }
-
- private boolean thisYear;
-
- public void setThisYear( boolean thisYear )
- {
- this.thisYear = thisYear;
- }
-
- private boolean lastYear;
-
- public void setLastYear( boolean lastYear )
- {
- this.lastYear = lastYear;
- }
-
- private boolean lastFiveYears;
-
- public void setLastFiveYears( boolean lastFiveYears )
- {
- this.lastFiveYears = lastFiveYears;
- }
-
- // -------------------------------------------------------------------------
- // Output
- // -------------------------------------------------------------------------
-
- private Collection<AggregatedIndicatorValue> object;
-
- public Collection<AggregatedIndicatorValue> getObject()
- {
- return object;
- }
-
- // -------------------------------------------------------------------------
- // Action implementation
- // -------------------------------------------------------------------------
-
- public String execute()
- throws Exception
- {
- if ( indicatorIds != null
- && organisationUnitIds != null
- && (lastMonth || monthsThisYear || monthsLastYear || lastQuarter || quartersThisYear || quartersLastYear
- || thisYear || lastYear || lastFiveYears) )
- {
- RelativePeriods rp = new RelativePeriods();
- rp.setReportingMonth( lastMonth );
- rp.setMonthsThisYear( monthsThisYear );
- rp.setMonthsLastYear( monthsLastYear );
- rp.setReportingQuarter( lastQuarter );
- rp.setQuartersThisYear( quartersThisYear );
- rp.setQuartersLastYear( quartersLastYear );
- rp.setThisYear( thisYear );
- rp.setLastYear( lastYear );
- rp.setLast5Years( lastFiveYears );
-
- Collection<Period> periods = periodService.reloadPeriods( rp.getRelativePeriods() );
-
- Collection<Integer> periodIds = new ArrayList<Integer>();
-
- for ( Period period : periods )
- {
- periodIds.add( period.getId() );
- }
-
- object = aggregatedDataValueService.getAggregatedIndicatorValues( indicatorIds, periodIds,
- organisationUnitIds );
-
- for ( AggregatedIndicatorValue value : object )
- {
- value.setIndicatorName( indicatorService.getIndicator( value.getIndicatorId() ).getName() );
- value.setPeriodName( format.formatPeriod( periodService.getPeriod( value.getPeriodId() ) ) );
- value.setOrganisationUnitName( organisationUnitService.getOrganisationUnit(
- value.getOrganisationUnitId() ).getName() );
- }
- }
-
- return SUCCESS;
- }
-}
\ No newline at end of file
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java 2011-10-11 12:11:00 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/java/org/hisp/dhis/visualizer/action/InitializeAction.java 2011-12-19 19:59:45 +0000
@@ -90,18 +90,11 @@
return lastMonth;
}
- private List<Period> monthsThisYear;
-
- public List<Period> getMonthsThisYear()
- {
- return monthsThisYear;
- }
+ private List<Period> last12Months;
- private List<Period> monthsLastYear;
-
- public List<Period> getMonthsLastYear()
+ public List<Period> getLast12Months()
{
- return monthsLastYear;
+ return last12Months;
}
private List<Period> lastQuarter;
@@ -111,18 +104,25 @@
return lastQuarter;
}
- private List<Period> quartersThisYear;
-
- public List<Period> getQuartersThisYear()
- {
- return quartersThisYear;
- }
-
- private List<Period> quartersLastYear;
-
- public List<Period> getQuartersLastYear()
- {
- return quartersLastYear;
+ private List<Period> last4Quarters;
+
+ public List<Period> getLast4Quarters()
+ {
+ return last4Quarters;
+ }
+
+ private List<Period> lastSixMonth;
+
+ public List<Period> getLastSixMonth()
+ {
+ return lastSixMonth;
+ }
+
+ private List<Period> last2SixMonths;
+
+ public List<Period> getLast2SixMonths()
+ {
+ return last2SixMonths;
}
private List<Period> thisYear;
@@ -132,18 +132,11 @@
return thisYear;
}
- private List<Period> lastYear;
-
- public List<Period> getLastYear()
- {
- return lastYear;
- }
-
- private List<Period> lastFiveYears;
-
- public List<Period> getLastFiveYears()
- {
- return lastFiveYears;
+ private List<Period> last5Years;
+
+ public List<Period> getLast5Years()
+ {
+ return last5Years;
}
// -------------------------------------------------------------------------
@@ -163,29 +156,26 @@
rp.clear().setReportingMonth( true );
lastMonth = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
- rp.clear().setMonthsThisYear( true );
- monthsThisYear = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
-
- rp.clear().setMonthsLastYear( true );
- monthsLastYear = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
+ rp.clear().setLast12Months( true );
+ last12Months = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
rp.clear().setReportingQuarter( true );
lastQuarter = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
- rp.clear().setQuartersThisYear( true );
- quartersThisYear = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
-
- rp.clear().setQuartersLastYear( true );
- quartersLastYear = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
+ rp.clear().setLast4Quarters( true );
+ last4Quarters = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
+
+ rp.clear().setLastSixMonth( true );
+ lastSixMonth = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
+
+ rp.clear().setLast2SixMonths( true );
+ last2SixMonths = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
rp.clear().setThisYear( true );
thisYear = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
- rp.clear().setLastYear( true );
- lastYear = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
-
rp.clear().setLast5Years( true );
- lastFiveYears = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
+ last5Years = periodService.reloadPeriods( setNames( rp.getRelativePeriods() ) );
return SUCCESS;
}
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/META-INF/dhis/beans.xml 2011-12-07 10:12:25 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/META-INF/dhis/beans.xml 2011-12-14 19:46:03 +0000
@@ -27,46 +27,6 @@
ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
</bean>
- <!-- AggregatedIndicatorValue -->
-
- <bean id="org.hisp.dhis.visualizer.action.GetAggregatedIndicatorValuesAction"
- class="org.hisp.dhis.visualizer.action.GetAggregatedIndicatorValuesAction"
- scope="prototype">
- <property name="aggregatedDataValueService"
- ref="org.hisp.dhis.aggregation.AggregatedDataValueService" />
- </bean>
-
- <bean id="org.hisp.dhis.visualizer.action.GetAggregatedIndicatorValuesPluginAction"
- class="org.hisp.dhis.visualizer.action.GetAggregatedIndicatorValuesPluginAction"
- scope="prototype">
- <property name="aggregatedDataValueService"
- ref="org.hisp.dhis.aggregation.AggregatedDataValueService" />
- <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
- <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
- <property name="organisationUnitService"
- ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
- </bean>
-
- <!-- AggregatedDataValue -->
-
- <bean id="org.hisp.dhis.visualizer.action.GetAggregatedDataValuesAction"
- class="org.hisp.dhis.visualizer.action.GetAggregatedDataValuesAction"
- scope="prototype">
- <property name="aggregatedDataValueService"
- ref="org.hisp.dhis.aggregation.AggregatedDataValueService" />
- </bean>
-
- <bean id="org.hisp.dhis.visualizer.action.GetAggregatedDataValuesPluginAction"
- class="org.hisp.dhis.visualizer.action.GetAggregatedDataValuesPluginAction"
- scope="prototype">
- <property name="aggregatedDataValueService"
- ref="org.hisp.dhis.aggregation.AggregatedDataValueService" />
- <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
- <property name="periodService" ref="org.hisp.dhis.period.PeriodService" />
- <property name="organisationUnitService"
- ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
- </bean>
-
<!-- Aggregated values -->
<bean id="org.hisp.dhis.visualizer.action.GetAggregatedValuesAction"
@@ -87,6 +47,24 @@
<property name="organisationUnitService"
ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
</bean>
+
+ <!-- Chart -->
+
+ <bean id="org.hisp.dhis.visualizer.action.AddOrUpdateChartAction"
+ class="org.hisp.dhis.visualizer.action.AddOrUpdateChartAction"
+ scope="prototype">
+ <property name="chartService" ref="org.hisp.dhis.chart.ChartService" />
+ <property name="indicatorService" ref="org.hisp.dhis.indicator.IndicatorService" />
+ <property name="dataElementService" ref="org.hisp.dhis.dataelement.DataElementService" />
+ <property name="organisationUnitService" ref="org.hisp.dhis.organisationunit.OrganisationUnitService" />
+ </bean>
+
+ <bean id="org.hisp.dhis.visualizer.action.DeleteChartsAction"
+ class="org.hisp.dhis.visualizer.action.DeleteChartsAction"
+ scope="prototype">
+ <property name="chartService"
+ ref="org.hisp.dhis.chart.ChartService" />
+ </bean>
<!-- Export -->
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/struts.xml 2011-12-07 10:12:25 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/resources/struts.xml 2011-12-14 13:52:15 +0000
@@ -31,36 +31,6 @@
/dhis-web-visualizer/jsonminOrganisationUnitChildren.vm</result>
</action>
- <!-- AggregatedIndicatorValue -->
-
- <action name="getAggregatedIndicatorValues"
- class="org.hisp.dhis.visualizer.action.GetAggregatedIndicatorValuesAction">
- <result name="success" type="velocity-json">
- /dhis-web-visualizer/jsonminAggregatedIndicatorValues.vm</result>
- </action>
-
- <action name="getAggregatedIndicatorValuesPlugin"
- class="org.hisp.dhis.visualizer.action.GetAggregatedIndicatorValuesPluginAction">
- <result name="success" type="velocity-json">
- /dhis-web-visualizer/jsonminAggregatedIndicatorValuesPlugin.vm</result>
- </action>
-
- <!-- AggregatedDataValue -->
-
- <action name="getAggregatedDataValues"
- class="org.hisp.dhis.visualizer.action.GetAggregatedDataValuesAction">
- <result name="success" type="velocity-json">
- /dhis-web-visualizer/jsonminAggregatedDataValues.vm</result>
- <result name="none" type="velocity-json">
- /dhis-web-visualizer/void.vm</result>
- </action>
-
- <action name="getAggregatedDataValuesPlugin"
- class="org.hisp.dhis.visualizer.action.GetAggregatedDataValuesPluginAction">
- <result name="success" type="velocity-json">
- /dhis-web-visualizer/jsonminAggregatedDataValuesPlugin.vm</result>
- </action>
-
<!-- Aggregated values -->
<action name="getAggregatedValues"
@@ -79,6 +49,20 @@
/dhis-web-visualizer/void.vm</result>
</action>
+ <!-- Chart -->
+
+ <action name="addOrUpdateChart"
+ class="org.hisp.dhis.visualizer.action.AddOrUpdateChartAction">
+ <result name="success" type="velocity-json">
+ /dhis-web-visualizer/void.vm</result>
+ </action>
+
+ <action name="deleteCharts"
+ class="org.hisp.dhis.visualizer.action.DeleteChartsAction">
+ <result name="success" type="velocity-json">
+ /dhis-web-visualizer/void.vm</result>
+ </action>
+
<!-- Export -->
<action name="exportImage" class="org.hisp.dhis.visualizer.action.ExportImageAction">
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js 2011-12-06 17:41:41 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/app.js 2011-12-19 22:15:46 +0000
@@ -9,12 +9,10 @@
jsonfy: function(r) {
r = Ext.JSON.decode(r.responseText);
var obj = {system: {rootNode: {id: r.rn[0], name: r.rn[1], level: 1}, periods: {}}};
- var keys1 = ['lastMonth', 'monthsThisYear', 'monthsLastYear', 'lastQuarter', 'quartersThisYear', 'quartersLastYear', 'thisYear', 'lastYear', 'lastFiveYears'];
- var keys2 = ['lm', 'mty', 'mly', 'lq', 'qty', 'qly', 'ty', 'ly', 'lfy'];
- for (var i = 0; i < keys1.length; i++) {
- obj.system.periods[keys1[i]] = [];
- for (var j = 0; j < r.p[keys2[i]].length; j++) {
- obj.system.periods[keys1[i]].push({id: r.p[keys2[i]][j][0], name: r.p[keys2[i]][j][1]});
+ for (var relative in r.p) {
+ obj.system.periods[relative] = [];
+ for (var i = 0; i < r.p[relative].length; i++) {
+ obj.system.periods[relative].push({id: r.p[relative][i][0], name: r.p[relative][i][1]});
}
}
return obj;
@@ -22,10 +20,23 @@
},
finals: {
ajax: {
- url_visualizer: '../',
- url_commons: '../../dhis-web-commons-ajax-json/',
- url_portal: '../../dhis-web-portal/',
- url_data: 'getAggregatedValues.action'
+ path_visualizer: '../',
+ path_commons: '../../dhis-web-commons-ajax-json/',
+ path_api: '../../api/',
+ path_portal: '../../dhis-web-portal/',
+ initialize: 'initialize.action',
+ redirect: 'redirect.action',
+ data_get: 'getAggregatedValues.action',
+ indicator_get: 'getIndicatorsMinified.action',
+ indicatorgroup_get: 'getIndicatorGroupsMinified.action',
+ dataelement_get: 'getDataElementsMinified.action',
+ dataelementgroup_get: 'getDataElementGroupsMinified.action',
+ dataelement_get: 'getDataElementsMinified.action',
+ organisationunitchildren_get: 'getOrganisationUnitChildren.action',
+ favorite_addorupdate: 'addOrUpdateChart.action',
+ favorite_get: 'charts/',
+ favorite_getall: 'charts.json?links=false',
+ favorite_delete: 'deleteCharts.action'
},
dimension: {
data: {
@@ -65,22 +76,25 @@
image: {
png: 'png',
pdf: 'pdf'
+ },
+ cmd: {
+ init: 'init',
+ id: 'id'
}
},
chart: {
inset: 30
},
- style: {
- label: {
- period_group: 'font:bold 11px arial; color:#444; line-height:20px'
- }
- },
layout: {
west_width: 424,
west_fieldset_width: 402,
center_tbar_height: 31,
east_tbar_height: 31,
- east_gridcolumn_height: 30
+ east_gridcolumn_height: 30,
+ form_label_width: 45,
+ window_favorite_ypos: 100,
+ window_confirm_width: 250,
+ grid_favorite_width: 420
}
};
@@ -92,13 +106,13 @@
Ext.override(Ext.form.FieldSet,{setExpanded:function(a){var b=this,c=b.checkboxCmp,d=b.toggleCmp,e;a=!!a;if(c){c.setValue(a)}if(d){d.setType(a?"up":"down")}if(a){e="expand";b.removeCls(b.baseCls+"-collapsed")}else{e="collapse";b.addCls(b.baseCls+"-collapsed")}b.collapsed=!a;b.doComponentLayout();b.fireEvent(e,b);return b}});
Ext.QuickTips.init();
document.body.oncontextmenu = function(){return false;};
-
+
Ext.Ajax.request({
- url: DV.conf.finals.ajax.url_visualizer + 'initialize.action',
+ url: DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.initialize,
success: function(r) {
DV.init = DV.conf.init.jsonfy(r);
- DV.init.isInit = true;
+ DV.init.init = DV.conf.finals.cmd.init;
DV.init.initialize = function() {
DV.util.combobox.filter.category();
@@ -109,7 +123,7 @@
DV.store.area = DV.store.defaultChartStore;
DV.store.pie = DV.store.defaultChartStore;
DV.chart.data = DV.conf.init.data;
- DV.exe.execute(true, DV.init.isInit);
+ DV.exe.execute(true, DV.init.init);
};
DV.cmp = {
@@ -125,6 +139,9 @@
},
toolbar: {
menuitem: {}
+ },
+ favorite: {
+ rename: {}
}
};
@@ -138,6 +155,12 @@
},
getXY: function() {
return {x: DV.cmp.region.center.x + 15, y: DV.cmp.region.center.y + 43};
+ },
+ getPageCenterX: function(cmp) {
+ return ((screen.width/2)-(cmp.width/2));
+ },
+ getPageCenterY: function(cmp) {
+ return ((screen.height/2)-((cmp.height/2)-100));
}
},
multiselect: {
@@ -146,7 +169,7 @@
if (selected.length) {
var array = [];
Ext.Array.each(selected, function(item) {
- array.push({id: item, s: a.store.getAt(a.store.find('id', item)).data.s});
+ array.push({id: item, s: a.store.getAt(a.store.findExact('id', item)).data.s});
});
s.store.add(array);
}
@@ -164,7 +187,7 @@
var selected = s.getValue();
if (selected.length) {
Ext.Array.each(selected, function(item) {
- s.store.remove(s.store.getAt(s.store.find('id', item)));
+ s.store.remove(s.store.getAt(s.store.findExact('id', item)));
});
this.filterAvailable(a, s);
}
@@ -206,26 +229,37 @@
}
},
button: {
- getValue: function() {
- for (var i = 0; i < DV.cmp.charttype.length; i++) {
- if (DV.cmp.charttype[i].pressed) {
- return DV.cmp.charttype[i].name;
- }
- }
- },
- toggleHandler: function(b) {
- if (!b.pressed) {
- b.toggle();
+ type: {
+ getValue: function() {
+ for (var i = 0; i < DV.cmp.charttype.length; i++) {
+ if (DV.cmp.charttype[i].pressed) {
+ return DV.cmp.charttype[i].name;
+ }
+ }
+ },
+ setValue: function(type) {
+ },
+ toggleHandler: function(b) {
+ if (!b.pressed) {
+ b.toggle();
+ }
}
}
},
store: {
- addToStorage: function(s) {
+ addToStorage: function(s, records) {
s.each( function(r) {
if (!s.storage[r.data.id]) {
s.storage[r.data.id] = {id: r.data.id, s: r.data.s, name: r.data.s, parent: s.parent};
}
});
+ if (records) {
+ Ext.Array.each(records, function(r) {
+ if (!s.storage[r.data.id]) {
+ s.storage[r.data.id] = {id: r.data.id, s: r.data.s, name: r.data.s, parent: s.parent};
+ }
+ });
+ }
},
loadFromStorage: function(s) {
var items = [];
@@ -248,14 +282,43 @@
}
},
dimension: {
+ indicator: {
+ getIds: function(exception) {
+ var a = [];
+ DV.cmp.dimension.indicator.selected.store.each( function(r) {
+ a.push(r.data.id);
+ });
+ if (exception && !a.length) {
+ alert('No indicators selected');
+ }
+ return a;
+ }
+ },
+ dataelement: {
+ getIds: function(exception) {
+ if (DV.cmp.dimension.dataelement.selected.store) {
+ var a = [];
+ DV.cmp.dimension.dataelement.selected.store.each( function(r) {
+ a.push(r.data.id);
+ });
+ if (exception && !a.length) {
+ alert('No data elements selected');
+ }
+ return a;
+ }
+ else {
+ alert('Data element store does not exist');
+ }
+ }
+ },
data: {
getUrl: function(isFilter) {
var a = [];
- DV.cmp.dimension.indicator.selected.store.each( function(r) {
- a.push('indicatorIds=' + r.data.id);
+ Ext.Array.each(DV.state.indicatorIds, function(r) {
+ a.push('indicatorIds=' + r);
});
- DV.cmp.dimension.dataelement.selected.store.each( function(r) {
- a.push('dataElementIds=' + r.data.id);
+ Ext.Array.each(DV.state.dataelementIds, function(r) {
+ a.push('dataElementIds=' + r);
});
return (isFilter && a.length > 1) ? a.slice(0,1) : a;
},
@@ -273,15 +336,14 @@
alert('No indicators or data elements selected');
}
return a;
- }
+ }
},
period: {
getUrl: function(isFilter) {
- var a = [],
- cmp = DV.cmp.dimension.period;
- for (var i = 0; i < cmp.length; i++) {
- if (cmp[i].getValue()) {
- Ext.Array.each(DV.init.system.periods[cmp[i].paramName], function(item) {
+ var a = [];
+ for (var r in DV.state.relativePeriods) {
+ if (DV.state.relativePeriods[r]) {
+ Ext.Array.each(DV.init.system.periods[r], function(item) {
a.push('periodIds=' + item.id);
});
}
@@ -303,6 +365,22 @@
}
return a;
},
+ getNamesByRelativePeriodsObject: function(rp) {
+ var relatives = [],
+ names = [];
+ for (var r in rp) {
+ if (rp[r]) {
+ relatives.push(r);
+ }
+ }
+ for (var i = 0; i < relatives.length; i++) {
+ var r = DV.init.system.periods[relatives[i]] || [];
+ for (var j = 0; j < r.length; j++) {
+ names.push(r[j].name);
+ }
+ }
+ return names;
+ },
getNameById: function(id) {
for (var obj in DV.init.system.periods) {
var a = DV.init.system.periods[obj];
@@ -312,19 +390,39 @@
}
};
}
- }
+ },
+ getIds: function(exception) {
+ var a = [],
+ cmp = DV.cmp.dimension.period;
+ Ext.Array.each(cmp, function(item) {
+ if (item.getValue()) {
+ a.push(item.paramName);
+ }
+ });
+ if (exception && !a.length) {
+ alert('No periods selected');
+ }
+ return a;
+ },
+ getRelativePeriodObject: function(exception) {
+ var a = {},
+ cmp = DV.cmp.dimension.period,
+ valid = false;
+ Ext.Array.each(cmp, function(item) {
+ a[item.paramName] = item.getValue();
+ valid = item.getValue() ? true : valid;
+ });
+ if (exception && !valid) {
+ alert('No periods selected');
+ }
+ return a;
+ }
},
organisationunit: {
getUrl: function(isFilter) {
- var a = [],
- tp = DV.cmp.dimension.organisationunit.treepanel,
- selection = tp.getSelectionModel().getSelection();
- if (!selection.length) {
- selection = [tp.getRootNode()];
- tp.selectRoot();
- }
- Ext.Array.each(selection, function(r) {
- a.push('organisationUnitIds=' + r.data.id);
+ var a = [];
+ Ext.Array.each(DV.state.organisationunitIds, function(item) {
+ a.push('organisationUnitIds=' + item);
});
return (isFilter && a.length > 1) ? a.slice(0,1) : a;
},
@@ -342,8 +440,33 @@
if (exception && !a.length) {
alert('No organisation units selected');
}
- return a;
+ return a;
+ },
+ getIds: function(exception) {
+ var a = [],
+ tp = DV.cmp.dimension.organisationunit.treepanel,
+ selection = tp.getSelectionModel().getSelection();
+ if (!selection.length) {
+ selection = [tp.getRootNode()];
+ tp.selectRoot();
+ }
+ Ext.Array.each(selection, function(r) {
+ a.push(DV.util.string.getEncodedString(r.data.id));
+ });
+ if (exception && !a.length) {
+ alert('No organisation units selected');
+ }
+ return a;
+ }
+ }
+ },
+ mask: {
+ setMask: function(cmp, str) {
+ if (DV.mask) {
+ DV.mask.hide();
}
+ DV.mask = new Ext.LoadMask(cmp, {msg: str});
+ DV.mask.show();
}
},
chart: {
@@ -368,7 +491,7 @@
getTitle: function() {
return {
type: 'text',
- text: DV.init.isInit ? 'Example chart' : DV.state.filter.names[0],
+ text: DV.init.init ? 'Example chart' : DV.state.filter.names[0],
font: 'bold 15px arial',
fill: '#222',
width: 300,
@@ -385,13 +508,6 @@
}
};
},
- setMask: function(str) {
- if (DV.mask) {
- DV.mask.hide();
- }
- DV.mask = new Ext.LoadMask(DV.chart.chart, {msg: str});
- DV.mask.show();
- },
label: {
getCategoryLabel: function() {
return {
@@ -515,6 +631,16 @@
}
}
},
+ checkbox: {
+ setRelativePeriods: function(rp) {
+ for (var r in rp) {
+ var cmp = DV.util.getCmp('checkbox[paramName="' + r + '"]');
+ if (cmp) {
+ cmp.setValue(rp[r]);
+ }
+ }
+ }
+ },
number: {
isInteger: function(n) {
var str = new String(n);
@@ -550,6 +676,73 @@
}
return values;
}
+ },
+ crud: {
+ favorite: {
+ create: function(fn, isUpdate) {
+ DV.util.mask.setMask(DV.cmp.favorite.window, 'Saving...');
+ var params = DV.state.getParams();
+ params.name = DV.cmp.favorite.name.getValue();
+ if (isUpdate) {
+ var store = DV.store.favorite;
+ params.uid = store.getAt(store.findExact('name', params.name)).data.id;
+ }
+ Ext.Ajax.request({
+ url: DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.favorite_addorupdate,
+ params: params,
+ success: function() {
+ DV.store.favorite.load({callback: function() {
+ DV.mask.hide();
+ if (fn) {
+ fn();
+ }
+ }});
+ }
+ });
+ },
+ update: function(fn) {
+ DV.util.crud.favorite.create(fn, true);
+ },
+ updateName: function(name) {
+ if (DV.store.favorite.findExact('name', name) != -1) {
+ alert('Name is already in use');
+ return;
+ }
+ DV.util.mask.setMask(DV.cmp.favorite.window, 'Renaming...');
+ var r = DV.cmp.favorite.grid.getSelectionModel().getSelection()[0];
+ Ext.Ajax.request({
+ url: DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.favorite_addorupdate,
+ params: {uid: r.data.id, name: name},
+ success: function() {
+ DV.store.favorite.load({callback: function() {
+ DV.cmp.favorite.rename.window.close();
+ DV.mask.hide();
+ DV.cmp.favorite.grid.getSelectionModel().select(DV.store.favorite.getAt(DV.store.favorite.findExact('name', name)));
+ DV.cmp.favorite.name.setValue(name);
+ }});
+ }
+ });
+ },
+ del: function(fn) {
+ DV.util.mask.setMask(DV.cmp.favorite.window, 'Deleting...');
+ var baseurl = DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.favorite_delete,
+ selection = DV.cmp.favorite.grid.getSelectionModel().getSelection();
+ Ext.Array.each(selection, function(item) {
+ baseurl = Ext.String.urlAppend(baseurl, 'uids=' + item.data.id);
+ });
+ Ext.Ajax.request({
+ url: baseurl,
+ success: function() {
+ DV.store.favorite.load({callback: function() {
+ DV.mask.hide();
+ if (fn) {
+ fn();
+ }
+ }});
+ }
+ });
+ }
+ }
}
};
@@ -563,13 +756,13 @@
{id: DV.conf.finals.dimension.organisationunit.value, name: DV.conf.finals.dimension.organisationunit.rawvalue}
]
});
- },
+ },
indicator: {
available: Ext.create('Ext.data.Store', {
- fields: ['id', 'name', 's'],
+ fields: ['id', 's'],
proxy: {
type: 'ajax',
- url: DV.conf.finals.ajax.url_commons + 'getIndicatorsMinified.action',
+ url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.indicator_get,
reader: {
type: 'json',
root: 'indicators'
@@ -590,10 +783,10 @@
},
dataelement: {
available: Ext.create('Ext.data.Store', {
- fields: ['id', 'name', 's'],
+ fields: ['id', 's'],
proxy: {
type: 'ajax',
- url: DV.conf.finals.ajax.url_commons + 'getDataElementsMinified.action',
+ url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.dataelement_get,
reader: {
type: 'json',
root: 'dataElements'
@@ -675,7 +868,36 @@
else {
return DV.store.chart;
}
- }
+ },
+ favorite: Ext.create('Ext.data.Store', {
+ fields: ['id', 'name', 'lastUpdated'],
+ proxy: {
+ type: 'ajax',
+ url: DV.conf.finals.ajax.path_api + DV.conf.finals.ajax.favorite_getall,
+ reader: {
+ type: 'json',
+ root: 'charts'
+ }
+ },
+ isLoaded: false,
+ sorting: {
+ field: 'lastUpdated',
+ direction: 'DESC'
+ },
+ listeners: {
+ load: function(s) {
+ s.sort(this.sorting.field, this.sorting.direction);
+ s.each(function(r) {
+ r.data.lastUpdated = r.data.lastUpdated.substr(0,16).replace('T',' ');
+ r.data.icon = '<img src="images/favorite.png" />';
+ r.commit();
+ });
+ if (!s.isLoaded) {
+ s.isLoaded = true;
+ }
+ }
+ }
+ })
};
DV.state = {
@@ -692,44 +914,152 @@
dimension: DV.conf.finals.dimension.organisationunit.value,
names: []
},
+ indicatorIds: [],
+ dataelementIds: [],
+ relativePeriods: {},
+ organisationunitIds: [],
+ isRendered: false,
getState: function(exe) {
this.resetState();
- this.type = DV.util.button.getValue();
-
- this.series.dimension = DV.cmp.settings.series.getValue();
- this.series.names = DV.util.dimension[this.series.dimension].getNames(true);
-
- this.category.dimension = DV.cmp.settings.category.getValue();
- this.category.names = DV.util.dimension[this.category.dimension].getNames(true);
-
- this.filter.dimension = DV.cmp.settings.filter.getValue();
- this.filter.names = DV.util.dimension[this.filter.dimension].getNames(true).slice(0,1);
-
- if (!this.series.names.length || !this.category.names.length || !this.filter.names.length) {
+ var tmp_series_dimension = DV.cmp.settings.series.getValue();
+ var tmp_series_names = DV.util.dimension[tmp_series_dimension].getNames(true);
+
+ var tmp_category_dimension = DV.cmp.settings.category.getValue();
+ var tmp_category_names = DV.util.dimension[tmp_category_dimension].getNames(true);
+
+ var tmp_filter_dimension = DV.cmp.settings.filter.getValue();
+ var tmp_filter_names = DV.util.dimension[tmp_filter_dimension].getNames(true).slice(0,1);
+
+ if (!tmp_series_names.length || !tmp_category_names.length || !tmp_filter_names.length) {
return;
}
+ this.type = DV.util.button.type.getValue();
+
+ this.series.dimension = tmp_series_dimension;
+ this.series.names = tmp_series_names;
+
+ this.category.dimension = tmp_category_dimension;
+ this.category.names = tmp_category_names;
+
+ this.filter.dimension = tmp_filter_dimension;
+ this.filter.names = tmp_filter_names;
+
+ this.indicatorIds = DV.util.dimension.indicator.getIds();
+ this.dataelementIds = DV.util.dimension.dataelement.getIds();
+ this.relativePeriods = DV.util.dimension.period.getRelativePeriodObject();
+ this.organisationunitIds = DV.util.dimension.organisationunit.getIds();
+
+ this.isRendered = true;
+ DV.util.mask.setMask(DV.chart.chart, 'Loading...');
+
if (exe) {
DV.value.getValues(true);
}
},
+ getParams: function() {
+ var obj = {};
+ obj.type = this.type;
+ obj.series = this.series.dimension;
+ obj.category = this.category.dimension;
+ obj.filter = this.filter.dimension;
+ obj.indicatorIds = this.indicatorIds;
+ obj.dataElementIds = this.dataelementIds;
+ obj.organisationUnitIds = this.organisationunitIds;
+ obj = Ext.Object.merge(obj, this.relativePeriods);
+ return obj;
+ },
+ setState: function(exe, id) {
+ if (id) {
+ this.resetState();
+ DV.util.mask.setMask(DV.chart.chart, 'Loading...');
+
+ Ext.Ajax.request({
+ url: DV.conf.finals.ajax.path_api + DV.conf.finals.ajax.favorite_get + id + '.json',
+ scope: this,
+ success: function(r) {
+ var f = Ext.JSON.decode(r.responseText),
+ indiment = [];
+ f.names = {
+ data: [],
+ period: [],
+ organisationunit: []
+ };
+
+ this.type = f.type;
+ this.series.dimension = f.series;
+ this.category.dimension = f.category;
+ this.filter.dimension = f.filter;
+
+ if (f.indicators) {
+ var records = [];
+ for (var i = 0; i < f.indicators.length; i++) {
+ indiment.push(f.indicators[i]);
+ this.indicatorIds.push(f.indicators[i].internalId);
+ records.push({id: f.indicators[i].internalId, s: f.indicators[i].shortName, name: f.indicators[i].shortName, parent: null});
+ }
+ DV.store.indicator.selected.removeAll();
+ DV.store.indicator.selected.add(records);
+ DV.util.store.addToStorage(DV.store.indicator.available, records);
+ DV.util.multiselect.filterAvailable(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
+ }
+ if (f.dataElements) {
+ var records = [];
+ for (var i = 0; i < f.dataElements.length; i++) {
+ indiment.push(f.dataElements[i]);
+ this.dataelementIds.push(f.dataElements[i].internalId);
+ records.push({id: f.dataElements[i].internalId, s: f.dataElements[i].shortName, name: f.dataElements[i].shortName, parent: null});
+ }
+ DV.store.dataelement.selected.removeAll();
+ DV.store.dataelement.selected.add(records);
+ DV.util.store.addToStorage(DV.store.dataelement.available, records);
+ DV.util.multiselect.filterAvailable(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
+ }
+ for (var i = 0; i < indiment.length; i++) {
+ f.names.data.push(indiment[i].shortName);
+ }
+
+ this.relativePeriods = f.relativePeriods;
+ DV.util.checkbox.setRelativePeriods(this.relativePeriods);
+ f.names.period = DV.util.dimension.period.getNamesByRelativePeriodsObject(this.relativePeriods);
+
+ for (var i = 0; i < f.organisationUnits.length; i++) {
+ this.organisationunitIds.push(f.organisationUnits[i].internalId);
+ f.names.organisationunit.push(f.organisationUnits[i].name);
+ }
+
+ this.series.names = f.names[this.series.dimension];
+ this.category.names = f.names[this.category.dimension];
+ this.filter.names = f.names[this.filter.dimension];
+
+ this.isRendered = true;
+
+ if (exe) {
+ DV.value.getValues(true);
+ }
+ }
+ });
+ }
+ },
resetState: function() {
this.type = null;
this.series.dimension = null;
- this.series.names = null;
+ this.series.names = [];
this.category.dimension = null;
- this.category.names = null;
+ this.category.names = [];
this.filter.dimension = null;
- this.filter.names = null;
+ this.filter.names = [];
+ this.indicatorIds = [];
+ this.dataelementIds = [];
+ this.relativePeriods = {};
+ this.organisationunitIds = [];
}
};
DV.value = {
values: [],
- getValues: function(exe) {
- DV.util.chart.setMask('Loading...');
-
+ getValues: function(exe) {
var params = [],
i = DV.conf.finals.dimension.indicator.value,
d = DV.conf.finals.dimension.dataelement.value;
@@ -738,23 +1068,22 @@
params = params.concat(DV.util.dimension[DV.state.category.dimension].getUrl());
params = params.concat(DV.util.dimension[DV.state.filter.dimension].getUrl(true));
- var baseUrl = DV.conf.finals.ajax.url_visualizer + DV.conf.finals.ajax.url_data;
+ var baseurl = DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.data_get;
Ext.Array.each(params, function(item) {
- baseUrl = Ext.String.urlAppend(baseUrl, item);
+ baseurl = Ext.String.urlAppend(baseurl, item);
});
Ext.Ajax.request({
- url: baseUrl,
+ url: baseurl,
success: function(r) {
DV.value.values = DV.util.value.jsonfy(r);
-
if (!DV.value.values.length) {
DV.mask.hide();
alert('No data values');
return;
}
- var storage = Ext.Object.merge(DV.store[i].available.storage, DV.store[d].available.storage);
+ var storage = Ext.Object.merge(DV.store[i].available.storage, DV.store[d].available.storage);
Ext.Array.each(DV.value.values, function(item) {
item[DV.conf.finals.dimension.data.value] = DV.util.string.getEncodedString(storage[item.d].name);
item[DV.conf.finals.dimension.period.value] = DV.util.string.getEncodedString(DV.util.dimension.period.getNameById(item.p));
@@ -990,12 +1319,12 @@
DV.cmp.region.center.removeAll(true);
DV.cmp.region.center.add(this.chart);
- if (!DV.init.isInit) {
+ if (!DV.init.init) {
DV.mask.hide();
DV.store.getDataTableStore(true);
}
else {
- DV.init.isInit = false;
+ DV.init.init = false;
}
}
};
@@ -1004,7 +1333,6 @@
datatable: null,
getDataTable: function(exe) {
this.datatable = Ext.create('Ext.grid.Panel', {
- id: 'datatable_g',
height: DV.util.viewport.getSize().y - 1,
scroll: 'vertical',
cls: 'dv-datatable',
@@ -1052,9 +1380,14 @@
};
DV.exe = {
- execute: function(exe, init) {
- if (init) {
- DV.store.getChartStore(exe);
+ execute: function(exe, cmd) {
+ if (cmd) {
+ if (cmd === DV.conf.finals.cmd.init) {
+ DV.store.getChartStore(exe);
+ }
+ else {
+ DV.state.setState(true, cmd);
+ }
}
else {
DV.state.getState(exe);
@@ -1082,7 +1415,7 @@
defaults: {
height: 40,
toggleGroup: 'chartsettings',
- handler: DV.util.button.toggleHandler,
+ handler: DV.util.button.type.toggleHandler,
listeners: {
afterrender: function(b) {
if (b.xtype === 'button') {
@@ -1166,6 +1499,7 @@
{ bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' },
{
xtype: 'combobox',
+ cls: 'dv-combo',
name: DV.conf.finals.chart.series,
emptyText: 'Series',
queryMode: 'local',
@@ -1198,6 +1532,7 @@
{ bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' },
{
xtype: 'combobox',
+ cls: 'dv-combo',
name: DV.conf.finals.chart.category,
emptyText: 'Category',
queryMode: 'local',
@@ -1231,6 +1566,7 @@
{ bodyStyle: 'padding:1px 0; border-style:none; background-color:transparent' },
{
xtype: 'combobox',
+ cls: 'dv-combo',
name: DV.conf.finals.chart.filter,
emptyText: 'Filter',
queryMode: 'local',
@@ -1268,20 +1604,21 @@
items: [
{
xtype: 'combobox',
+ cls: 'dv-combo',
style: 'margin-bottom:8px',
width: DV.conf.layout.west_fieldset_width - 22,
valueField: 'id',
displayField: 'name',
fieldLabel: 'Select group',
labelStyle: 'padding-left:7px;',
- labelWidth: 110,
+ labelWidth: 90,
editable: false,
queryMode: 'remote',
store: Ext.create('Ext.data.Store', {
fields: ['id', 'name', 'index'],
proxy: {
type: 'ajax',
- url: DV.conf.finals.ajax.url_commons + 'getIndicatorGroupsMinified.action',
+ url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.indicatorgroup_get,
reader: {
type: 'json',
root: 'indicatorGroups'
@@ -1301,6 +1638,7 @@
if (DV.util.store.containsParent(store)) {
DV.util.store.loadFromStorage(store);
+ DV.util.multiselect.filterAvailable(DV.cmp.dimension.indicator.available, DV.cmp.dimension.indicator.selected);
}
else {
store.load({params: {id: cb.getValue()}});
@@ -1317,7 +1655,7 @@
xtype: 'multiselect',
id: 'availableIndicators',
name: 'availableIndicators',
- cls: 'multiselect',
+ cls: 'dv-toolbar-multiselect-left',
width: (DV.conf.layout.west_fieldset_width - 22) / 2,
displayField: 's',
valueField: 'id',
@@ -1327,7 +1665,7 @@
{
xtype: 'label',
text: 'Available indicators',
- style: 'padding-left:5px'
+ cls: 'dv-toolbar-multiselect-left-label'
},
'->',
{
@@ -1363,7 +1701,7 @@
xtype: 'multiselect',
id: 'selectedIndicators',
name: 'selectedIndicators',
- cls: 'multiselect',
+ cls: 'dv-toolbar-multiselect-right',
width: (DV.conf.layout.west_fieldset_width - 22) / 2,
displayField: 's',
valueField: 'id',
@@ -1392,7 +1730,7 @@
{
xtype: 'label',
text: 'Selected indicators',
- style: 'padding-right:5px'
+ cls: 'dv-toolbar-multiselect-right-label'
}
],
listeners: {
@@ -1428,20 +1766,21 @@
items: [
{
xtype: 'combobox',
+ cls: 'dv-combo',
style: 'margin-bottom:8px',
width: DV.conf.layout.west_fieldset_width - 22,
valueField: 'id',
displayField: 'name',
fieldLabel: 'Select group',
labelStyle: 'padding-left:7px;',
- labelWidth: 110,
+ labelWidth: 90,
editable: false,
queryMode: 'remote',
store: Ext.create('Ext.data.Store', {
fields: ['id', 'name', 'index'],
proxy: {
type: 'ajax',
- url: DV.conf.finals.ajax.url_commons + 'getDataElementGroupsMinified.action',
+ url: DV.conf.finals.ajax.path_commons + DV.conf.finals.ajax.dataelementgroup_get,
reader: {
type: 'json',
root: 'dataElementGroups'
@@ -1461,6 +1800,7 @@
if (DV.util.store.containsParent(store)) {
DV.util.store.loadFromStorage(store);
+ DV.util.multiselect.filterAvailable(DV.cmp.dimension.dataelement.available, DV.cmp.dimension.dataelement.selected);
}
else {
store.load({params: {id: cb.getValue()}});
@@ -1476,7 +1816,7 @@
Ext.create('Ext.ux.form.MultiSelect', {
id: 'availableDataElements',
name: 'availableDataElements',
- cls: 'multiselect',
+ cls: 'dv-toolbar-multiselect-left',
width: (DV.conf.layout.west_fieldset_width - 22) / 2,
displayField: 's',
valueField: 'id',
@@ -1486,7 +1826,7 @@
{
xtype: 'label',
text: 'Available data elements',
- style: 'padding-left:5px'
+ cls: 'dv-toolbar-multiselect-left-label'
},
'->',
{
@@ -1522,7 +1862,7 @@
xtype: 'multiselect',
id: 'selectedDataElements',
name: 'selectedDataElements',
- cls: 'multiselect',
+ cls: 'dv-toolbar-multiselect-right',
width: (DV.conf.layout.west_fieldset_width - 22) / 2,
displayField: 's',
valueField: 'id',
@@ -1551,7 +1891,7 @@
{
xtype: 'label',
text: 'Selected data elements',
- style: 'padding-right:5px'
+ cls: 'dv-toolbar-multiselect-right-label'
}
],
listeners: {
@@ -1594,7 +1934,7 @@
{
xtype: 'panel',
layout: 'anchor',
- bodyStyle: 'border-style:none; padding:0 40px 0 0px',
+ bodyStyle: 'border-style:none; padding:0 0 0 10px',
defaults: {
labelSeparator: '',
listeners: {
@@ -1609,7 +1949,7 @@
{
xtype: 'label',
text: 'Months',
- style: DV.conf.style.label.period_group
+ cls: 'dv-label-period-heading'
},
{
xtype: 'checkbox',
@@ -1618,25 +1958,20 @@
},
{
xtype: 'checkbox',
- paramName: 'monthsThisYear',
- boxLabel: 'Months this year',
+ paramName: 'last12Months',
+ boxLabel: 'Last 12 months',
checked: true
- },
- {
- xtype: 'checkbox',
- paramName: 'monthsLastYear',
- boxLabel: 'Months last year'
}
]
},
{
xtype: 'panel',
layout: 'anchor',
- bodyStyle: 'border-style:none; padding-right:40px',
+ bodyStyle: 'border-style:none; padding:0 0 0 32px',
defaults: {
labelSeparator: '',
listeners: {
- afterrender: function(chb) {
+ added: function(chb) {
if (chb.xtype === 'checkbox') {
DV.cmp.dimension.period.push(chb);
}
@@ -1647,7 +1982,7 @@
{
xtype: 'label',
text: 'Quarters',
- style: DV.conf.style.label.period_group
+ cls: 'dv-label-period-heading'
},
{
xtype: 'checkbox',
@@ -1656,24 +1991,58 @@
},
{
xtype: 'checkbox',
- paramName: 'quartersThisYear',
- boxLabel: 'Quarters this year'
- },
- {
- xtype: 'checkbox',
- paramName: 'quartersLastYear',
- boxLabel: 'Quarters last year'
+ paramName: 'last4Quarters',
+ boxLabel: 'Last 4 quarters'
}
]
},
{
xtype: 'panel',
layout: 'anchor',
- bodyStyle: 'border-style:none',
- defaults: {
- labelSeparator: '',
- listeners: {
- afterrender: function(chb) {
+ bodyStyle: 'border-style:none; padding:0 0 0 32px',
+ defaults: {
+ labelSeparator: '',
+ listeners: {
+ added: function(chb) {
+ if (chb.xtype === 'checkbox') {
+ DV.cmp.dimension.period.push(chb);
+ }
+ }
+ }
+ },
+ items: [
+ {
+ xtype: 'label',
+ text: 'Six-months',
+ cls: 'dv-label-period-heading'
+ },
+ {
+ xtype: 'checkbox',
+ paramName: 'lastSixMonth',
+ boxLabel: 'Last six-month'
+ },
+ {
+ xtype: 'checkbox',
+ paramName: 'last2SixMonths',
+ boxLabel: 'Last 2 six-months'
+ }
+ ]
+ }
+ ]
+ },
+ {
+ xtype: 'panel',
+ layout: 'column',
+ bodyStyle: 'border-style:none',
+ items: [
+ {
+ xtype: 'panel',
+ layout: 'anchor',
+ bodyStyle: 'border-style:none; padding:5px 0 0 10px',
+ defaults: {
+ labelSeparator: '',
+ listeners: {
+ added: function(chb) {
if (chb.xtype === 'checkbox') {
DV.cmp.dimension.period.push(chb);
}
@@ -1684,12 +2053,7 @@
{
xtype: 'label',
text: 'Years',
- style: DV.conf.style.label.period_group
- },
- {
- xtype: 'checkbox',
- paramName: 'thisYear',
- boxLabel: 'This year'
+ cls: 'dv-label-period-heading'
},
{
xtype: 'checkbox',
@@ -1698,7 +2062,7 @@
},
{
xtype: 'checkbox',
- paramName: 'lastFiveYears',
+ paramName: 'last5Years',
boxLabel: 'Last 5 years'
}
]
@@ -1725,6 +2089,7 @@
items: [
{
xtype: 'treepanel',
+ cls: 'dv-tree',
height: 300,
width: DV.conf.layout.west_fieldset_width - 22,
autoScroll: true,
@@ -1740,7 +2105,7 @@
store: Ext.create('Ext.data.TreeStore', {
proxy: {
type: 'ajax',
- url: DV.conf.finals.ajax.url_visualizer + 'getOrganisationUnitChildren.action'
+ url: DV.conf.finals.ajax.path_visualizer + DV.conf.finals.ajax.organisationunitchildren_get
},
root: {
id: DV.init.system.rootNode.id,
@@ -1820,13 +2185,17 @@
bodyStyle: 'padding:10px',
tbar: {
xtype: 'toolbar',
+ cls: 'dv-toolbar',
height: DV.conf.layout.center_tbar_height,
+ defaults: {
+ height: 26
+ },
items: [
{
xtype: 'button',
- cls: 'dv-btn-toolbar',
name: 'resizewest',
- text: '<span class="dv-btn-toolbar-text-2"><<<</span>',
+ cls: 'dv-toolbar-btn-2',
+ text: '<<<',
tooltip: 'Show/hide chart settings',
handler: function() {
var p = DV.cmp.region.west;
@@ -1845,25 +2214,487 @@
},
{
xtype: 'button',
- cls: 'dv-btn-toolbar',
- text: '<span class="dv-btn-toolbar-text-1">Update</span>',
+ cls: 'dv-toolbar-btn-1',
+ text: 'Update',
handler: function() {
- DV.exe.execute(true, DV.init.isInit);
- }
- },
- {
- xtype: 'button',
- cls: 'dv-btn-toolbar',
- text: '<span class="dv-btn-toolbar-text-2">Show..</span>',
- listeners: {
- afterrender: function(b) {
- this.menu = Ext.create('Ext.menu.Menu', {
- shadowOffset: 1,
+ DV.exe.execute(true, DV.init.init);
+ }
+ },
+ {
+ xtype: 'button',
+ cls: 'dv-toolbar-btn-2',
+ text: 'Favorites..',
+ listeners: {
+ afterrender: function(b) {
+ this.menu = Ext.create('Ext.menu.Menu', {
+ shadowOffset: 1,
+ showSeparator: false,
+ items: [
+ {
+ text: 'Manage favorites',
+ iconCls: 'dv-menu-item-edit',
+ handler: function() {
+ if (DV.cmp.favorite.window) {
+ DV.cmp.favorite.window.show();
+ }
+ else {
+ DV.cmp.favorite.window = Ext.create('Ext.window.Window', {
+ title: 'Manage favorites',
+ iconCls: 'dv-window-title-favorite',
+ bodyStyle: 'padding:8px; background-color:#fff',
+ width: DV.conf.layout.grid_favorite_width,
+ closeAction: 'hide',
+ modal: true,
+ items: [
+ {
+ xtype: 'form',
+ bodyStyle: 'border-style:none',
+ items: [
+ {
+ xtype: 'textfield',
+ cls: 'dv-textfield',
+ maxLength: 160,
+ enforceMaxLength: true,
+ fieldLabel: 'Name',
+ labelWidth: DV.conf.layout.form_label_width,
+ width: DV.conf.layout.grid_favorite_width - 28,
+ listeners: {
+ added: function() {
+ DV.cmp.favorite.name = this;
+ },
+ change: function() {
+ DV.cmp.favorite.save.xable();
+ }
+ }
+ }
+ ]
+ },
+ {
+ xtype: 'grid',
+ width: DV.conf.layout.grid_favorite_width - 28,
+ scroll: 'vertical',
+ multiSelect: true,
+ columns: [
+ {
+ dataIndex: 'name',
+ width: DV.conf.layout.grid_favorite_width - 139,
+ style: 'display:none'
+ },
+ {
+ dataIndex: 'lastUpdated',
+ width: 111,
+ style: 'display:none'
+ }
+ ],
+ setHeightInWindow: function(store) {
+ var h = (store.getTotalCount() * 23) + 30,
+ sh = DV.util.viewport.getSize().y * 0.8;
+ this.setHeight(h > sh ? sh : h);
+ this.doLayout();
+ this.up('window').doLayout();
+ },
+ store: DV.store.favorite,
+ tbar: {
+ id: 'favorite_t',
+ cls: 'dv-toolbar',
+ height: 30,
+ defaults: {
+ height: 24
+ },
+ items: [
+ {
+ text: 'Sort by..',
+ cls: 'dv-toolbar-btn-2',
+ handler: function() {
+
+ },
+ listeners: {
+ added: function() {
+ DV.cmp.favorite.sortby = this;
+ },
+ afterrender: function(b) {
+ this.addCls('dv-menu-togglegroup');
+ this.menu = Ext.create('Ext.menu.Menu', {
+ shadowOffset: 1,
+ showSeparator: false,
+ width: 109,
+ height: 70,
+ items: [
+ {
+ xtype: 'radiogroup',
+ cls: 'dv-radiogroup',
+ columns: 1,
+ vertical: true,
+ items: [
+ {
+ boxLabel: 'Name',
+ name: 'sortby',
+ handler: function() {
+ if (this.getValue()) {
+ var store = DV.store.favorite;
+ store.sorting.field = 'name';
+ store.sorting.direction = 'ASC';
+ store.sort(store.sorting.field, store.sorting.direction);
+ this.up('menu').hide();
+ }
+ }
+ },
+ {
+ boxLabel: 'Last updated',
+ name: 'sortby',
+ checked: true,
+ handler: function() {
+ if (this.getValue()) {
+ var store = DV.store.favorite;
+ store.sorting.field = 'lastUpdated';
+ store.sorting.direction = 'DESC';
+ store.sort(store.sorting.field, store.sorting.direction);
+ this.up('menu').hide();
+ }
+ }
+ }
+ ]
+ }
+ ]
+ });
+ }
+ }
+ },
+ '->',
+ {
+ text: 'Rename',
+ cls: 'dv-toolbar-btn-2',
+ disabled: true,
+ xable: function() {
+ if (DV.cmp.favorite.grid.getSelectionModel().getSelection().length == 1) {
+ DV.cmp.favorite.rename.button.enable();
+ }
+ else {
+ DV.cmp.favorite.rename.button.disable();
+ }
+ },
+ handler: function() {
+ var selected = DV.cmp.favorite.grid.getSelectionModel().getSelection()[0];
+ var w = Ext.create('Ext.window.Window', {
+ title: 'Rename favorite',
+ layout: 'fit',
+ width: DV.conf.layout.window_confirm_width,
+ bodyStyle: 'padding:10px 5px; background-color:#fff; text-align:center',
+ modal: true,
+ cmp: {},
+ items: [
+ {
+ xtype: 'textfield',
+ cls: 'dv-textfield',
+ maxLength: 160,
+ enforceMaxLength: true,
+ value: selected.data.name,
+ listeners: {
+ added: function() {
+ this.up('window').cmp.name = this;
+ },
+ change: function() {
+ this.up('window').cmp.rename.xable();
+ }
+ }
+ }
+ ],
+ bbar: [
+ {
+ text: 'Cancel',
+ handler: function() {
+ this.up('window').close();
+ }
+ },
+ '->',
+ {
+ text: 'Rename',
+ disabled: true,
+ xable: function() {
+ var value = this.up('window').cmp.name.getValue();
+ if (value && value != DV.cmp.favorite.name.getValue()) {
+ this.enable();
+ }
+ else {
+ this.disable();
+ }
+ },
+ handler: function() {
+ DV.util.crud.favorite.updateName(this.up('window').cmp.name.getValue());
+ },
+ listeners: {
+ afterrender: function() {
+ this.up('window').cmp.rename = this;
+ },
+ change: function() {
+ this.xable();
+ }
+ }
+ }
+ ],
+ listeners: {
+ afterrender: function() {
+ DV.cmp.favorite.rename.window = this;
+ }
+ }
+ });
+ w.setPosition((screen.width/2)-(DV.conf.layout.window_confirm_width/2), DV.conf.layout.window_favorite_ypos + 100, true);
+ w.show();
+ },
+ listeners: {
+ added: function() {
+ DV.cmp.favorite.rename.button = this;
+ }
+ }
+ },
+ {
+ text: 'Delete',
+ cls: 'dv-toolbar-btn-2',
+ disabled: true,
+ xable: function() {
+ if (DV.cmp.favorite.grid.getSelectionModel().getSelection().length) {
+ DV.cmp.favorite.del.enable();
+ }
+ else {
+ DV.cmp.favorite.del.disable();
+ }
+ },
+ handler: function() {
+ var sel = DV.cmp.favorite.grid.getSelectionModel().getSelection();
+ if (sel.length) {
+ var str = '';
+ for (var i = 0; i < sel.length; i++) {
+ var out = sel[i].data.name.length > 35 ? (sel[i].data.name.substr(0,35) + '...') : sel[i].data.name;
+ str += '<br/>' + out;
+ }
+ var w = Ext.create('Ext.window.Window', {
+ title: 'Delete favorites',
+ width: DV.conf.layout.window_confirm_width,
+ bodyStyle: 'padding:10px 5px; background-color:#fff; text-align:center',
+ modal: true,
+ items: [
+ {
+ html: 'Are you sure?',
+ bodyStyle: 'border-style:none'
+ },
+ {
+ html: str,
+ cls: 'dv-window-confirm-list'
+ }
+ ],
+ bbar: [
+ {
+ text: 'Cancel',
+ handler: function() {
+ this.up('window').close();
+ }
+ },
+ '->',
+ {
+ text: 'Delete',
+ handler: function() {
+ this.up('window').close();
+ DV.util.crud.favorite.del(function() {
+ DV.cmp.favorite.name.setValue('');
+ DV.cmp.favorite.window.down('grid').setHeightInWindow(DV.store.favorite);
+ });
+ }
+ }
+ ]
+ });
+ w.setPosition((screen.width/2)-(DV.conf.layout.window_confirm_width/2), DV.conf.layout.window_favorite_ypos + 100, true);
+ w.show();
+ }
+ },
+ listeners: {
+ added: function() {
+ DV.cmp.favorite.del = this;
+ }
+ }
+ }
+ ]
+ },
+ listeners: {
+ added: function() {
+ DV.cmp.favorite.grid = this;
+ },
+ itemclick: function(g, r) {
+ DV.cmp.favorite.name.setValue(r.get('name'));
+ DV.cmp.favorite.rename.button.xable();
+ DV.cmp.favorite.del.xable();
+ },
+ itemdblclick: function() {
+ DV.cmp.favorite.save.handler();
+ }
+ }
+ }
+ ],
+ bbar: {
+ cls: 'dv-toolbar',
+ height: 29,
+ defaults: {
+ height: 24
+ },
+ items: [
+ '->',
+ {
+ text: 'Save',
+ disabled: true,
+ xable: function() {
+ if (DV.state.isRendered && DV.cmp.favorite.name.getValue()) {
+ this.enable();
+ }
+ else {
+ this.disable();
+ }
+ },
+ handler: function() {
+ var value = DV.cmp.favorite.name.getValue();
+ if (DV.state.isRendered && value) {
+ if (DV.store.favorite.findExact('name', value) != -1) {
+ var item = value.length > 35 ? (value.substr(0,35) + '...') : value;
+ var w = Ext.create('Ext.window.Window', {
+ title: 'Save favorite',
+ width: DV.conf.layout.window_confirm_width,
+ bodyStyle: 'padding:10px 5px; background-color:#fff; text-align:center',
+ modal: true,
+ items: [
+ {
+ html: 'Are you sure?',
+ bodyStyle: 'border-style:none'
+ },
+ {
+ html: '<br/>' + item,
+ cls: 'dv-window-confirm-list'
+ }
+ ],
+ bbar: [
+ {
+ text: 'Cancel',
+ handler: function() {
+ this.up('window').close();
+ }
+ },
+ '->',
+ {
+ text: 'Overwrite',
+ handler: function() {
+ this.up('window').close();
+ DV.util.crud.favorite.update(function() {
+ DV.cmp.favorite.name.setValue('');
+ });
+
+ }
+ }
+ ]
+ });
+ w.setPosition((screen.width/2)-(DV.conf.layout.window_confirm_width/2), DV.conf.layout.window_favorite_ypos + 100, true);
+ w.show();
+ }
+ else {
+ DV.util.crud.favorite.create(function() {
+ DV.cmp.favorite.name.setValue('');
+ DV.cmp.favorite.window.down('grid').setHeightInWindow(DV.store.favorite);
+ });
+ }
+ }
+ },
+ listeners: {
+ added: function() {
+ DV.cmp.favorite.save = this;
+ }
+ }
+ }
+ ]
+ },
+ listeners: {
+ show: function() {
+ DV.cmp.favorite.save.xable();
+ this.down('grid').setHeightInWindow(DV.store.favorite);
+ }
+ }
+ });
+ var w = DV.cmp.favorite.window;
+ w.setPosition((screen.width/2)-(DV.conf.layout.grid_favorite_width/2), DV.conf.layout.window_favorite_ypos, true);
+ w.show();
+ }
+ },
+ listeners: {
+ added: function() {
+ DV.cmp.toolbar.menuitem.datatable = this;
+ }
+ }
+ },
+ '-',
+ {
+ xtype: 'grid',
+ cls: 'dv-menugrid',
+ width: 420,
+ scroll: 'vertical',
+ columns: [
+ {
+ dataIndex: 'icon',
+ width: 25,
+ style: 'display:none'
+ },
+ {
+ dataIndex: 'name',
+ width: 289,
+ style: 'display:none'
+ },
+ {
+ dataIndex: 'lastUpdated',
+ width: 106,
+ style: 'display:none'
+ }
+ ],
+ setHeightInMenu: function(store) {
+ var h = store.getTotalCount() * 26,
+ sh = DV.util.viewport.getSize().y * 0.8;
+ this.setHeight(h > sh ? sh : h);
+ this.doLayout();
+ this.up('menu').doLayout();
+ },
+ store: DV.store.favorite,
+ listeners: {
+ itemclick: function(g, r) {
+ g.getSelectionModel().select([], false);
+ this.up('menu').hide();
+ DV.exe.execute(true, r.data.id);
+ }
+ }
+ }
+ ],
+ listeners: {
+ show: function() {
+ if (!DV.store.favorite.isLoaded) {
+ DV.store.favorite.load({scope: this, callback: function() {
+ this.down('grid').setHeightInMenu(DV.store.favorite);
+ }});
+ }
+ else {
+ this.down('grid').setHeightInMenu(DV.store.favorite);
+ }
+ }
+ }
+ });
+ }
+ }
+ },
+ {
+ xtype: 'button',
+ cls: 'dv-toolbar-btn-2',
+ text: 'Show..',
+ listeners: {
+ afterrender: function(b) {
+ this.menu = Ext.create('Ext.menu.Menu', {
+ shadowOffset: 1,
+ showSeparator: false,
items: [
{
text: 'Data table',
iconCls: 'dv-menu-item-datatable',
- minWidth: 100,
+ minWidth: 90,
handler: function() {
var p = DV.cmp.region.east;
if (p.collapsed && p.items.length) {
@@ -1896,8 +2727,8 @@
},
{
xtype: 'button',
- cls: 'dv-btn-toolbar',
- text: '<span class="dv-btn-toolbar-text-2">Save as..</span>',
+ cls: 'dv-toolbar-btn-2',
+ text: 'Save as..',
execute: function(type) {
var svg = document.getElementsByTagName('svg');
@@ -1924,11 +2755,12 @@
afterrender: function(b) {
this.menu = Ext.create('Ext.menu.Menu', {
shadowOffset: 1,
+ showSeparator: false,
items: [
{
text: 'Image (PNG)',
iconCls: 'dv-menu-item-png',
- minWidth: 110,
+ minWidth: 105,
handler: function() {
b.execute(DV.conf.finals.image.png);
}
@@ -1936,7 +2768,7 @@
{
text: 'PDF',
iconCls: 'dv-menu-item-pdf',
- minWidth: 110,
+ minWidth: 105,
handler: function() {
b.execute(DV.conf.finals.image.pdf);
}
@@ -1949,17 +2781,17 @@
'->',
{
xtype: 'button',
- cls: 'dv-btn-toolbar',
- text: '<span class="dv-btn-toolbar-text-2">Exit</span>',
+ cls: 'dv-toolbar-btn-2',
+ text: 'Exit',
handler: function() {
- window.location.href = DV.conf.finals.ajax.url_portal + 'redirect.action';
+ window.location.href = DV.conf.finals.ajax.path_portal + DV.conf.finals.ajax.redirect;
}
},
{
xtype: 'button',
- cls: 'dv-btn-toolbar',
name: 'resizeeast',
- text: '<span class="dv-btn-toolbar-text-2">>>></span>',
+ cls: 'dv-toolbar-btn-2',
+ text: '>>>',
tooltip: 'Hide data table',
hidden: true,
handler: function() {
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css 2011-12-06 17:41:41 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/css/style.css 2011-12-19 22:15:46 +0000
@@ -1,15 +1,15 @@
-/****************
- ExtJS overrides
- ****************/
+body {
+ font: normal 10px arial, ubuntu;
+}
-.x-body {
- font-family: arial, ubuntu;
+.x-panel-body {
+ font-size: 11px;
}
/* Combobox empty text */
.x-form-empty-field, textarea.x-form-empty-field {
- font-size: 10px;
- color: #777;
+ font-size: 20px;
+ color: red;
}
/* Combobox text position*/
@@ -22,9 +22,19 @@
font-size: 10px;
}
-/* General font */
-.x-form-item, .x-form-field, .x-form-display-field {
- font: normal 10px arial, ubuntu;
+/* Combobox border-radius */
+.dv-combo input {
+ -moz-border-radius: 2px 0px 0px 0px;
+ -webkit-border-radius: 2px 0px 0px 0px;
+ -o-border-radius: 2px 0px 0px 0px;
+ -ms-border-radius: 2px 0px 0px 0px;
+ -khtml-border-radius: 2px 0px 0px 0px;
+ border-radius: 2px 0px 0px 0px;
+}
+
+/* Combobox text position */
+.dv-combo .x-form-text {
+ padding-left: 4px;
}
/* Combobox field label font */
@@ -51,14 +61,10 @@
padding-bottom: 4px;
}
+/* Fieldset header */
.x-fieldset-header {
- font-size: 11px;
- font-family: arial, ubuntu;
- font-weight: bold;
- color: #000;
- padding: 0 7px 0 5px;
+ padding-right: 7px;
}
-
.x-fieldset-header .x-fieldset-header-text {
padding-left: 3px;
}
@@ -73,7 +79,6 @@
.x-tool-over .x-tool-toggle {
background-position: -25px -60px;
}
-
.x-panel-collapsed .x-tool-over .x-tool-toggle, .x-fieldset-collapsed .x-tool-over .x-tool-toggle {
background-position: -25px -75px;
}
@@ -94,18 +99,116 @@
background-position: -25px -60px;
}
-/* Tree panel font */
+/* Grid / Tree panel font color */
.x-grid-row .x-grid-cell {
- font: 10px arial, ubuntu;
color: #222;
+ background-color: transparent;
+ border: 1px solid transparent;
+}
+
+.x-grid-row-selected .x-grid-cell {
+ border: 1px solid transparent;
+}
+
+.x-grid-row-over {
+ background-color: #f1f1f1;
+}
+
+.x-grid-row-over .x-grid-cell-first, .x-grid-row-selected .x-grid-cell-first {
+ -moz-border-radius: 2px 0 0 2px;
+ -webkit-border-radius: 2px 0 0 2px;
+ -o-border-radius: 2px 0 0 2px;
+ -ms-border-radius: 2px 0 0 2px;
+ -khtml-border-radius: 2px 0 0 2px;
+ border-radius: 2px 0 0 2px;
+}
+
+.x-grid-row-over .x-grid-cell-last, .x-grid-row-selected .x-grid-cell-last {
+ -moz-border-radius: 0 2px 2px 0;
+ -webkit-border-radius: 0 2px 2px 0;
+ -o-border-radius: 0 2px 2px 0;
+ -ms-border-radius: 0 2px 2px 0;
+ -khtml-border-radius: 0 2px 2px 0;
+ border-radius: 0 2px 2px 0;
+}
+
+/* DV menu grid */
+.dv-menugrid .x-grid-row .x-grid-cell, .dv-menugrid .x-grid-row-selected .x-grid-cell {
+ border: 0 none;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ background: #f1f1f1;
+}
+.dv-menugrid .x-grid-row .x-grid-cell-first, .dv-menugrid .x-grid-row-selected .x-grid-cell-first {
+ border: 1px solid transparent;
+ border-right: 0 none;
+}
+.dv-menugrid .x-grid-row .x-grid-cell-last, .dv-menugrid .x-grid-row-selected .x-grid-cell-last {
+ border: 1px solid transparent;
+ border-left: 0 none;
+}
+
+.dv-menugrid .x-grid-row-over .x-grid-cell {
+ border: 0 none;
+ border-top: 1px solid #9d9d9d;
+ border-bottom: 1px solid #9d9d9d;
+ background-image: none;
+ background-color: #E6E6E6;
+ background-image: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #eeeeee), color-stop(100%, #dcdcdc));
+ background-image: -webkit-linear-gradient(top, #eeeeee,#dcdcdc);
+ background-image: -moz-linear-gradient(top, #eeeeee,#dcdcdc);
+ background-image: -o-linear-gradient(top, #eeeeee,#dcdcdc);
+ background-image: -ms-linear-gradient(top, #eeeeee,#dcdcdc);
+ background-image: linear-gradient(top, #eeeeee,#dcdcdc);
+}
+.dv-menugrid .x-grid-row-over .x-grid-cell-first {
+ border: 1px solid #9d9d9d;
+ border-right: 0 none;
+ -moz-border-radius: 3px 0 0 3px;
+ -webkit-border-radius: 3px 0 0 3px;
+ -o-border-radius: 3px 0 0 3px;
+ -ms-border-radius: 3px 0 0 3px;
+ -khtml-border-radius: 3px 0 0 3px;
+ border-radius: 3px 0 0 3px;
+}
+.dv-menugrid .x-grid-row-over .x-grid-cell-last {
+ border: 1px solid #9d9d9d;
+ border-left: 0 none;
+ -moz-border-radius: 0 3px 3px 0;
+ -webkit-border-radius: 0 3px 3px 0;
+ -o-border-radius: 0 3px 3px 0;
+ -ms-border-radius: 0 3px 3px 0;
+ -khtml-border-radius: 0 3px 3px 0;
+ border-radius: 0 3px 3px 0;
}
/* Tree panel node height */
-.x-tree-panel .x-grid-row .x-grid-cell-inner {
+.dv-tree .x-tree-panel .x-grid-row .x-grid-cell-inner {
height: 17px;
}
-/* (Tree)Panel border */
+/* Tree panel selected row background */
+.dv-tree .x-grid-row-selected .x-grid-cell, .dv-tree .x-grid-row-selected .x-grid-rowwrap-div {
+ background-color: #e0e0e0;
+ -moz-border-radius: 2px 2px 2px 2px;
+ -webkit-border-radius: 2px 2px 2px 2px;
+ -o-border-radius: 2px 2px 2px 2px;
+ -ms-border-radius: 2px 2px 2px 2px;
+ -khtml-border-radius: 2px 2px 2px 2px;
+ border-radius: 2px 2px 2px 2px;
+}
+
+/* Tree panel hover row background */
+.dv-tree .x-grid-cell {
+ -moz-border-radius: 2px 2px 2px 2px;
+ -webkit-border-radius: 2px 2px 2px 2px;
+ -o-border-radius: 2px 2px 2px 2px;
+ -ms-border-radius: 2px 2px 2px 2px;
+ -khtml-border-radius: 2px 2px 2px 2px;
+ border-radius: 2px 2px 2px 2px;
+}
+
+/* Panel border */
.x-panel .x-grid-body {
border-style: none;
}
@@ -119,37 +222,49 @@
.x-boundlist-item {
color: #333;
padding: 2px 2px 2px 4px;
+ font-size: 10px;
+ border: 1px solid transparent;
}
.x-boundlist-item-over {
- background-color: #eee;
- border-color: #ddd;
+ background-color: #f1f1f1;
+ border-color: #f1f1f1;
}
.x-boundlist-selected {
background-color: #d3d3d3;
- border-color: #b3abaa;
+ border-color: #d3d3d3;
}
/* Checkbox icons */
-.x-form-checkbox, .x-form-radio {
+.x-form-checkbox {
background-image: url('../images/checkbox.gif');
}
/* Checkbox box label */
.x-form-cb-label-after {
- padding-left: 3px;
- font: 11px arial, ubuntu;
+ padding-left: 1px;
+ font-size: 11px;
+}
+
+/* Button dv-toolbar font size */
+.dv-toolbar * {
+ font-size: 11px;
+}
+.dv-toolbar .dv-toolbar-btn-1 * {
+ color: #111;
+ font-weight: bold;
+}
+.dv-toolbar .dv-toolbar-btn-2 * {
+ color: #444;
}
/* Button chart image */
.x-btn-default-toolbar-small-icon button {
width: 32px !important;
}
-
.x-btn-default-toolbar-small-icon .x-btn-icon {
width: 32px;
height: 32px;
}
-
.x-btn-arrow {
background-image: url('../images/arrow.png');
}
@@ -177,11 +292,6 @@
border-width: 1px;
}
-/* Button font-family */
-.x-btn-default-toolbar-small .x-btn-inner {
- font-family: arial, ubuntu;
-}
-
/* Toolbar separator */
.x-toolbar .x-toolbar-separator-horizontal {
height: 15px;
@@ -209,10 +319,10 @@
-ms-border-radius: 2px 2px 2px 2px;
-khtml-border-radius: 2px 2px 2px 2px;
border-radius: 2px 2px 2px 2px;
- padding: 2px 5px 2px 0;
+ padding: 2px 5px 2px 2px;
border-width: 2px;
border-style: solid;
- background-color: #eee;
+ background-color: #f1f1f1;
}
/* Chart tips (tooltip) */
@@ -221,8 +331,16 @@
}
/* Grid datatable column header */
-.x-column-header {
- font: normal 11px arial, ubuntu;
+.x-column-header-inner .x-column-header-text {
+ font-size: 11px;
+}
+
+/* Grid row/cell text position */
+.x-grid-cell-inner {
+ line-height: 15px;
+ font-size: 10px;
+ cursor: pointer;
+ cursor: hand;
}
/* Grid datatable column chooser */
@@ -230,20 +348,7 @@
display: none;
}
-/****************
- Data Visualizer
- ***************/
-
-body {
- font: normal 11px arial, ubuntu;
-}
-
-li {
- font-size: 10px;
- color: #000;
-}
-
-/* Second toolbar */
+/* Toolbar second bar chart settings */
#chartsettings_tb {
background: #f5f5f5;
padding: 5px 0 0 8px;
@@ -251,64 +356,68 @@
border-top: 1px dashed #ccc;
}
+/* Toolbar favorites */
+#favorite_t {
+ border-bottom-width: 1px !important;
+ -moz-border-radius: 2px 2px 2px 2px;
+ -webkit-border-radius: 2px 2px 2px 2px;
+ -o-border-radius: 2px 2px 2px 2px;
+ -ms-border-radius: 2px 2px 2px 2px;
+ -khtml-border-radius: 2px 2px 2px 2px;
+ border-radius: 2px 2px 2px 2px;
+}
+
/* Multiselect dock border radius */
-#availableIndicators .x-docked-top {
- -o-border-top-left-radius: 2px;
- -icab-border-top-left-radius: 2px;
- -khtml-border-top-left-radius: 2px;
- -moz-border-radius-topleft: 2px;
- -webkit-border-top-left-radius: 2px;
- border-top-left-radius: 2px;
-}
-
-#availableDataElements .x-docked-top {
- -o-border-top-left-radius: 2px;
- -icab-border-top-left-radius: 2px;
- -khtml-border-top-left-radius: 2px;
- -moz-border-radius-topleft: 2px;
- -webkit-border-top-left-radius: 2px;
- border-top-left-radius: 2px;
-}
-
-#selectedIndicators .x-docked-top {
- -o-border-top-right-radius: 2px;
- -icab-border-top-right-radius: 2px;
- -khtml-border-top-right-radius: 2px;
- -moz-border-radius-topright: 2px;
- -webkit-border-top-right-radius: 2px;
- border-top-right-radius: 2px;
-}
-
-#selectedDataElements .x-docked-top {
- -o-border-top-right-radius: 2px;
- -icab-border-top-right-radius: 2px;
- -khtml-border-top-right-radius: 2px;
- -moz-border-radius-topright: 2px;
- -webkit-border-top-right-radius: 2px;
- border-top-right-radius: 2px;
+.dv-toolbar-multiselect-left .x-docked-top {
+ -o-border-top-left-radius: 2px;
+ -icab-border-top-left-radius: 2px;
+ -khtml-border-top-left-radius: 2px;
+ -moz-border-radius-topleft: 2px;
+ -webkit-border-top-left-radius: 2px;
+ border-top-left-radius: 2px;
+}
+
+.dv-toolbar-multiselect-right .x-docked-top {
+ -o-border-top-right-radius: 2px;
+ -icab-border-top-right-radius: 2px;
+ -khtml-border-top-right-radius: 2px;
+ -moz-border-radius-topright: 2px;
+ -webkit-border-top-right-radius: 2px;
+ border-top-right-radius: 2px;
+}
+
+/* Multiselect docked bar font size */
+.dv-toolbar-multiselect-left .dv-toolbar-multiselect-left-label {
+ font-size: 11px;
+ padding-left: 5px;
+}
+.dv-toolbar-multiselect-right .dv-toolbar-multiselect-right-label {
+ font-size: 11px;
+ padding-right: 5px;
}
/* Multiselect boundlist */
-#availableIndicators .x-boundlist-item-over, #availableDataElements .x-boundlist-item-over {
+.dv-toolbar-multiselect-left .x-boundlist-item-over {
background-color: transparent;
border-color: transparent;
}
-#availableIndicators .x-boundlist-selected, #availableDataElements .x-boundlist-selected {
+.dv-toolbar-multiselect-left .x-boundlist-selected {
background-color: #d3d3d3;
- border-color: #b3abaa;
+ border-color: #d3d3d3;
}
-#selectedIndicators .x-boundlist-item-over, #selectedDataElements .x-boundlist-item-over {
+.dv-toolbar-multiselect-right .x-boundlist-item-over {
background-color: transparent;
border-color: transparent;
}
-#selectedIndicators .x-boundlist-selected, #selectedDataElements .x-boundlist-selected {
+.dv-toolbar-multiselect-right .x-boundlist-selected {
background-color: #d3d3d3;
- border-color: #b3abaa;
+ border-color: #d3d3d3;
}
/* Menu */
.x-menu-body {
+ border-color: #bbb;
-moz-border-radius: 2px 2px 2px 2px;
-webkit-border-radius: 2px 2px 2px 2px;
-o-border-radius: 2px 2px 2px 2px;
@@ -330,30 +439,21 @@
border-color: #aaa;
}
+/* Menu item */
.x-menu-item-link {
- padding: 3px 5px 4px 35px;
+ padding: 4px 5px 4px 28px;
}
-.x-menu-item-active .x-menu-item-link {
- -moz-border-radius: 2px 2px 2px 2px;
- -webkit-border-radius: 2px 2px 2px 2px;
- -o-border-radius: 2px 2px 2px 2px;
- -ms-border-radius: 2px 2px 2px 2px;
- -khtml-border-radius: 2px 2px 2px 2px;
- border-radius: 2px 2px 2px 2px;
- border-width: 1px;
- border-style: solid;
- border-color: #aaa;
+/* Menu item color */
+.x-menu-item-text {
+ color: #111;
}
/* Fieldset */
.dv-fieldset-title-link {
color:#000;
- text-decoration:none;
-}
-
-.dv-fieldset-title-link-sub {
- color:#555;
+ font-size: 11px;
+ font-weight: bold;
text-decoration:none;
}
@@ -364,39 +464,40 @@
/* Chart tips */
.dv-chart-tips {
- font: normal 13px arial, ubuntu;
+ font-size: 13px;
padding: 0 0 3px 3px;
+ font-weight: normal;
}
/* Window */
+.dv-window-title-favorite {
+ padding-left: 19px;
+ background-image: url('../images/favorite.png');
+}
.dv-window-title-datatable {
padding-left: 19px;
background-image: url('../images/datatable.png');
}
-/* Grid datatable */
-.dv-datatable .x-grid-header-ct {
+/* Label heading periods */
+.dv-label-period-heading {
+ font-size: 11px;
+ font-weight: bold;
+ color: #666;
+ line-height: 20px;
+}
+
+/* Grid datatable columns */
+.x-grid-header-ct {
border-style: none;
}
-#datatable_g .x-fit-item {
+/* Grid datatable first row border top */
+.dv-datatable .x-fit-item {
border-top: 1px solid #d0d0d0;
}
-/* Button - toolbar */
-.dv-btn-toolbar {
- border-width: 1px;
- padding: 3px;
-}
-
-.dv-btn-toolbar-text-1 {
- color: #333;
- font-weight: bold;
-}
-.dv-btn-toolbar-text-2 {
- color: #444;
-}
-
+/* Menu item icon */
.dv-menu-item-png {
background-image:url('../images/png.png');
}
@@ -409,6 +510,57 @@
background-image:url('../images/datatable.png');
}
-
-
-
+.dv-menu-item-edit {
+ background-image:url('../images/edit.png');
+}
+
+/* Textfield */
+.dv-textfield .x-form-field {
+ height: 26px;
+ padding-left: 4px;
+ -moz-border-radius: 2px 2px 2px 2px;
+ -webkit-border-radius: 2px 2px 2px 2px;
+ -o-border-radius: 2px 2px 2px 2px;
+ -ms-border-radius: 2px 2px 2px 2px;
+ -khtml-border-radius: 2px 2px 2px 2px;
+ border-radius: 2px 2px 2px 2px;
+ font-size: 11px;
+ color: #333;
+}
+.dv-textfield .x-form-item-label {
+ padding-left: 5px;
+ line-height: 20px;
+}
+
+/* DV window confirm list */
+.dv-window-confirm-list .x-panel-body {
+ color: #444;
+ font-size: 10px;
+ border-style: none;
+}
+
+/* Button DV menu toggle group */
+.dv-radiogroup .x-form-cb-wrap {
+ padding-left: 7px;
+}
+.dv-radiogroup .x-form-cb-label-after {
+ padding-left: 2px;
+ font-size: 11px;
+ color: #444;
+}
+.dv-radiogroup .x-form-radio-group {
+ padding-top: 5px;
+}
+
+/* DV menu grid icon/text position aligned with menuitem */
+.dv-menugrid .x-grid-cell-inner {
+ padding: 4px 3px;
+ font-size: 11px;
+ color: #444;
+ line-height: 16px;
+}
+
+/* DV menu grid background now looks like a menu*/
+.dv-menugrid .x-grid-view {
+ background-color: #f1f1f1;
+}
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable.png 2011-11-16 16:29:35 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable.png 2011-12-16 15:12:55 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable2.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable2.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/datatable2.png 2011-12-16 15:12:55 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/edit.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/edit.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/edit.png 2011-12-16 15:12:55 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/favorite.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/favorite.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/favorite.png 2011-12-16 15:12:55 +0000 differ
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf.png 2011-11-17 14:53:18 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf.png 2011-12-16 15:12:55 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf2.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf2.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/pdf2.png 2011-12-16 15:12:55 +0000 differ
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png.png 2011-11-22 14:04:40 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png.png 2011-12-16 15:12:55 +0000 differ
=== added file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png2.png'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png2.png 1970-01-01 00:00:00 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/images/png2.png 2011-12-16 15:12:55 +0000 differ
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/lib/ext/resources/themes/images/gray/form/text-bg.gif'
Binary files dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/lib/ext/resources/themes/images/gray/form/text-bg.gif 2011-09-30 15:07:44 +0000 and dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/app/lib/ext/resources/themes/images/gray/form/text-bg.gif 2011-12-13 09:35:03 +0000 differ
=== modified file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm 2011-12-06 12:06:06 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonInitialize.vm 2011-12-19 20:20:31 +0000
@@ -1,1 +1,1 @@
-{"rn":["$!{rootNode.id}","$!encoder.jsonEncode(${rootNode.name})"],"p":{"lm":[#foreach($p in $lastMonth)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastMonth.size()),#end#end],"mty":[#foreach($p in $monthsThisYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$monthsThisYear.size()),#end#end],"mly":[#foreach($p in $monthsLastYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$monthsLastYear.size()),#end#end],"lq":[#foreach($p in $lastQuarter)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastQuarter.size()),#end#end],"qty":[#foreach($p in $quartersThisYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$quartersThisYear.size()),#end#end],"qly":[#foreach($p in $quartersLastYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$quartersLastYear.size()),#end#end],"ty":[#foreach($p in $thisYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$thisYear.size()),#end#end],"ly":[#foreach($p in $lastYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastYear.size()),#end#end],"lfy":[#foreach($p in $lastFiveYears)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastFiveYears.size()),#end#end]}}
\ No newline at end of file
+{"rn":["$!{rootNode.id}","$!encoder.jsonEncode(${rootNode.name})"],"p":{"lastMonth":[#foreach($p in $lastMonth)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastMonth.size()),#end#end],"last12Months":[#foreach($p in $last12Months)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$last12Months.size()),#end#end],"lastQuarter":[#foreach($p in $lastQuarter)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastQuarter.size()),#end#end],"last4Quarters":[#foreach($p in $last4Quarters)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$last4Quarters.size()),#end#end],"lastSixMonth":[#foreach($p in $lastSixMonth)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$lastSixMonth.size()),#end#end],"last2SixMonths":[#foreach($p in $last2SixMonths)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$last2SixMonths.size()),#end#end],"thisYear":[#foreach($p in $thisYear)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$thisYear.size()),#end#end],"last5Years":[#foreach($p in $last5Years)["$!{p.id}","$!encoder.jsonEncode(${p.name})"]#if($velocityCount<$last5Years.size()),#end#end]}}
\ No newline at end of file
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValues.vm'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValues.vm 2011-11-08 15:53:59 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValues.vm 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#set( $size = $object.size() ){"values":[#foreach( $value in $object ){"v":"$!{value.value}","i":"$!{value.dataElementId}","in":"$!{value.dataElementName}","p":"$!{value.periodId}","pn":"$!{value.periodName}","o":"$!{value.organisationUnitId}","on":"$!{value.organisationUnitName}"}#if( $velocityCount < $size ),#end#end]}
\ No newline at end of file
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValuesPlugin.vm'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValuesPlugin.vm 2011-11-08 12:44:02 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedDataValuesPlugin.vm 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#set( $size = $object.size() ){"values":[#foreach( $value in $object ){"v":"$!{value.value}","i":"$!{value.dataElementId}","p":"$!{value.periodId}","o":"$!{value.organisationUnitId}"}#if( $velocityCount < $size ),#end#end]}
\ No newline at end of file
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValues.vm'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValues.vm 2011-09-29 09:10:42 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValues.vm 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#set( $size = $object.size() ){"values":[#foreach( $value in $object ){"v":"$!{value.value}","i":"$!{value.indicatorId}","p":"$!{value.periodId}","o":"$!{value.organisationUnitId}"}#if( $velocityCount < $size ),#end#end]}
\ No newline at end of file
=== removed file 'dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValuesPlugin.vm'
--- dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValuesPlugin.vm 2011-11-08 12:44:02 +0000
+++ dhis-2/dhis-web/dhis-web-visualizer/src/main/webapp/dhis-web-visualizer/jsonminAggregatedIndicatorValuesPlugin.vm 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#set( $size = $object.size() ){"values":[#foreach( $value in $object ){"v":"$!{value.value}","i":"$!{value.indicatorId}","in":"$!{value.indicatorName}","p":"$!{value.periodId}","pn":"$!{value.periodName}","o":"$!{value.organisationUnitId}","on":"$!{value.organisationUnitName}"}#if( $velocityCount < $size ),#end#end]}
\ No newline at end of file