← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 7763: Exception when adding/updating program validation form.

 

------------------------------------------------------------
revno: 7763
committer: Tran Chau <tran.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Mon 2012-07-30 17:10:18 +0700
message:
  Exception when adding/updating program validation form.
added:
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationDescriptionAction.java
modified:
  dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java
  dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java
  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/addMultiProgramValidationForm.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.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-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java'
--- dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java	2012-03-26 06:36:24 +0000
+++ dhis-2/dhis-api/src/main/java/org/hisp/dhis/program/ProgramValidationService.java	2012-07-30 10:10:18 +0000
@@ -59,4 +59,6 @@
 
     boolean runValidation( ProgramValidation validation, ProgramStageInstance programStageInstance,
         I18nFormat format );
+    
+    String getValidationDescription( String condition );
 }

=== modified file 'dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java'
--- dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java	2012-03-23 03:46:08 +0000
+++ dhis-2/dhis-services/dhis-service-patient/src/main/java/org/hisp/dhis/program/DefaultProgramValidationService.java	2012-07-30 10:10:18 +0000
@@ -27,6 +27,9 @@
 
 package org.hisp.dhis.program;
 
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.OBJECT_PROGRAM_STAGE_DATAELEMENT;
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.SEPARATOR_ID;
+import static org.hisp.dhis.caseaggregation.CaseAggregationCondition.SEPARATOR_OBJECT;
 import static org.hisp.dhis.program.ProgramValidation.AFTER_CURRENT_DATE;
 import static org.hisp.dhis.program.ProgramValidation.AFTER_DUE_DATE;
 import static org.hisp.dhis.program.ProgramValidation.AFTER_OR_EQUALS_TO_CURRENT_DATE;
@@ -36,9 +39,6 @@
 import static org.hisp.dhis.program.ProgramValidation.BEFORE_DUE_DATE_PLUS_OR_MINUS_MAX_DAYS;
 import static org.hisp.dhis.program.ProgramValidation.BEFORE_OR_EQUALS_TO_CURRENT_DATE;
 import static org.hisp.dhis.program.ProgramValidation.BEFORE_OR_EQUALS_TO_DUE_DATE;
-import static org.hisp.dhis.program.ProgramValidation.OBJECT_PROGRAM_STAGE_DATAELEMENT;
-import static org.hisp.dhis.program.ProgramValidation.SEPARATOR_ID;
-import static org.hisp.dhis.program.ProgramValidation.SEPARATOR_OBJECT;
 
 import java.util.Collection;
 import java.util.Date;
@@ -66,6 +66,8 @@
     private final String regExp = "\\[" + OBJECT_PROGRAM_STAGE_DATAELEMENT + SEPARATOR_OBJECT + "([a-zA-Z0-9\\- ]+["
         + SEPARATOR_ID + "[0-9]*]*)" + "\\]";
 
+    private final String INVALID_CONDITION = "Invalid condition";
+
     private ProgramValidationStore validationStore;
 
     private ProgramStageService programStageService;
@@ -330,6 +332,43 @@
         return programValidation;
     }
 
+    public String getValidationDescription( String condition )
+    {
+        StringBuffer description = new StringBuffer();
+
+        Pattern patternCondition = Pattern.compile( regExp );
+
+        Matcher matcher = patternCondition.matcher( condition );
+
+        while ( matcher.find() )
+        {
+            String match = matcher.group();
+            match = match.replaceAll( "[\\[\\]]", "" );
+
+            String[] info = match.split( SEPARATOR_OBJECT );
+            String[] ids = info[1].split( SEPARATOR_ID );
+
+            String programStageId = ids[0];
+            ProgramStage programStage = programStageService.getProgramStage( Integer.parseInt( programStageId ) );
+
+            int dataElementId = Integer.parseInt( ids[1] );
+            DataElement dataElement = dataElementService.getDataElement( dataElementId );
+
+            if ( programStage == null || dataElement == null )
+            {
+                return INVALID_CONDITION;
+            }
+
+            matcher.appendReplacement( description, "[" + programStage.getName() + SEPARATOR_ID + dataElement.getName()
+                + "]" );
+
+        }
+
+        matcher.appendTail( description );
+
+        return description.toString();
+    }
+
     // -------------------------------------------------------------------------
     // Supportive methods
     // -------------------------------------------------------------------------

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java	2012-01-11 05:31:53 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationAction.java	2012-07-30 10:10:18 +0000
@@ -27,7 +27,6 @@
 
 package org.hisp.dhis.patient.action.validation;
 
