← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1391: Function File Management - Working ...

 

------------------------------------------------------------
revno: 1391
committer: hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-02-04 16:13:45 +0700
message:
  Function File Management - Working ...
modified:
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/DeleteExcelTemplateAction.java
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/ExcelTemplateListAction.java
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/UploadExcelTemplateAction.java
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm
  dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties
  dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription.
=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/DeleteExcelTemplateAction.java'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/DeleteExcelTemplateAction.java	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/DeleteExcelTemplateAction.java	2010-02-04 09:13:45 +0000
@@ -1,5 +1,31 @@
 package org.hisp.dhis.reportexcel.filemanager.action;
 
+/*
+ * Copyright (c) 2004-2007, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 import java.io.File;
 import java.util.Collection;
 

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/ExcelTemplateListAction.java'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/ExcelTemplateListAction.java	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/ExcelTemplateListAction.java	2010-02-04 09:13:45 +0000
@@ -1,5 +1,32 @@
 package org.hisp.dhis.reportexcel.filemanager.action;
 
+/*
+ * Copyright (c) 2004-2007, University of Oslo
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright notice, this
+ *   list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright notice,
+ *   this list of conditions and the following disclaimer in the documentation
+ *   and/or other materials provided with the distribution.
+ * * Neither the name of the HISP project nor the names of its contributors may
+ *   be used to endorse or promote products derived from this software without
+ *   specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
+ * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
 import java.io.File;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -83,11 +110,11 @@
         
         String newUploadedPath = selectionManager.getUploadFilePath();
         
-        if ( !newUploadedPath.isEmpty() && (newUploadedPath != null) )
+        if ( (newUploadedPath != "") && (newUploadedPath != null) )
         {
             newFileUploaded = new File( newUploadedPath ).getName();
         }
-
+        
         // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         // Get the list of files
         // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -100,5 +127,4 @@
         return SUCCESS;
     }
 
-
 }

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/UploadExcelTemplateAction.java'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/UploadExcelTemplateAction.java	2010-01-29 09:03:26 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/UploadExcelTemplateAction.java	2010-02-04 09:13:45 +0000
@@ -1,3 +1,4 @@
+
 package org.hisp.dhis.reportexcel.filemanager.action;
 
 /*

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties	2010-02-04 09:13:45 +0000
@@ -186,4 +186,7 @@
 confirm_override            = Do you sure want to override this file? 
 upload_successful           = Uploading is successful!
 override_successful         = Overriding is successful!
-cannot_write_file_being_used = Unable to write to this file as being used by another program
\ No newline at end of file
+cannot_write_file_being_used = Unable to write to this file as being used by another program
+filename_wellformed         = How to get a well-formed name of file?
+length_filename_min5_max30  = Length of file's name is at least 5 and at most 30 
+use_only_letters_numbers_dot_only = Please enter Letters, Numbers for file's name and Dot for extension only
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module_vi_VN.properties	2010-02-04 09:13:45 +0000
@@ -187,4 +187,7 @@
 file_exists                 = T\u1eadp tin excel n\u00e0y \u0111ang t\u1ed3n t\u1ea1i!
 upload_successful           = T\u1ea3i t\u1eadp tin th\u00e0nh c\u00f4ng!
 override_successful         = T\u1eadp tin n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c ghi \u0111\u00e8!
-cannot_write_file_being_used = Kh\u00f4ng th\u1ec3 ghi l\u00ean t\u1eadp tin n\u00e0y v\u00ec \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng b\u1edfi m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh kh\u00e1c
\ No newline at end of file
+cannot_write_file_being_used = Kh\u00f4ng th\u1ec3 ghi l\u00ean t\u1eadp tin n\u00e0y v\u00ec \u0111ang \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng b\u1edfi m\u1ed9t ch\u01b0\u01a1ng tr\u00ecnh kh\u00e1c
+filename_wellformed         = L\u00e0m c\u00e1ch n\u00e0o \u0111\u1ec3 c\u00f3 t\u00ean t\u1eadp tin h\u1ee3p l\u1ec7?
+length_filename_min5_max30  = \u0110\u1ed9 d\u00e0i c\u1ee7a t\u00ean t\u1eadp tin t\u1ed1i thi\u1ec3u l\u00e0 5 v\u00e0 t\u1ed1i \u0111a l\u00e0 30 
+use_only_letters_numbers_dot_only = Ch\u1ec9 nh\u1eadp K\u00fd t\u1ef1, S\u1ed1 cho t\u00ean t\u1eadp tin v\u00e0 D\u1ea5u ch\u1ea5m(.) cho ph\u1ea7n \u0111u\u00f4i m\u1edf r\u1ed9ng
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/struts.xml	2010-02-04 09:13:45 +0000
@@ -1236,7 +1236,7 @@
 			class="org.hisp.dhis.reportexcel.filemanager.action.UploadExcelTemplateAction">
 			<result name="success" type="chain">
 				listAllExcelTemplates</result>
-			<param name="requiredAuthorities">F_EXCEL_TEMPLATE_MAMAGEMENT_DELETE</param>
+			<param name="requiredAuthorities">F_EXCEL_TEMPLATE_MAMAGEMENT_UPLOAD</param>
 			<interceptor-ref name="fileUploadStack" />
 		</action>
 		

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm	2010-02-04 09:13:45 +0000
@@ -37,9 +37,8 @@
 		<tr #alternate( $mark )>
 			<td>$encoder.htmlEncode( $templateFile.name )</td>
 			<td align="left">
-				<a href="openExcelTemplateAssociations.action?templateFileId=$templateFile.name" title="$i18n.getString( 'associations' )"><img src="../images/assign.png" alt="$i18n.getString( 'associations' )"></a>
 				<a href="javascript:deleteExcelTemplate('$templateFile.name');" title="$i18n.getString( 'remove' )"><img src="../images/delete.png" alt="$i18n.getString( 'remove' )"></a>
-				<a href="javascript:mode = 'edit'; openUpdateExcelItemGroup( '$templateFile.name' );" title="$i18n.getString( 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit' )"></a>
+				<a href="javascript:mode = 'edit'; openEditExcelTemplate( '$templateFile.name' );" title="$i18n.getString( 'edit' )"><img src="../images/edit.png" alt="$i18n.getString( 'edit' )"></a>
 			</td>
 		</tr>
 		#if( $mark )
@@ -51,33 +50,30 @@
 	</tbody>
 </table>
 
-<div id="divExcelTemplateList" style="position:fixed;display:none;width:609px;z-index:11;background-color: white;border: medium solid silver;height:209px;padding:20px">
-	<div id="close" style="position:absolute;top:2px;right:2px;cursor: pointer;color:red;" onclick="hideById('divExcelTemplateList');deleteDivEffect();">[x]</div>
+<div id="editExcelTemplateDiv" style="position:fixed;display:none;width:444px;z-index:11;background-color: white;border: medium solid silver;height:60px;padding:20px">
+	<div id="close" style="position:absolute;top:2px;right:2px;cursor: pointer;color:red;" onclick="hideById('editExcelTemplateDiv');deleteDivEffect();hideMessage();">[x]</div>
 	<input type="hidden" value="" id="id"/>
 	<table>
 		<tr>
 			<td><label>$i18n.getString('name')<em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
-			<td><input type="text" id="name"  style="width:20em" name="T1" size="20"/></td>
-		</tr>
-		<tr>
-			<td><label>$i18n.getString('choose_file_uploaded')<em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
-			<td><input type="file" id="upload"></td>
+			<td><input type="text" id="name"  style="width:20em" name="T1" size="20" onkeyup="javascript: validateRenamingExcelTemplate(this.value ,1);"/></td>
+			<td><input type="button" value="$i18n.getString('ok')" id="excelTemplateButtonRename" disabled="disabled" onClick="javascript: "/></td>
+			<td><input type="button" value="$i18n.getString('cancel')" onclick="hideById('editExcelTemplateDiv');deleteDivEffect();hideMessage();"/></td>
 		</tr>
 	</table>
-	<p align="center">
-	<input type="button" value="$i18n.getString('ok')" id="excelTemplateButtonAdd" onClick="validateExcelTemplate()"/>
-	<input type="button" value="$i18n.getString('cancel')" onclick="hideById('divExcelTemplateList');deleteDivEffect();"/>
-	</p>
 </div>
-
 <span id="message" style="top:100px;right:5px;position:fixed;width:300px;z-index:10002" onclick="javascript:hideById(this.id);"></span>
 
 <script language="javascript">
 
 	var mode = 'add';
+	var i18n_file_exists = '$encoder.jsEscape($i18n.getString( 'file_exists' ) , "'")';
 	var i18n_confirm_delete = '$encoder.jsEscape($i18n.getString( 'confirm_delete' ) , "'")';
 	var i18n_confirm_override = '$encoder.jsEscape($i18n.getString( 'confirm_override' ) , "'")';
-
+	var i18n_filename_wellformed = '$encoder.jsEscape($i18n.getString( 'filename_wellformed' ) , "'")';
+	var i18n_length_filename_min5_max30 = '$encoder.jsEscape($i18n.getString( 'length_filename_min5_max30' ) , "'")';
+	var i18n_use_only_letters_numbers_dot_only = '$encoder.jsEscape($i18n.getString( 'use_only_letters_numbers_dot_only' ) , "'")';
+	
 	#if ( $message )
 	
 		$(document).ready( function() {

=== modified file 'dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js'
--- dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js	2010-01-29 08:21:40 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js	2010-02-04 09:13:45 +0000
@@ -2,6 +2,12 @@
 // EXCEL TEMPLATE MANAGER
 // ========================================================================================================================
 
+//----------------------------------------------------------
+// Regular Expression using for checking excel's file name
+//----------------------------------------------------------
+
+regPattern = /^[^0-9\s\W][a-zA-Z0-9]{5,30}\.xl(?:sx|s)$/;
+
 /*
 *	Delete Excel Template
 */
