← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 2353: update indication group editor/delete some vm file not in used

 

------------------------------------------------------------
revno: 2353
committer: Tri <Tri@Tri-Laptop>
branch nick: dhis2
timestamp: Mon 2010-12-13 13:40:41 +0700
message:
  update indication group editor/delete some vm file not in used
removed:
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/SwitchGroupEditorViewAction.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView1.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView2.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView1.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView2.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseAddDataElementGroupSuccess.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementGroups.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementList.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElements.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDelete.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseError.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseIndicatorGroups.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseInput.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responsePeriods.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseSuccess.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/style/
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/style/indicatorGroupEditor.css
added:
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView.vm
modified:
  dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonIndicatorGroup.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelementgroup/AssignGroupsForDataElementAction.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/AssignGroupsForIndicatorAction.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/RemoveIndicatorGroupAction.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/dataElementGroupEditorView.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedDataElement.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedIndicator.js


--
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-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonIndicatorGroup.vm'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonIndicatorGroup.vm	2010-12-12 19:49:23 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/ajax/jsonIndicatorGroup.vm	2010-12-13 06:40:41 +0000
@@ -1,6 +1,6 @@
 { "indicatorGroup": 
   {
-    "id": $!{indicator.id},
+    "id": $!{indicatorGroup.id},
     "name": "$!encoder.jsonEncode( ${indicatorGroup.name} )",
     "alternativeName": "$!encoder.jsonEncode( ${indicatorGroup.alternativeNamee} )",
     "memberCount": "$memberCount"

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/SwitchGroupEditorViewAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/SwitchGroupEditorViewAction.java	2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/SwitchGroupEditorViewAction.java	1970-01-01 00:00:00 +0000
@@ -1,78 +0,0 @@
-package org.hisp.dhis.dd.action;
-
-import com.opensymphony.xwork2.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.
- */
-
-/**
- * @author Tran Thanh Tri
- * @version $Id:
- */
-public class SwitchGroupEditorViewAction
-    implements Action
-{
-
-    // -------------------------------------------------------------------------
-    // Input
-    // -------------------------------------------------------------------------
-
-    private Integer view;
-
-    public Integer getView()
-    {
-        return view;
-    }
-
-    public void setView( Integer view )
-    {
-        this.view = view;
-    }
-
-    @Override
-    public String execute()
-        throws Exception
-    {
-        if ( view == null )
-        {
-            view = 1;
-        }
-
-        String RESULT = "view" + view;
-
-        if ( view == 1 )
-        {
-            view = 2;
-        }
-        else
-        {
-            view = 1;
-        }
-
-        return RESULT;
-    }
-}

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelementgroup/AssignGroupsForDataElementAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelementgroup/AssignGroupsForDataElementAction.java	2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/dataelementgroup/AssignGroupsForDataElementAction.java	2010-12-13 06:40:41 +0000
@@ -27,7 +27,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -68,9 +67,9 @@
         this.dataElementId = dataElementId;
     }
 
-    private Collection<Integer> dataElementGroups;
+    private Set<Integer> dataElementGroups = new HashSet<Integer>();
 
-    public void setDataElementGroups( Collection<Integer> dataElementGroups )
+    public void setDataElementGroups( Set<Integer> dataElementGroups )
     {
         this.dataElementGroups = dataElementGroups;
     }

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/AssignGroupsForIndicatorAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/AssignGroupsForIndicatorAction.java	2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/AssignGroupsForIndicatorAction.java	2010-12-13 06:40:41 +0000
@@ -27,7 +27,6 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-import java.util.Collection;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -68,9 +67,9 @@
         this.indicatorId = indicatorId;
     }
 
-    private Collection<Integer> indicatorGroups;
+    private Set<Integer> indicatorGroups = new HashSet<Integer>();
 
-    public void setIndicatorGroups( Collection<Integer> indicatorGroups )
+    public void setIndicatorGroups( Set<Integer> indicatorGroups )
     {
         this.indicatorGroups = indicatorGroups;
     }

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/RemoveIndicatorGroupAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/RemoveIndicatorGroupAction.java	2010-04-12 21:23:33 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/java/org/hisp/dhis/dd/action/indicatorgroup/RemoveIndicatorGroupAction.java	2010-12-13 06:40:41 +0000
@@ -27,13 +27,16 @@
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+import org.hisp.dhis.common.DeleteNotAllowedException;
+import org.hisp.dhis.i18n.I18n;
 import org.hisp.dhis.indicator.IndicatorService;
 
 import com.opensymphony.xwork2.ActionSupport;
 
 /**
  * @author Torgeir Lorange Ostby
- * @version $Id: RemoveIndicatorGroupAction.java 3305 2007-05-14 18:55:52Z larshelg $
+ * @version $Id: RemoveIndicatorGroupAction.java 3305 2007-05-14 18:55:52Z
+ *          larshelg $
  */
 public class RemoveIndicatorGroupAction
     extends ActionSupport
@@ -48,7 +51,18 @@
     {
         this.indicatorService = indicatorService;
     }
-    
+
+    // -------------------------------------------------------------------------
+    // I18n
+    // -------------------------------------------------------------------------
+
+    private I18n i18n;
+
+    public void setI18n( I18n i18n )
+    {
+        this.i18n = i18n;
+    }
+
     // -------------------------------------------------------------------------
     // Input
     // -------------------------------------------------------------------------
@@ -61,12 +75,38 @@
     }
 
     // -------------------------------------------------------------------------
+    // Output
+    // -------------------------------------------------------------------------
+
+    private String message;
+
+    public String getMessage()
+    {
+        return message;
+    }
+
+    // -------------------------------------------------------------------------
     // Action implementation
     // -------------------------------------------------------------------------
 
     public String execute()
     {
-        indicatorService.deleteIndicatorGroup( indicatorService.getIndicatorGroup( id ) );
+        try
+        {
+            indicatorService.deleteIndicatorGroup( indicatorService.getIndicatorGroup( id ) );
+
+        }
+        catch ( DeleteNotAllowedException ex )
+        {
+            if ( ex.getErrorCode().equals( DeleteNotAllowedException.ERROR_ASSOCIATED_BY_OTHER_OBJECTS ) )
+            {
+                message = i18n.getString( "object_not_deleted_associated_by_objects" ) + " " + ex.getClassName();
+
+                return ERROR;
+            }
+        }
+
+        message = i18n.getString( "item_deleted_successfully" );
 
         return SUCCESS;
     }

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/struts.xml	2010-12-12 19:11:49 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/resources/struts.xml	2010-12-13 06:40:41 +0000
@@ -36,15 +36,7 @@
 			class="org.hisp.dhis.dd.action.dataelement.SaveDataElementSortOrderAction">
 			<result name="success" type="redirect">dataElement.action
 			</result>
-		</action>
-
-		<action name="getDataElements"
-			class="org.hisp.dhis.dd.action.dataelement.GetDataElementListAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseDataElements.vm
-			</result>
-			<param name="onExceptionReturn">plainTextError</param>
-		</action>
+		</action>		
 
 		<action name="getDataElementGroupMembers"
 			class="org.hisp.dhis.dd.action.dataelement.GetDataElementGroupMembersAction">
@@ -364,68 +356,42 @@
 		</action>		
 
 		<!-- Indicator Group Editor -->
-
+		
 		<action name="indicatorGroupEditor"
-			class="org.hisp.dhis.dd.action.SwitchGroupEditorViewAction">
-			<result name="view1" type="chain">indicatorGroupEditorView1
-			</result>
-			<result name="view2" type="chain">indicatorGroupEditorView2
-			</result>
-		</action>
-
-		<action name="indicatorGroupEditorView1"
-			class="org.hisp.dhis.dd.action.indicator.GetIndicatorListAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-maintenance-datadictionary/indicatorGroupEditorView1.vm</param>
-			<param name="menu">/dhis-web-maintenance-datadictionary/menu.vm</param>
-			<param name="javascripts">javascript/indicatorGroupEditorView1.js</param>
-			<param name="stylesheets">style/indicatorGroupEditor.css</param>
-		</action>
-
-		<action name="indicatorGroupEditorView2"
-			class="org.hisp.dhis.dd.action.indicator.GetIndicatorListAction">
-			<result name="success" type="velocity">/main.vm</result>
-			<param name="page">/dhis-web-maintenance-datadictionary/indicatorGroupEditorView2.vm</param>
-			<param name="menu">/dhis-web-maintenance-datadictionary/menu.vm</param>
-			<param name="javascripts">javascript/indicatorGroupEditorView2.js</param>
-			<param name="stylesheets">style/indicatorGroupEditor.css</param>
-		</action>
-
+			class="org.hisp.dhis.commons.action.GetIndicatorGroupsAction">
+			<result name="success" type="chain">indicatorGroupEditorChain1</result>			
+		</action>
+		
+		<action name="indicatorGroupEditorChain1"
+			class="org.hisp.dhis.commons.action.GetIndicatorsAction">
+			<result name="success" type="chain">indicatorGroupEditorChain2</result>			
+		</action>
+
+		<action name="indicatorGroupEditorChain2"
+			class="org.hisp.dhis.dd.action.NoAction">
+			<result name="success" type="velocity">/main.vm</result>
+			<param name="page">/dhis-web-maintenance-datadictionary/indicatorGroupEditorView.vm</param>
+			<param name="menu">/dhis-web-maintenance-datadictionary/menu.vm</param>			
+		</action>
+		
 		<action name="getAssignedIndicatorGroups"
 			class="org.hisp.dhis.dd.action.indicatorgroup.GetAssignedIndicatorGroupsAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseIndicatorGroups.vm
-			</result>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonIndicatorGroups.vm</result>
 		</action>
 
 		<action name="asignGroupsForIndicator"
 			class="org.hisp.dhis.dd.action.indicatorgroup.AssignGroupsForIndicatorAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseSuccess.vm
-			</result>
-		</action>
-
-		<action name="getIndicatorGroupEditor"
-			class="org.hisp.dhis.dd.action.indicatorgroup.GetIndicatorGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseIndicatorGroup.vm
-			</result>
-		</action>
-
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+		</action>
+		
 		<action name="addIndicatorGroupEditor"
 			class="org.hisp.dhis.dd.action.indicatorgroup.AddIndicatorGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseIndicatorGroup.vm
