Changeset 18347
- Timestamp:
- 11/13/08 12:16:32 (2 months ago)
- Files:
-
- trunk/core/src/net/project/resource/AssignmentWorkCaptureHelper.java (modified) (7 diffs)
- trunk/core/src/net/project/view/pages/assignments/Timesheet.java (modified) (4 diffs)
- trunk/core/web/css/blog.css (modified) (2 diffs)
- trunk/core/web/html/assignments/Timesheet.html (modified) (7 diffs)
- trunk/core/web/src/blogit.js (modified) (2 diffs)
- trunk/core/web/src/workCapture.js (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/core/src/net/project/resource/AssignmentWorkCaptureHelper.java
r18321 r18347 34 34 import net.project.base.property.PropertyProvider; 35 35 import net.project.calendar.PnCalendar; 36 import net.project.calendar.workingtime.DateCalculatorHelper;37 36 import net.project.calendar.workingtime.DefinitionBasedWorkingTimeCalendar; 38 37 import net.project.calendar.workingtime.IWorkingTimeCalendar; … … 96 95 public Map dateValues; 97 96 98 p rivateMap summaryDateValues;97 public Map summaryDateValues; 99 98 100 99 public Map assignmentMap; … … 213 212 public Boolean isNonWorkingDay; 214 213 214 public String oldWorkForDay; 215 215 216 /** 216 217 * @return the forcount … … 274 275 public void setIsNonWorkingDay(Boolean isNonWorkingDay) { 275 276 this.isNonWorkingDay = isNonWorkingDay; 277 } 278 279 /** 280 * @return the oldWorkForDay 281 */ 282 public String getOldWorkForDay() { 283 return oldWorkForDay; 284 } 285 286 /** 287 * @param oldWorkForDay the oldWorkForDay to set 288 */ 289 public void setOldWorkForDay(String oldWorkForDay) { 290 this.oldWorkForDay = oldWorkForDay; 276 291 } 277 292 } … … 316 331 cal.add(PnCalendar.DATE, 1); 317 332 scrollForwardStartDate = cal.getTime(); 318 endDate = cal. getTime();333 endDate = cal.endOfDay(); 319 334 } 320 335 … … 1706 1721 //as work logged here can be more that work that can be done between working times 1707 1722 Date dateStart = calendar.startOfDay(date); 1708 1723 Date dateEnd = calendar.endOfDay(date); 1724 map.put(id, new DateUpdate(work, dateStart, dateEnd)); 1725 1709 1726 WorkingTimeCalendarDefinition def = calendarProvider.getForPlanID((String) planIDMap.get(id)); 1710 1727 IWorkingTimeCalendar cal = new DefinitionBasedWorkingTimeCalendar(calendarProvider.getDefaultTimeZone(), def); … … 1718 1735 } 1719 1736 } 1720 Date dateEnd = calendar.endOfDay();1721 map.put(id, new DateUpdate(work, dateStart, dateEnd));1722 1737 } 1723 1738 } trunk/core/src/net/project/view/pages/assignments/Timesheet.java
r18321 r18347 16 16 import net.project.base.Module; 17 17 import net.project.base.property.PropertyProvider; 18 import net.project.calendar.PnCalendar;19 18 import net.project.calendar.workingtime.DefinitionBasedWorkingTimeCalendar; 20 19 import net.project.calendar.workingtime.IWorkingTimeCalendar; … … 172 171 invalidErrorKey = PropertyProvider.get("prm.resource.assignments.update.error.invalidwork.message", "0", "24"); 173 172 174 strTDwidth = " 40px";173 strTDwidth = "50px"; 175 174 scrollBackStartDate = assignmentWorkCaptureHelper.scrollBackStartDate.getTime(); 176 175 scrollForwardStartDate = assignmentWorkCaptureHelper.scrollForwardStartDate.getTime(); … … 185 184 .get(objectId)); 186 185 }catch (Exception e) { 187 log.error("Error occured while calendarProvider object for user" + e.getMessage());186 log.error("Error occured while getting calendarProvider object for user" + e.getMessage()); 188 187 } 189 188 for (Iterator it = dateHeaders.iterator(); it.hasNext();) { … … 282 281 dateLongName.setIsNonWorkingDay(true); 283 282 } 283 //To get total work done by user on particular day 284 TimeQuantity oldWorkForDay = (TimeQuantity)assignmentWorkCaptureHelper.summaryDateValues.get(date); 285 oldWorkForDay = (oldWorkForDay == null ? new TimeQuantity(0, TimeQuantityUnit.HOUR) : oldWorkForDay); 286 dateLongName.setOldWorkForDay(oldWorkForDay.toShortString(0, 2)); 284 287 }catch(Exception e){ 285 288 log.error("Error occured while setting non working day flag to highlight" + e.getMessage()); trunk/core/web/css/blog.css
r18326 r18347 718 718 } 719 719 #entry-time { 720 padding-top: 5px;721 padding-bottom: 10px;720 padding-top: 2px; 721 padding-bottom: 2px; 722 722 } 723 723 #entry-time .title { … … 856 856 font-size: 14px; 857 857 } 858 859 .oldWorkForDay{ 860 color: #9B5379; 861 } trunk/core/web/html/assignments/Timesheet.html
r18321 r18347 18 18 </t:if> 19 19 </span> 20 <span id="loadingDiv" class="loadingText"></span> 20 21 </div> 21 <div id="notWorkingDay" class="errorMessage" style="color: red; " width="100%"></div>22 <div id="blogErrorLocationID" class="errorMessage" style="color: red; " width="100%"></div>22 <div id="notWorkingDay" class="errorMessage" style="color: red; visibility: visible;" width="100%"></div> 23 <div id="blogErrorLocationID" class="errorMessage" style="color: red; visibility:visible;" width="100%"> </div> 23 24 24 25 <div id="timeWorkedDiv" width="100%"> … … 111 112 <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}' 112 113 name='${dateLongName.valueName}' value='${dateLongName.valueValue}' 113 onmouseout="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 114 onchange="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 115 <br/><font class="oldWorkForDay">${dateLongName.oldWorkForDay} </font> 114 116 </td> 115 117 <t:parameter name="else"> … … 118 120 <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}' 119 121 name='${dateLongName.valueName}' value='${dateLongName.valueValue}' 120 onmouseout="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 122 onchange="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 123 <br/><font class="oldWorkForDay">${dateLongName.oldWorkForDay} </font> 121 124 </td> 122 125 </t:parameter> … … 128 131 <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}' 129 132 name='${dateLongName.valueName}' value='${dateLongName.valueValue}' 130 onmouseout="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 133 onchange="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 134 <br/><font class="oldWorkForDay">${dateLongName.oldWorkForDay} </font> 131 135 </td> 132 136 <t:parameter name="else"> … … 135 139 <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}' 136 140 name='${dateLongName.valueName}' value='${dateLongName.valueValue}' 137 onmouseout="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 141 onchange="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 142 <br/><font class="oldWorkForDay">${dateLongName.oldWorkForDay} </font> 138 143 </td> 139 144 </t:parameter> … … 146 151 <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}' 147 152 name='${dateLongName.valueName}' value='${dateLongName.valueValue}' 148 onmouseout="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 153 onchange="blogItWorkChanged('${assignmentObjectId}', 'true','${dateLongName.name}','${moduleId}','${scrollType}');"/> 154 <br/><font class="oldWorkForDay">${dateLongName.oldWorkForDay} </font> 149 155 </td> 150 156 </t:parameter> … … 177 183 </t:if> 178 184 <td width="8%" id="estReported" class="table-content-estimates" nowrap="nowrap" bgcolor="#f3f3fa" style="padding-left:6px;"></td> 179 <td width="12%" class="table-content-estimates" nowrap="nowrap" bgcolor="#f3f3fa" style="padding-left:8px;"><input id="estRemaining" name="pc'+objectId+'" type="text" size="2" maxlength="5" on mouseout="estimatedRemainingChanged();" onchange="estimatedRemainingChanged();" /> hrs</td>180 <td width="12%" class="table-content-estimates" nowrap="nowrap" bgcolor="#f3f3fa" style="padding-left:8px;"><input id="totEstimated" type="text" size="2" maxlength="5" on mouseout="totalEstimatesChanged();" onchange="totalEstimatesChanged();" /> hrs</td>185 <td width="12%" class="table-content-estimates" nowrap="nowrap" bgcolor="#f3f3fa" style="padding-left:8px;"><input id="estRemaining" name="pc'+objectId+'" type="text" size="2" maxlength="5" onchange="estimatedRemainingChanged();" /> hrs</td> 186 <td width="12%" class="table-content-estimates" nowrap="nowrap" bgcolor="#f3f3fa" style="padding-left:8px;"><input id="totEstimated" type="text" size="2" maxlength="5" onchange="totalEstimatesChanged();" /> hrs</td> 181 187 <td width="10%" id="estPctComplete" class="table-content-estimates-right" nowrap="nowrap" style="padding-left:10px;"></td> 182 188 <td></td> trunk/core/web/src/blogit.js
r18346 r18347 384 384 document.getElementsByTagName('html')[0].style.overflowY = 'scroll'; 385 385 document.getElementsByTagName('body')[0].style.overflowY = 'hidden'; 386 document.getElementsByTagName('html')[0].style.overflowX = 'auto'; 386 387 } 387 388 showHtmlSelectTags(); … … 515 516 } 516 517 } 518 else if(typeof document.getElementById("timeWorkedDiv") == 'undefined' || document.getElementById("timeWorkedDiv") == null){ 519 document.getElementsByTagName('body')[0].appendChild(blogActionDiv); 520 saveBlogEntry(); 521 } 517 522 // to save blog entry without any work capture or work remaining div changes 518 523 else { 519 if(!validTimeSheet && workSubmitted != 0){524 if(!validTimeSheet){ 520 525 return false; 521 526 } trunk/core/web/src/workCapture.js
r18321 r18347 34 34 timeValues = new Array(); 35 35 timeValues = timesValueArray.split(","); 36 validTimeSheet = true; 37 } else { 38 validTimeSheet = false; 36 39 } 37 38 40 if(document.getElementById('timeSheet') != null){ 39 41 document.getElementById('timeSheet').innerHTML = timesheetHTMLText; … … 68 70 function scroll(scrollby, scrolltype) { 69 71 try{ 70 if(document.getElementById(" timecard") != null){71 document.getElementById(" timecard").innerHTML = '<tr><td>Loading Timesheet... <img src="'+JSPRootURL+'/images/default/grid/loading.gif" align="absmiddle" /></td></tr>';72 if(document.getElementById("loadingDiv") != null){ 73 document.getElementById("loadingDiv").innerHTML = 'Loading... <img src="'+JSPRootURL+'/images/default/grid/loading.gif" align="absmiddle" /></td></tr>'; 72 74 } 73 }catch(err){} 74 getTimeSheet(scrollby, scrolltype); 75 }catch(err){} getTimeSheet(scrollby, scrolltype); 75 76 } 76 77 … … 80 81 paramString = ''; 81 82 var errorMessage = ''; 82 document.getElementById("blogErrorLocationID").innerHTML = " ";83 document.getElementById("blogErrorLocationID").innerHTML = " "; 83 84 for (var i = 0; i < timeValues.length; i++) { 84 85 var element = document.getElementsByName("dateupdX" + objectId + "X" + timeValues[i]); … … 98 99 if(invalidErrorKey != ''){//invalid Error Key is get set while getting time sheet entries 99 100 errorMessage = invalidErrorKey.replace(/0/, value); 100 document.getElementById("blogErrorLocationID").innerHTML = errorMessage;101 document.getElementById("blogErrorLocationID").innerHTML = " "+errorMessage; 101 102 validTimeSheet = false; 102 103 } … … 130 131 }, 131 132 failure: function(result, response){ 132 extAlert(errorTitle, 'Server Request Failed..', Ext.MessageBox.ERROR); 133 hidePopup(); 133 document.getElementById("blogErrorLocationID").innerHTML = "Error occured while calculating total estimated hours, please try again!"; 134 //extAlert(errorTitle, 'Server Request Failed..', Ext.MessageBox.ERROR); 135 //hidePopup(); 134 136 } 135 137 }); … … 147 149 var time = ((totalToMinutes) - (totalFromMinutes)); 148 150 document.getElementById(currentbox).value = time/60; 149 document.getElementById("blogErrorLocationID").innerHTML = " ";151 document.getElementById("blogErrorLocationID").innerHTML = " "; 150 152 // getting dayTimeValue for selected timebox to change work 151 153 var dayTimeValue = document.getElementById('timesheetbox0').name.split('X')[2]; … … 177 179 function changeScrollType(scrolltype) { 178 180 try{ 179 if(document.getElementById(" timecard") != null){180 document.getElementById(" timecard").innerHTML = '<tr><td>Loading Timesheet... <img src="'+JSPRootURL+'/images/default/grid/loading.gif" align="absmiddle" /></td></tr>';181 if(document.getElementById("loadingDiv") != null){ 182 document.getElementById("loadingDiv").innerHTML = 'Loading... <img src="'+JSPRootURL+'/images/default/grid/loading.gif" align="absmiddle" /></td></tr>'; 181 183 } 182 184 }catch(err){} … … 199 201 200 202 function showErrorDiv(errorMessage) { 201 document.getElementById("blogErrorLocationID").innerHTML = errorMessage;203 document.getElementById("blogErrorLocationID").innerHTML = " "+errorMessage; 202 204 } 203 205