@@ -50,4 +56,47 @@
       
 	// normally upload
 	return true;
+}
+
+function openEditExcelTemplate() {
+	
+	$("#editExcelTemplateDiv").showAtCenter( true );
+}
+
+function validateRenamingExcelTemplate( fileName, columnIndex ) {
+	
+	var list = byId( 'list' );
+	var rows = list.getElementsByTagName( 'tr' );
+	
+	for ( var i = 0 ; i < rows.length ; i++ )
+	{
+		var cell = rows[i].getElementsByTagName( 'td' )[columnIndex -1];
+		var value = cell.firstChild.nodeValue;
+		
+		if ( value.toLowerCase() == fileName.toLowerCase() )
+		{
+			setMessage( i18n_file_exists );
+			disable( "excelTemplateButtonRename" );
+		}
+		else if ( applyingPatternForFileName( fileName ) == null )
+		{
+			setMessage
+			(
+				'<b>' + i18n_filename_wellformed  + '</b><ul><li>'
+				+ i18n_length_filename_min5_max30 + '</li><li>'
+				+ i18n_use_only_letters_numbers_dot_only + '</li>'
+			);
+			disable( "excelTemplateButtonRename" );
+		}
+		else
+		{
+			hideMessage();
+			enable( "excelTemplateButtonRename" );
+		}
+	}
+}
+
+function applyingPatternForFileName( fileName ) {
+	
+	return fileName.match( regPattern );
 }