-			</result>
-			<param name="requiredAuthorities">F_INDICATORGROUP_ADD</param>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonIndicatorGroup.vm</result>			
 		</action>
 
 		<action name="renameIndicatorGroupEditor"
 			class="org.hisp.dhis.dd.action.indicatorgroup.UpdateIndicatorGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseIndicatorGroup.vm
-			</result>
-			<param name="requiredAuthorities">F_INDICATORGROUP_UPDATE</param>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonIndicatorGroup.vm</result>
 		</action>
 
 		<action name="deleteIndicatorGroupEditor"
@@ -434,16 +400,12 @@
 				/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
 			<result name="error" type="velocity-json">
 				/dhis-web-commons/ajax/jsonResponseError.vm</result>
-			<param name="onExceptionReturn">plainTextError</param>
-			<param name="requiredAuthorities">F_INDICATORGROUP_DELETE</param>
+			<param name="onExceptionReturn">plainTextError</param>			
 		</action>
 
 		<action name="updateIndicatorGroupEditor"
 			class="org.hisp.dhis.dd.action.indicatorgroup.UpdateIndicatorGroupAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseIndicatorGroup.vm
-			</result>
-			<param name="requiredAuthorities">F_INDICATORGROUP_UPDATE</param>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
 		</action>
 
 		<!-- IndicatorGroup -->
@@ -707,10 +669,8 @@
 
 		<action name="validateDataDictionary"
 			class="org.hisp.dhis.dd.action.datadictionary.ValidateDataDictionaryAction">
-			<result name="success" type="velocity-json">../dhis-web-commons/ajax/jsonResponseSuccess.vm
-			</result>
-			<result name="error" type="velocity-json">../dhis-web-commons/ajax/jsonResponseError.vm
-			</result>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+			<result name="error" type="velocity-json">/dhis-web-commons/ajax/jsonResponseError.vm</result>
 			<param name="onExceptionReturn">plainTextError</param>
 		</action>
 
@@ -756,12 +716,9 @@
 
 		<action name="validateExtendedDataElement"
 			class="org.hisp.dhis.dd.action.extendeddataelement.ValidateExtendedDataElementAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseSuccess.vm</result>
-			<result name="error" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseError.vm</result>
-			<result name="input" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseInput.vm</result>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+			<result name="error" type="velocity-json">/dhis-web-commons/ajax/jsonResponseError.vm</result>		
+			<result name="input" type="velocity-json">/dhis-web-commons/ajax/jsonResponseInput.vm</result>
 			<param name="onExceptionReturn">plainTextError</param>
 		</action>
 
@@ -807,12 +764,9 @@
 
 		<action name="validateExtendedIndicator"
 			class="org.hisp.dhis.dd.action.extendedindicator.ValidateExtendedIndicatorAction">
-			<result name="success" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseSuccess.vm</result>
-			<result name="error" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseError.vm</result>
-			<result name="input" type="velocity-xml">
-				/dhis-web-maintenance-datadictionary/responseInput.vm</result>
+			<result name="success" type="velocity-json">/dhis-web-commons/ajax/jsonResponseSuccess.vm</result>
+			<result name="error" type="velocity-json">/dhis-web-commons/ajax/jsonResponseError.vm</result>
+			<result name="input" type="velocity-json">/dhis-web-commons/ajax/jsonResponseInput.vm</result>
 			<param name="onExceptionReturn">plainTextError</param>
 		</action>
 

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/dataElementGroupEditorView.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/dataElementGroupEditorView.vm	2010-12-10 07:45:59 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/dataElementGroupEditorView.vm	2010-12-13 06:40:41 +0000
@@ -201,7 +201,16 @@
 			}
 		}
 		list_1.find(":first").attr("selected", "selected");		
-		list_2.find(":first").attr("selected", "selected");		
+		list_2.find(":first").attr("selected", "selected");	
+		
+		var list_3 = jQuery( "#view_2 #assignedGroups").children();
+		list_2.children().each( function(i, item ){
+			list_3.each( function(k, it ){
+				if( it.value == item.value ){
+					jQuery( item ).remove();
+				}
+			});
+		});
 	}
 	
 	function getDataElementsByGroup()

