=== modified file 'dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java' --- dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java 2011-06-19 10:57:18 +0000 +++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/user/UserCredentials.java 2011-07-14 07:22:04 +0000 @@ -33,6 +33,8 @@ import java.util.HashSet; import java.util.Set; +import org.hisp.dhis.dataset.DataSet; + /** * @author Nguyen Hong Duc * @version $Id: UserCredentials.java 2869 2007-02-20 14:26:09Z andegje $ @@ -87,6 +89,22 @@ } /** + * Returns a set of the aggregated data sets for all user authority groups + * of this user credentials. + */ + public Set getAllDataSets() + { + Set dataSets = new HashSet(); + + for ( UserAuthorityGroup group : userAuthorityGroups ) + { + dataSets.addAll( group.getDataSets() ); + } + + return dataSets; + } + + /** * Indicates whether this user credentials can issue the given user authority * group. First the given authority group must not be null. Second this * user credentials must not contain the given authority group. Third === removed file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/EmptyAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/EmptyAction.java 2010-04-12 21:23:33 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/EmptyAction.java 1970-01-01 00:00:00 +0000 @@ -1,48 +0,0 @@ -package org.hisp.dhis.de.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 com.opensymphony.xwork2.Action; - -/** - * @author Torgeir Lorange Ostby - * @version $Id: EmptyAction.java 2974 2007-03-03 22:11:13Z torgeilo $ - */ -public class EmptyAction - implements Action -{ - // ------------------------------------------------------------------------- - // Action implementation - // ------------------------------------------------------------------------- - - public String execute() - throws Exception - { - return SUCCESS; - } -} === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadPeriodsAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadPeriodsAction.java 2011-05-20 13:28:27 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadPeriodsAction.java 2011-07-14 08:39:01 +0000 @@ -31,9 +31,7 @@ import java.util.Collection; import java.util.HashSet; import java.util.List; -import java.util.Set; -import org.hisp.dhis.dataelement.DataElement; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.de.state.SelectedStateManager; @@ -110,14 +108,7 @@ { return periodValid; } - - private Set significantZeros = new HashSet(); - - public Set getSignificantZeros() - { - return significantZeros; - } - + private Collection indicators = new HashSet(); public Collection getIndicators() @@ -164,18 +155,6 @@ } // ----------------------------------------------------------------- - // Load data elemements for which zero values are insignificant - // ----------------------------------------------------------------- - - for ( DataElement dataElement : selectedDataSet.getDataElements() ) - { - if ( dataElement.isZeroIsSignificant() ) - { - significantZeros.add( dataElement ); - } - } - - // ----------------------------------------------------------------- // Explode and add indicators from data set // ----------------------------------------------------------------- === renamed file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadOrganisationUnitAction.java' => 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/PageInitAction.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/LoadOrganisationUnitAction.java 2011-05-20 13:28:27 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/action/PageInitAction.java 2011-07-14 08:39:01 +0000 @@ -27,6 +27,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +import java.util.Collection; + +import org.hisp.dhis.dataelement.DataElement; +import org.hisp.dhis.dataelement.DataElementService; import org.hisp.dhis.de.state.SelectedStateManager; import com.opensymphony.xwork2.Action; @@ -34,7 +38,7 @@ /** * @author Lars Helge Overland */ -public class LoadOrganisationUnitAction +public class PageInitAction implements Action { // ------------------------------------------------------------------------- @@ -47,17 +51,37 @@ { this.selectedStateManager = selectedStateManager; } + + private DataElementService dataElementService; + + public void setDataElementService( DataElementService dataElementService ) + { + this.dataElementService = dataElementService; + } + + // ------------------------------------------------------------------------- + // Output + // ------------------------------------------------------------------------- + + private Collection significantZeros; + + public Collection getSignificantZeros() + { + return significantZeros; + } // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- public String execute() - { + { selectedStateManager.clearSelectedOrganisationUnits(); selectedStateManager.clearSelectedDataSet(); selectedStateManager.clearSelectedPeriod(); + significantZeros = dataElementService.getDataElementsByZeroIsSignificant( true ); + return SUCCESS; } } === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java 2011-04-03 10:25:42 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/java/org/hisp/dhis/de/state/DefaultSelectedStateManager.java 2011-07-14 07:22:04 +0000 @@ -30,14 +30,10 @@ import java.util.ArrayList; import java.util.Date; import java.util.HashMap; -import java.util.HashSet; import java.util.Iterator; import java.util.List; import java.util.Map; -import java.util.Set; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.hisp.dhis.dataset.DataSet; import org.hisp.dhis.dataset.DataSetService; import org.hisp.dhis.organisationunit.OrganisationUnit; @@ -47,9 +43,7 @@ import org.hisp.dhis.period.PeriodService; import org.hisp.dhis.period.PeriodType; import org.hisp.dhis.user.CurrentUserService; -import org.hisp.dhis.user.UserAuthorityGroup; -import org.hisp.dhis.user.UserCredentials; -import org.hisp.dhis.user.UserService; +import org.hisp.dhis.user.User; import com.opensymphony.xwork2.ActionContext; @@ -61,14 +55,9 @@ public class DefaultSelectedStateManager implements SelectedStateManager { - private static final Log log = LogFactory.getLog( DefaultSelectedStateManager.class ); - public static final String SESSION_KEY_SELECTED_DATASET_ID = "data_entry_selected_dataset_id"; - public static final String SESSION_KEY_SELECTED_PERIOD_INDEX = "data_entry_selected_period_index"; - - public static final String SESSION_KEY_BASE_PERIOD = "data_entry_base_period"; - + public static final String SESSION_KEY_BASE_PERIOD = "data_entry_base_period"; public static final String SESSION_KEY_SELECTED_DISPLAY_MODE = "data_entry_selected_display_mode"; // ------------------------------------------------------------------------- @@ -89,13 +78,6 @@ this.selectionManager = selectionManager; } - private UserService userService; - - public void setUserService( UserService userService ) - { - this.userService = userService; - } - private CurrentUserService currentUserService; public void setCurrentUserService( CurrentUserService currentUserService ) @@ -157,18 +139,11 @@ // Retain only DataSets from current user's authority groups // --------------------------------------------------------------------- - if ( currentUserService.getCurrentUser() != null && !currentUserService.currentUserIsSuper() ) + User currentUser = currentUserService.getCurrentUser(); + + if ( currentUser != null && !currentUserService.currentUserIsSuper() ) { - UserCredentials userCredentials = userService.getUserCredentials( currentUserService.getCurrentUser() ); - - Set dataSetUserAuthorityGroups = new HashSet(); - - for ( UserAuthorityGroup userAuthorityGroup : userCredentials.getUserAuthorityGroups() ) - { - dataSetUserAuthorityGroups.addAll( userAuthorityGroup.getDataSets() ); - } - - dataSets.retainAll( dataSetUserAuthorityGroups ); + dataSets.retainAll( currentUser.getUserCredentials().getAllDataSets() ); } // --------------------------------------------------------------------- @@ -360,15 +335,11 @@ if ( basePeriod == null ) { - log.debug( "Base period is null, creating new" ); - basePeriod = periodType.createPeriod(); getSession().put( SESSION_KEY_BASE_PERIOD, basePeriod ); } else if ( !basePeriod.getPeriodType().equals( periodType ) ) { - log.debug( "Wrong type of base period, transforming" ); - basePeriod = periodType.createPeriod( basePeriod.getStartDate() ); getSession().put( SESSION_KEY_BASE_PERIOD, basePeriod ); } === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2011-07-14 06:29:58 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/META-INF/dhis/beans.xml 2011-07-14 08:39:01 +0000 @@ -3,8 +3,6 @@ xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> - - @@ -14,13 +12,18 @@ - + + + + + @@ -28,11 +31,6 @@ - - - - === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml 2011-07-14 06:29:58 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/resources/struts.xml 2011-07-14 07:33:23 +0000 @@ -8,24 +8,20 @@ - - displayForm.action - - - - /dhis-web-dataentry/responseDataValues.vm - - - + /main.vm /dhis-web-dataentry/select.vm /dhis-web-dataentry/menu.vm 420 ../dhis-web-commons/ouwt/ouwt.js,javascript/form.js,javascript/entry.js - style/dhis-web-dataentry.css + style/dhis-web-dataentry.css + + /dhis-web-dataentry/responseDataValues.vm + + /dhis-web-dataentry/responseDataSets.vm === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/entry.js' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/entry.js 2011-07-13 15:09:37 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/entry.js 2011-07-14 08:39:01 +0000 @@ -161,12 +161,12 @@ } } } + + var valueSaver = new ValueSaver( dataElementId, optionComboId, currentOrganisationUnitId, value, COLOR_GREEN ); + valueSaver.save(); + + updateIndicators(); // Update indicators in case of custom form } - - var valueSaver = new ValueSaver( dataElementId, optionComboId, currentOrganisationUnitId, value, COLOR_GREEN ); - valueSaver.save(); - - updateIndicators(); // Update indicators in case of custom form } function saveBoolean( dataElementId, optionComboId ) === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js 2011-07-14 06:29:58 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/javascript/form.js 2011-07-14 08:39:01 +0000 @@ -1,4 +1,4 @@ -// Identifiers for which zero values are, insignificant, also used in entry.js +// Identifiers for which zero values are, insignificant, also used in entry.js, populated in select.vm var significantZeros = []; // Associative array with [indicator id, expression] for indicators in form, also used in entry.js @@ -150,7 +150,6 @@ $.getJSON( url, function( json ) { - significantZeros = json.significantZeros; indicatorFormulas = json.indicatorFormulas; addOptionById( 'selectedPeriodIndex', '-1', '[ ' + i18n_select_period + ' ]' ); === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responsePeriods.vm' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responsePeriods.vm 2011-05-20 11:28:49 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/responsePeriods.vm 2011-07-14 08:39:01 +0000 @@ -9,11 +9,6 @@ "externalId": "$!{period.externalId}" }#if( $velocityCount < $size1 ),#end #end ], -#set( $size2 = $significantZeros.size() ) - "significantZeros": [ -#foreach( $dataElement in $significantZeros ) - ${dataElement.id}#if( $velocityCount < $size2 ),#end -#end ], #set( $size3 = $indicators.size() ) "indicatorFormulas": { #foreach( $indicator in $indicators ) === modified file 'dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/select.vm' --- dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/select.vm 2011-07-13 17:49:13 +0000 +++ dhis-2/dhis-web/dhis-web-dataentry/src/main/webapp/dhis-web-dataentry/select.vm 2011-07-14 08:39:01 +0000 @@ -17,7 +17,11 @@ var i18n_saving_minmax_failed_error_code = '$encoder.jsEscape( $i18n.getString( "saving_minmax_failed_error_code" ) , "'")'; var i18n_confirm_complete = '$encoder.jsEscape( $i18n.getString( "confirm_complete" ) , "'")'; var i18n_confirm_undo = '$encoder.jsEscape( $i18n.getString( "confirm_undo" ) , "'")'; - var i18n_no_response_from_server = '$encoder.jsEscape( $i18n.getString( "no_response_from_server" ) , "'")'; + var i18n_no_response_from_server = '$encoder.jsEscape( $i18n.getString( "no_response_from_server" ) , "'")'; + + significantZeros = [ + #set( $size = $significantZeros.size() ) + #foreach( $dataElement in $significantZeros )${dataElement.id}#if( $velocityCount < $size ),#end #end ];

$i18n.getString( "data_entry" ) #openHelp( "dataEntry" )