\ No newline at end of file

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties	2010-01-28 15:47:24 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties	2010-02-04 09:13:45 +0000
@@ -113,6 +113,7 @@
 F_COPY_EXCEL_ITEM_ADMINISTRATION = Copy Excel Item
 F_EXCEL_TEMPLATE_MANAGEMENT_DELETE = Delete Excel Template
 F_EXCEL_TEMPLATE_MANAGEMENT_LIST = List Excel Template
+F_EXCEL_TEMPLATE_MAMAGEMENT_UPLOAD = Upload Excel Template
 F_PATIENTATTRIBUTEVALUE_DELETE = Delete Patient Attribute Value
 F_RELATIONSHIPTYPE_UPDATE = Update Relationship Type
 F_RELATIONSHIP_DELETE = Delete Relationship

=== modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties'
--- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties	2009-12-21 05:32:40 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module_vi_VN.properties	2010-02-04 09:13:45 +0000
@@ -1,61 +1,92 @@
 #Resource generated by I18n Resource Editor
 #Sat Jul 14 13:00:59 GMT+07:00 2007
+
+#-- User module ---------------------------------------------------------------#
+
 username													=T\u00ean t\u00e0i kho\u1ea3n
 operations													=Thao t\u00e1c
 none														=Kh\u00f4ng
 generate_new=Ph\u00e1t sinh m\u1edbi