=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView.vm	1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView.vm	2010-12-13 06:40:41 +0000
@@ -0,0 +1,484 @@
+<h3>$i18n.getString( "indicator_group_editor" ) #openHelp( "indicatorGroupEditor" )</h3>
+<script>
+	jQuery(function(){
+		jQuery("#tabs").tabs();
+	});
+</script>
+
+<div id="tabs" style="position:absolute">
+	<ul>
+		<li><a href="#view_1">$i18n.getString( "view_1" )</a></li>
+		<li><a href="#view_2">$i18n.getString( "view_2" )</a></li>
+	</ul>
+	<div id="view_1">
+	<table>	
+		<tr>
+			<th>$i18n.getString( "indicator_group" )</th>
+			<th></th>
+			<td rowspan="2"></td>
+			<th>$i18n.getString( "available_indicators" )</th>			
+		</tr>
+		
+		<tr>
+			<td><input id="indicatorGroupsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'indicatorGroups');"/></td>
+			<td><input id="selectedIndicatorsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'selectedIndicators');"/></td>		
+			<td><input id="availableIndicatorsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'availableIndicators');"/></td>
+		</tr>
+
+		<tr>
+			<td>
+				<select class="select" id="indicatorGroups" size="30" onchange="getIndicatorsByGroup();"/>
+			</td>
+			<td>
+				<select class="select" id="selectedIndicators" multiple="multiple" size="30"  ondblclick="moveSelectedById(this.id, 'availableIndicators');"/>
+			</td>
+			
+			<td>
+				<input type="button" value="&lt;" onclick="moveSelectedById('availableIndicators', 'selectedIndicators');" style="width:30px"/><br/><br/>
+				<input type="button" value="&gt;" onclick="moveSelectedById('selectedIndicators', 'availableIndicators');" style="width:30px"/>
+			</td>
+			<td>
+				<select class="select" id="availableIndicators" multiple="multiple" size="30"  ondblclick="moveSelectedById(this.id, 'selectedIndicators');"/>
+			</td>
+		</tr>
+		<tr>
+			<td>			
+				<a href="javascript:sortList( 'indicatorGroups', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+				<a href="javascript:sortList( 'indicatorGroups', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+				<input type="button" value="$i18n.getString( 'new' )" onclick="showAddGroup()" style="width:70px"/>
+				<input type="button" value="$i18n.getString( 'rename' )" onclick="showUpdateGroup()" style="width:70px"/>
+				<input type="button" value="$i18n.getString( 'delete' )" onclick="deleteIndicatorGroup()" style="width:70px"/>
+			</td>
+			<td>
+				<a href="javascript:sortList( 'selectedIndicators', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+				<a href="javascript:sortList( 'selectedIndicators', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>			
+				<input type="button" value="$i18n.getString( 'update_indicator_group_member' )" onclick="updateGroupMembers()"/>
+			</td>
+			<td></td>
+			<td>
+				<a href="javascript:sortList( 'availableIndicators', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+				<a href="javascript:sortList( 'availableIndicators', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>						
+			</td>
+		</tr>
+	</table>
+	</div>
+	<div id="view_2">
+		<table>	
+			<tr>		
+				<th>$i18n.getString( "available_indicators" )</th>
+				<th></th>
+			<td rowspan="2"></td>
+				<th>$i18n.getString( "available_groups" )</th>
+				
+			</tr>
+			
+			<tr>
+				<td><input id="availableIndicatorsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'availableIndicators2');"/></td>
+				<td><input id="assignedGroupsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'assignedGroups');"/></td>				
+				<td><input id="availableGroupsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'availableGroups');"/></td>
+			</tr>
+
+			<tr>
+				<td>
+					<select class="select" id="availableIndicators2" size="30" onclick="getAssignedIndicatorGroups()">				
+					</select>
+				</td>		
+				<td>
+					<select class="select" id="assignedGroups" multiple="multiple" size="30" ondblclick="moveSelectedById('assignedGroups', 'availableGroups');">
+					</select>
+				</td>
+				
+				<td>
+					<input type="button" value="&lt;" onclick="moveSelectedById('availableGroups', 'assignedGroups');" style="width:30px"/><br/><br/>
+					<input type="button" value="&gt;" onclick="moveSelectedById('assignedGroups', 'availableGroups');" style="width:30px"/>
+				</td>
+				
+				<td>
+					<select class="select" id="availableGroups" multiple="multiple" size="30" ondblclick="moveSelectedById(this.id, 'assignedGroups');">				
+					</select>
+				</td>
+				
+			</tr>
+			<tr>		
+				<td>
+					<a href="javascript:sortList( 'availableIndicators2', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+					<a href="javascript:sortList( 'availableIndicators2', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>						
+				</td>
+				<td>
+					<a href="javascript:sortList( 'assignedGroups', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+					<a href="javascript:sortList( 'assignedGroups', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+					<input type="button" value="$i18n.getString( 'update_indicator_group_member' )" onclick="assignGroupsForIndicator()"/>
+				</td>
+				<td></td>
+				<td>
+					<a href="javascript:sortList( 'availableGroups', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
+					<a href="javascript:sortList( 'availableGroups', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>			
+					<input type="button" value="$i18n.getString( 'new' )" onclick="showAddGroup2()" style="width:70px"/>
+					<input type="button" value="$i18n.getString( 'rename' )" onclick="showUpdateGroup2()" style="width:70px"/>
+					<input type="button" value="$i18n.getString( 'delete' )" onclick="deleteIndicatorGroup2()" style="width:70px"/>
+				</td>
+				
+			</tr>
+		</table>
+	</div>
+</div>
+
+<div id="addIndicatorGroupForm">
+	<label>$i18n.getString( "name" )</label>	
+	<input type="text" id="name" name="name" style="width:20em" class="{validate:{required:true}}"/>	
+</div>
+
+<style>
+#addIndicatorGroupForm{
+	width:300px;
+}
+#addIndicatorGroupForm div{
+	float:left;
+}
+.select{
+	min-width:300px;
+}
+</style>
+
+<script type="text/javascript">
+
+	var i18n_select_indicator_group = '$encoder.jsEscape( $i18n.getString( "select_indicator_group" ) , "'")';
+	var i18n_confirm_delete = '$encoder.jsEscape( $i18n.getString( "confirm_delete_indicator_group" ) , "'")';
+	var i18n_member_of = '$encoder.jsEscape( $i18n.getString( "member_of" ) , "'")';
+	var i18n_update_success = '$encoder.jsEscape( $i18n.getString( "update_success" ) , "'")';
+		
+	var indicatorGroups = new Array();
+	#foreach( $indicatorGroup in $indicatorGroups )
+		indicatorGroups['$indicatorGroup.id'] = '$encoder.jsEscape( $indicatorGroup.name, "'" )';
+	#end
+
+	var availableIndicators = new Array();
+	#foreach( $indicator in $indicators )
+		availableIndicators['$indicator.id'] = '$encoder.jsEscape( $indicator.name, "'" )';
+	#end
+	var selectedIndicators = new Array();	
+	
+	jQuery(function(){
+		loadAvailableGroups();
+		getIndicatorsByGroup();	
+		getAssignedIndicatorGroups();	
+		jQuery( "#addIndicatorGroupForm" ).dialog({autoOpen:false, modal:true});		
+	});
+	
+	function loadAvailableIndicators()
+	{
+		var filter_1 = jQuery( '#view_1 #availableIndicatorsFilter' ).val();
+		var filter_2 = jQuery( '#view_2 #availableIndicatorsFilter' ).val();
+		var list_1 = jQuery( "#view_1 #availableIndicators" );
+		var list_2 = jQuery( "#view_2 #availableIndicators2" );
+		list_1.empty();
+		list_2.empty();
+		
+		for( var id in availableIndicators)
+		{
+			var text = availableIndicators[id];
+			if( text.toLowerCase().indexOf( filter_1.toLowerCase() ) != -1)
+			{				
+				list_1.append('<option value="' + id + '">' + text + '</option>' );
+				list_2.append('<option value="' + id + '">' + text + '</option>' );
+			}
+		}
+		
+		list_1.find(":first").attr("selected", "selected");		
+		list_2.find(":first").attr("selected", "selected");		
+		
+	}
+	
+	function loadAvailableGroups()
+	{
+		var filter_1 = jQuery( '#view_1 #indicatorGroupsFilter' ).val();
+		var filter_2 = jQuery( '#view_2 #indicatorGroupsFilter' ).val();
+		var list_1 = jQuery( "#view_1 #indicatorGroups" );
+		var list_2 = jQuery( "#view_2 #availableGroups" );			
+		list_1.empty();				
+		list_2.empty();				
+		for( var id in indicatorGroups)
+		{
+			var text = indicatorGroups[id];
+			if( text.toLowerCase().indexOf( filter_1.toLowerCase() ) != -1)
+			{
+				list_1.append('<option value="' + id + '">' + text + '</option>' );
+				list_2.append('<option value="' + id + '">' + text + '</option>' );
+			}
+		}
+		list_1.find(":first").attr("selected", "selected");		
+		list_2.find(":first").attr("selected", "selected");
+		
+		var list_3 = jQuery( "#view_2 #assignedGroups").children();
+		list_2.children().each( function(i, item ){
+			list_3.each( function(k, it ){
+				if( it.value == item.value ){
+					jQuery( item ).remove();
+				}
+			});
+		});
+	}
+	
+	function getIndicatorsByGroup()
+	{
+		
+		loadAvailableIndicators();
+		
+		var filter_1 = jQuery( '#view_1 #selectedIndicatorsFilter' ).val();
+		var list_1 = jQuery( "#view_1 #selectedIndicators" );
+		list_1.empty();				
+		
+		jQuery.postJSON( "../dhis-web-commons-ajax-json/getIndicators.action", {
+			id: jQuery( '#view_1 #indicatorGroups' ).val()
+		}, function( json ){
+			jQuery.each( json.indicators, function(i, item){				
+				var text = item.name;
+				if( text.toLowerCase().indexOf( filter_1.toLowerCase() ) != -1)
+				{
+					list_1.append('<option value="' + item.id + '">' + text + '</option>' );
+				}
+				jQuery( "#view_1 #availableIndicators" ).children().each( function(k, it){
+					if( item.id == it.value )
+					{
+						jQuery(it).remove();
+					}
+				});
+			});
+		});
+	}
+	
+	function showAddGroup()
+	{
+		
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'title', '$encoder.jsEscape( $i18n.getString( "new" ) , "'")');
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'buttons', [{
+			text: '$encoder.jsEscape( $i18n.getString( "save" ) , "'")',
+			click: function(){				
+				jQuery.postJSON( "validateIndicatorGroup.action", {					
+					name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); }
+				}, function( json ){
+					if( json.response == 'success' ){
+						jQuery.postJSON( "addIndicatorGroupEditor.action", {
+							name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); }					
+						}, function( json ){
+							indicatorGroups[json.indicatorGroup.id] = json.indicatorGroup.name;
+							loadAvailableGroups();								
+							loadAvailableIndicators();
+							
+							jQuery( "#view_1 #selectedIndicators" ).empty();
+							jQuery( '#addIndicatorGroupForm' ).dialog('close');
+						} );
+					}else{
+						markInvalid( "addIndicatorGroupForm #name", json.message );
+					}
+				});	
+			}
+		}]);
+		jQuery( '#addIndicatorGroupForm' ).dialog('open');		
+		
+	}
+	
+	function showUpdateGroup()
+	{
+		var id = jQuery( "#view_1 #indicatorGroups" ).val();		
+		var text = jQuery( "#view_1 #indicatorGroups option[value=" + id + "]" ).text();
+		jQuery( '#addIndicatorGroupForm #name' ).val( text );
+		
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'buttons', [{
+			text: '$encoder.jsEscape( $i18n.getString( "save" ) , "'")',
+			click: function(){
+				
+				jQuery.postJSON( "validateIndicatorGroup.action", {
+					id: id,
+					name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); }
+				}, function( json ){
+					if( json.response == 'success' ){
+						jQuery.postJSON( "renameIndicatorGroupEditor.action", {
+							name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); },
+							id: id
+						}, function( json ){
+							indicatorGroups[id] = jQuery( '#addIndicatorGroupForm #name' ).val();
+							loadAvailableGroups();		
+							jQuery( '#addIndicatorGroupForm' ).dialog('close');
+							showSuccessMessage( i18n_update_success );
+						} );
+					}else{
+						markInvalid( "addIndicatorGroupForm #name", json.message );
+					}
+				});				
+			}
+		}]);
+		
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'title', '$encoder.jsEscape( $i18n.getString( "rename" ) , "'")');
+		jQuery( '#addIndicatorGroupForm' ).dialog('open');		
+		
+	}
+	
+	function deleteIndicatorGroup()
+	{
+		var id = jQuery( "#view_1 #indicatorGroups" ).val();
+		var name = jQuery( "#view_1 #indicatorGroups option[value=" + id + "]" ).text();
+		
+		if ( window.confirm( i18n_confirm_delete + '\n\n' + name ) )
+        {
+			
+			jQuery.postJSON( "deleteIndicatorGroupEditor.action",{
+				id: id
+			}, function( json ){
+				if( json.response == 'success'){
+					indicatorGroups.splice(id, 1);
+					loadAvailableGroups();		
+					showSuccessMessage( json.message );
+				}else{
+					showErrorMessage( json.message );
+				}
+			});
+		}
+	}
+	
+	function updateGroupMembers()
+	{
+		var id = jQuery( "#view_1 #indicatorGroups" ).val();
+		
+		jQuery.getJSON( "updateIndicatorGroupEditor.action?id=" + id + "&" + toQueryString( '#view_1 #selectedIndicators', 'groupMembers' ),
+		function( json ){
+			showSuccessMessage( i18n_update_success );
+		});
+	}
+	
+	function toQueryString( jQueryString, paramName )
+	{
+		var p = "";
+		jQuery( jQueryString ).children().each(function(i, item ){
+			item.selected = "selected";
+			p += paramName + "=" + item.value + "&";			
+		});
+		return p;
+	}
+	
+	// View2
+	
+	function getAssignedIndicatorGroups()
+	{
+		loadAvailableGroups();
+		
+		var id = jQuery( "#view_2 #availableIndicators2" ).val();
+		var list_2 = jQuery( "#view_2 #assignedGroups" );	
+		list_2.empty();	
+		
+		jQuery.postJSON( "getAssignedIndicatorGroups.action", {
+			indicatorId: id
+		}, function( json ){
+			jQuery.each(json.indicatorGroups, function(i, item ){
+				list_2.append('<option value="' + item.id + '">' + item.name + '</option>' );
+				
+				jQuery( "#view_2 #availableGroups" ).children().each( function(k, it){
+					if( item.id == it.value )
+					{
+						jQuery(it).remove();
+					}
+				});	
+				
+			});				
+			
+		});		
+	}
+	
+	function showAddGroup2()
+	{
+		
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'title', '$encoder.jsEscape( $i18n.getString( "new" ) , "'")');
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'buttons', [{
+			text: '$encoder.jsEscape( $i18n.getString( "save" ) , "'")',
+			click: function(){				
+				jQuery.postJSON( "validateIndicatorGroup.action", {					
+					name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); }
+				}, function( json ){
+					if( json.response == 'success' ){
+						jQuery.postJSON( "addIndicatorGroupEditor.action", {
+							name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); }					
+						}, function( json ){
+							indicatorGroups[json.indicatorGroup.id] = json.indicatorGroup.name;
+							loadAvailableGroups();								
+							jQuery( '#addIndicatorGroupForm' ).dialog('close');
+						} );
+					}else{
+						markInvalid( "addIndicatorGroupForm #name", json.message );
+					}
+				});	
+			}
+		}]);
+		jQuery( '#addIndicatorGroupForm' ).dialog('open');		
+		
+	}
+	
+	function showUpdateGroup2()
+	{
+		var id = jQuery( "#view_2 #availableGroups" ).val()[0];		
+		var text = jQuery( "#view_2 #availableGroups option[value=" + id + "]" ).text();
+		jQuery( '#addIndicatorGroupForm #name' ).val( text );
+		
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'buttons', [{
+			text: '$encoder.jsEscape( $i18n.getString( "save" ) , "'")',
+			click: function(){				
+				jQuery.postJSON( "validateIndicatorGroup.action", {
+					id: id,
+					name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); }
+				}, function( json ){
+					if( json.response == 'success' ){
+						jQuery.postJSON( "renameIndicatorGroupEditor.action", {
+							name: function(){ return jQuery( '#addIndicatorGroupForm #name' ).val(); },
+							id: id
+						}, function( json ){
+							indicatorGroups[id] = jQuery( '#addIndicatorGroupForm #name' ).val();
+							loadAvailableGroups();		
+							jQuery( '#addIndicatorGroupForm' ).dialog('close');
+							showSuccessMessage( i18n_update_success );
+						} );
+					}else{
+						markInvalid( "addIndicatorGroupForm #name", json.message );
+					}
+				});				
+			}
+		}]);
+		
+		jQuery( '#addIndicatorGroupForm' ).dialog('option', 'title', '$encoder.jsEscape( $i18n.getString( "rename" ) , "'")');
+		jQuery( '#addIndicatorGroupForm' ).dialog('open');		
+		
+	}
+	
+	function deleteIndicatorGroup2()
+	{
+		var id = jQuery( "#view_2 #availableGroups" ).val()[0];
+		var name = jQuery( "#view_2 #availableGroups option[value=" + id + "]" ).text();
+		
+		if ( window.confirm( i18n_confirm_delete + '\n\n' + name ) )
+        {
+			
+			jQuery.postJSON( "deleteIndicatorGroupEditor.action",{
+				id: id
+			}, function( json ){
+				if( json.response == 'success'){
+					indicatorGroups.splice(id, 1);
+					loadAvailableGroups();		
+					showSuccessMessage( json.message );
+				}else{
+					showErrorMessage( json.message );
+				}
+			});
+		}
+	}
+	
+	function assignGroupsForIndicator()
+	{
+		var id = jQuery( "#view_2 #availableIndicators2" ).val();
+		
+		jQuery.getJSON( "asignGroupsForIndicator.action?indicatorId=" + id + "&" + toQueryString( '#view_2 #assignedGroups', 'indicatorGroups' ),
+		function( json ){
+			showSuccessMessage( i18n_update_success );
+		});
+	}
+	
+	
+	
+</script>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView1.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView1.vm	2010-09-24 21:51:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView1.vm	1970-01-01 00:00:00 +0000
@@ -1,107 +0,0 @@
-<h3>$i18n.getString( "indicator_group_editor" ) #openHelp( "indicatorGroupEditor" )</h3>
-
-<table>	
-	<tr>
-		<th>$i18n.getString( "indicator_group" )</th>
-		<th><span id="groupNameView" style="display:block;"></span></th>		
-		<td rowspan=2><a href="indicatorGroupEditor.action?view=$view" title="$i18n.getString( 'switch_view' )"><img src="../images/arrow_double_clockwise_y.png" title="$i18n.getString( 'switch_view' )"/></a></td>
-		<th>$i18n.getString( "available_indicators" )</th>
-		
-	</tr>
-	
-	<tr>
-		<td><input id="indicatorGroupsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'indicatorGroups');"/></td>
-		<td><input id="selecteIndicatorsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'selectedIndicators');"/></td>		
-		<td><input id="availableIndicatorsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'availableIndicators');"/></td>
-	</tr>
-
-	<tr>
-		<td>
-			<select class="select" id="indicatorGroups" size="30" onchange="getIndicatorGroup( this );" onMouseOut="javascript: hideToolTip();">				
-			</select>
-		</td>
-		<td>
-			<select class="select" id="selectedIndicators" multiple="multiple" size="30"  ondblclick="moveSelectedById(this.id, 'availableIndicators');" onMouseOut="javascript: hideToolTip();">
-			</select>
-		</td>
-		
-		<td>
-			<input type="button" value="&lt;" onclick="moveSelectedById('availableIndicators', 'selectedIndicators');" style="width:30px"/><br/><br/>
-			<input type="button" value="&gt;" onclick="moveSelectedById('selectedIndicators', 'availableIndicators');" style="width:30px"/>
-		</td>
-		<td>
-			<select class="select" id="availableIndicators" multiple="multiple" size="30"  ondblclick="moveSelectedById(this.id, 'selectedIndicators');" disabled="true" onMouseOut="javascript: hideToolTip();">				
-			</select>
-		</td>
-	</tr>
-	<tr>
-		<td>			
-			<a href="javascript:sortList( 'indicatorGroups', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<a href="javascript:sortList( 'indicatorGroups', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<input type="button" value="$i18n.getString( 'new' )" onclick="javascript:showAddIndicatorGroupForm()" style="width:70px"/><input 
-			       type="button" value="$i18n.getString( 'rename' )" onclick="javascript:showRenameIndicatorGroupForm()" style="width:70px"/><input 
-			       type="button" value="$i18n.getString( 'delete' )" onclick="javascript:deleteIndicatorGroup()" style="width:70px"/>
-		</td>
-		<td>
-			<a href="javascript:sortList( 'selectedIndicators', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<a href="javascript:sortList( 'selectedIndicators', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>			
-			<input type="button" value="$i18n.getString( 'update_indicator_group_member' )" onclick="javascript:updateIndicatorGroupMembers()"/>
-		</td>
-		<td></td>
-		<td>
-			<a href="javascript:sortList( 'availableIndicators', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<a href="javascript:sortList( 'availableIndicators', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>						
-		</td>
-	</tr>
-</table>
-
-<div id="addIndicatorGroupForm" style="position:fixed;background-color:#FFFFFF;border:thin #000000 solid;height:70px;width:450px;display:none;z-index:10000;">
-
-<table width="100%" height="100%" border="0" cellpadding="2" cellspacing="2"> 
-
-  <tr align="center">
-    <td>$i18n.getString( "name" )</td>
-	<td><input type="text" id="groupName" style="width:20em"/></td>
-	<td><input id="addRenameGroupButton" type="button" value="$i18n.getString( 'ok' )"/>
-	<input type="button" onclick="javascript:cancel();" value="$i18n.getString( 'cancel' )"/></td>
-  </tr>
-
-</table>
-
-</div>
-
-<div id="warningArea" style="position:fixed;right:10px;top:200px;display:none">
-	<div style="float:right">
-		<a href="javascript:hideWarning()" title="$i18n.getString( 'hide_warning' )"><img src="../images/close.png" alt="$i18n.getString( 'hide_warning' )"></a>
-	</div>
-	<p><span id="warningField"></span></p>
-</div>
-
-<div id="tooltip"></div>
-
-<script type="text/javascript">
-
-	function cancel(){
-		hideById("addIndicatorGroupForm");
-		unLockScreen();
-	}
-
-	var i18n_select_indicator_group = '$encoder.jsEscape( $i18n.getString( "select_indicator_group" ) , "'")';
-	var i18n_confirm_delete = '$encoder.jsEscape( $i18n.getString( "confirm_delete_indicator_group" ) , "'")';
-	var i18n_member_of = '$encoder.jsEscape( $i18n.getString( "member_of" ) , "'")';
-	var i18n_update_success = '$encoder.jsEscape( $i18n.getString( "update_success" ) , "'")';
-		
-	var indicatorGroups = new Object();
-	#foreach( $indicatorGroup in $indicatorGroups )
-		indicatorGroups['$indicatorGroup.id'] = '$encoder.jsEscape( $indicatorGroup.name, "'" )';
-	#end
-
-	var availableIndicators = new Object();
-	#foreach( $indicator in $indicators )
-		availableIndicators['$indicator.id'] = '$encoder.jsEscape( $indicator.name, "'" )';
-	#end
-	var selectedIndicators = new Object();	
-	
-	initList();
-	
-</script>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView2.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView2.vm	2010-09-24 21:51:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/indicatorGroupEditorView2.vm	1970-01-01 00:00:00 +0000
@@ -1,111 +0,0 @@
-<h3>$i18n.getString( "indicator_group_editor" ) #openHelp( "indicatorGroupEditor" )</h3>
-
-<table>	
-	<tr>		
-		<th>$i18n.getString( "available_indicators" )</th>
-		<th><span id="groupNameView" style="display:block;"></span></th>		
-		<td rowspan=2><a href="indicatorGroupEditor.action" title="$i18n.getString( 'switch_view' )"><img src="../images/arrow_double_clockwise_y.png" title="$i18n.getString( 'switch_view' )"/></a></td>
-		<th>$i18n.getString( "available_groups" )</th>
-		
-	</tr>
-	
-	<tr>
-		<td><input id="availableIndicatorsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'availableIndicators');"/></td>
-		<td><input id="assignedGroupsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'assignedGroups');"/></td>				
-		<td><input id="availableGroupsFilter" type="text" style="width:300px;" onkeyup="filterList(this.value, 'availableGroups');"/></td>
-	</tr>
-
-	<tr>
-		<td>
-			<select class="select" id="availableIndicators" size="30" onclick="getAssignedIndicatorGroups(this.value)" onMouseOut="javascript: hideToolTip();">				
-			</select>
-		</td>		
-		<td>
-			<select class="select" id="assignedGroups" multiple="multiple" size="30" ondblclick="moveSelectedById('assignedGroups', 'availableGroups');" onMouseOut="javascript: hideToolTip();">
-			</select>
-		</td>
-		
-		<td>
-			<input type="button" value="&lt;" onclick="moveSelectedById('availableGroups', 'assignedGroups');" style="width:30px"/><br/><br/>
-			<input type="button" value="&gt;" onclick="moveSelectedById('assignedGroups', 'availableGroups');" style="width:30px"/>
-		</td>
-		
-		<td>
-			<select class="select" id="availableGroups" multiple="multiple" size="30" onMouseOut="javascript: hideToolTip();" ondblclick="moveSelectedById(this.id, 'assignedGroups');">				
-			</select>
-		</td>
-		
-	</tr>
-	<tr>		
-		<td>
-			<a href="javascript:sortList( 'availableIndicators', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<a href="javascript:sortList( 'availableIndicators', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>						
-		</td>
-		<td>
-			<a href="javascript:sortList( 'assignedGroups', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<a href="javascript:sortList( 'assignedGroups', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<input type="button" value="$i18n.getString( 'update_indicator_group_member' )" onclick="javascript:assignGroupsForIndicator()"/>
-		</td>
-		<td></td>
-		<td>
-			<a href="javascript:sortList( 'availableGroups', 'ASC' );"><img align="absmiddle" src="../images/sort_ascending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>
-			<a href="javascript:sortList( 'availableGroups', 'DES' );"><img align="absmiddle" src="../images/sort_descending.png" style="border:#666666 thin solid;cursor:pointer;width:20px;"/></a>			
-			<input type="button" value="$i18n.getString( 'new' )" onclick="javascript:showAddIndicatorGroupForm()" style="width:70px"/>
-			<input type="button" value="$i18n.getString( 'rename' )" onclick="javascript:showRenameIndicatorGroupForm()" style="width:70px"/>
-			<input type="button" value="$i18n.getString( 'delete' )" onclick="javascript:deleteIndicatorGroup()" style="width:70px"/>
-		</td>
-		
-	</tr>
-</table>
-
-<div id="addIndicatorGroupForm" style="position:fixed;background-color:#FFFFFF;border:thin #000000 solid;height:70px;width:450px;display:none;z-index:10000;">
-
-<table width="100%" height="100%" border="0" cellpadding="2" cellspacing="2"> 
-
-  <tr align="center">
-    <td>$i18n.getString( "name" )</td>
-	<td><input type="text" id="groupName" style="width:20em"/></td>
-	<td><input id="addRenameGroupButton" type="button" value="$i18n.getString( 'ok' )"/>
-	<input type="button" onclick="javascript:cancel();" value="$i18n.getString( 'cancel' )"/></td>
-  </tr>
-
-</table>
-
-</div>
-
-<div id="warningArea" style="position:fixed;right:10px;top:200px;display:none">
-	<div style="float:right">
-		<a href="javascript:hideWarning()" title="$i18n.getString( 'hide_warning' )"><img src="../images/close.png" alt="$i18n.getString( 'hide_warning' )"/></a>
-	</div>
-	<p><span id="warningField"></span></p>
-</div>
-
-<div id="tooltip"></div>
-
-<script type="text/javascript">
-
-	function cancel(){
-		hideById("addIndicatorGroupForm");
-		unLockScreen();
-	}
-
-	var i18n_select_indicator_group = '$encoder.jsEscape( $i18n.getString( "select_indicator_group" ) , "'")';
-	var i18n_confirm_delete = '$encoder.jsEscape( $i18n.getString( "confirm_delete_indicator_group" ) , "'")';
-	var i18n_member_of = '$encoder.jsEscape( $i18n.getString( "member_of" ) , "'")';
-	var i18n_update_success = '$encoder.jsEscape( $i18n.getString( "update_success" ) , "'")';
-		
-	var availableGroups = new Object();
-	#foreach( $indicatorGroup in $indicatorGroups )
-		availableGroups['$indicatorGroup.id'] = '$encoder.jsEscape( $indicatorGroup.name, "'" )';
-	#end
-
-	var availableIndicators = new Object();
-	#foreach( $indicator in $indicators )
-		availableIndicators['$indicator.id'] = '$encoder.jsEscape( $indicator.name, "'" )';
-	#end
-	
-	var assignedGroups = new Object();	
-	
-	initList();
-	
-</script>
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedDataElement.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedDataElement.js	2010-06-01 04:02:23 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedDataElement.js	2010-12-13 06:40:41 +0000
@@ -5,51 +5,40 @@
 
 function validateAddExtendedDataElement()
 {
-	var request = new Request();
-    request.setResponseTypeXML( 'message' );
-    request.setCallbackSuccess( addExtendedDataElementValidationCompleted );
-    
-    var params = 'name=' + getFieldValue( 'name' ) +
-        '&shortName=' + getFieldValue( 'shortName' ) +
-        '&alternativeName=' + getFieldValue( 'alternativeName' ) +
-        '&code=' + getFieldValue( 'code' ) +
-        '&description=' + getFieldValue( 'description' ) +
-        '&mnemonic=' + getFieldValue( 'mnemonic' ) +
-        '&version=' + getFieldValue( 'version' ) +
-        '&keywords=' + getFieldValue( 'keywords' ) +
-        '&dataElementType=' + getListValue( 'dataElementType' ) +
-        '&minimumSize=' + getFieldValue( 'minimumSize' ) +
-        '&maximumSize=' + getFieldValue( 'maximumSize' ) +
-        '&responsibleAuthority=' + getFieldValue( 'responsibleAuthority' ) +
-        '&location=' + getFieldValue( 'location' ) +
-        '&reportingMethods=' + getFieldValue( 'reportingMethods' ) +
-        '&versionStatus=' + getFieldValue( 'versionStatus' );
-    
-    request.sendAsPost( params );
-    request.send( 'validateExtendedDataElement.action' );
-
-    return false;
-}
-
-function addExtendedDataElementValidationCompleted( messageElement )
-{
-	var type = messageElement.getAttribute( 'type' );
-    var message = messageElement.firstChild.nodeValue;
-    
-    if ( type == 'success' )
-    {
-        var form = document.getElementById( 'addExtendedDataElementForm' );
-        form.submit();
-    }
-    else if ( type == 'error' )
-    {
-        window.alert( i18n_adding_data_element_failed + ':' + '\n' + message );
-    }
-    else if ( type == 'input' )
-    {
-        document.getElementById( 'message' ).innerHTML = message;
-        document.getElementById( 'message' ).style.display = 'block';
-    }
+	jQuery.postJSON("validateExtendedDataElement.action",{
+		name: getFieldValue( 'name' ),
+		shortName: getFieldValue( 'shortName' ),
+		alternativeName: getFieldValue( 'alternativeName' ),
+		code: getFieldValue( 'code' ),
+		description: getFieldValue( 'description' ),
+		mnemonic: getFieldValue( 'mnemonic' ),
+		version: getFieldValue( 'version' ),
+		keywords: getFieldValue( 'keywords' ),
+		dataElementType: getFieldValue( 'dataElementType' ),
+		dataElementType: getFieldValue( 'dataElementType' ),
+		minimumSize: getFieldValue( 'minimumSize' ),
+		maximumSize: getFieldValue( 'maximumSize' ),
+		responsibleAuthority: getFieldValue( 'responsibleAuthority' ),
+		location: getFieldValue( 'location' ),
+		reportingMethods: getFieldValue( 'reportingMethods' ),
+		versionStatus: getFieldValue( 'versionStatus' )		
+	}, function( json ){		
+		if ( json.response == 'success' )
+		{
+			var form = document.getElementById( 'addExtendedDataElementForm' );
+			form.submit();
+		}
+		else if ( json.response == 'error' )
+		{
+			window.alert( i18n_adding_data_element_failed + ':' + '\n' + json.message );
+		}
+		else if ( json.response == 'input' )
+		{
+			document.getElementById( 'message' ).innerHTML = json.message;
+			document.getElementById( 'message' ).style.display = 'block';
+		}
+	});
+	
 }
 
 // -----------------------------------------------------------------------------
@@ -58,51 +47,40 @@
 
 function validateUpdateExtendedDataElement()
 {
-	var request = new Request();
-    request.setResponseTypeXML( 'messageElement' );
-    request.setCallbackSuccess( updateExtendedDataElementValidationCompleted );
-    
-    var params = 'id=' + getFieldValue( 'id' ) + 
-    	'&name=' + getFieldValue( 'name' ) +
-        '&shortName=' + getFieldValue( 'shortName' ) +
-        '&alternativeName=' + getFieldValue( 'alternativeName' ) +
-        '&code=' + getFieldValue( 'code' ) +
-        '&description=' + getFieldValue( 'description' ) +
-        '&mnemonic=' + getFieldValue( 'mnemonic' ) +
-        '&version=' + getFieldValue( 'version' ) +
-        '&keywords=' + getFieldValue( 'keywords' ) +
-        '&dataElementType=' + getListValue( 'dataElementType' ) +        
-        '&minimumSize=' + getFieldValue( 'minimumSize' ) +
-        '&maximumSize=' + getFieldValue( 'maximumSize' ) +
-        '&responsibleAuthority=' + getFieldValue( 'responsibleAuthority' ) +
-        '&location=' + getFieldValue( 'location' ) +
-        '&reportingMethods=' + getFieldValue( 'reportingMethods' ) +
-        '&versionStatus=' + getFieldValue( 'versionStatus' );
-
-    request.sendAsPost( params );
-    request.send( 'validateExtendedDataElement.action' );
-    
-    return false;
-}
-
-function updateExtendedDataElementValidationCompleted( messageElement )
-{ 
-
-	var type = messageElement.getAttribute( 'type' );
-    var message = messageElement.firstChild.nodeValue;
-   
-    if ( type == 'success' )
-    {
-        var form = document.getElementById( 'updateExtendedDataElementForm' );
-        form.submit();
-    }
-    else if ( type == 'error' )
-    {
-        window.alert( i18n_saving_data_element_failed + ':' + '\n' + message );
-    }
-    else if ( type == 'input' )
-    {
-        document.getElementById( 'message' ).innerHTML = message;
-        document.getElementById( 'message' ).style.display = 'block';
-    }
+	
+	jQuery.postJSON("validateExtendedDataElement.action",{
+		id: getFieldValue( 'id' ),
+		name: getFieldValue( 'name' ),
+		shortName: getFieldValue( 'shortName' ),
+		alternativeName: getFieldValue( 'alternativeName' ),
+		code: getFieldValue( 'code' ),
+		description: getFieldValue( 'description' ),
+		mnemonic: getFieldValue( 'mnemonic' ),
+		version: getFieldValue( 'version' ),
+		keywords: getFieldValue( 'keywords' ),
+		dataElementType: getFieldValue( 'dataElementType' ),
+		dataElementType: getFieldValue( 'dataElementType' ),
+		minimumSize: getFieldValue( 'minimumSize' ),
+		maximumSize: getFieldValue( 'maximumSize' ),
+		responsibleAuthority: getFieldValue( 'responsibleAuthority' ),
+		location: getFieldValue( 'location' ),
+		reportingMethods: getFieldValue( 'reportingMethods' ),
+		versionStatus: getFieldValue( 'versionStatus' )		
+	}, function( json ){		
+		if ( json.response == 'success' )
+		{
+			var form = document.getElementById( 'updateExtendedDataElementForm' );
+			form.submit();
+		}
+		else if ( json.response == 'error' )
+		{
+			window.alert( i18n_adding_data_element_failed + ':' + '\n' + json.message );
+		}
+		else if ( json.response == 'input' )
+		{
+			document.getElementById( 'message' ).innerHTML = json.message;
+			document.getElementById( 'message' ).style.display = 'block';
+		}
+	});
+
 }

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedIndicator.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedIndicator.js	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/extendedIndicator.js	2010-12-13 06:40:41 +0000
@@ -5,53 +5,42 @@
 
 function validateAddExtendedIndicator()
 {
-	var request = new Request();
-    request.setResponseTypeXML( 'message' );
-    request.setCallbackSuccess( addValidationCompleted );
-    
-    var params = 'name=' + getFieldValue( 'name' ) +
-        '&shortName=' + getFieldValue( 'shortName' ) +
-        '&alternativeName=' + getFieldValue( 'alternativeName' ) +
-        '&code=' + getFieldValue( 'code' ) +
-        '&description=' + getFieldValue( 'description' ) +
-        '&indicatorTypeId=' + getListValue( 'indicatorTypeId' ) +
-        '&numeratorDescription=' + getFieldValue( 'numeratorDescription' ) +
-        '&denominatorDescription=' + getFieldValue( 'denominatorDescription' ) +
-        '&mnemonic=' + getFieldValue( 'mnemonic' ) +
-        '&version=' + getFieldValue( 'version' ) +
-        '&keywords=' + getFieldValue( 'keywords' ) +
-        '&minimumSize=' + getFieldValue( 'minimumSize' ) +
-        '&maximumSize=' + getFieldValue( 'maximumSize' ) +
-        '&responsibleAuthority=' + getFieldValue( 'responsibleAuthority' ) +
-        '&location=' + getFieldValue( 'location' ) +
-        '&reportingMethods=' + getFieldValue( 'reportingMethods' ) +
-        '&versionStatus=' + getFieldValue( 'versionStatus' );
-    
-    request.sendAsPost( params );
-    request.send( 'validateExtendedIndicator.action' );
-
-    return false;
-}
-
-function addValidationCompleted( messageElement )
-{
-	var type = messageElement.getAttribute( 'type' );
-    var message = messageElement.firstChild.nodeValue;
-    
-    if ( type == 'success' )
-    {
-        var form = document.getElementById( 'addExtendedIndicatorForm' );
-        form.submit();
-    }
-    else if ( type == 'error' )
-    {
-        window.alert( i18n_adding_indicator_failed + ':' + '\n' + message );
-    }
-    else if ( type == 'input' )
-    {
-        document.getElementById( 'message' ).innerHTML = message;
-        document.getElementById( 'message' ).style.display = 'block';
-    }
+	
+	jQuery.postJSON("validateExtendedIndicator.action",{
+		name: getFieldValue( 'name' ),
+		shortName: getFieldValue( 'shortName' ),
+		code: getFieldValue( 'code' ),
+		description: getFieldValue( 'description' ),
+		indicatorTypeId: getFieldValue( 'indicatorTypeId' ),
+		numeratorDescription: getFieldValue( 'numeratorDescription' ),
+		denominatorDescription: getFieldValue( 'denominatorDescription' ),
+		mnemonic: getFieldValue( 'mnemonic' ),
+		version: getFieldValue( 'version' ),
+		keywords: getFieldValue( 'keywords' ),
+		minimumSize: getFieldValue( 'minimumSize' ),
+		maximumSize: getFieldValue( 'maximumSize' ),
+		responsibleAuthority: getFieldValue( 'responsibleAuthority' ),
+		location: getFieldValue( 'location' ),
+		reportingMethods: getFieldValue( 'reportingMethods' ),
+		versionStatus: getFieldValue( 'versionStatus' )
+	},function( json ){
+		if ( json.response == 'success' )
+		{
+			var form = document.getElementById( 'addExtendedIndicatorForm' );
+			form.submit();
+		}
+		else if ( json.response == 'error' )
+		{
+			window.alert( i18n_adding_indicator_failed + ':' + '\n' + json.message );
+		}
+		else if ( json.response == 'input' )
+		{
+			document.getElementById( 'message' ).innerHTML = json.message;
+			document.getElementById( 'message' ).style.display = 'block';
+		}
+	});
+	
+	
 }
 
 // -----------------------------------------------------------------------------
@@ -60,52 +49,40 @@
 
 function validateUpdateExtendedIndicator()
 {
-	var request = new Request();
-    request.setResponseTypeXML( 'message' );
-    request.setCallbackSuccess( updateValidationCompleted );
-    
-    var params = 'id=' + getFieldValue( 'id' ) + 
-    	'&name=' + getFieldValue( 'name' ) +
-        '&shortName=' + getFieldValue( 'shortName' ) +
-        '&alternativeName=' + getFieldValue( 'alternativeName' ) +
-        '&code=' + getFieldValue( 'code' ) +
-        '&description=' + getFieldValue( 'description' ) +
-        '&indicatorTypeId=' + getListValue( 'indicatorTypeId' ) +
-        '&numeratorDescription=' + getFieldValue( 'numeratorDescription' ) +
-        '&denominatorDescription=' + getFieldValue( 'denominatorDescription' ) +
-        '&mnemonic=' + getFieldValue( 'mnemonic' ) +
-        '&version=' + getFieldValue( 'version' ) +
-        '&keywords=' + getFieldValue( 'keywords' ) +
-        '&minimumSize=' + getFieldValue( 'minimumSize' ) +
-        '&maximumSize=' + getFieldValue( 'maximumSize' ) +
-        '&responsibleAuthority=' + getFieldValue( 'responsibleAuthority' ) +
-        '&location=' + getFieldValue( 'location' ) +
-        '&reportingMethods=' + getFieldValue( 'reportingMethods' ) +
-        '&versionStatus=' + getFieldValue( 'versionStatus' );
-    
-    request.sendAsPost( params );
-    request.send( 'validateExtendedIndicator.action' );
-    
-    return false;
-}
-
-function updateValidationCompleted( messageElement )
-{
-	var type = messageElement.getAttribute( 'type' );
-    var message = messageElement.firstChild.nodeValue;
-    
-    if ( type == 'success' )
-    {
-        var form = document.getElementById( 'updateExtendedIndicatorForm' );
-        form.submit();
-    }
-    else if ( type == 'error' )
-    {
-        window.alert( i18n_saving_indicator_failed + ':' + '\n' + message );
-    }
-    else if ( type == 'input' )
-    {
-        document.getElementById( 'message' ).innerHTML = message;
-        document.getElementById( 'message' ).style.display = 'block';
-    }
+
+	jQuery.postJSON("validateExtendedIndicator.action",{
+		id: getFieldValue( 'id' ),
+		name: getFieldValue( 'name' ),
+		shortName: getFieldValue( 'shortName' ),
+		code: getFieldValue( 'code' ),
+		description: getFieldValue( 'description' ),
+		indicatorTypeId: getFieldValue( 'indicatorTypeId' ),
+		numeratorDescription: getFieldValue( 'numeratorDescription' ),
+		denominatorDescription: getFieldValue( 'denominatorDescription' ),
+		mnemonic: getFieldValue( 'mnemonic' ),
+		version: getFieldValue( 'version' ),
+		keywords: getFieldValue( 'keywords' ),
+		minimumSize: getFieldValue( 'minimumSize' ),
+		maximumSize: getFieldValue( 'maximumSize' ),
+		responsibleAuthority: getFieldValue( 'responsibleAuthority' ),
+		location: getFieldValue( 'location' ),
+		reportingMethods: getFieldValue( 'reportingMethods' ),
+		versionStatus: getFieldValue( 'versionStatus' )
+	},function( json ){
+		if ( json.response == 'success' )
+		{
+			var form = document.getElementById( 'updateExtendedIndicatorForm' );
+			form.submit();
+		}
+		else if ( json.response == 'error' )
+		{
+			window.alert( i18n_adding_indicator_failed + ':' + '\n' + json.message );
+		}
+		else if ( json.response == 'input' )
+		{
+			document.getElementById( 'message' ).innerHTML = json.message;
+			document.getElementById( 'message' ).style.display = 'block';
+		}
+	});	
+
 }

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView1.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView1.js	2010-10-01 18:28:58 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView1.js	1970-01-01 00:00:00 +0000
@@ -1,325 +0,0 @@
-function showToolTip( e, value )
-{	
-	var tooltipDiv = byId('tooltip');
-	tooltipDiv.style.display = 'block';
-	
-	var posx = 0;
-    var posy = 0;
-	
-    if (!e) var e = window.event;
-    if (e.pageX || e.pageY)
-    {
-        posx = e.pageX;
-        posy = e.pageY;
-    }
-    else if (e.clientX || e.clientY)
-    {
-        posx = e.clientX;
-        posy = e.clientY;
-    }
-	
-	tooltipDiv.style.left= posx  + 8 + 'px';
-	tooltipDiv.style.top = posy  + 8 + 'px';
-	tooltipDiv.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" + value;
-}
-
-function hideToolTip(){
-	byId('tooltip').style.display = 'none';
-}
-
-function addOptionToListWithToolTip( list, optionValue, optionText )
-{
-    var option = document.createElement( "option" );
-    option.value = optionValue;
-    option.text = optionText;
-	option.onmousemove = function(e) {
-		showToolTip(e, optionText);
-	}
-    list.add( option, null );
-}
-
-function refreshListById( listId )
-{
-	var	list = byId( listId );
-	list.options.length = 0;
-	
-	if ( listId == 'indicatorGroups' )
-	{
-		for (var id in indicatorGroups)
-		{
-			addOptionToListWithToolTip( list, id, indicatorGroups[id] );
-		}
-	}
-	else if ( listId == 'availableIndicators' )
-	{
-		for (var id in availableIndicators)
-		{
-			addOptionToListWithToolTip( list, id, availableIndicators[id] );
-		}
-	}
-}
-
-function initList() 
-{
-	refreshListById ('indicatorGroups');
-	refreshListById ('availableIndicators');
-}
-
-/*==============================================================================
- * Get Indicator
- *==============================================================================*/
- 
-function getIndicatorGroup( listbox )
-{
-	selectedIndicators = new Object();
-    var id = listbox.options[ listbox.selectedIndex ].value;  
-    var request = new Request();
-    request.setResponseTypeXML( 'xmlObject' );
-    request.setCallbackSuccess( getIndicatorGroupCompleted );
-    request.send( 'getIndicatorGroupEditor.action?id=' + id );    
-}
-
-function getIndicatorGroupCompleted( xmlObject )
-{
-    var selectedList = byId( 'selectedIndicators' );   
-    selectedList.length = 0;
-    var groupName = getElementValue( xmlObject, 'name');
-    var indicatorList = xmlObject.getElementsByTagName('indicators')[0].getElementsByTagName('indicator');
-	
-    for ( var i = 0; i < indicatorList.length; i++ )
-    {
-        indicator = indicatorList.item(i);  
-        var id = getElementValue( indicator, 'id' );
-        var name = getElementValue( indicator, 'name' );
-		addOptionToListWithToolTip( selectedList, id, name );
-		selectedIndicators[id] = name;
-    }
-	
-	refreshListById( 'availableIndicators' );
-	visableAvailableIndicators();
-    enable('availableIndicators');
-	setInnerHTML('groupNameView', groupName);
-}
-
-function visableAvailableIndicators()
-{
-	var selectedList = byId( 'selectedIndicators' );
-	var availableList = byId( 'availableIndicators' );
-	var selectedOptions = selectedList.options;
-	var availableOptions = availableList.options;
-	
-	for(var i=0;i<availableOptions.length;i++){
-		availableList.options[i].style.display='block';
-		for(var j=0;j<selectedOptions.length;j++){			
-			if(availableOptions[i].value==selectedOptions[j].value){				
-				availableList.options[i].style.display='none';
-			}
-		}
-	}
-}
-
-/*==============================================================================
- *  New  Indicator Group
- *==============================================================================*/
-
-function showAddIndicatorGroupForm()
-{
-	byId( 'groupName' ).value='';    
-    byId( 'addRenameGroupButton' ).onclick=validateAddIndicatorGroup;
-    showPopupWindowById( 'addIndicatorGroupForm', 450, 70 );
-}
-
-function validateAddIndicatorGroup()
-{	
-	$.postJSON(
-		"validateIndicatorGroup.action",
-		{
-			"name": getFieldValue( 'groupName' )
-		},
-		function( json )
-		{
-			if ( json.response == "success" )
-			{
-				createNewGroup();
-			}
-			else
-			{
-				alert(json.message);
-			}
-		}
-	);
-}
-
-function createNewGroup()
-{
-	var name = getFieldValue( 'groupName' );    
-    var request = new Request();
-    request.setResponseTypeXML( 'xmlObject' );
-    request.setCallbackSuccess( createNewGroupReceived );
-	request.sendAsPost('name=' + name + '&mode=editor' );
-    request.send( 'addIndicatorGroupEditor.action'  );    
-}
-
-function createNewGroupReceived( xmlObject )
-{       
-	var id = getElementValue( xmlObject, 'id' );
-	var name = getElementValue( xmlObject, 'name' );
-    var list = byId( 'indicatorGroups' );
-    var option = new Option( name, id );
-	option.selected = true;
-	option.onmousemove  = function(e){
-		showToolTip(e, this.text);
-	}
-	list.add(option , null );
-	indicatorGroups[id] = name;
-    byId( 'groupNameView' ).innerHTML = name;
-    hideById( 'addIndicatorGroupForm' );
-    unLockScreen();  
-}
-
-/*==============================================================================
- * Update Indicator Group
- *==============================================================================*/
-
-function showRenameIndicatorGroupForm()
-{
-	var list = byId('indicatorGroups');
-	
-	if( list.value== '' )
-	{
-		setHeaderDelayMessage(i18n_select_indicator_group);
-	}
-	else
-	{
-		byId( 'groupName' ).value = list.options[ list.selectedIndex ].text
-		byId( 'addRenameGroupButton' ).onclick=validateRenameIndicatorGroup;
-		showPopupWindowById( 'addIndicatorGroupForm', 450, 70 );
-	}	
-} 
-
-function validateRenameIndicatorGroup()
-{
-	$.postJSON(
-		"validateIndicatorGroup.action",
-		{
-			"name": getFieldValue( 'groupName' )
-		},
-		function( json )
-		{
-			if ( json.response == "success" )
-			{
-				renameGroup();
-			}
-			else
-			{
-				alert(json.message);
-			}
-		}
-	);
-}
-
-function renameGroup()
-{
-	var name = byId( 'groupName' ).value;    
-    var request = new Request();
-    request.setResponseTypeXML( 'xmlObject' );
-    request.setCallbackSuccess( renameGroupReceived );
-	request.sendAsPost('name=' + name + '&mode=editor&id=' + byId('indicatorGroups').value);
-    request.send( 'renameIndicatorGroupEditor.action');	
-}
-
-function renameGroupReceived( xmlObject )
-{
-	var id = getElementValue( xmlObject, 'id' );
-	var name = getElementValue( xmlObject, 'name' );
-    var list = byId( 'indicatorGroups' );
-    var option = list.options[ list.selectedIndex ];
-	option.text = name;
-	option.onmousemove = function(e) {
-		showToolTip(e, name);
-	}
-	indicatorGroups[ id ] = name;
-    byId( 'groupNameView' ).innerHTML = name;        
-    hideById( 'addIndicatorGroupForm' );
-    unLockScreen(); 
-}
-
-/*==============================================================================
- * Update Member of Indicator Group
- *==============================================================================*/
- 
-function updateIndicatorGroupMembers()
-{
-	try
-	{
-	    var id = $("#indicatorGroups").val();	    
-	    var request = new Request();
-	    var requestString = 'updateIndicatorGroupEditor.action';
-	    var params = "id=" + id;
-		params += "&mode=editor";
-
-	    var selectedIndicatorMembers = byId( 'selectedIndicators' );
-
-	    for ( var i = 0; i < selectedIndicatorMembers.options.length; ++i)
-	    {
-	        params += '&groupMembers=' + selectedIndicatorMembers.options[i].value;
-	    }   
-	    request.sendAsPost( params );
-	    request.setResponseTypeXML( 'xmlObject' );  
-	    request.setCallbackSuccess( updateIndicatorGroupMembersReceived );
-	    request.send( requestString );  
-	}
-	catch( e )
-	{
-		setHeaderDelayMessage( i18n_select_indicator_group );
-	}
-}
-
-function updateIndicatorGroupMembersReceived( xmlObject )
-{   
-    var indicatorGroupsSelect = byId( 'indicatorGroups' );
-    setHeaderDelayMessage( i18n_update_success + " : " + indicatorGroupsSelect.options[ indicatorGroupsSelect.selectedIndex ].text );
-}
-
-/*==============================================================================
- * Delete Indicator Group
- *==============================================================================*/
-
-function deleteIndicatorGroup()
-{
-	var indicatorGroupsSelect = byId( 'indicatorGroups' );
-
-	try {
-		var id = indicatorGroupsSelect.options[ indicatorGroupsSelect.selectedIndex ].value;
-		var name = indicatorGroupsSelect.options[ indicatorGroupsSelect.selectedIndex ].text;
-	
-		if ( window.confirm( i18n_confirm_delete + '\n\n' + name ) )
-		{
-			$.getJSON
-			(
-				'deleteIndicatorGroupEditor.action',
-				{
-					"id": id
-				},
-				function( json )
-				{
-					if ( json.response == "success" )
-					{
-						var indicatorGroupsSelect = byId( 'indicatorGroups' );
-						indicatorGroupsSelect.remove( indicatorGroupsSelect.selectedIndex );
-					}
-					else if ( json.response == "error" )
-					{
-						setFieldValue( 'warningArea', json.message );
-			
-						showWarning();
-					}
-				}
-			);
-		}
-	}
-	catch(e)
-	{
-		setHeaderDelayMessage(i18n_select_indicator_group);
-	}
-}
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView2.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView2.js	2010-10-01 18:28:58 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/javascript/indicatorGroupEditorView2.js	1970-01-01 00:00:00 +0000
@@ -1,325 +0,0 @@
-function showToolTip( e, value){
-	
-	var tooltipDiv = byId('tooltip');
-	tooltipDiv.style.display = 'block';
-	
-	var posx = 0;
-    var posy = 0;
-	
-    if (!e) var e = window.event;
-    if (e.pageX || e.pageY)
-    {
-        posx = e.pageX;
-        posy = e.pageY;
-    }
-    else if (e.clientX || e.clientY)
-    {
-        posx = e.clientX;
-        posy = e.clientY;
-    }
-	
-	tooltipDiv.style.left= posx  + 8 + 'px';
-	tooltipDiv.style.top = posy  + 8 + 'px';
-	tooltipDiv.innerHTML = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" +   value;
-}
-
-function hideToolTip(){
-	byId('tooltip').style.display = 'none';
-}
-
-function addOptionToListWithToolTip( list, optionValue, optionText )
-{
-    var option = document.createElement( "option" );
-    option.value = optionValue;
-    option.text = optionText;
-	option.onmousemove = function(e) {
-		showToolTip(e, optionText);
-	}
-    list.add( option, null );
-}
-
-function refreshListById( listId )
-{
-	var list = byId( listId );
-	list.options.length = 0;
-	
-	if ( listId == 'availableGroups' )
-	{
-		for (var id in availableGroups)
-		{		
-			addOptionToListWithToolTip( list, id, availableGroups[id] );
-		}
-	}
-	else if ( listId == 'availableIndicators' )
-	{
-		for (var id in availableIndicators)
-		{		
-			addOptionToListWithToolTip( list, id, availableIndicators[id] );
-		}
-	}
-}
-
-function initList() 
-{
-	refreshListById( 'availableGroups' );
-	refreshListById( 'availableIndicators' );
-}
-
-/*==============================================================================
- * Get Indicator Groups contain indicator
- *==============================================================================*/
-
-function getAssignedIndicatorGroups( indicatorId )
-{
-	var request = new Request();
-    request.setResponseTypeXML( 'indicatorGroups' );
-    request.setCallbackSuccess( getAssignedIndicatorGroupsCompleted );
-    request.send( 'getAssignedIndicatorGroups.action?indicatorId=' + indicatorId );    
-}
-
-function getAssignedIndicatorGroupsCompleted( indicatorGroups )
-{
-	assignedGroups = new Object();
-	var availableList = byId('availableIndicators');
-	var groupName = availableList.options[ availableList.selectedIndex ].text;
-	var availableIndicatorGroups = indicatorGroups.getElementsByTagName( 'indicatorGroup' );
-	var list = byId('assignedGroups');
-	list.options.length = 0;
-	
-	for( var i=0;i<availableIndicatorGroups.length;i++)
-	{
-		var id = getElementValue( availableIndicatorGroups.item(i), 'id' );
-		var name = getElementValue( availableIndicatorGroups.item(i), 'name' );
-		addOptionToListWithToolTip( list, id, name );
-		assignedGroups[id] = name;
-	}
-	
-	refreshListById( 'availableGroups' );
-	visableAvailableIndicators();
-	enable('availableGroups');
-	setInnerHTML('groupNameView', groupName);
-}
-
-function visableAvailableIndicators()
-{
-	var selectedList = byId( 'assignedGroups' );
-	var availableList = byId( 'availableGroups' );
-	var selectedOptions = selectedList.options;
-	var availableOptions = availableList.options;
-	
-	for(var i=0;i<availableOptions.length;i++){
-		availableList.options[i].style.display='block';
-		for(var j=0;j<selectedOptions.length;j++){			
-			if(availableOptions[i].value==selectedOptions[j].value){				
-				availableList.options[i].style.display='none';
-			}
-		}
-	}
-}
-
-/*==============================================================================
- *  New  Indicator Group
- *==============================================================================*/
-
-function showAddIndicatorGroupForm()
-{
-	byId( 'groupName' ).value='';    
-    byId( 'addRenameGroupButton' ).onclick=validateAddIndicatorGroup;
-    showPopupWindowById( 'addIndicatorGroupForm', 450, 70 );
-}
-
-function validateAddIndicatorGroup()
-{
-	$.postJSON(
-		"validateIndicatorGroup.action",
-		{
-			"name": getFieldValue( 'groupName' )
-		},
-		function( json )
-		{
-			if ( json.response == "success" )
-			{
-				createNewGroup();
-			}
-			else
-			{
-				alert(json.message);
-			}
-		}
-	);
-}
-
-function createNewGroup()
-{
-	var name = byId( 'groupName' ).value;    
-    var request = new Request();
-    request.setResponseTypeXML( 'xmlObject' );
-    request.setCallbackSuccess( createNewGroupReceived );
-	request.sendAsPost( "name=" + name + "&mode=editor" );
-    request.send( 'addIndicatorGroupEditor.action' );    
-}
-
-function createNewGroupReceived( xmlObject )
-{
-    var id = getElementValue( xmlObject, 'id' );
-    var name = getElementValue( xmlObject, 'name' );
-    var list = byId( 'availableGroups' );
-    var option = new Option( name, id );
-	option.selected = true;
-	option.onmousemove  = function(e){
-		showToolTip( e, this.text);
-	}
-	list.add(option , null );
-	availableGroups[id] = name;
-	byId( 'groupNameView' ).innerHTML = name;
-    hideById( 'addIndicatorGroupForm' );
-    unLockScreen();  
-}
-
-/*==============================================================================
- * Update Indicator Group
- *==============================================================================*/
-
-function showRenameIndicatorGroupForm()
-{
-	var list = byId('availableGroups');
-	
-	if( list.value== '' )
-	{
-		setHeaderDelayMessage(i18n_select_indicator_group);
-	}
-	else
-	{
-		byId( 'groupName' ).value = list.options[ list.selectedIndex ].text
-		byId( 'addRenameGroupButton' ).onclick=validateRenameIndicatorGroup;
-		showPopupWindowById( 'addIndicatorGroupForm', 450, 70 );
-	}	
-} 
-
-function validateRenameIndicatorGroup()
-{
-	$.postJSON(
-		"validateIndicatorGroup.action",
-		{
-			"name": getFieldValue( 'groupName' )
-		},
-		function( json )
-		{
-			if ( json.response == "success" )
-			{
-				renameGroup();
-			}
-			else
-			{
-				alert(json.message);
-			}
-		}
-	);	
-
-}
-
-function renameGroup()
-{
-	var name = getFieldValue( 'groupName' );    
-    var request = new Request();
-    request.setResponseTypeXML( 'xmlObject' );
-    request.setCallbackSuccess( renameGroupReceived );
-	var params = "name=" + name + "&mode=editor&id=" + byId('availableGroups').value;
-	request.sendAsPost( params );
-    request.send( 'renameIndicatorGroupEditor.action');	
-}
-
-function renameGroupReceived( xmlObject )
-{
-	var id = getElementValue( xmlObject, 'id' );
-	var name = getElementValue( xmlObject, 'name' );
-    var list = byId( 'availableGroups' );
-	var option = list.options[ list.selectedIndex ];
-	option.text = name;
-	option.onmousemove = function(e) {
-		showToolTip(e, name);
-	}
-	availableGroups[ id ] = name;
-    byId( 'groupNameView' ).innerHTML = name;        
-    hideById( 'addIndicatorGroupForm' );
-    unLockScreen(); 
-}
-
-/*==============================================================================
- * Update Member of Indicator Group
- *==============================================================================*/
- 
-function assignGroupsForIndicator()
-{
-	try
-	{		
-	    var indicatorId = byId('availableIndicators').value;
-	    var request = new Request();
-	    var requestString = 'asignGroupsForIndicator.action';
-	    var params = "indicatorId=" + indicatorId;
-		params += "&mode=editor";
-
-	    var selectedGroups = byId( 'assignedGroups' );
-
-	    for ( var i = 0; i < selectedGroups.options.length; ++i)
-	    {
-	        params += '&indicatorGroups=' + selectedGroups.options[i].value;
-	    }   
-	    request.sendAsPost( params );
-	    request.setResponseTypeXML( 'xmlObject' );  
-	    request.setCallbackSuccess( assignGroupsForIndicatorReceived );
-	    request.send( requestString );  
-	}
-	catch( e )
-	{
-		setHeaderDelayMessage( i18n_select_indicator_group );
-	}
-}
-
-function assignGroupsForIndicatorReceived( xmlObject )
-{	
-    setHeaderDelayMessage( i18n_update_success );
-}
-
-/*==============================================================================
- * Delete Indicator Group
- *==============================================================================*/
-
-function deleteIndicatorGroup()
-{
-	var list = byId('availableGroups');
-	
-	try {
-		var id = list.options[ list.selectedIndex ].value;
-		var name = list.options[ list.selectedIndex ].text;
-
-		if ( window.confirm( i18n_confirm_delete ) )
-		{
-			$.getJSON
-			(
-				'deleteIndicatorGroupEditor.action',
-				{
-					"id": list.value
-				},
-				function( json )
-				{
-					if ( json.response == "success" )
-					{
-						var list = byId('availableGroups');
-						list.remove( list.selectedIndex );
-					}
-					else if ( json.response == "error" )
-					{
-						setFieldValue( 'warningArea', json.message );
-			
-						showWarning();
-					}
-				}
-			);
-		}
-	}
-	catch(e)
-	{
-		setHeaderDelayMessage(i18n_select_indicator_group);
-	}
-}
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseAddDataElementGroupSuccess.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseAddDataElementGroupSuccess.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseAddDataElementGroupSuccess.vm	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-<dataElementGroup type="success">
-	<id>$dataElementGroup.id</id>
-	<name>$encoder.xmlEncode( $dataElementGroup.name )</name>
-</dataElementGroup>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementGroups.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementGroups.vm	2010-02-25 08:57:19 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementGroups.vm	1970-01-01 00:00:00 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dataElementGroups>
-	#foreach( $dataElementGroup in $dataElementGroups )
-	<dataElementGroup>
-		<id>$dataElementGroup.id</id>
-		<name>$encoder.xmlEncode( $dataElementGroup.name )</name>
-	</dataElementGroup>	
-	#end	
-</dataElementGroups>
-

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementList.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementList.vm	2009-11-07 14:09:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElementList.vm	1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dataElements>
-#foreach ( $dataElement in $dataElements )
-	<dataElement>
-		<id>$dataElement.id</id>
-		<name>$encoder.xmlEncode( $dataElement.name )</name>
-		<shortName>$encoder.xmlEncode( $dataElement.shortName )</shortName>
-		<alternativeName>$!encoder.xmlEncode( $dataElement.alternativeName )</alternativeName>
-		<code>$!encoder.xmlEncode( $dataElement.code )</code>
-		<description>$!encoder.xmlEncode( $dataElement.description )</description>
-		<active>$dataElement.active</active>
-		<domainType>$dataElement.getDomainTypeNullSafe()</domainType>
-		<type>$dataElement.type</type>
-		<aggregationOperator>$dataElement.aggregationOperator</aggregationOperator>
-		<categoryCombo>$dataElement.categoryCombo</categoryCombo>
-	</dataElement>
-#end
-</dataElements>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElements.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElements.vm	2010-07-16 09:36:16 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDataElements.vm	1970-01-01 00:00:00 +0000
@@ -1,10 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<dataElements>
-#foreach( $dataElement in $dataElements )
-	<dataElement>
-		<id>$dataElement.id</id>
-		<name>$encoder.xmlEncode( $dataElement.name )</name>
-		<url>$encoder.xmlEncode( $dataElement.url )</url>
-	</dataElement>
-#end
-</dataElements>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDelete.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDelete.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseDelete.vm	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<message>$encoder.xmlEncode( $message )</message>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseError.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseError.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseError.vm	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<message type="error">$encoder.xmlEncode( $message )</message>
-
-

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseIndicatorGroups.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseIndicatorGroups.vm	2010-03-23 01:59:51 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseIndicatorGroups.vm	1970-01-01 00:00:00 +0000
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<indicatorGroups>
-	#foreach( $indicatorGroup in $indicatorGroups )
-	<indicatorGroup>
-		<id>$indicatorGroup.id</id>
-		<name>$encoder.xmlEncode( $indicatorGroup.name )</name>
-	</indicatorGroup>
-	#end
-</indicatorGroups>

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseInput.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseInput.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseInput.vm	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<message type="input">$encoder.xmlEncode( $message )</message>

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responsePeriods.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responsePeriods.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responsePeriods.vm	1970-01-01 00:00:00 +0000
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<periodSet>
-  <periods>
-  #foreach( $period in $periods )
-    <period id="$period.id">$period.startDate - $period.endDate</period>
-  #end
-  </periods>
-</periodSet>
\ No newline at end of file

=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseSuccess.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseSuccess.vm	2009-03-03 16:46:36 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/responseSuccess.vm	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<message type="success">$encoder.xmlEncode( $message )</message>

=== removed directory 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/style'
=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/style/indicatorGroupEditor.css'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/style/indicatorGroupEditor.css	2010-02-26 06:40:34 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-datadictionary/src/main/webapp/dhis-web-maintenance-datadictionary/style/indicatorGroupEditor.css	1970-01-01 00:00:00 +0000
@@ -1,15 +0,0 @@
-.select 
-{
-	border:#666666 thin solid;
-	width:300px;
-	size:30;
-}
-
-#tooltip {
-    color:#000; font-size:11px; line-height:1.2;
-    background-color:#FFFFCC; border:1px solid #667295; 
-    width:210px; padding:4px;
-	z-index: 100000;
-	display: none;
-	position:absolute;
-}
\ No newline at end of file