← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1544: Assign multi-datasets to orgunit - DONE

 

------------------------------------------------------------
revno: 1544
committer: hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-03-04 16:44:37 +0700
message:
  Assign multi-datasets to orgunit - DONE
added:
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/assign/multidataset/SaveAssignMultiDataSetForOrgunitAction.java
modified:
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/META-INF/dhis/beans.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module_vi_VN.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/index.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/javascript/multiDataSet.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/menu.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/showAssignMultiDataSetForm.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-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js	2010-03-04 05:58:44 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js	2010-03-04 09:44:37 +0000
@@ -212,15 +212,24 @@
 			{
 				data = data.getElementsByTagName('message')[0];
 				var type = data.getAttribute("type");
-				if(type=='error'){                    
+				
+				if ( type == 'error' )
+				{                    
 					setMessage(data.firstChild.nodeValue);
-				}else if(type=='input'){
-					if(window.confirm( i18n_confirm_override )){
+				}
+				else if ( type == 'input' )
+				{
+					if ( window.confirm( i18n_confirm_override ) )
+					{
 						document.forms['uploadForm'].submit();
-					}else{
+					}
+					else
+					{
 						return;
 					}
-				}else{
+				}
+				else
+				{
 					document.forms['uploadForm'].submit();
 				}
 			},

=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/assign/multidataset/SaveAssignMultiDataSetForOrgunitAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/assign/multidataset/SaveAssignMultiDataSetForOrgunitAction.java	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/java/org/hisp/dhis/dataset/action/assign/multidataset/SaveAssignMultiDataSetForOrgunitAction.java	2010-03-04 09:44:37 +0000
@@ -0,0 +1,135 @@
+package org.hisp.dhis.dataset.action.assign.multidataset;
+
+/*
+ * Copyright (c) 2004-2007, 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 java.util.HashSet;
+import java.util.Set;
+
+import org.hisp.dhis.dataset.DataSet;
+import org.hisp.dhis.dataset.DataSetService;
+import org.hisp.dhis.organisationunit.OrganisationUnit;
+import org.hisp.dhis.oust.manager.SelectionTreeManager;
+import org.hisp.dhis.source.Source;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Dang Duy Hieu
+ * @version $Id$
+ */
+public class SaveAssignMultiDataSetForOrgunitAction
+    implements Action
+{
+
+    // -------------------------------------------------------------------------
+    // Dependencies
+    // -------------------------------------------------------------------------
+
+    private SelectionTreeManager selectionTreeManager;
+
+    public void setSelectionTreeManager( SelectionTreeManager selectionTreeManager )
+    {
+        this.selectionTreeManager = selectionTreeManager;
+    }
+
+    private DataSetService dataSetService;
+
+    public void setDataSetService( DataSetService dataSetService )
+    {
+        this.dataSetService = dataSetService;
+    }
+
+    // -------------------------------------------------------------------------
+    // Input & Output
+    // -------------------------------------------------------------------------
+
+    private Collection<String> selectedDataSets = new HashSet<String>();
+
+    public void setSelectedDataSets( Collection<String> selectedDataSets )
+    {
+        this.selectedDataSets = selectedDataSets;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action
+    // -------------------------------------------------------------------------
+
+    public String execute()
+        throws Exception
+    {
+        Collection<OrganisationUnit> rootUnits = selectionTreeManager.getRootOrganisationUnits();
+
+        Set<OrganisationUnit> unitsInTheTree = new HashSet<OrganisationUnit>();
+
+        getUnitsInTheTree( rootUnits, unitsInTheTree );
+
+        for ( String dataSetId : selectedDataSets )
+        {
+            DataSet dataSet = dataSetService.getDataSet( Integer.parseInt( dataSetId ) );
+
+            Set<Source> assignedSources = dataSet.getSources();
+
+            assignedSources.removeAll( convert( unitsInTheTree ) );
+
+            Collection<OrganisationUnit> selectedOrganisationUnits = selectionTreeManager
+                .getSelectedOrganisationUnits();
+
+            assignedSources.addAll( convert( selectedOrganisationUnits ) );
+
+            dataSet.setSources( assignedSources );
+            
+            dataSetService.updateDataSet( dataSet );
+        }
+        
+        return SUCCESS;
+    }
+
+    // -------------------------------------------------------------------------
+    // Supportive methods
+    // -------------------------------------------------------------------------
+
+    private Set<Source> convert( Collection<OrganisationUnit> organisationUnits )
+    {
+        Set<Source> sources = new HashSet<Source>();
+
+        sources.addAll( organisationUnits );
+
+        return sources;
+    }
+
+    private void getUnitsInTheTree( Collection<OrganisationUnit> rootUnits, Set<OrganisationUnit> unitsInTheTree )
+    {
+        for ( OrganisationUnit root : rootUnits )
+        {
+            unitsInTheTree.add( root );
+            getUnitsInTheTree( root.getChildren(), unitsInTheTree );
+        }
+    }
+
+}

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/META-INF/dhis/beans.xml	2010-03-03 04:33:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/META-INF/dhis/beans.xml	2010-03-04 09:44:37 +0000
@@ -405,5 +405,16 @@
     </property>
   </bean>
   
+  <bean id="org.hisp.dhis.dataset.action.assign.multidataset.SaveAssignMultiDataSetForOrgunitAction"
+    class="org.hisp.dhis.dataset.action.assign.multidataset.SaveAssignMultiDataSetForOrgunitAction"
+    scope="prototype">
+    <property name="dataSetService">
+      <ref bean="org.hisp.dhis.dataset.DataSetService"/>
+	</property>
+	<property name="selectionTreeManager">
+      <ref bean="org.hisp.dhis.oust.manager.SelectionTreeManager"/>
+	</property>
+  </bean>
+
   
 </beans>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties	2010-03-03 06:40:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module.properties	2010-03-04 09:44:37 +0000
@@ -106,7 +106,9 @@
 intro_dataset												= Create, update, view and delete data sets. A data set is a collection of data elements for which data is entered. This page also lets you define custom data entry screens and option lists.
 intro_dataset_section										= Create, update, view and delete data set sections. Sections can be inserted into data sets to make them more comprehensible.
 edit_compulsory_data_elements								= Edit compulsory data elements
-assign_multidataset                                         = Assign multi-datasets to orgunit
+assign_multidataset                                         = Multi-datasets
 assign_multidataset_manage                                  = Assign multi-datasets to orgunit Management
 available_datasets                                          = Available DataSets
-selected_datasets                                           = Selected DataSets
\ No newline at end of file
+selected_datasets                                           = Selected DataSets
+intro_assign_multidataset                                   = Assign Multi-DataSets to organisation unit. Multi-DataSet is a collection of data sets. This page allow you to assign one or many data set(s) to one or many organisation unit(s).
+orgunit_tree                                                = Organisation Unit Tree
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module_vi_VN.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module_vi_VN.properties	2010-03-03 06:40:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/org/hisp/dhis/dataset/i18n_module_vi_VN.properties	2010-03-04 09:44:37 +0000
@@ -59,8 +59,10 @@
 selected_section_elements       = Danh s&#225;ch Element &#273;&#227; ch&#7885;n
 available_section_elements      = Danh s&#225;ch Element ch&#432;a ch&#7885;n
 update_section                  = C&#7853;p nh&#7853;t section
-assign_multidataset             = G\u00e1n nhi\u1ec1u t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
+assign_multidataset             = \u0110a t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
 assign_multidataset_manage      = Qu\u1ea3n l\u00fd g\u00e1n \u0111a t\u1eadp h\u1ee3p d\u1eef li\u1ec7u cho c\u00e1c \u0111\u01a1n v\u1ecb
 available_datasets              = T\u1eadp h\u1ee3p d\u1eef li\u1ec7u hi\u1ec7n c\u00f3
 selected_datasets               = T\u1eadp h\u1ee3p d\u1eef li\u1ec7u \u0111\u01b0\u1ee3c ch\u1ecdn
-filter                          = B\u1ed9 l\u1ecdc
\ No newline at end of file
+filter                          = B\u1ed9 l\u1ecdc
+intro_assign_multidataset       = G\u00e1n \u0111a t\u1eadp h\u1ee3p d\u1eef li\u1ec7u cho c\u00e1c \u0111\u01a1n v\u1ecb. \u0110a t\u1eadp h\u1ee3p d\u1eef li\u1ec7u l\u00e0 g\u1ed3m nhi\u1ec1u t\u1eadp h\u1ee3p d\u1eef li\u1ec7u. Ch\u1ee9c n\u0103ng n\u00e0y cho ph\u00e9p g\u00e1n m\u1ed9t hay nhi\u1ec1u t\u1eadp h\u1ee3p d\u1eef li\u1ec7u cho m\u1ed9t hay nhi\u1ec1u \u0111\u01a1n v\u1ecb.   
+orgunit_tree                    = C\u00e2y \u0111\u01a1n v\u1ecb
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml	2010-03-03 06:40:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/resources/struts.xml	2010-03-04 09:44:37 +0000
@@ -325,5 +325,10 @@
 	  <param name="javascripts">../dhis-web-commons/oust/oust.js,javascript/multiDataSet.js</param>
 	</action>
 	
+	<action name="saveAssignMultiDataSetForOrgunit"
+	  class="org.hisp.dhis.dataset.action.assign.multidataset.SaveAssignMultiDataSetForOrgunitAction">
+	  <result name="success" type="redirect">index.action</result>
+	</action>
+	
   </package>
 </struts>

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/index.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/index.vm	2009-11-03 09:05:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/index.vm	2010-03-04 09:44:37 +0000
@@ -4,4 +4,5 @@
 <ul class="introList">
     #introListItem( "dataSet.action" "dataset" )
     #introListItem( "section.action" "dataset_section" )
+    #introListItem( "showAssignMultiDataSetForOrgunitForm.action" "assign_multidataset" )
 </ul>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/javascript/multiDataSet.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/javascript/multiDataSet.js	2010-03-03 06:40:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/javascript/multiDataSet.js	2010-03-04 09:44:37 +0000
@@ -81,7 +81,7 @@
     //filterAvailableDataElements();
 }
 
-function removeDataSetMembers()
+function removeSelectedDataSets()
 {
 	var list = document.getElementById( 'selectedDataSets' );
 

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/menu.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/menu.vm	2010-03-03 04:33:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/menu.vm	2010-03-04 09:44:37 +0000
@@ -4,5 +4,4 @@
 	<li><a href="dataSet.action">$i18n.getString( "dataset" )&nbsp;</a></li>
 	<li><a href="section.action">$i18n.getString( "dataset_section" )&nbsp;</a></li>
 	<li><a href="showAssignMultiDataSetForOrgunitForm.action">$i18n.getString( "assign_multidataset" )&nbsp;</a></li>
-	
 </ul>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/showAssignMultiDataSetForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/showAssignMultiDataSetForm.vm	2010-03-03 06:40:08 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataset/src/main/webapp/dhis-web-maintenance-dataset/showAssignMultiDataSetForm.vm	2010-03-04 09:44:37 +0000
@@ -1,6 +1,6 @@
 <h3>$i18n.getString( "assign_multidataset_manage" )</h3>
 
-<form id="assignMultiDataSetForm" action="saveAssignMultiDataSetForOrgunit.action" method="post" >
+<form id="assignMultiDataSetForm" action="saveAssignMultiDataSetForOrgunit.action" method="post" onsubmit="selectAllById('selectedDataSets')">
 
 <table>
 	<tr>
@@ -30,6 +30,9 @@
 <div><br/></div>
 
   <table id="selectionTable">
+  	<tr>
+		<th>$i18n.getString( "orgunit_tree" )</th>
+	</tr>
 	<tr>
 	  <td>
 		<input type="button" value="$i18n.getString( "select_all_at_level" )" onclick="selectAllAtLevel()" style="width:12em">
@@ -135,7 +138,7 @@
 </table>
 <p>
 	<input type="submit" id="submitButton" value="$i18n.getString( "save" )" style="width:10em"><input type="button" 
-	onclick="window.location.href='dataSet.action'" value="$i18n.getString( "cancel" )" style="width:10em">
+	onclick="window.location.href='index.action'" value="$i18n.getString( "cancel" )" style="width:10em">
 </p>
 
 </form>