+specify_username=Xin vui l\u00f2ng ch\u1ec9 \u0111\u1ecbnh t\u00ean t\u00e0i kho\u1ea3n
+specify_organisationunit_name=Vui l\u00f2ng ch\u1ecdn \u0111\u01a1n v\u1ecb
+email=\u0110\u1ecba ch\u1ec9 th\u01b0 \u0111i\u1ec7n t\u1eed
+everything_is_ok=M\u1ecdi th\u1ee9 \u0111\u1ec1u \u1ed5n
+details=Chi ti\u1ebft
+organisation_unit=\u0110\u01a1n v\u1ecb
+add=Th\u00eam
+retype_password=Nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u
+specify_raw_password=Vui l\u00f2ng nh\u1eadp m\u1eadt kh\u1ea9u
+firstName=T\u00ean
+save=L\u01b0u
+role_management=Qu\u1ea3n l\u00fd c\u00e1c quy\u1ec1n
+user_management=Qu\u1ea3n l\u00fd t\u1ea3i kho\u1ea3n
+remove=X\u00f3a
+create_new_role=T\u1ea1o vai tr\u00f2 m\u1edbi
+add_new=Th\u00eam m\u1edbi
+create_new_user=T\u1ea1o t\u00e0i kho\u1ea3n m\u1edbi
+show_all_users=Hi\u1ec3n th\u1ecb t\u1ea5t c\u1ea3 ng\u01b0\u1eddi d\u00f9ng
+password_un_matched=M\u1eadt kh\u1ea9u v\u00e0 Nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u kh\u00f4ng tr\u00f9ng nhau
+specify_organisationunit=Vui l\u00f2ng ch\u1ecdn \u0111\u01a1n v\u1ecb
+filter_by_rolename=L\u1ecdc theo t\u00ean vai tr\u00f2
+show_details=Xem chi ti\u1ebft
+specify_retype_password=Vui l\u00f2ng nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u
+specify_first_name=xin vui l\u00f2ng ch\u1ec9 \u0111\u1ecbnh t\u00ean
+name=T\u00ean
+username_in_use=T\u00ean t\u00e0i kho\u1ea3n n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c d\u00f9ng. Xin vui l\u00f2ng ch\u1ecdn m\u1ed9t t\u00ean t\u00e0i kho\u1ea3n kh\u00e1c
+filter_by_username=L\u1ecdc theo t\u00ean t\u00e0i kho\u1ea3n
+check_password=M\u1eadt kh\u1ea9u kh\u00f4ng tr\u00f9ng nhau. Vui l\u00f2ng nh\u1eadp l\u1ea1i\!
+specify_surname=Xin vui l\u00f2ng ch\u1ec9 \u0111\u1ecbnh h\u1ecd
+confirm_delete_role=B\u1ea1n c\u00f3 mu\u1ed1n x\u00f3a vai tr\u00f2 n\u00e0y?
+dataSets=C\u00e1c t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
+confirm_delete_user=B\u1ea1n c\u00f3 mu\u1ed1n x\u00f3a t\u00e0i kho\u1ea3n n\u00e0y?
+members_of_the_group=Nh\u00f3m \u0111\u01a1n v\u1ecb
+surname=H\u1ecd
+show_all_roles=Hi\u1ec3n th\u1ecb t\u1ea5t c\u1ea3 c\u00e1c quy\u1ec1n
+password=M\u1eadt kh\u1ea9u
+edit=S\u1eeda
+edit_role=C\u1eadp nh\u1eadt quy\u1ec1n ng\u01b0\u1eddi d\u00f9ng
+rolename=T\u00ean quy\u1ec1n
+show_users_by_orgUnit=Hi\u1ec3n th\u1ecb ng\u01b0\u1eddi d\u00f9ng theo \u0111\u01a1n v\u1ecb
+cancel=H\u1ee7y b\u1ecf
+edit_user=C\u1eadp nh\u1eadt t\u00e0i kho\u1ea3n
+authorities=Quy\u1ec1n
+changepassword=Thay \u0111\u1ed5i m\u1eadt kh\u1ea9u
+okies=\u0110\u1ed3ng \u00fd
+user=T\u00ean ng\u01b0\u1eddi d\u00f9ng
+user_by_orgunit=Ng\u01b0\u1eddi d\u00f9ng theo \u0111\u01a1n v\u1ecb
+user_role=Ph\u00e2n quy\u1ec1n
+excel_reporting = B\u00e1o c\u00e1o Excels
+
+#-- User action privilegies ---------------------------------------------------#
+
 F_DATAELEMENTGROUP_UPDATE=C\u1eadp nh\u1eadt nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
 F_ORGANISATIONUNIT_MOVE=Di chuy\u1ec3n \u0111\u01a1n v\u1ecb
