dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #14266
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 4788: Beneficiary attribute group - Applied dhisAjaxSelect plugin into this.
------------------------------------------------------------
revno: 4788
committer: Hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Sun 2011-10-02 16:53:57 +0700
message:
Beneficiary attribute group - Applied dhisAjaxSelect plugin into this.
Code style fixed and renamed action by typing error.
removed:
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithdoutGroupAction.java
added:
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithoutGroupAction.java
modified:
dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/validationRules.js
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addPatientAttributeGroupForm.vm
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/patientAttributeGroup.js
dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updatePatientAttibuteGroupForm.vm
--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk
Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/validationRules.js'
--- dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/validationRules.js 2011-10-01 09:05:47 +0000
+++ dhis-2/dhis-web/dhis-web-commons-resources/src/main/webapp/dhis-web-commons/javascripts/validationRules.js 2011-10-02 09:53:57 +0000
@@ -415,5 +415,15 @@
"name" : {
"required": true
}
+ },
+ "patientAttributeGroup" : {
+ "name" : {
+ "required" : true,
+ "rangelength" : [ 2,160 ]
+ },
+ "description" : {
+ "required" : true,
+ "rangelength" : [ 2, 255 ]
+ }
}
};
=== removed file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithdoutGroupAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithdoutGroupAction.java 2011-03-31 01:42:05 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithdoutGroupAction.java 1970-01-01 00:00:00 +0000
@@ -1,80 +0,0 @@
-/*
- * 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.
- */
-
-package org.hisp.dhis.patient.action.patientattribute;
-
-import java.util.ArrayList;
-import java.util.Collection;
-
-import org.hisp.dhis.patient.PatientAttribute;
-import org.hisp.dhis.patient.PatientAttributeService;
-
-import com.opensymphony.xwork2.Action;
-
-/**
- * @author Chau Thu Tran
- *
- * @version GetPatientAttributesWithdoutGroupAction.java Sep 27, 2010 4:55:01 PM
- */
-public class GetPatientAttributesWithdoutGroupAction
- implements Action
-{
- // -------------------------------------------------------------------------
- // Dependency
- // -------------------------------------------------------------------------
-
- private PatientAttributeService patientAttributeService;
-
- public void setPatientAttributeService( PatientAttributeService patientAttributeService )
- {
- this.patientAttributeService = patientAttributeService;
- }
-
- // -------------------------------------------------------------------------
- // Output
- // -------------------------------------------------------------------------
-
- private Collection<PatientAttribute> patientAttributes = new ArrayList<PatientAttribute>();
-
- public Collection<PatientAttribute> getPatientAttributes()
- {
- return patientAttributes;
- }
-
- // -------------------------------------------------------------------------
- // Action implementation
- // -------------------------------------------------------------------------
-
- public String execute()
- throws Exception
- {
- patientAttributes = patientAttributeService.getPatientAttributesNotGroup();
-
- return SUCCESS;
- }
-
-}
=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithoutGroupAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithoutGroupAction.java 1970-01-01 00:00:00 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/patientattribute/GetPatientAttributesWithoutGroupAction.java 2011-10-02 09:53:57 +0000
@@ -0,0 +1,80 @@
+/*
+ * 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.
+ */
+
+package org.hisp.dhis.patient.action.patientattribute;
+
+import java.util.ArrayList;
+import java.util.Collection;
+
+import org.hisp.dhis.patient.PatientAttribute;
+import org.hisp.dhis.patient.PatientAttributeService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ *
+ * @version GetPatientAttributesWithoutGroupAction.java Sep 27, 2010 4:55:01 PM
+ */
+public class GetPatientAttributesWithoutGroupAction
+ implements Action
+{
+ // -------------------------------------------------------------------------
+ // Dependency
+ // -------------------------------------------------------------------------
+
+ private PatientAttributeService patientAttributeService;
+
+ public void setPatientAttributeService( PatientAttributeService patientAttributeService )
+ {
+ this.patientAttributeService = patientAttributeService;
+ }
+
+ // -------------------------------------------------------------------------
+ // Output
+ // -------------------------------------------------------------------------
+
+ private Collection<PatientAttribute> patientAttributes = new ArrayList<PatientAttribute>();
+
+ public Collection<PatientAttribute> getPatientAttributes()
+ {
+ return patientAttributes;
+ }
+
+ // -------------------------------------------------------------------------
+ // Action implementation
+ // -------------------------------------------------------------------------
+
+ public String execute()
+ throws Exception
+ {
+ patientAttributes = patientAttributeService.getPatientAttributesNotGroup();
+
+ return SUCCESS;
+ }
+
+}
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2011-09-14 06:36:13 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml 2011-10-02 09:53:57 +0000
@@ -125,8 +125,8 @@
</bean>
<bean
- id="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributesWithdoutGroupAction"
- class="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributesWithdoutGroupAction"
+ id="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributesWithoutGroupAction"
+ class="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributesWithoutGroupAction"
scope="prototype">
<property name="patientAttributeService"
ref="org.hisp.dhis.patient.PatientAttributeService" />
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml 2011-09-28 07:48:12 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml 2011-10-02 09:53:57 +0000
@@ -98,6 +98,20 @@
<param name="onExceptionReturn">plainTextError</param>
</action>
+ <action name="getPatientAttributes"
+ class="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributeListAction">
+ <result name="success" type="velocity-json">
+ /dhis-web-commons/ajax/jsonPatientAttributes.vm</result>
+ <param name="onExceptionReturn">plainTextError</param>
+ </action>
+
+ <action name="getProgramAttributeWithoutGroup"
+ class="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributesWithoutGroupAction">
+ <result name="success" type="velocity-json">
+ /dhis-web-commons/ajax/jsonPatientAttributes.vm</result>
+ <param name="onExceptionReturn">plainTextError</param>
+ </action>
+
<action name="removePatientAttribute"
class="org.hisp.dhis.patient.action.patientattribute.RemovePatientAttributeAction">
<result name="success" type="velocity-json">
@@ -513,7 +527,7 @@
</action>
<action name="showAddPatientAttributeGroupForm"
- class="org.hisp.dhis.patient.action.patientattribute.GetPatientAttributesWithdoutGroupAction">
+ class="org.hisp.dhis.patient.action.NoAction">
<result name="success" type="velocity">/main.vm</result>
<param name="page">/dhis-web-maintenance-patient/addPatientAttributeGroupForm.vm</param>
<param name="menu">/dhis-web-maintenance-patient/patientAndProgramMenu.vm</param>
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addPatientAttributeGroupForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addPatientAttributeGroupForm.vm 2011-09-29 04:17:34 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addPatientAttributeGroupForm.vm 2011-10-02 09:53:57 +0000
@@ -5,14 +5,30 @@
jQuery('name').focus();
- validation( 'addPatientAttributeGroupForm', function(form){
+ validation2( 'addPatientAttributeGroupForm', function(form){
form.submit();
- }, function()
- {
- beforeSubmit();
- });
-
- checkValueIsExist( "name", "validatePatientAttributeGroup.action");
+ }, {
+ 'beforeValidateHandler' : function()
+ {
+ listValidator( 'memberValidator', 'selectedAttributes' );
+ },
+ 'rules' : getValidationRules( 'patientAttributeGroup' )
+ } );
+
+ checkValueIsExist( "name", "validatePatientAttributeGroup.action" );
+
+ jQuery("#availableAttributes").dhisAjaxSelect({
+ source: 'getProgramAttributeWithoutGroup.action',
+ iterator: 'patientAttributes',
+ connectedTo: 'selectedAttributes',
+ handler: function(item){
+ var option = jQuery( "<option/>" );
+ option.attr( "value", item.id );
+ option.text( item.name );
+
+ return option;
+ }
+ });
});
</script>
@@ -21,57 +37,51 @@
<form id="addPatientAttributeGroupForm" action="addPatientAttributeGroup.action" method="post" >
<table>
- <tr>
- <th colspan="4">$i18n.getString( "patient_attribute_group_deltails" ) </th>
- </tr>
- <tr>
- <td><label>$i18n.getString( "name" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
- <td><input type="text" id="name" name="name" style="width:20em" class="{validate:{required:true,rangelength:[2,160]}}"/></td>
- </td>
- </tr>
-
- <tr>
- <td><label>$i18n.getString( "description" ) <em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
- <td><input type="text" id="description" name="description" style="width:20em" class="{validate:{required:true,minlength:2}}"/></td>
- <td> </td>
- <td> </td>
- </tr>
- </table>
- <table>
- <tr>
- <td colspan="2"> </td>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <th colspan="2">$i18n.getString( "availableAttribute" ) </th>
- <th>$i18n.getString( "filter" ) </th>
- <th>$i18n.getString( "selectedAttribute" )
- <select id="memberValidator" multiple="multiple" style="display:none" class="{validate:{required:true}}"></select>
- </th>
- </tr>
- <tr>
- <td colspan="2">
- <select multiple id="availableAttributes" name="availableAttributes" size="15" style="width:25em " ondblclick="moveSelectedById( 'availableAttributes', 'selectedAttributes' )" >
- #foreach($patientAttribute in $patientAttributes)
- <option value='$patientAttribute.id' >$patientAttribute.name</option>
- #end
- </select>
- </td>
- <td>
- <input type="button" value=">" title="$i18n.getString('move_selected')" onclick="moveSelectedById( 'availableAttributes', 'selectedAttributes' )"/>
- <br/>
- <input type="button" value="<" title="$i18n.getString('remove_selected')" onclick="moveSelectedById( 'selectedAttributes', 'availableAttributes' )"/>
- </td>
- <td><select multiple id="selectedAttributes" name="selectedAttributes" size="15" style="width:25em " ondblclick="moveSelectedById( 'selectedAttributes', 'availableAttributes' )"></select>
- </td>
- <td>
- <a href="javascript:moveUpSelectedOption( 'selectedAttributes')" title="$i18n.getString( 'move_up' )"><img src="../images/move_up.png" alt="$i18n.getString( 'move_up' )"/></a>
- <br/><br/>
+ <tr>
+ <th colspan="2">$i18n.getString( "patient_attribute_group_deltails" )</th>
+ </tr>
+ <tr>
+ <td>$i18n.getString( "name" ) <em title="$i18n.getString( 'required' )" class="required">*</em></td>
+ <td><input type="text" id="name" name="name" style="width:20em"/></td>
+ </tr>
+ <tr>
+ <td>$i18n.getString( "description" ) <em title="$i18n.getString( 'required' )" class="required">*</em></td>
+ <td><input type="text" id="description" name="description" style="width:20em"/></td>
+ </tr>
+ <tr>
+ <td colspan="2" height="15px"></td>
+ </tr>
+</table>
+
+<table>
+ <col style="width: 450px"/>
+ <col/>
+ <col style="width: 450px"/>
+
+ <tr>
+ <th>$i18n.getString( "availableAttribute" )</th>
+ <th>$i18n.getString( "filter" )</th>
+ <th>$i18n.getString( "selectedAttribute" )
+ <select id="memberValidator" multiple="multiple" style="display:none" class="{validate:{required:true}}"/>
+ </th>
+ </tr>
+
+ <tr>
+ <td>
+ <select multiple id="availableAttributes" name="availableAttributes" size="15" style="width:100%"></select>
+ </td>
+ <td style="text-align:center">
+ <input type="button" value=">" title="$i18n.getString('move_selected')" onclick="dhisAjaxSelect_moveAllSelected( 'availableAttributes', 'selectedAttributes' )"/><br/>
+ <input type="button" value="<" title="$i18n.getString('remove_selected')" onclick="dhisAjaxSelect_moveAllSelected( 'selectedAttributes', 'availableAttributes' )"/>
+ </td>
+ <td>
+ <select multiple id="selectedAttributes" name="selectedAttributes" size="15" style="width:100%"></select>
+ </td>
+ <td>
+ <a href="javascript:moveUpSelectedOption( 'selectedAttributes')" title="$i18n.getString( 'move_up' )"><img src="../images/move_up.png" alt="$i18n.getString( 'move_up' )"/></a><br/><br/>
<a href="javascript:moveDownSelectedOption( 'selectedAttributes' )" title="$i18n.getString( 'move_down' )"><img src="../images/move_down.png" alt="$i18n.getString( 'move_up' )"/></a>
</td>
- </tr>
-
+ </tr>
</table>
<p>
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/patientAttributeGroup.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/patientAttributeGroup.js 2011-09-28 07:11:18 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/patientAttributeGroup.js 2011-10-02 09:53:57 +0000
@@ -1,13 +1,3 @@
-function beforeSubmit()
-{
- memberValidator = jQuery( "#memberValidator");
- memberValidator.children().remove();
-
- jQuery.each( jQuery( "#selectedAttributes" ).children(), function(i, item){
- item.selected = 'selected';
- memberValidator.append( '<option value="' + item.value + '" selected="selected">' + item.value + '</option>');
- });
-}
// -----------------------------------------------------------------------------
// View details
// -----------------------------------------------------------------------------
=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updatePatientAttibuteGroupForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updatePatientAttibuteGroupForm.vm 2011-09-29 04:17:34 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updatePatientAttibuteGroupForm.vm 2011-10-02 09:53:57 +0000
@@ -1,18 +1,34 @@
<script>
var i18n_remove_option = '$encoder.jsEscape( $i18n.getString( "remove_option" ) , "'") ';
- jQuery(document).ready( function(){
-
- jQuery('name').focus();
-
- validation( 'updatePatientAttributeGroupForm', function(form){
- form.submit();
- }, function()
+ jQuery(document).ready( function() {
+
+ jQuery('name').focus();
+
+ validation2( 'updatePatientAttributeGroupForm', function(form){
+ form.submit();
+ }, {
+ 'beforeValidateHandler' : function()
{
- beforeSubmit();
- });
-
- checkValueIsExist( "name", "validatePatientAttributeGroup.action", {id:getFieldValue('id')});
+ listValidator( 'memberValidator', 'selectedAttributes' );
+ },
+ 'rules' : getValidationRules( 'patientAttributeGroup' )
+ } );
+
+ checkValueIsExist( "name", "validatePatientAttributeGroup.action", {id:getFieldValue('id')});
+
+ jQuery("#availableAttributes").dhisAjaxSelect({
+ source: 'getProgramAttributeWithoutGroup.action',
+ iterator: 'patientAttributes',
+ connectedTo: 'selectedAttributes',
+ handler: function(item){
+ var option = jQuery( "<option/>" );
+ option.attr( "value", item.id );
+ option.text( item.name );
+
+ return option;
+ }
+ });
});
</script>
<h3>$i18n.getString( "edit_patient_attribute_group" )</h3>
@@ -21,66 +37,64 @@
<div style="display:inline">
<input type="hidden" id="id" name="id" value="$!patientAttributeGroup.id"/>
</div>
-
- <table id="detailsList">
- <thead>
- <tr>
- <th colspan="4">$i18n.getString( "patient_attribute_group_deltails" ) </th>
- </tr>
- </thead>
- <tbody>
- <tr>
- <td>$i18n.getString( "name" ) <em title="$i18n.getString( 'required' )" class="required">*</em></td>
- <td><input type="text" id="name" name="name" value="$encoder.htmlEncode( $patientAttributeGroup.name )" style="width:20em"/></td>
- </tr>
- <tr>
- <td>$i18n.getString( "description" ) <em title="$i18n.getString( 'required' )" class="required">*</em></td>
- <td><input type="text" id="description" name="description" value="$encoder.htmlEncode( $patientAttributeGroup.description )" style="width:20em"/></td>
- </tr>
- <tr>
- <td> </td>
- <td> </td>
- </tr>
- <tr>
- <th colspan="2">$i18n.getString( "availableAttribute" ) </th>
- <th>$i18n.getString( "filter" ) </th>
- <th>$i18n.getString( "selectedAttribute" )
- <select id="memberValidator" multiple="multiple" style="display:none" class="{validate:{required:true}}"/>
- </th>
- </tr>
- <tr>
- <td colspan="2">
- <select multiple id="availableAttributes" name="availableAttributes" size="15" style="width:25em " ondblclick="moveSelectedById( 'availableAttributes', 'selectedAttributes' )">
- #foreach($patientAttribute in $patientAttributes)
+
+<table>
+ <tr>
+ <th colspan="2">$i18n.getString( "patient_attribute_group_deltails" )</th>
+ </tr>
+ <tr>
+ <td>$i18n.getString( "name" ) <em title="$i18n.getString( 'required' )" class="required">*</em></td>
+ <td><input type="text" id="name" name="name" value="$encoder.htmlEncode( $patientAttributeGroup.name )" style="width:20em"/></td>
+ </tr>
+ <tr>
+ <td>$i18n.getString( "description" ) <em title="$i18n.getString( 'required' )" class="required">*</em></td>
+ <td><input type="text" id="description" name="description" value="$encoder.htmlEncode( $patientAttributeGroup.description )" style="width:20em"/></td>
+ </tr>
+ <tr>
+ <td colspan="2" height="15px"></td>
+ </tr>
+</table>
+
+<table>
+ <col style="width: 450px"/>
+ <col/>
+ <col style="width: 450px"/>
+
+ <tr>
+ <th>$i18n.getString( "availableAttribute" )</th>
+ <th>$i18n.getString( "filter" )</th>
+ <th>$i18n.getString( "selectedAttribute" )
+ <select id="memberValidator" multiple="multiple" style="display:none" class="{validate:{required:true}}"/>
+ </th>
+ </tr>
+
+ <tr>
+ <td>
+ <select multiple id="availableAttributes" name="availableAttributes" size="15" style="width:100%"></select>
+ </td>
+ <td style="text-align:center">
+ <input type="button" value=">" title="$i18n.getString('move_selected')" onclick="dhisAjaxSelect_moveAllSelected( 'availableAttributes', 'selectedAttributes' )"/><br/>
+ <input type="button" value="<" title="$i18n.getString('remove_selected')" onclick="dhisAjaxSelect_moveAllSelected( 'selectedAttributes', 'availableAttributes' )"/>
+ </td>
+ <td>
+ <select multiple id="selectedAttributes" name="selectedAttributes" size="15" style="width:100%">
+ #foreach($patientAttribute in $patientAttributeGroup.attributes)
+ #if($!patientAttribute)
<option value='$patientAttribute.id'>$patientAttribute.name</option>
#end
+ #end
</select>
</td>
- <td>
- <input type="button" value=">" title="$i18n.getString('move_selected')" onclick="moveSelectedById( 'availableAttributes', 'selectedAttributes' )"/>
- <br/>
- <input type="button" value="<" title="$i18n.getString('remove_selected')" onclick="moveSelectedById( 'selectedAttributes', 'availableAttributes' )"/>
- </td>
- <td><select multiple id="selectedAttributes" name="selectedAttributes" size="15" style="width:25em" ondblclick="moveSelectedById( 'selectedAttributes', 'availableAttributes' )">
- #foreach($patientAttribute in $patientAttributeGroup.attributes)
- #if($!patientAttribute)
- <option value='$patientAttribute.id'>$patientAttribute.name</option>
- #end
- #end
- </select></td>
-
<td>
- <a href="javascript:moveUpSelectedOption( 'selectedAttributes')" title="$i18n.getString( 'move_up' )"><img src="../images/move_up.png" alt="$i18n.getString( 'move_up' )"/></a>
- <br/><br/>
+ <a href="javascript:moveUpSelectedOption( 'selectedAttributes')" title="$i18n.getString( 'move_up' )"><img src="../images/move_up.png" alt="$i18n.getString( 'move_up' )"/></a><br/><br/>
<a href="javascript:moveDownSelectedOption( 'selectedAttributes' )" title="$i18n.getString( 'move_down' )"><img src="../images/move_down.png" alt="$i18n.getString( 'move_up' )"/></a>
</td>
- </tr>
-
- <tr>
- <td colspan="2" style="height:15px"></td>
- </tr>
- </tbody>
- </table>
+ </tr>
+
+ <tr>
+ <td colspan="2" style="height:15px"></td>
+ </tr>
+</table>
<p>
<input type="submit" value="$i18n.getString( 'update' )" style="width:10em"/>