svnno****@sourc*****
svnno****@sourc*****
2008年 11月 18日 (火) 17:02:11 JST
Revision: 1366 http://svn.sourceforge.jp/view?root=pal&view=rev&rev=1366 Author: shinsuke Date: 2008-11-18 17:02:11 +0900 (Tue, 18 Nov 2008) Log Message: ----------- added default manager name, display i18ned name, fixed bugs. Modified Paths: -------------- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java timecard/trunk/src/main/resources/application.properties timecard/trunk/src/main/resources/application_ja.properties timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp -------------- next part -------------- Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/TimecardConstants.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -79,4 +79,5 @@ public static final String TIME_LABEL_MINUTES = "time.label.minutes"; public static final String TIME_HOLIDAYS = "time.holidays"; + public static final String DEFAULT_MANAGER = "default.manager"; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/ConfigAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -40,6 +40,8 @@ TimecardConstants.TIME_LABEL_MINUTES, "00\n15\n30\n45"); configForm.holidays = ConfigUtil.getString( TimecardConstants.TIME_HOLIDAYS, ""); + configForm.holidays = ConfigUtil.getString( + TimecardConstants.DEFAULT_MANAGER, "admin"); return "index.jsp"; } @@ -64,6 +66,8 @@ configForm.displayedMinutes); ConfigUtil.setProperty(TimecardConstants.TIME_HOLIDAYS, configForm.holidays); + ConfigUtil.setProperty(TimecardConstants.DEFAULT_MANAGER, + configForm.defaultManager); try { ConfigUtil.save(); SAStrutsUtil.addMessage(request, "success.update_config"); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/EmployeeAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -73,6 +73,13 @@ } else { year = Integer.parseInt(employeeForm.year); month = Integer.parseInt(employeeForm.month); + + // check date + Date tDate = DateUtil.get(year - 1900, month - 1, 1); + year = DateUtil.getYear(tDate) + 1900; + month = DateUtil.getMonth(tDate) + 1; + employeeForm.year = String.valueOf(year); + employeeForm.month = String.valueOf(month); } monthlyReport = reportService.getMonthlyReport(username, year, month); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/admin/TimecardAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -73,6 +73,13 @@ } else { year = Integer.parseInt(timecardForm.year); month = Integer.parseInt(timecardForm.month); + + // check date + Date tDate = DateUtil.get(year - 1900, month - 1, 1); + year = DateUtil.getYear(tDate) + 1900; + month = DateUtil.getMonth(tDate) + 1; + timecardForm.year = String.valueOf(year); + timecardForm.month = String.valueOf(month); } monthlyReport = reportService.getMonthlyReport(username, year, month); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/action/manager/TimecardAction.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -73,6 +73,13 @@ } else { year = Integer.parseInt(timecardForm.year); month = Integer.parseInt(timecardForm.month); + + // check date + Date tDate = DateUtil.get(year - 1900, month - 1, 1); + year = DateUtil.getYear(tDate) + 1900; + month = DateUtil.getMonth(tDate) + 1; + timecardForm.year = String.valueOf(year); + timecardForm.month = String.valueOf(month); } monthlyReport = reportService.getMonthlyReport(username, year, month); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/db/exentity/UserInfo.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -1,5 +1,7 @@ package jp.sf.pal.timecard.db.exentity; +import org.apache.commons.lang.StringUtils; + /** * The entity of USER_INFO. * <p> @@ -14,4 +16,32 @@ /** Serial version UID. (Default) */ private static final long serialVersionUID = 1L; + + public String getNameArg0() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return getUserId(); + } + return getGivenName() != null ? getGivenName() : ""; + } + + public String getNameArg1() { + return getFamilyName() != null ? getFamilyName() : ""; + } + + public String getNameArg2() { + if (StringUtils.isEmpty(getGivenName()) + && StringUtils.isEmpty(getFamilyName())) { + return ""; + } + return getMiddleName() != null ? getMiddleName() : ""; + } + + public String getNameArg3() { + return getGivenNameDesc() != null ? getGivenNameDesc() : ""; + } + + public String getNameArg4() { + return getFamilyNameDesc() != null ? getFamilyNameDesc() : ""; + } } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/form/config/ConfigForm.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -30,4 +30,7 @@ @Required(target = "update") public String holidays; + + @Required(target = "update") + public String defaultManager; } Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/EmployeeService.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -55,6 +55,8 @@ cb.fetchPage(employeePager.getCurrentPageNumber()); // setup + cb.setupSelect_UserInfoByUsername(); + cb.setupSelect_UserInfoByManager(); if (employeePager.getUsername() != null) { cb.query().setUsername_Equal(employeePager.getUsername()); Modified: timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java =================================================================== --- timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/java/jp/sf/pal/timecard/service/ReportService.java 2008-11-18 08:02:11 UTC (rev 1366) @@ -7,6 +7,7 @@ import java.util.List; import jp.sf.pal.timecard.TimecardConstants; +import jp.sf.pal.timecard.common.util.ConfigUtil; import jp.sf.pal.timecard.common.util.DateUtil; import jp.sf.pal.timecard.db.cbean.DailyReportCB; import jp.sf.pal.timecard.db.cbean.EmployeeCB; @@ -34,7 +35,7 @@ private transient UserInfoBhv userInfoBhv; - private void initUserInfo(String userId) { + private UserInfo initUserInfo(String userId) { UserInfoCB cb = new UserInfoCB(); cb.query().setUserId_Equal(userId); cb.query().setDeletedBy_IsNull(); @@ -49,6 +50,7 @@ userInfo.setUpdatedTime(now); userInfoBhv.insert(userInfo); } + return userInfo; } public MonthlyReport getMonthlyReport(String username, int year, int month) { @@ -56,7 +58,8 @@ MonthlyReportCB cb = new MonthlyReportCB(); // setup - cb.setupSelect_Employee(); + cb.setupSelect_Employee().withUserInfoByUsername(); + cb.setupSelect_Employee().withUserInfoByManager(); cb.query().setYear_Equal(year); cb.query().setMonth_Equal(month); @@ -73,17 +76,23 @@ Employee employee = employeeBhv.selectEntity(cb1); // TODO option if (employee == null) { - initUserInfo(username); + String manager = ConfigUtil.getString( + TimecardConstants.DEFAULT_MANAGER, "admin"); + UserInfo userInfoByUsername = initUserInfo(username); + UserInfo userInfoByManager = initUserInfo(manager); // create employee employee = new Employee(); employee.setUsername(username); - employee.setManager("admin"); + employee.setManager(manager); // TODO employee.setPaidHolidays(BigDecimal.valueOf(0)); employee.setCreatedBy(username); employee.setCreatedTime(now); employee.setUpdatedBy(username); employee.setUpdatedTime(now); employeeBhv.insert(employee); + + employee.setUserInfoByUsername(userInfoByUsername); + employee.setUserInfoByManager(userInfoByManager); } // create monthly report Modified: timecard/trunk/src/main/resources/application.properties =================================================================== --- timecard/trunk/src/main/resources/application.properties 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/resources/application.properties 2008-11-18 08:02:11 UTC (rev 1366) @@ -5,6 +5,13 @@ msg.header=<ul> msg.footer=</ul> +# 0: Given name, 1: Family name, 2: Middle Name +display.name={0} {2} {1} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={0} {2} {1} +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={0} {2} {1} + errors.invalid={0} is invalid. errors.maxlength={0} can not be greater than {1} characters. errors.minlength={0} can not be less than {1} characters. @@ -103,7 +110,7 @@ labels.otj_time=OTJ time labels.editing=Editing now labels.request=Request -labels.recognized=Recognized +labels.recognized=Approved labels.memo=Memo labels.edit_timecard=Editing timecard @@ -149,5 +156,17 @@ labels.auto_fill=Auto fill labels.fix_monthly_report=Fixing monthly report -labels.recognized2=Recognized -labels.recognize=Recognize \ No newline at end of file +labels.recognized2=Approved +labels.recognize=Approve + +labels.holiday_list=Holiday List +labels.minutes_to_display=Selectable Minutes +labels.holiday_format=ex. YYYY-MM-DD +labels.default_manager=Default Manager +labels.search_user_id=User ID +labels.search=Search +labels.reset=Reset + +# 0: year, 1: month +display.yearmonth_format={0}/{1} + Modified: timecard/trunk/src/main/resources/application_ja.properties =================================================================== --- timecard/trunk/src/main/resources/application_ja.properties 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/resources/application_ja.properties 2008-11-18 08:02:11 UTC (rev 1366) @@ -1,3 +1,10 @@ +# 0: Given name, 1: Family name, 2: Middle Name +display.name={1} {0} +# 0: Given name, 1: Family name, 2: Middle Name, 3: Given name(Reading), 4: Family name(Reading) +long.display.name={1} {0} ({4} {3}) +# 0: Given name(Reading), 1: Family name(Reading), 2: Middle Name +phonetic.display.name={1} {0} + errors.invalid={0} \u306b\u306f\u6b63\u3057\u3044\u5f62\u5f0f\u306e\u30c7\u30fc\u30bf\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044\u3002 errors.maxlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0b\u3067\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 errors.minlength={0} \u306f {1} \u6587\u5b57\u4ee5\u4e0a\u5165\u529b\u3057\u306a\u304f\u3066\u306f\u306a\u308a\u307e\u305b\u3093\u3002 @@ -143,4 +150,16 @@ labels.fix_monthly_report=\u6708\u6b21\u78ba\u5b9a labels.recognized2=\u627f\u8a8d\u6e08\u307f -labels.recognize=\u627f\u8a8d \ No newline at end of file +labels.recognize=\u627f\u8a8d + +labels.holiday_list=\u4f11\u65e5\u4e00\u89a7 +labels.minutes_to_display=\u9078\u629e\u53ef\u80fd\u306a\u5206 +labels.holiday_format=\u4f8b: YYYY-MM-DD +labels.default_manager=\u30c7\u30d5\u30a9\u30eb\u30c8\u30de\u30cd\u30fc\u30b8\u30e3\u30fc +labels.search_user_id=\u30e6\u30fc\u30b6\u30fc ID +labels.search=\u691c\u7d22 +labels.reset=\u30ea\u30bb\u30c3\u30c8 + +# 0: year, 1: month +display.yearmonth_format={0}\u5e74{1}\u6708 + Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/employee/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -13,11 +13,11 @@ <table> <tbody> <tr> - <th>User ID</th> + <th><bean:message key="labels.search_user_id"/></th> <td><html:text property="username" size="10"/></td> <td> - <input type="submit" name="search" value="Search"/> - <input type="submit" name="reset" value="Reset"/> + <input type="submit" name="search" value="<bean:message key="labels.search"/>"/> + <input type="submit" name="reset" value="<bean:message key="labels.reset"/>"/> </td> </tr> </tbody @@ -32,16 +32,16 @@ <table border="1"> <thead> <tr> - <th style="width:100px;text-align: center;"><bean:message key="labels.s_user_name"/></th> - <th style="width:100px;text-align: center;""><bean:message key="labels.s_manager_name"/></th> + <th style="width:150px;text-align: center;"><bean:message key="labels.s_user_name"/></th> + <th style="width:150px;text-align: center;""><bean:message key="labels.s_manager_name"/></th> <th style="width:200px;text-align: center;"> </th> </tr> </thead> <tbody> <c:forEach var="e" varStatus="s" items="${employeeItems}"> <tr class="${s.index %2 == 0 ? 'row1' : 'row2'}"> - <td>${f:h(e.username)}</td> - <td>${f:h(e.manager)}</td> + <td><bean:message key="display.name" arg0="${f:h(e.userInfoByUsername.nameArg0)}" arg1="${f:h(e.userInfoByUsername.nameArg1)}" arg2="${f:h(e.userInfoByUsername.nameArg2)}"/> (${f:h(e.username)})</td> + <td><bean:message key="display.name" arg0="${f:h(e.userInfoByManager.nameArg0)}" arg1="${f:h(e.userInfoByManager.nameArg1)}" arg2="${f:h(e.userInfoByManager.nameArg2)}"/> (${f:h(e.manager)})</td> <td align="center"> <s:link href="/admin/timecard/index/${f:u(e.username)}"><bean:message key="labels.time_card"/></s:link> <s:link href="editpage/2/${f:u(e.id)}"><bean:message key="labels.edit"/></s:link> Modified: timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/admin/timecard/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -16,8 +16,16 @@ <tbody> <tr> <th><bean:message key="labels.user_name"/></th> - <td style="text-align: center;">${username}</td> </tr> + <tr> + <td style="text-align: center;"><bean:message key="display.name" arg0="${f:h(monthlyReport.employee.userInfoByUsername.nameArg0)}" arg1="${f:h(monthlyReport.employee.userInfoByUsername.nameArg1)}" arg2="${f:h(monthlyReport.employee.userInfoByUsername.nameArg2)}"/> (${f:h(monthlyReport.employee.username)})</td> + </tr> + <tr> + <th><bean:message key="labels.manager_name"/></th> + </tr> + <tr> + <td style="text-align: center;"><bean:message key="display.name" arg0="${f:h(monthlyReport.employee.userInfoByManager.nameArg0)}" arg1="${f:h(monthlyReport.employee.userInfoByManager.nameArg1)}" arg2="${f:h(monthlyReport.employee.userInfoByManager.nameArg2)}"/> (${f:h(monthlyReport.employee.manager)})</td> + </tr> </tbody> </table> <table style="width: 180px;margin-bottom: 10px;"> @@ -99,7 +107,8 @@ | <s:link href="nextmonth/${year}/${month}/${username}"><bean:message key="labels.next_month"/></s:link> </div> -<table border="1"> +<table> + <caption><bean:message key="display.yearmonth_format" arg0="${year}" arg1="${month}"/></caption> <thead> <tr> <th style="width:70px;"><bean:message key="labels.date"/></th> Modified: timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/config/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -29,15 +29,19 @@ <td><html:text property="pmEndTime" size="5"/></td> </tr> <tr> - <th>表示する分</th> + <th><bean:message key="labels.minutes_to_display"/></th> <td><html:textarea property="displayedMinutes" cols="2" rows="5"/></td> </tr> <tr> - <th>休日</th> + <th><bean:message key="labels.holiday_list"/></th> <td><html:textarea property="holidays" cols="10" rows="5"/> - <br/>ex. YYYY-MM-DD + <br/><bean:message key="labels.holiday_format"/> </td> </tr> + <tr> + <th><bean:message key="labels.default_manager"/></th> + <td><html:text property="defaultManager" size="5"/></td> + </tr> </tbody> <tfoot> <tr> Modified: timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/employee/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -90,7 +90,8 @@ | <s:link href="nextmonth/${year}/${month}"><bean:message key="labels.next_month"/></s:link> </div> -<table border="1"> +<table> + <caption><bean:message key="display.yearmonth_format" arg0="${year}" arg1="${month}"/></caption> <thead> <tr> <th style="width:70px;"><bean:message key="labels.date"/></th> Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/employee/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -13,11 +13,11 @@ <table> <tbody> <tr> - <th>User ID</th> + <th><bean:message key="labels.search_user_id"/></th> <td><html:text property="username" size="10"/></td> <td> - <input type="submit" name="search" value="Search"/> - <input type="submit" name="reset" value="Reset"/> + <input type="submit" name="search" value="<bean:message key="labels.search"/>"/> + <input type="submit" name="reset" value="<bean:message key="labels.reset"/>"/> </td> </tr> </tbody @@ -34,16 +34,16 @@ <table border="1"> <thead> <tr> - <th style="width:100px;text-align: center;"><bean:message key="labels.s_user_name"/></th> - <th style="width:100px;text-align: center;""><bean:message key="labels.s_manager_name"/></th> + <th style="width:150px;text-align: center;"><bean:message key="labels.s_user_name"/></th> + <th style="width:150px;text-align: center;""><bean:message key="labels.s_manager_name"/></th> <th style="width:200px;text-align: center;"> </th> </tr> </thead> <tbody> <c:forEach var="e" varStatus="s" items="${employeeItems}"> <tr class="${s.index %2 == 0 ? 'row1' : 'row2'}"> - <td>${f:h(e.username)}</td> - <td>${f:h(e.manager)}</td> + <td><bean:message key="display.name" arg0="${f:h(e.userInfoByUsername.nameArg0)}" arg1="${f:h(e.userInfoByUsername.nameArg1)}" arg2="${f:h(e.userInfoByUsername.nameArg2)}"/> (${f:h(e.username)})</td> + <td><bean:message key="display.name" arg0="${f:h(e.userInfoByManager.nameArg0)}" arg1="${f:h(e.userInfoByManager.nameArg1)}" arg2="${f:h(e.userInfoByManager.nameArg2)}"/> (${f:h(e.manager)})</td> <td align="center"> <s:link href="/manager/timecard/index/${f:u(e.username)}"><bean:message key="labels.time_card"/></s:link> <%-- Modified: timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp =================================================================== --- timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-18 06:56:00 UTC (rev 1365) +++ timecard/trunk/src/main/webapp/WEB-INF/view/manager/timecard/index.jsp 2008-11-18 08:02:11 UTC (rev 1366) @@ -16,8 +16,16 @@ <tbody> <tr> <th><bean:message key="labels.user_name"/></th> - <td style="text-align: center;">${username}</td> </tr> + <tr> + <td style="text-align: center;"><bean:message key="display.name" arg0="${f:h(monthlyReport.employee.userInfoByUsername.nameArg0)}" arg1="${f:h(monthlyReport.employee.userInfoByUsername.nameArg1)}" arg2="${f:h(monthlyReport.employee.userInfoByUsername.nameArg2)}"/> (${f:h(monthlyReport.employee.username)})</td> + </tr> + <tr> + <th><bean:message key="labels.manager_name"/></th> + </tr> + <tr> + <td style="text-align: center;"><bean:message key="display.name" arg0="${f:h(monthlyReport.employee.userInfoByManager.nameArg0)}" arg1="${f:h(monthlyReport.employee.userInfoByManager.nameArg1)}" arg2="${f:h(monthlyReport.employee.userInfoByManager.nameArg2)}"/> (${f:h(monthlyReport.employee.manager)})</td> + </tr> </tbody> </table> <table style="width: 180px;margin-bottom: 10px;"> @@ -102,7 +110,8 @@ | <s:link href="nextmonth/${year}/${month}/${username}"><bean:message key="labels.next_month"/></s:link> </div> -<table border="1"> +<table> + <caption><bean:message key="display.yearmonth_format" arg0="${year}" arg1="${month}"/></caption> <thead> <tr> <th style="width:70px;"><bean:message key="labels.date"/></th>