-specify_username=Xin vui l\u00f2ng ch\u1ec9 \u0111\u1ecbnh t\u00ean t\u00e0i kho\u1ea3n
 F_INDICATORGROUP_ADD=Th\u00eam nh\u00f3m ch\u1ec9 s\u1ed1
 M_dhis-web-importexport=Xem module xu\u1ea5t nh\u1eadp d\u1eef li\u1ec7u
 F_DATAELEMENT_MINMAX_DELETE=X\u00f3a gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t/nh\u1ecf nh\u1ea5t
 F_INDICATOR_UPDATE=C\u1eadp nh\u1eadt ch\u1ec9 s\u1ed1
 M_dhis-web-maintenance-dataset=Xem module qu\u1ea3n l\u00fd t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
 F_USERROLE_UPDATE=C\u1eadp nh\u1eadt quy\u1ec1n ng\u01b0\u1eddi d\u00f9ng
-specify_organisationunit_name=Vui l\u00f2ng ch\u1ecdn \u0111\u01a1n v\u1ecb
-email=\u0110\u1ecba ch\u1ec9 th\u01b0 \u0111i\u1ec7n t\u1eed
 M_dhis-web-maintenance-settings=Xem module qu\u1ea3n l\u00fd c\u00e0i \u0111\u1eb7t
 F_DATAELEMENT_DELETE=X\u00f3a ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
-everything_is_ok=M\u1ecdi th\u1ee9 \u0111\u1ec1u \u1ed5n
-details=Chi ti\u1ebft
 F_USER_DELETE=X\u00f3a ng\u01b0\u1eddi d\u00f9ng
-organisation_unit=\u0110\u01a1n v\u1ecb
-add=Th\u00eam
-retype_password=Nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u
-specify_raw_password=Vui l\u00f2ng nh\u1eadp m\u1eadt kh\u1ea9u
 F_DATAVALUE_UPDATE=C\u1eadp nh\u1eadt gi\u00e1 tr\u1ecb d\u1eef li\u1ec7u\t
 F_REPORT_ADD=Th\u00eam b\u00e1o c\u00e1o
 F_DATASET_ORDER_CHANGE=Thay \u0111\u1ed5i th\u1ee9 t\u1ef1 t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
-firstName=T\u00ean
-save=L\u01b0u
 F_REPORT_UPDATE=C\u1eadp nh\u1eadt b\u00e1o c\u00e1o
-role_management=Qu\u1ea3n l\u00fd c\u00e1c quy\u1ec1n
 F_ORGUNITGROUPSET_UPDATE=C\u1eadp nh\u1eadt t\u1eadp h\u1ee3p nh\u00f3m \u0111\u01a1n v\u1ecb
 F_VALIDATIONRULE_UPDATE=C\u1eadp nh\u1eadt lu\u1eadt ki\u1ec3m tra t\u00ednh h\u1ee3p l\u1ec7
 F_ORGUNITGROUP_UPDATE=C\u1eadp nh\u1eadt nh\u00f3m \u0111\u01a1n v\u1ecb
 F_INDICATORGROUP_DELETE=X\u00f3a nh\u00f3m ch\u1ec9 s\u1ed1
-user_management=Qu\u1ea3n l\u00fd t\u1ea3i kho\u1ea3n
 F_INDICATORTYPE_ADD=Th\u00eam lo\u1ea1i ch\u1ec9 s\u1ed1
 F_DATASET_DELETE=X\u00f3a t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
 M_dhis-web-maintenance-organisationunit=Xem module qu\u1ea3n l\u00fd \u0111\u01a1n v\u1ecb
-remove=X\u00f3a
-create_new_role=T\u1ea1o vai tr\u00f2 m\u1edbi
-add_new=Th\u00eam m\u1edbi
 M_dhis-web-maintenance-datadictionary=Xem module qu\u1ea3n l\u00fd t\u1eeb \u0111i\u1ec3n d\u1eef li\u1ec7u
