dhis2-devs team mailing list archive
-
dhis2-devs team
-
Mailing list archive
-
Message #04480
[Branch ~dhis2-devs-core/dhis2/trunk] Rev 1497: Excel File Management - Working ...
------------------------------------------------------------
revno: 1497
committer: hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: trunk
timestamp: Thu 2010-02-25 11:22:49 +0700
message:
Excel File Management - Working ...
modified:
dhis-2/dhis-services/dhis-service-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/hibernate/HibernateReportExcelStore.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/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-services/dhis-service-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/hibernate/HibernateReportExcelStore.java'
--- dhis-2/dhis-services/dhis-service-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/hibernate/HibernateReportExcelStore.java 2010-02-24 08:56:35 +0000
+++ dhis-2/dhis-services/dhis-service-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/hibernate/HibernateReportExcelStore.java 2010-02-25 04:22:49 +0000
@@ -46,6 +46,7 @@
import org.hisp.dhis.reportexcel.ReportExcelItem;
import org.hisp.dhis.reportexcel.ReportExcelStore;
import org.hisp.dhis.reportexcel.status.DataEntryStatus;
+import org.springframework.transaction.annotation.Transactional;
/**
* @author Tran Thanh Tri
@@ -369,18 +370,19 @@
Session session = sessionFactory.getCurrentSession();
session.update( periodColumn );
}
-
- @Override
+
+ @Transactional
public void updateReportWithExcelTemplate( String curTemplateName, String newTemplateName )
{
Session session = sessionFactory.getCurrentSession();
- String sql = "update reportexcels set exceltemplate = " + newTemplateName + " where exceltemplate LIKE '"
- + curTemplateName + "'";
-
- SQLQuery query = session.createSQLQuery( sql );
+
+ String hqlQuery = "update reportexcels set exceltemplate = :newName where exceltemplate = :curName";
+
+ SQLQuery query = session.createSQLQuery( hqlQuery );
+
+ query.setString( "newName", newTemplateName ).setString( "curName", curTemplateName );
query.executeUpdate();
}
-
}
=== 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-02-24 08:56:35 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/ExcelTemplateListAction.java 2010-02-25 04:22:49 +0000
@@ -54,7 +54,7 @@
public class ExcelTemplateListAction
extends ActionSupport
{
- // -------------------------------------------
+ // -------------------------------------------
// Dependency
// -------------------------------------------
@@ -80,6 +80,11 @@
}
// -------------------------------------------
+ // Input
+ // -------------------------------------------
+ private String mode;
+
+ // -------------------------------------------
// Output
// -------------------------------------------
@@ -101,11 +106,16 @@
return newFileUploadedOrRenamed;
}
+ public void setMode( String mode )
+ {
+ this.mode = mode;
+ }
+
public void setMessage( String message )
{
this.message = message;
}
-
+
public String getMessage()
{
return message;
@@ -130,28 +140,29 @@
{
return SUCCESS;
}
-
+
+ String newUploadOrRenamePath = null;
+
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Get the path of newly uploaded file
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- String newUploadOrRenamePath = selectionManager.getUploadFilePath();
+ if ( !StringUtils.isNullOREmpty( mode ) )
+ {
+ if ( mode.equalsIgnoreCase( "edit" ) )
+ {
+ newUploadOrRenamePath = selectionManager.getRenameFilePath();
+ }
+ else
+ {
+ newUploadOrRenamePath = selectionManager.getUploadFilePath();
+ }
+ }
if ( !StringUtils.isNullOREmpty( newUploadOrRenamePath ) )
{
newFileUploadedOrRenamed = new File( newUploadOrRenamePath ).getName();
}
- else
- {
- newUploadOrRenamePath = selectionManager.getRenameFilePath();
-
- if ( !StringUtils.isNullOREmpty( newUploadOrRenamePath ) )
- {
- newFileUploadedOrRenamed = new File( newUploadOrRenamePath ).getName();
- }
- }
-
- System.out.println("\nnewFileUploadedOrRenamed = " + newFileUploadedOrRenamed);
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Get the list of files
@@ -159,7 +170,7 @@
List<File> templateFiles = FileUtils.getListFile( templateDirectory, new ExcelFileFilter() );
- Collections.sort( templateFiles, new FileNameComparator() );
+ Collections.sort( templateFiles, new FileNameComparator() );
Collection<String> reportExcelTemplates = reportService.getALLReportExcelTemplates();
=== 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-02-24 07:28:03 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/java/org/hisp/dhis/reportexcel/filemanager/action/UploadExcelTemplateAction.java 2010-02-25 04:22:49 +0000
@@ -62,25 +62,46 @@
}
// -------------------------------------------
- // Input & Output
+ // Input
// -------------------------------------------
private String fileName;
+ private File upload;
+
+ // -------------------------------------------
+ // Output
+ // -------------------------------------------
+
+ private String mode;
+
+ // -------------------------------------------
+ // Getter && Setter
+ // -------------------------------------------
+
public void setUploadFileName( String fileName )
{
this.fileName = fileName;
}
- private File upload;
-
public void setUpload( File upload )
{
this.upload = upload;
}
+ public String getMode()
+ {
+ return mode;
+ }
+
+ // -------------------------------------------
+ // Action implementation
+ // -------------------------------------------
+
public String execute()
{
+ mode = "upload";
+
File templateDirectoryConfig = reportLocationManager.getReportExcelTemplateDirectory();
File output = new File( templateDirectoryConfig, fileName );
=== 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-02-24 08:56:35 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/resources/org/hisp/dhis/reportexcel/i18n_module.properties 2010-02-25 04:22:49 +0000
@@ -184,8 +184,8 @@
excel_template_management = Excel Template Management
file_exists = File is existing
confirm_override = Do you sure want to override this file?
-upload_successful = Uploading is successful !
-override_successful = Overriding is successful !
+upload_successful = Uploading is success !
+override_successful = Overriding is success !
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
=== 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-02-25 02:41:20 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/excelTemplateList.vm 2010-02-25 04:22:49 +0000
@@ -9,17 +9,20 @@
<input name="uploadButton" id="uploadButton" type="submit" value="$i18n.getString( 'upload_file' )" disabled />
</td>
</tr>
- <tr>
- <td>
- $i18n.getString( "filter_by_name" ):
- </td>
- <td>
- <input type="text" onkeyup="filterValues( this.value , 1)" style="width:300px"/>
- </td>
- </tr>
</table>
</form>
+<table width="100%">
+ <tr>
+ <td>
+ $i18n.getString( "filter_by_name" ): <input type="text" onkeyup="filterValues(this.value , 1)" style="width:300px"/>
+ </td>
+ <td align=right>
+ <input type="button" value="$i18n.getString( "cancel" )" onclick="window.location='administration.action'" style="width:100px"/>
+ </td>
+ </tr>
+</table>
+
<table width="100%" class="listTable">
<thead>
<tr>
@@ -45,7 +48,7 @@
<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="text" value="" id="currentFileNameHidden"/>
+ <input type="hidden" value="" id="currentFileNameHidden"/>
<table>
<tr>
<td><label>$i18n.getString('name')<em title="$i18n.getString( 'required' )" class="required">*</em></label></td>
@@ -59,7 +62,7 @@
<script language="javascript">
- var mode = 'add';
+ var mode = '';
var i18n_confirm_rename = '$encoder.jsEscape($i18n.getString( 'confirm_rename' ) , "'")';
var i18n_confirm_delete = '$encoder.jsEscape($i18n.getString( 'confirm_delete' ) , "'")';
var i18n_confirm_override = '$encoder.jsEscape($i18n.getString( 'confirm_override' ) , "'")';
=== 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-02-24 08:56:35 +0000
+++ dhis-2/dhis-web/dhis-web-excel-reporting/src/main/webapp/dhis-web-excel-reporting/javascript/exceltemplate.js 2010-02-25 04:22:49 +0000
@@ -60,9 +60,13 @@
return true;
}
+curTemplateName = '';
+newTemplateName = '';
+
function openEditExcelTemplate( currentFileName ) {
- byId("currentFileNameHidden").value = currentFileName;
+ //byId("currentFileNameHidden").value = currentFileName;
+ curTemplateName = currentFileName;
$("#editExcelTemplateDiv").showAtCenter( true );
}
@@ -113,32 +117,26 @@
'RNUS': Rename file name but non-updating the system
*/
-curTemplateName = '';
-newTemplateName = '';
-
function checkingStatusExcelTemplate( newFileName, keyColumnIndex, statusColumnIndex ) {
- var curFileName = getFieldValue( "currentFileNameHidden" );
var list = byId( 'list' );
var rows = list.getElementsByTagName( 'tr' );
var flagRename = false;
-
- curTemplateName = curFileName;
newTemplateName = newFileName;
- for ( var i = 0; i < rows.length; i++ )
+ for ( var i = 0; i < rows.length; i++ )
{
var cell = rows[i].getElementsByTagName( 'td' )[keyColumnIndex-1];
var value = cell.firstChild.nodeValue;
cell = rows[i].getElementsByTagName( 'td' )[statusColumnIndex-1];
var statusFile = cell.firstChild.nodeValue;
- if ( (value.toLowerCase() == curFileName.toLowerCase()) && (statusFile == "true") )
+ if ( (value.toLowerCase() == curTemplateName.toLowerCase()) && (statusFile == "true") )
{
// File exists and being used
if ( window.confirm(confirmRenamingMessage) )
{
- renamingExcelTemplate( curFileName, newFileName, "RUS" );
+ renamingExcelTemplate( curTemplateName, newFileName, "RUS" );
}
else
{
@@ -156,7 +154,7 @@
// File exists and pending
if ( flagRename )
{
- renamingExcelTemplate( curFileName, newFileName, "RNUS" );
+ renamingExcelTemplate( curTemplateName, newFileName, "RNUS" );
}
}
@@ -182,17 +180,17 @@
if ( window.confirm( confirmUpdateSysMessage ) )
{
- alert("update_system");
+ //alert("update_system");
updateReportExcelByTemplate();
}
else
{
- window.location.href="listAllExcelTemplates.action?message=" + message;
+ window.location.href="listAllExcelTemplates.action?mode=" + mode + "&message=" + message;
}
}
else if ( type == "none" )
{
- window.location.href="listAllExcelTemplates.action?message=" + message;
+ window.location.href="listAllExcelTemplates.action?mode=" + mode + "&message=" + message;
}
else
{
@@ -215,6 +213,6 @@
if ( type != "" )
{
var message = xmlObject.firstChild.nodeValue;
- window.location.href="listAllExcelTemplates.action?message=" + message;
+ window.location.href="listAllExcelTemplates.action?mode=" + mode + "&message=" + message;
}
}
=== 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-02-25 03:10:07 +0000
+++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-user/src/main/resources/org/hisp/dhis/user/i18n_module.properties 2010-02-25 04:22:49 +0000
@@ -114,6 +114,7 @@
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_EXCEL_TEMPLATE_MANAGEMENT_RENAME = Rename Excel Template file
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 2010-02-04 09:13:45 +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-25 04:22:49 +0000
@@ -1,132 +1,133 @@
-#Resource generated by I18n Resource Editor
+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
+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
-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
-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
-F_USER_DELETE=X\u00f3a ng\u01b0\u1eddi d\u00f9ng
-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
-F_REPORT_UPDATE=C\u1eadp nh\u1eadt b\u00e1o c\u00e1o
-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
-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
-M_dhis-web-maintenance-datadictionary=Xem module qu\u1ea3n l\u00fd t\u1eeb \u0111i\u1ec3n d\u1eef li\u1ec7u
-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
-F_DATAELEMENTGROUP_DELETE=X\u00f3a nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
-F_VALIDATIONRULE_ADD=Th\u00eam lu\u1eadt ki\u1ec3m tra t\u00ednh h\u1ee3p l\u1ec7
-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
-F_DATAELEMENTGROUP_ADD=Th\u00eam m\u1edbi nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
-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
-M_dhis-web-datamart=Xem module Data Mart
-F_INDICATOR_DELETE=X\u00f3a ch\u1ec9 s\u1ed1
-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
-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
-F_DATASET_ADD=Th\u00eam t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
-F_ORGANISATIONUNIT_ADD=Th\u00eam \u0111\u01a1n v\u1ecb
-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
-F_ORGUNITGROUP_DELETE=X\u00f3a nh\u00f3m \u0111\u01a1n v\u1ecb
-M_dhis-web-reporttool=Xem module xu\u1ea5t b\u00e1o c\u00e1o
-F_INDICATOR_ADD=Th\u00eam ch\u1ec9 s\u1ed1
-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
-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
-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
-F_REPORT_DELETE = X\u00f3a b\u00e1o c\u00e1o
-F_REPORTTABLE_ADD = Th\u00eam report table
-F_REPORTTABLE_DELETE = X\u00f3a report table
-F_REPORT_VIEW = Xem/In b\u00e1o c\u00e1o
-M_dhis-web-reporting = Xem module b\u00e1o c\u00e1o
-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
-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
+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
+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
+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
+F_USER_DELETE = X\u00f3a ng\u01b0\u1eddi d\u00f9ng
+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
+F_REPORT_UPDATE = C\u1eadp nh\u1eadt b\u00e1o c\u00e1o
+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
+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
+M_dhis-web-maintenance-datadictionary = Xem module qu\u1ea3n l\u00fd t\u1eeb \u0111i\u1ec3n d\u1eef li\u1ec7u
+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
+F_DATAELEMENTGROUP_DELETE = X\u00f3a nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+F_VALIDATIONRULE_ADD = Th\u00eam lu\u1eadt ki\u1ec3m tra t\u00ednh h\u1ee3p l\u1ec7
+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
+F_DATAELEMENTGROUP_ADD = Th\u00eam m\u1edbi nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+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
+M_dhis-web-datamart = Xem module Data Mart
+F_INDICATOR_DELETE = X\u00f3a ch\u1ec9 s\u1ed1
+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
+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
+F_DATASET_ADD = Th\u00eam t\u1eadp h\u1ee3p d\u1eef li\u1ec7u
+F_ORGANISATIONUNIT_ADD = Th\u00eam \u0111\u01a1n v\u1ecb
+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
+F_ORGUNITGROUP_DELETE = X\u00f3a nh\u00f3m \u0111\u01a1n v\u1ecb
+M_dhis-web-reporttool = Xem module xu\u1ea5t b\u00e1o c\u00e1o
+F_INDICATOR_ADD = Th\u00eam ch\u1ec9 s\u1ed1
+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
+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
+F_GIS_CONFIGURATION_UPDATE = Thay \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
+F_REPORT_DELETE = X\u00f3a b\u00e1o c\u00e1o
+F_REPORTTABLE_ADD = Th\u00eam report table
+F_REPORTTABLE_DELETE = X\u00f3a report table
+F_REPORT_VIEW = Xem/In b\u00e1o c\u00e1o
+M_dhis-web-reporting = Xem module B\u00e1o c\u00e1o
+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
+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
+F_EXCEL_TEMPLATE_MANAGEMENT_RENAME = \u0110\u1ed5i t\u00ean t\u1eadp tin excel m\u1eabu
\ No newline at end of file