Changeset 18298
- Timestamp:
- 11/04/08 12:47:37 (2 months ago)
- Files:
-
- trunk/core/src/net/project/resource/AssignmentWorkCaptureHelper.java (modified) (8 diffs)
- trunk/core/src/net/project/view/pages/assignments/MyAssignments.java (modified) (2 diffs)
- trunk/core/src/net/project/view/pages/assignments/Timesheet.java (modified) (6 diffs)
- trunk/core/web/css/blog.css (modified) (3 diffs)
- trunk/core/web/html/assignments/Timesheet.html (modified) (1 diff)
- trunk/core/web/images/dialog-title-end.gif (added)
- trunk/core/web/images/icons/left-black-pointing.gif (added)
- trunk/core/web/images/icons/right-black-pointing.gif (added)
- trunk/core/web/images/menu/close.gif (added)
- trunk/core/web/images/menu/estimate-box-left.gif (added)
- trunk/core/web/images/menu/estimate-box-right-short.gif (added)
- trunk/core/web/src/blogit.js (modified) (16 diffs)
- trunk/core/web/src/workCapture.js (modified) (11 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/core/src/net/project/resource/AssignmentWorkCaptureHelper.java
r18241 r18298 26 26 import javax.servlet.http.HttpSession; 27 27 28 import net.project.base.Module;29 28 import net.project.base.ObjectType; 30 29 import net.project.base.PnetRuntimeException; … … 89 88 private Date endDate; 90 89 91 p rivateList dateHeaders;92 93 p rivateList dateLongNames;90 public List dateHeaders; 91 92 public List dateLongNames; 94 93 95 94 private List assignments; 96 95 97 p rivateMap dateValues;96 public Map dateValues; 98 97 99 98 private Map summaryDateValues; … … 111 110 private TimeQuantity currentWork = assnWork; 112 111 113 p rivateDate scrollBackStartDate;114 115 p rivateDate scrollForwardStartDate;112 public Date scrollBackStartDate; 113 114 public Date scrollForwardStartDate; 116 115 117 116 private String objectId; … … 124 123 125 124 public String date; 125 126 public Boolean isToday; 127 128 public Boolean isTodaysDayInWeek; 129 130 /** 131 * @return the date 132 */ 133 public String getDate() { 134 return date; 135 } 136 137 /** 138 * @return the dayOfWeek 139 */ 140 public String getDayOfWeek() { 141 return dayOfWeek; 142 } 143 144 /** 145 * @return the isToday 146 */ 147 public Boolean getIsToday() { 148 return isToday; 149 } 150 151 /** 152 * @param isToday the isToday to set 153 */ 154 public void setIsToday(Boolean isToday) { 155 this.isToday = isToday; 156 } 157 158 /** 159 * @return the isTodaysDayInWeek 160 */ 161 public Boolean getIsTodaysDayInWeek() { 162 return isTodaysDayInWeek; 163 } 164 165 /** 166 * @param isTodaysDayInWeek the isTodaysDayInWeek to set 167 */ 168 public void setIsTodaysDayInWeek(Boolean isTodaysDayInWeek) { 169 this.isTodaysDayInWeek = isTodaysDayInWeek; 170 } 171 126 172 } 127 173 128 /** 129 * Get the Saved/Non Saved timeWorkedDiv for blogit.js for the first time only. 130 * @param request a <code>HttpServletRequest</code> object that we can use 131 * to look up what time the user has entered. 132 * The date value list has been set according to this paramaeter and pass it to 133 * getTimeValueForJS method to set the date value list. 134 * and after that in session. 135 */ 136 public String getModifiedTimeSheetEntries(HttpServletRequest request) { 137 String objectId = request.getParameter("objectId"); 138 String dateToStart = request.getParameter("scroll"); 139 NumberFormat nf = NumberFormat.getInstance(); 140 String scrollType = request.getParameter("scrollType") == null ? "week" : request.getParameter("scrollType"); 141 142 // Get/Set Date values List while scrolling and first Time Laod. 143 String jsTimesValueArray = getTimeValueForJS(dateToStart, scrollType, objectId); 144 145 // Get the assignments that we are displaying 146 try { 147 getAssignments(objectId); 148 } catch (Exception e) { 149 log.error("Error occured while getting assignments:" + e.getMessage()); 150 } 151 if(org.apache.commons.collections.CollectionUtils.isEmpty(assignments)){ 152 return null; 153 } 154 String strTDwidth = "40px"; 155 String timeSheetTable = ""; 156 timeSheetTable += "<table align='left' id='timecard' border='0' width='100%' align=\"center\">\n"; 157 timeSheetTable += "\t<tr>\n"; 158 timeSheetTable += "\t\t<td width='310' rowspan='2'><div id='div1' style='display:block'><table width='310'><tr><td align='center'><table align=\"center\"><tr class='timeSheetHeader'>\n"; 159 timeSheetTable += "\t\t\t<td><img src='" + SessionManager.getJSPRootURL() + "/images/icons/back.gif' border='0' onClick='scroll(\"" + scrollBackStartDate.getTime() + "\",\"" + scrollType + "\");'/></td>\n"; 160 161 for (Iterator it = dateHeaders.iterator(); it.hasNext();) { 162 DateHeader dateHeader = (DateHeader) it.next(); 163 if(dateHeader.date.equalsIgnoreCase("Today")) { 164 timeSheetTable += "\t\t\t<td align=\"center\" width='" + strTDwidth + "'> <br>" + dateHeader.date + "</td>\n"; 165 } else { 166 try { 167 if(new SimpleDateFormat("MM/dd").format(new SimpleDateFormat("dd/MM/yy").parse(DateFormat.getInstance().formatDate(Calendar.getInstance().getTime()))).equals(dateHeader.date)){ 168 timeSheetTable += "\t\t\t<td align=\"center\" width='" + strTDwidth + "' class='highlightDay'>" + dateHeader.dayOfWeek + "<br>" + dateHeader.date + "</td>\n"; 169 } else { 170 timeSheetTable += "\t\t\t<td align=\"center\" width='" + strTDwidth + "'>" + dateHeader.dayOfWeek + "<br>" + dateHeader.date + "</td>\n"; 171 } 172 } catch (ParseException pnetEx) { 173 pnetEx.printStackTrace(); 174 } 175 } 176 } 177 178 timeSheetTable += "\t\t\t<td><img src='" + SessionManager.getJSPRootURL() + "/images/icons/forward.gif' border='0' align=\"right\" onClick='scroll(\"" + scrollForwardStartDate.getTime() + "\",\"" + scrollType + "\");'/></td>\n"; 179 timeSheetTable += "\t\t</tr>"; 180 timeSheetTable += "\t\t<tr class='dayWeeklink'>\n"; 181 timeSheetTable += "\t\t\t<td colspan='9' align='center'>\n"; 182 if (scrollType.equalsIgnoreCase("week")) { 183 timeSheetTable += "\t\t\t\t <a href='javascript:changeScrollType(\"day\");'>day</a> week\n"; 184 } else { 185 timeSheetTable += "\t\t\t\t day <a href='javascript:changeScrollType(\"week\");'>week</a>\n"; 186 } 187 timeSheetTable += "\t\t\t</td></tr></table></td></tr></table></div>\n"; 188 189 timeSheetTable += "\t\t</td>\n"; 190 191 timeSheetTable += "\t\t<td align='left' valign='top' class='blogEntryLabel' nowrap='nowrap' style=\"padding-left:6px;\">Total <br/>Reported" 192 //+ "<a href='javascript:showHistory();' class='bluelink'>history</a>" 193 + "</td>\n"; 194 timeSheetTable += "\t\t<td align='left' valign='top' class='blogEntryLabel' nowrap='nowrap' style=\"padding-left:6px;\">Estimated <br/>Remaining </td>\n"; 195 //+ "<a href='javascript:setPercentageDiv();' class='redlink'>not accurate?</a></td>\n"; 196 timeSheetTable += "\t\t<td align='left' valign='top' class='blogEntryLabel' nowrap='nowrap' style=\"padding-left:6px;\">Total <br/>Estimated </td>\n"; 197 timeSheetTable += "\t\t<td align='left' valign='top' class='blogEntryLabel' nowrap='nowrap' style=\"padding-left:6px;\">% <br/>complete" 198 //+ "<a href='javascript:setPercentageDiv();' class='redlink'>not accurate?</a>" 199 + "</td>\n"; 200 timeSheetTable += "\t\t<td></td>\n"; 201 timeSheetTable += "\t</tr>\n"; 202 203 timeSheetTable += "<tr><td><a href='javascript:showHistory();' class='bluelink' style='padding-left:6px;'>history</a></td>" 204 + "<td colspan='2' nowrap='nowrap'><a href='javascript:getEstNotAccurateDiv();' class='redlink'>Estimates Not Accurate?</a>" + 205 "</td><td></td><td></td></tr>"; 206 207 timeSheetTable += "\t<tr><td colspan='7' class='blogbar2'></td></tr>\n"; 208 209 timeSheetTable += "\t<tr class='tableContent'>\n"; 210 211 timeSheetTable += "\t\t<td width='310'><div id='div11' style='display:block'><table align=\"center\"><tr class='tableContent'>\n"; 212 timeSheetTable += "\t\t\t<td></td>\n"; 213 double percenComplete = 1.0; 214 int forcount = 0; 215 String strWork = TimeQuantity.O_HOURS.toShortString(0, 2); 216 String strWorkComplete = TimeQuantity.O_HOURS.toShortString(0, 2); 217 String strWorkRemaining = TimeQuantity.O_HOURS.toShortString(0, 2); 218 for (Iterator it = assignments.iterator(); it.hasNext();) { 219 Assignment assignment = (Assignment) it.next(); 220 if (assignment instanceof ScheduleEntryAssignment) { 221 ScheduleEntryAssignment seAssignment = (ScheduleEntryAssignment) assignment; 222 percenComplete = seAssignment.getPercentComplete().doubleValue(); 223 strWork = seAssignment.getWork().toShortString(0, 2); 224 strWorkComplete = seAssignment.getWorkComplete().toShortString(0, 2); 225 strWorkRemaining = seAssignment.getWorkRemaining().toShortString(0, 2); 226 227 } else if (assignment instanceof ActivityAssignment) { 228 ActivityAssignment aAssignment = (ActivityAssignment) assignment; 229 strWork = aAssignment.getWork().toShortString(0, 2); 230 strWorkComplete = aAssignment.getWork().toShortString(0, 2); 231 232 } else if (assignment instanceof FormAssignment) { 233 FormAssignment fAssignment = (FormAssignment) assignment; 234 percenComplete = fAssignment.getPercentComplete().doubleValue(); 235 strWork = fAssignment.getWork().toShortString(0, 2); 236 strWorkComplete = fAssignment.getWorkComplete().toShortString(0, 2); 237 strWorkRemaining = fAssignment.getWorkRemaining().toShortString(0, 2); 238 } 239 240 strWork = convertHoursToDays(strWork); 241 strWorkRemaining = convertHoursToDays(strWorkRemaining); 242 243 for (Iterator it2 = dateLongNames.iterator(); it2.hasNext();) { 244 String name = (String) it2.next(); 245 TimeQuantity work = (TimeQuantity) dateValues.get(new AssignmentDate(new Date(Long.parseLong(name)), assignment.getObjectID())); 246 work = (work == null ? new TimeQuantity(0, TimeQuantityUnit.HOUR) : work); 247 String valueName = "dateupdX" + assignment.getObjectID() + "X" + name; 248 String valueValue = (request.getParameter(valueName) == null ? " " : " value='" + request.getParameter(valueName) + "' "); 249 timeSheetTable += "\t\t\t<td nowrap='nowrap' width='" + strTDwidth + "' align=\"center\">\n"; 250 timeSheetTable += work.toShortString(0, 2); 251 timeSheetTable += "\t\t\t\t<br>\n"; 252 253 timeSheetTable += "\t\t\t\t<input type='text' size='1' maxlength='5' id='timesheetbox" 254 + forcount + "' name='" + valueName + "' "+ valueValue + " onmouseout=\"blogItWorkChanged('" 255 + assignment.getObjectID() + "', 'true','" + name + "','" + Module.PERSONAL_SPACE + "','"+scrollType+"');\"" 256 + " onchange=\"blogItWorkChanged('"+ assignment.getObjectID() + "', 'true','" + name + "','" + Module.PERSONAL_SPACE 257 + "','"+scrollType+"');\"/>\n"; 258 //timeSheetTable += "\t\t\t\t<a id='timerLink' href=\"javascript:showtime('timesheetbox"+ forcount + "');\">" 259 //+ "<img src='" + SessionManager.getJSPRootURL()+ "/images/sm_clock.gif' border='0'/></a>\n"; 260 forcount++; 261 timeSheetTable += "\t\t\t</td>\n"; 262 } 263 } 264 timeSheetTable += "\t\t\t<td></td>\n"; 265 timeSheetTable += "\t\t</tr></table></div>\n"; 266 267 timeSheetTable += "\t\t</td>\n"; 268 timeSheetTable += "\t\t<td style='padding-left: 6px; text-align: left;' class='estValues'><span name='wkrp' id='wkrp'>" + strWorkComplete + "</span></td>\n"; 269 timeSheetTable += "\t\t<td style='padding-left: 6px; text-align: left;' class='estValues'><span name='wkrm' id='wkrm'>" + strWorkRemaining + "</span></td>\n"; 270 timeSheetTable += "\t\t<td style='padding-left: 6px; text-align: left;' class='estValues'><span name='wk' id='wk'>" + strWork + "</span></td>\n"; 271 timeSheetTable += "\t\t<td style='padding-left: 6px; text-align: left;' class='estValues'><span name='pc' id='pc'>" + nf.formatPercent(percenComplete, 2) + "</span></td>\n"; 272 273 timeSheetTable += "\t\t<td nowrap='nowrap'><b>Done?</b> <input type='checkbox' id='workDone' /></td>\n"; //onclick='percentChanged('"+ objectId +"','done');' 274 //timeSheetTable += "\t<tr><td colspan='7' class='blogbar2'></td></tr>\n"; 275 timeSheetTable += "\t</tr></table>\n"; 276 277 // Put some date objects into the session that we'll use repeatedly 278 try { 279 putObjectsInSession(request, request.getSession()); 280 } catch (Exception e) { 281 log.error("Error occured while putting objects in session:" + e.getMessage()); 282 } 283 return timeSheetTable+"TimesValueArray"+jsTimesValueArray+"TimesValueArray"+"setDefault('"+nf.formatPercent(percenComplete, 2)+"','"+strWorkRemaining+"','"+strWorkComplete+"','"+strWork+"');"; 284 } 285 174 public static class DateLongName { 175 176 public String work; 177 178 public String valueName; 179 180 public String valueValue; 181 182 public String name; 183 184 public int forcount; 185 186 /** 187 * @return the forcount 188 */ 189 public int getForcount() { 190 return forcount; 191 } 192 193 /** 194 * @return the name 195 */ 196 public String getName() { 197 return name; 198 } 199 200 /** 201 * @return the valueName 202 */ 203 public String getValueName() { 204 return valueName; 205 } 206 207 /** 208 * @return the valueValue 209 */ 210 public String getValueValue() { 211 return valueValue; 212 } 213 214 /** 215 * @return the work 216 */ 217 public String getWork() { 218 return work; 219 } 220 221 } 222 286 223 /** 287 224 * Return the String as array for time values as array in blogit.js for some validations … … 326 263 } 327 264 328 329 265 // Get the column headers for each day 330 266 getDateHeaders(scrollType); … … 508 444 * assignments. 509 445 */ 510 public voidgetAssignments(String objectID1) throws PersistenceException {446 public List getAssignments(String objectID1) throws PersistenceException { 511 447 String objectID = objectID1; 512 448 String[] objectIDList = { objectID1 }; … … 719 655 } 720 656 } 657 return assignments; 721 658 } 722 659 … … 1712 1649 WorkingTimeCalendarDefinition def = calendarProvider.getForPlanID((String) planIDMap.get(id)); 1713 1650 IWorkingTimeCalendar cal = new DefinitionBasedWorkingTimeCalendar(calendarProvider.getDefaultTimeZone(), def); 1714 if (cal.isWorkingDay(date)) { 1715 dateStart = cal.getStartOfWorkingDay(date); 1651 1652 // checking for the token to check non working day before updating the 1653 // percent complete 1654 boolean checkForNonWorkingDay = !PropertyProvider.get("prm.resource.assignments.workcaptureonnonworkingday.isenabled").equals("1"); 1655 if(checkForNonWorkingDay){ 1656 if (cal.isWorkingDay(date)) { 1657 dateStart = cal.getStartOfWorkingDay(date); 1658 } else { 1659 //We keep a date around so the rest of processing won't fail. 1660 dateStart = new Date(); 1661 1662 Assignment assn = (Assignment) assignmentMap.get(id); 1663 errors.addError(new ErrorDescription(paramName, PropertyProvider.get("prm.resource.assignments.update.error.invalidtime.message", df.formatDate(date), assn.getObjectName()))); 1664 } 1716 1665 } else { 1717 //We keep a date around so the rest of processing won't fail. 1718 dateStart = new Date(); 1719 1720 Assignment assn = (Assignment) assignmentMap.get(id); 1721 errors.addError(new ErrorDescription(paramName, PropertyProvider.get("prm.resource.assignments.update.error.invalidtime.message", df.formatDate(date), assn.getObjectName()))); 1666 if (cal.isWorkingDay(date)) { 1667 dateStart = cal.getStartOfWorkingDay(date); 1668 } else { 1669 //We keep a date around so the rest of processing won't fail. 1670 dateStart = new Date(); 1671 } 1722 1672 } 1723 1673 DateCalculatorHelper dateCalculatorHelper = new DateCalculatorHelper((DefinitionBasedWorkingTimeCalendar) cal); trunk/core/src/net/project/view/pages/assignments/MyAssignments.java
r18241 r18298 352 352 } 353 353 354 // Action To generate the time sheet enteries from database ,if exist355 // otherwise generate a blank time sheet div for js and return356 else if (action.equalsIgnoreCase(WorkCaptureAction.GET_TIME_SHEET_ENTRIES.toString())) {357 String timeSheetTable = "";358 try {359 String timeSheet = workCaptureHelper.getModifiedTimeSheetEntries(request);360 if(StringUtils.isNotEmpty(timeSheet)){361 timeSheetTable = workCaptureHelper.getModifiedTimeSheetEntries(request);362 timeSheetTable += "TimesValueArray"363 + PropertyProvider.get("prm.resource.assignments.update.error.invalidwork.message", "0", "24");364 } else {365 timeSheetTable = "false";366 }367 } catch (Exception e) {368 log.error("Error occurred while getting time sheet entries : " + e.getMessage());369 timeSheetTable = "Error occurred while getting time sheet entries";370 }371 return new TextStreamResponse("text", timeSheetTable);372 }373 354 // Action to update the time sheet entries 374 355 // Return js call : an error message call if error found … … 448 429 try { 449 430 if (childTaskList.equals("-1")) { 450 blogEntries.setMessage("No blog entries for this object !");431 blogEntries.setMessage("No blog entries for this object"); 451 432 blogEntries.setUserWeblogEntries(null); 452 433 blogEntries.setTotalWorkDone(""); trunk/core/src/net/project/view/pages/assignments/Timesheet.java
r18131 r18298 4 4 package net.project.view.pages.assignments; 5 5 6 import java.text.ParseException; 7 import java.text.SimpleDateFormat; 6 8 import java.util.ArrayList; 7 9 import java.util.Calendar; 10 import java.util.Date; 11 import java.util.Iterator; 8 12 import java.util.List; 9 13 10 14 import javax.servlet.http.HttpServletRequest; 11 15 16 import net.project.base.Module; 17 import net.project.base.property.PropertyProvider; 18 import net.project.form.assignment.FormAssignment; 19 import net.project.resource.ActivityAssignment; 20 import net.project.resource.Assignment; 21 import net.project.resource.AssignmentWorkCaptureHelper; 22 import net.project.resource.ScheduleEntryAssignment; 23 import net.project.resource.AssignmentWorkCaptureHelper.DateHeader; 24 import net.project.resource.AssignmentWorkCaptureHelper.DateLongName; 25 import net.project.resource.mvc.handler.AssignmentDate; 12 26 import net.project.security.SessionManager; 13 27 import net.project.util.DateFormat; 28 import net.project.util.NumberFormat; 29 import net.project.util.TimeQuantity; 30 import net.project.util.TimeQuantityUnit; 14 31 15 32 import org.apache.commons.lang.StringUtils; … … 47 64 @Inject 48 65 private RequestGlobals requestGlobals; 66 67 private AssignmentWorkCaptureHelper assignmentWorkCaptureHelper; 68 69 private String scrollType; 70 71 private Boolean scrollTypeIsWeek; 72 73 private String strTDwidth; 74 75 private String strPercentComplete; 76 77 private String strWork = TimeQuantity.O_HOURS.toShortString(0, 2); 78 79 private String strWorkComplete = TimeQuantity.O_HOURS.toShortString(0, 2); 80 81 private String strWorkRemaining = TimeQuantity.O_HOURS.toShortString(0, 2); 82 83 private Long scrollBackStartDate; 84 85 private Long scrollForwardStartDate; 86 87 private List dateHeaders; 88 89 private DateHeader dateHeader; 90 91 private List dateLongNames; 92 93 private List<DateLongName> dateLongNamesList; 94 95 private DateLongName dateLongName; 96 97 private String assignmentObjectId; 98 99 private int moduleId; 100 101 private String timesValueArray; 102 103 private String invalidErrorKey; 49 104 50 105 public void onActivate() { … … 54 109 55 110 JSPRootURL = SessionManager.getJSPRootURL(); 111 moduleId = Module.PERSONAL_SPACE; 56 112 57 113 HttpServletRequest request = requestGlobals.getHTTPServletRequest(); … … 64 120 date = userDateFormat.formatDate(Calendar.getInstance().getTime(), "EEEEE, MMM dd, yyyy"); 65 121 66 hoursModel = new ArrayList<String>();122 /*hoursModel = new ArrayList<String>(); 67 123 for (int hourIndex = 1; hourIndex <= 12; hourIndex++) { 68 124 hoursModel.add(hourIndex < 10 ? "0" + hourIndex : "" + hourIndex); … … 72 128 for (int minuteIndex = 0; minuteIndex <= 59; minuteIndex++) { 73 129 minutesModel.add(minuteIndex < 10 ? "0" + minuteIndex : "" + minuteIndex); 130 }*/ 131 132 String objectId = request.getParameter("objectId"); 133 scrollType = StringUtils.isEmpty(request.getParameter("scrollType")) ? "week" : request.getParameter("scrollType"); 134 135 List assignments = null; 136 if(StringUtils.isNotEmpty(objectId)){ 137 assignmentWorkCaptureHelper = new AssignmentWorkCaptureHelper(); 138 // Get the assignments that we are displaying 139 try { 140 assignments = assignmentWorkCaptureHelper.getAssignments(objectId); 141 } catch (Exception e) { 142 log.error("Error occured while getting assignments:" + e.getMessage()); 143 } 144 if(org.apache.commons.collections.CollectionUtils.isNotEmpty(assignments)){ 145 getModifiedTimeSheetEntries(objectId, assignments, request); 146 } 74 147 } 75 148 } 76 149 150 /** 151 * Get the Saved/Non Saved timeWorkedDiv for blogit.js for the first time only. 152 * @param request a <code>HttpServletRequest</code> object that we can use 153 * to look up what time the user has entered. 154 * The date value list has been set according to this paramaeter and pass it to 155 * getTimeValueForJS() method to set the date value list. 156 * and after that in session. 157 */ 158 public void getModifiedTimeSheetEntries(String objectId, List assignments, HttpServletRequest request) { 159 String dateToStart = request.getParameter("scroll"); 160 scrollTypeIsWeek = scrollType.equalsIgnoreCase("week"); 161 162 // Get/Set Date values List while scrolling and first Time Laod. 163 timesValueArray = assignmentWorkCaptureHelper.getTimeValueForJS(dateToStart, scrollType, objectId); 164 invalidErrorKey = PropertyProvider.get("prm.resource.assignments.update.error.invalidwork.message", "0", "24"); 165 166 strTDwidth = "40px"; 167 scrollBackStartDate = assignmentWorkCaptureHelper.scrollBackStartDate.getTime(); 168 scrollForwardStartDate = assignmentWorkCaptureHelper.scrollForwardStartDate.getTime(); 169 170 dateHeaders = assignmentWorkCaptureHelper.dateHeaders; 171 172 for (Iterator it = dateHeaders.iterator(); it.hasNext();) { 173 DateHeader dateHeader = (DateHeader) it.next(); 174 if(dateHeader.date.equalsIgnoreCase("Today")) { 175 dateHeader.setIsToday(dateHeader.date.equalsIgnoreCase("Today")); 176 } else { 177 try { 178 dateHeader.setIsTodaysDayInWeek(new SimpleDateFormat("MM/dd").format(new SimpleDateFormat("dd/MM/yy").parse(DateFormat.getInstance().formatDate(Calendar.getInstance().getTime()))).equals(dateHeader.date)); 179 } catch (ParseException e) { 180 log.error("Error occured while parsing date :" + e.getMessage()); 181 } 182 } 183 } 184 185 double percentComplete = 1.0; 186 int forcount = 0; 187 188 for (Iterator it = assignments.iterator(); it.hasNext();) { 189 Assignment assignment = (Assignment) it.next(); 190 assignmentObjectId = assignment.getObjectID(); 191 192 if (assignment instanceof ScheduleEntryAssignment) { 193 ScheduleEntryAssignment seAssignment = (ScheduleEntryAssignment) assignment; 194 percentComplete = seAssignment.getPercentComplete().doubleValue(); 195 strWork = seAssignment.getWork().toShortString(0, 2); 196 strWorkComplete = seAssignment.getWorkComplete().toShortString(0, 2); 197 strWorkRemaining = seAssignment.getWorkRemaining().toShortString(0, 2); 198 199 } else if (assignment instanceof ActivityAssignment) { 200 ActivityAssignment aAssignment = (ActivityAssignment) assignment; 201 strWork = aAssignment.getWork().toShortString(0, 2); 202 strWorkComplete = aAssignment.getWork().toShortString(0, 2); 203 204 } else if (assignment instanceof FormAssignment) { 205 FormAssignment fAssignment = (FormAssignment) assignment; 206 percentComplete = fAssignment.getPercentComplete().doubleValue(); 207 strWork = fAssignment.getWork().toShortString(0, 2); 208 strWorkComplete = fAssignment.getWorkComplete().toShortString(0, 2); 209 strWorkRemaining = fAssignment.getWorkRemaining().toShortString(0, 2); 210 } 211 212 strWork = assignmentWorkCaptureHelper.convertHoursToDays(strWork); 213 strWorkRemaining = assignmentWorkCaptureHelper.convertHoursToDays(strWorkRemaining); 214 dateLongNames = assignmentWorkCaptureHelper.dateLongNames; 215 216 dateLongNamesList = new ArrayList<DateLongName>(); 217 218 for (Iterator it2 = dateLongNames.iterator(); it2.hasNext();) { 219 DateLongName dateLongName = new DateLongName(); 220 221 String name = (String) it2.next(); 222 dateLongName.name = name; 223 224 TimeQuantity work = (TimeQuantity) assignmentWorkCaptureHelper.dateValues.get(new AssignmentDate(new Date(Long.parseLong(name)), assignment.getObjectID())); 225 work = (work == null ? new TimeQuantity(0, TimeQuantityUnit.HOUR) : work); 226 dateLongName.work = work.toShortString(0, 2); 227 228 String valueName = "dateupdX" + assignment.getObjectID() + "X" + name; 229 dateLongName.valueName = valueName; 230 231 String valueValue = (StringUtils.isEmpty(request.getParameter(valueName)) ? "" : request.getParameter(valueName)); 232 dateLongName.valueValue = valueValue; 233 234 dateLongName.forcount = forcount++; 235 dateLongNamesList.add(dateLongName); 236 } 237 } 238 239 strPercentComplete = NumberFormat.getInstance().formatPercent(percentComplete, 2); 240 // Put some date objects into the session that we'll use repeatedly 241 try { 242 assignmentWorkCaptureHelper.putObjectsInSession(request, request.getSession()); 243 } catch (Exception e) { 244 log.error("Error occured while putting objects in session:" + e.getMessage()); 245 } 246 } 247 77 248 /** 78 249 * @return the fromHours … … 138 309 } 139 310 311 /** 312 * @return the dateHeader 313 */ 314 public DateHeader getDateHeader() { 315 return dateHeader; 316 } 317 318 /** 319 * @return the dateHeaders 320 */ 321 public List getDateHeaders() { 322 return dateHeaders; 323 } 324 325 /** 326 * @return the scrollTypeIsWeek 327 */ 328 public Boolean getScrollTypeIsWeek() { 329 return scrollTypeIsWeek; 330 } 331 332 /** 333 * @return the moduleId 334 */ 335 public int getModuleId() { 336 return moduleId; 337 } 338 339 /** 340 * @return the scrollBackStartDate 341 */ 342 public Long getScrollBackStartDate() { 343 return scrollBackStartDate; 344 } 345 346 /** 347 * @return the scrollForwardStartDate 348 */ 349 public Long getScrollForwardStartDate() { 350 return scrollForwardStartDate; 351 } 352 353 /** 354 * @return the scrollType 355 */ 356 public String getScrollType() { 357 return scrollType; 358 } 359 360 /** 361 * @return the strPercentComplete 362 */ 363 public String getStrPercentComplete() { 364 return strPercentComplete; 365 } 366 367 /** 368 * @return the strTDwidth 369 */ 370 public String getStrTDwidth() { 371 return strTDwidth; 372 } 373 374 /** 375 * @return the strWork 376 */ 377 public String getStrWork() { 378 return strWork; 379 } 380 381 /** 382 * @return the strWorkComplete 383 */ 384 public String getStrWorkComplete() { 385 return strWorkComplete; 386 } 387 388 /** 389 * @return the strWorkRemaining 390 */ 391 public String getStrWorkRemaining() { 392 return strWorkRemaining; 393 } 394 395 /** 396 * @return the dateLongNamesList 397 */ 398 public List getDateLongNamesList() { 399 return dateLongNamesList; 400 } 401 402 /** 403 * @return the assignmentObjectId 404 */ 405 public String getAssignmentObjectId() { 406 return assignmentObjectId; 407 } 408 409 /** 410 * @return the timesValueArray 411 */ 412 public String getTimesValueArray() { 413 return timesValueArray; 414 } 415 416 /** 417 * @return the invalidErrorKey 418 */ 419 public String getInvalidErrorKey() { 420 return invalidErrorKey; 421 } 422 423 /** 424 * @return the dateLongName 425 */ 426 public DateLongName getDateLongName() { 427 return dateLongName; 428 } 429 430 /** 431 * @param dateHeader the dateHeader to set 432 */ 433 public void setDateHeader(DateHeader dateHeader) { 434 this.dateHeader = dateHeader; 435 } 436 437 /** 438 * @param dateLongName the dateLongName to set 439 */ 440 public void setDateLongName(DateLongName dateLongName) { 441 this.dateLongName = dateLongName; 442 } 443 140 444 } trunk/core/web/css/blog.css
r18241 r18298 25 25 padding: 0px; 26 26 z-index: 12; 27 27 28 } 28 29 #blogPopupbody { … … 142 143 font-family: Arial,Helvetica; 143 144 } 144 .timeSheetHeader {145 background-color: #FFFFFF;146 color: #666666;147 font-weight: bold;148 font-size: 12px;149 }150 145 .setTitle{ 151 146 font-family: Arial,Verdana,Helvetica; … … 513 508 font-size: 12px; 514 509 } 510 .week-date { 511 font-family: Arial, Helvetica, sans-serif; 512 font-size: 11px; 513 font-weight: bold; 514 padding-left: 10px; 515 } 516 517 / * Work capture related css */ 518 .calendar-table { 519 font-family: Arial, Helvetica, sans-serif; 520 font-size: 11px;
