dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #04185
[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