-create_new_user=T\u1ea1o t\u00e0i kho\u1ea3n m\u1edbi
-show_all_users=Hi\u1ec3n th\u1ecb t\u1ea5t c\u1ea3 ng\u01b0\u1eddi d\u00f9ng
 F_INDICATORTYPE_UPDATE=C\u1eadp nh\u1eadt lo\u1ea1i ch\u1ec9 s\u1ed1
 F_ORGANISATIONUNIT_UPDATE=C\u1eadp nh\u1eadt \u0111\u01a1n v\u1ecb
 F_DATAVALUE_ADD=Th\u00eam gi\u00e1 tr\u1ecb d\u1eef li\u1ec7u
-password_un_matched=M\u1eadt kh\u1ea9u v\u00e0 Nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u kh\u00f4ng tr\u00f9ng nhau
-specify_organisationunit=Vui l\u00f2ng ch\u1ecdn \u0111\u01a1n v\u1ecb
 F_DATAELEMENTGROUP_DELETE=X\u00f3a nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
-filter_by_rolename=L\u1ecdc theo t\u00ean vai tr\u00f2
-show_details=Xem chi ti\u1ebft
-specify_retype_password=Vui l\u00f2ng nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u
 F_VALIDATIONRULE_ADD=Th\u00eam lu\u1eadt ki\u1ec3m tra t\u00ednh h\u1ee3p l\u1ec7
-specify_first_name=xin vui l\u00f2ng ch\u1ec9 \u0111\u1ecbnh t\u00ean
 F_ORGUNITGROUPSET_ADD=Th\u00eam t\u1eadp h\u1ee3p nh\u00f3m \u0111\u01a1n v\u1ecb
 F_DATAELEMENT_UPDATE=X\u00f3a ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
 F_DATAELEMENT_MINMAX_UPDATE=C\u1eadp nh\u1eadt gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t/nh\u1ecf nh\u1ea5t
@@ -63,51 +94,27 @@
 F_DATAELEMENT_ADD=Th\u00eam ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
 M_dhis-web-dataentry=Xem module nh\u1eadp d\u1eef li\u1ec7u
 F_USERROLE_DELETE=X\u00f3a quy\u1ec1n ng\u01b0\u1eddi d\u00f9ng
-name=T\u00ean
 M_dhis-web-datamart=Xem module Data Mart
-username_in_use=T\u00ean t\u00e0i kho\u1ea3n n\u00e0y \u0111\u00e3 \u0111\u01b0\u1ee3c d\u00f9ng. Xin vui l\u00f2ng ch\u1ecdn m\u1ed9t t\u00ean t\u00e0i kho\u1ea3n kh\u00e1c
-filter_by_username=L\u1ecdc theo t\u00ean t\u00e0i kho\u1ea3n
 F_INDICATOR_DELETE=X\u00f3a ch\u1ec9 s\u1ed1
-check_password=M\u1eadt kh\u1ea9u kh\u00f4ng tr\u00f9ng nhau. Vui l\u00f2ng nh\u1eadp l\u1ea1i\!
-specify_surname=Xin vui l\u00f2ng ch\u1ec9 \u0111\u1ecbnh h\u1ecd
 M_dhis-web-validationrule=Xem module lu\u1eadt ki\u1ec3m tra t\u00ednh h\u1ee3p l\u1ec7
 F_USER_UPDATE=C\u1eadp nh\u1eadt ng\u01b0\u1eddi d\u00f9ng
 F_DATAVALUE_DELETE=X\u00f3a gi\u00e1 tr\u1ecb d\u1eef li\u1ec7u
-confirm_delete_role=B\u1ea1n c\u00f3 mu\u1ed1n x\u00f3a vai tr\u00f2 n\u00e0y?
 F_ORGUNITGROUP_ADD=Th\u00eam nh\u00f3m \u0111\u01a1n v\u1ecb
 F_DATAELEMENT_MINMAX_ADD=Th\u00eam gi\u00e1 tr\u1ecb l\u1edbn nh\u1ea5t/nh\u1ecf nh\u1ea5t
-dataSets=C\u00e1c t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
-confirm_delete_user=B\u1ea1n c\u00f3 mu\u1ed1n x\u00f3a t\u00e0i kho\u1ea3n n\u00e0y?
 F_DATASET_ADD=Th\u00eam t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