-import org.hisp.dhis.caseaggregation.CaseAggregationConditionService;
 import org.hisp.dhis.program.ProgramValidation;
 import org.hisp.dhis.program.ProgramValidationService;
 
@@ -45,9 +44,7 @@
     // -------------------------------------------------------------------------
 
     private ProgramValidationService programValidationService;
-
-    private CaseAggregationConditionService aggregationConditionService;
-
+    
     // -------------------------------------------------------------------------
     // Input && Output
     // -------------------------------------------------------------------------
@@ -79,11 +76,6 @@
         this.programValidationService = programValidationService;
     }
 
-    public void setAggregationConditionService( CaseAggregationConditionService aggregationConditionService )
-    {
-        this.aggregationConditionService = aggregationConditionService;
-    }
-
     public void setValidationId( Integer validationId )
     {
         this.validationId = validationId;
@@ -104,8 +96,8 @@
     {
         validation = programValidationService.getProgramValidation( validationId );
 
-        leftDescription = aggregationConditionService.getConditionDescription( validation.getLeftSide() );
-        rightDescription = aggregationConditionService.getConditionDescription( validation.getRightSide() );
+        leftDescription = programValidationService.getValidationDescription( validation.getLeftSide() );
+        rightDescription = programValidationService.getValidationDescription( validation.getRightSide() );
 
         return SUCCESS;
     }

=== added file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationDescriptionAction.java'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/java/org/hisp/dhis/patient/action/validation/GetProgramValidationDescriptionAction.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/validation/GetProgramValidationDescriptionAction.java	2012-07-30 10:10:18 +0000
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2004-2012, 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.validation;
+
+import org.hisp.dhis.program.ProgramValidationService;
+
+import com.opensymphony.xwork2.Action;
+
+/**
+ * @author Chau Thu Tran
+ * @version $ID : GetAggConditionDescriptionAction.java Jan 11, 2011 9:14:19 PM
+ *          $
+ */
+public class GetProgramValidationDescriptionAction
+    implements Action
+{
+    // -------------------------------------------------------------------------
+    // Dependency
+    // -------------------------------------------------------------------------
+
+    private ProgramValidationService programValidationService;
+
+    // -------------------------------------------------------------------------
+    // Input && Output
+    // -------------------------------------------------------------------------
+
+    private String condition;
+
+    private String description;
+
+    // -------------------------------------------------------------------------
+    // Getters && Setters
+    // -------------------------------------------------------------------------
+
+    public void setProgramValidationService( ProgramValidationService programValidationService )
+    {
+        this.programValidationService = programValidationService;
+    }
+
+    public String getDescription()
+    {
+        return description;
+    }
+
+    public void setCondition( String condition )
+    {
+        this.condition = condition;
+    }
+
+    // -------------------------------------------------------------------------
+    // Action implementation
+    // -------------------------------------------------------------------------
+
+    @Override
+    public String execute()
+        throws Exception
+    {
+        description = programValidationService.getValidationDescription( condition );
+
+        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	2012-07-06 15:37:11 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/META-INF/dhis/beans.xml	2012-07-30 10:10:18 +0000
@@ -777,9 +777,6 @@
 		<property name="programValidationService">
 			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
 		</property>
-		<property name="aggregationConditionService">
-			<ref bean="org.hisp.dhis.caseaggregation.CaseAggregationConditionService" />
-		</property>
 	</bean>
 
 	<bean
@@ -822,5 +819,14 @@
 		<property name="programValidationService"
 			ref="org.hisp.dhis.program.ProgramValidationService" />
 	</bean>
+	
+	<bean
+		id="org.hisp.dhis.patient.action.validation.GetProgramValidationDescriptionAction"
+		class="org.hisp.dhis.patient.action.validation.GetProgramValidationDescriptionAction"
+		scope="prototype">
+		<property name="programValidationService">
+			<ref bean="org.hisp.dhis.program.ProgramValidationService" />
+		</property>
+	</bean>
 
 </beans>
\ No newline at end of file

=== 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	2012-07-06 15:37:11 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/resources/struts.xml	2012-07-30 10:10:18 +0000
@@ -835,5 +835,12 @@
 			<param name="requiredAuthorities">F_PROGRAM_VALIDATION</param>
 		</action>
 
+		<action name="getProgramValidationDescription"
+			class="org.hisp.dhis.patient.action.validation.GetProgramValidationDescriptionAction">
+			<result name="success" type="velocity">
+				/dhis-web-maintenance-patient/responseCaseAggDescription.vm</result>
+			<param name="onExceptionReturn">plainTextError</param>
+		</action>
+		
 	</package>
 </struts>

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm	2012-03-15 09:28:38 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/addMultiProgramValidationForm.vm	2012-07-30 10:10:18 +0000
@@ -41,7 +41,7 @@
 	</tr>
 	<tr>
 		<td>
-			<select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();">
+			<select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();" style='width:320px'>
 				<option value=''>[$i18n.getString( "please_select" )]</option>
 				#foreach($stage in $program.programStages)
 				<option value='$stage.id'>$stage.name</option>
@@ -49,7 +49,7 @@
 			</select>
 		</td>
 		<td>
-			<select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();">
+			<select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();" style='width:320px'>
 				<option value=''>[$i18n.getString( "please_select" )]</option>
 				#foreach($stage in $program.programStages)
 				<option value='$stage.id'>$stage.name</option>
@@ -59,11 +59,11 @@
 	</tr>
 	<tr>
 		<td>
-			<select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide', 'leftStageDescription');" >
+			<select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide', 'leftStageDescription');" style='width:320px'>
 			</select>
 		</td>
 		<td>
-			<select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide', 'rightStageDescription' );">
+			<select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide', 'rightStageDescription' );" style='width:320px'>
 			</select>
 		</td>
 	</tr>
@@ -95,10 +95,10 @@
 	</tr>
 	<tr>	
 		<td>
-			<textarea rows='5' id='leftSide' name='leftSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('leftStageDescription', 'leftSide')"></textarea>
+			<textarea rows='5' id='leftSide' name='leftSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('leftStageDescription', 'leftSide')" style='width:320px'></textarea>
 		</td>
 		<td>
-			<textarea rows='5' id='rightSide' name='rightSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('rightStageDescription', 'rightSide')"></textarea>
+			<textarea rows='5' id='rightSide' name='rightSide' class="{validate:{required:true,minlength:4}}" onkeyup="getValidationDescription('rightStageDescription', 'rightSide')" style='width:320px'></textarea>
 		</td>
 	</tr>
 	<tr>	

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js	2012-03-13 09:47:39 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/javascript/programValidation.js	2012-07-30 10:10:18 +0000
@@ -69,7 +69,7 @@
 
 function getValidationDescription( decriptionDiv, sideDiv )
 {
-	$.get("getCaseAggregationDescription.action",
+	$.postUTF8("getProgramValidationDescription.action",
 		{
 			condition: getFieldValue( sideDiv )
 		},

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm	2012-03-15 09:28:38 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateMultiProgramValidationForm.vm	2012-07-30 10:10:18 +0000
@@ -19,7 +19,7 @@
 	</tr>
 	<tr>
 		<td colspan='2'>			
-			<input type="text" id='description' style='width:640px' name='description' value='$validation.description'>
+			<input type="text" id='description' style='width:640px' name='description' value='$validation.description' style='width:640px;'>
 		</td>
 	</tr>
 	<tr>
@@ -40,7 +40,7 @@
 	</tr>
 	<tr>
 		<td>
-			<select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();">
+			<select id='leftStage' name='leftStage' onchange="getLeftPrgramStageDataElements();" style='width:320px;'>
 				<option value=''>[$i18n.getString( "please_select" )]</option>
 				#foreach($stage in $validation.program.programStages)
 				<option value='$stage.id'>$stage.name</option>
@@ -48,7 +48,7 @@
 			</select>
 		</td>
 		<td>
-			<select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();">
+			<select id='rightStage' name='rightStage' onchange="getRightPrgramStageDataElements();" style='width:320px;'>
 				<option value=''>[$i18n.getString( "please_select" )]</option>
 				#foreach($stage in $validation.program.programStages)
 				<option value='$stage.id'>$stage.name</option>
@@ -58,11 +58,11 @@
 	</tr>
 	<tr>
 		<td>
-			<select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide');">
+			<select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide');" style='width:320px;'>
 			</select>
 		</td>
 		<td>
-			<select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide');">
+			<select id='rightSideDE' name='rightSideDE' size='7' ondblclick="insertDataElement(this, 'rightSide');" style='width:320px;'>
 			</select>
 		</td>
 	</tr>
@@ -95,23 +95,23 @@
 	</tr>
 	<tr>
 		<td>
-			<textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')">$validation.leftSide</textarea>
+			<textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')" style='width:320px;'>$validation.leftSide</textarea>
 		</td>
 		<td>
-			<textarea rows='5' id='rightSide' name='rightSide' onkeyup="getValidationDescription('rightStageDescription', 'rightSide')">$validation.rightSide</textarea>
+			<textarea rows='5' id='rightSide' name='rightSide' onkeyup="getValidationDescription('rightStageDescription', 'rightSide')" style='width:320px;'>$validation.rightSide</textarea>
 		</td>
 	</tr>
 	<tr>	
 		<td>
 			<fieldset>
 				<legend>$i18n.getString( "description" )</legend>
-				<div id='leftStageDescription'>$!leftDescription</div>
+				<div id='leftStageDescription' style='width:320px;'>$!leftDescription</div>
 			</fieldset>
 		</td>
 		<td>
 			<fieldset>
 				<legend>$i18n.getString( "description" )</legend>
-				<div id='rightStageDescription'>$!rightDescription</div>
+				<div id='rightStageDescription' style='width:320px;'>$!rightDescription</div>
 			</fieldset>
 		</td>
 	</tr>

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.vm'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.vm	2012-03-22 03:06:42 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-patient/src/main/webapp/dhis-web-maintenance-patient/updateSingleProgramValidationForm.vm	2012-07-30 10:10:18 +0000
@@ -39,7 +39,7 @@
 	</tr>
 	<tr>
 		<td>
-			<select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide');">
+			<select id='leftSideDE' name='leftSideDE' size='7' ondblclick="insertDataElement(this, 'leftSide', 'leftStageDescription');">
 			</select>
 		</td>
 	</tr>
@@ -59,7 +59,7 @@
 	</tr>
 	<tr>
 		<td>
-			<textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')">$validation.leftSide</textarea>
+			<textarea rows='5' id='leftSide' name='leftSide' onkeyup="getValidationDescription('leftStageDescription', 'leftSide')" style='width:320px;'>$validation.leftSide</textarea>
 			<input type='hidden' id='rightSide' name='rightSide' value='1==1'>
 		</td>
 	</tr>
@@ -67,7 +67,7 @@
 		<td>
 			<fieldset>
 				<legend>$i18n.getString( "description" )</legend>
-				<div id='leftStageDescription'>$!leftDescription</div>
+				<div id='leftStageDescription' style='width:320px;'>$!leftDescription</div>
 			</fieldset>
 		</td>
 	</tr>