-members_of_the_group=Nh\u00f3m \u0111\u01a1n v\u1ecb
-surname=H\u1ecd
 F_ORGANISATIONUNIT_ADD=Th\u00eam \u0111\u01a1n v\u1ecb
-show_all_roles=Hi\u1ec3n th\u1ecb t\u1ea5t c\u1ea3 c\u00e1c quy\u1ec1n
 F_ORGUNITGROUPSET_DELETE=X\u00f3a t\u1eadp h\u1ee3p nh\u00f3m \u0111\u01a1n v\u1ecb
 F_USER_ADD=Th\u00eam ng\u01b0\u1eddi d\u00f9ng
-password=M\u1eadt kh\u1ea9u
 F_ORGUNITGROUP_DELETE=X\u00f3a nh\u00f3m \u0111\u01a1n v\u1ecb
-edit=S\u1eeda
-edit_role=C\u1eadp nh\u1eadt quy\u1ec1n ng\u01b0\u1eddi d\u00f9ng
-rolename=T\u00ean quy\u1ec1n
 M_dhis-web-reporttool=Xem module xu\u1ea5t b\u00e1o c\u00e1o
 F_INDICATOR_ADD=Th\u00eam ch\u1ec9 s\u1ed1
-edit_user=C\u1eadp nh\u1eadt t\u00e0i kho\u1ea3n
 F_INDICATORGROUP_UPDATE=C\u1eadp nh\u1eadt nh\u00f3m ch\u1ec9 s\u1ed1
 F_REPORT_DELETE=X\u00f3a b\u00e1o c\u00e1o
 F_DATASET_UPDATE=C\u1eadp nh\u1eadt t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
-show_users_by_orgUnit=Hi\u1ec3n th\u1ecb ng\u01b0\u1eddi d\u00f9ng theo \u0111\u01a1n v\u1ecb
-cancel=H\u1ee7y b\u1ecf
 M_dhis-web-maintenance-user=Xem module qu\u1ea3n l\u00fd ng\u01b0\u1eddi d\u00f9ng
 F_INDICATORTYPE_DELETE=X\u00f3a lo\u1ea1i ch\u1ec9 s\u1ed1
 F_USERROLE_ADD=Th\u00eam quy\u1ec1n ng\u01b0\u1eddi d\u00f9ng
 F_ORGANISATIONUNIT_DELETE=X\u00f3a \u0111\u01a1n v\u1ecb
-authorities=Quy\u1ec1n
-changepassword=Thay \u0111\u1ed5i m\u1eadt kh\u1ea9u
-okies=\u0110\u1ed3ng \u00fd
-user=T\u00ean ng\u01b0\u1eddi d\u00f9ng
-user_by_orgunit=Ng\u01b0\u1eddi d\u00f9ng theo \u0111\u01a1n v\u1ecb
-user_role=Ph\u00e2n quy\u1ec1n
 F_GIS_CONFIGURATION_UPDATE = Th\u00e2y \u0111\u1ed5i c\u1ea5u h\u00ecnh GIS
 F_DATASET_LOCK = Kh\u00f3a t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
 F_REPORT_ADD = Th\u00eam b\u00e1o c\u00e1o
@@ -119,5 +126,7 @@
 M_dhis-web-openhealth-integration = Xem module open health
 M_dhis-web-excel-reporting = Xem module b\u00e1o c\u00e1o excel
 F_EXCEL_REPORT_ADMINISTRATION = Qu\u1ea3n tr\u1ecb module b\u00e1o c\u00e1o excel
-excel_reporting = B\u00e1o c\u00e1o Excels
-F_SYSTEM_SETTING	= Thay \u0111\u1ed5i c\u00e0i \u0111\u1eb7t h\u1ec7 th\u1ed1ng
\ No newline at end of file
+F_SYSTEM_SETTING	= Thay \u0111\u1ed5i c\u00e0i \u0111\u1eb7t h\u1ec7 th\u1ed1ng
+F_EXCEL_TEMPLATE_MAMAGEMENT_UPLOAD = T\u1ea3i t\u1eadp tin excel m\u1eabu
+F_EXCEL_TEMPLATE_MANAGEMENT_DELETE = X\u00f3a t\u1eadp tin excel m\u1eabu
+F_EXCEL_TEMPLATE_MANAGEMENT_LIST = Li\u1ec7t k\u00ea danh s\u00e1ch t\u1eadp tin excel m\u1eabu
\ No newline at end of file