Changeset 18347

Show
Ignore:
Timestamp:
11/13/08 12:16:32 (2 months ago)
Author:
avinash
Message:

blog-it :
- some work capture related changes
- now work capture time sheet will show current user's submitted work hours for a day in addition to work hours for assignment.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/core/src/net/project/resource/AssignmentWorkCaptureHelper.java

    r18321 r18347  
    3434import net.project.base.property.PropertyProvider; 
    3535import net.project.calendar.PnCalendar; 
    36 import net.project.calendar.workingtime.DateCalculatorHelper; 
    3736import net.project.calendar.workingtime.DefinitionBasedWorkingTimeCalendar; 
    3837import net.project.calendar.workingtime.IWorkingTimeCalendar; 
     
    9695            public Map dateValues; 
    9796 
    98             private Map summaryDateValues; 
     97            public Map summaryDateValues; 
    9998 
    10099            public Map assignmentMap; 
     
    213212                public Boolean isNonWorkingDay;  
    214213                 
     214                public String oldWorkForDay;  
     215                         
    215216                        /** 
    216217                         * @return the forcount 
     
    274275                        public void setIsNonWorkingDay(Boolean isNonWorkingDay) { 
    275276                                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; 
    276291                        } 
    277292            } 
     
    316331                    cal.add(PnCalendar.DATE, 1); 
    317332                    scrollForwardStartDate = cal.getTime(); 
    318                     endDate = cal.getTime(); 
     333                    endDate = cal.endOfDay(); 
    319334                } 
    320335 
     
    17061721                                        //as work logged here can be more that work that can be done between working times 
    17071722                                        Date dateStart = calendar.startOfDay(date); 
    1708  
     1723                                        Date dateEnd = calendar.endOfDay(date); 
     1724                                        map.put(id, new DateUpdate(work, dateStart, dateEnd)); 
     1725                                         
    17091726                                        WorkingTimeCalendarDefinition def = calendarProvider.getForPlanID((String) planIDMap.get(id)); 
    17101727                                        IWorkingTimeCalendar cal = new DefinitionBasedWorkingTimeCalendar(calendarProvider.getDefaultTimeZone(), def); 
     
    17181735                                                } 
    17191736                                        } 
    1720                                         Date dateEnd = calendar.endOfDay(); 
    1721                                         map.put(id, new DateUpdate(work, dateStart, dateEnd)); 
    17221737                                    } 
    17231738                                } 
  • trunk/core/src/net/project/view/pages/assignments/Timesheet.java

    r18321 r18347  
    1616import net.project.base.Module; 
    1717import net.project.base.property.PropertyProvider; 
    18 import net.project.calendar.PnCalendar; 
    1918import net.project.calendar.workingtime.DefinitionBasedWorkingTimeCalendar; 
    2019import net.project.calendar.workingtime.IWorkingTimeCalendar; 
     
    172171        invalidErrorKey = PropertyProvider.get("prm.resource.assignments.update.error.invalidwork.message", "0", "24"); 
    173172         
    174         strTDwidth = "40px"; 
     173        strTDwidth = "50px"; 
    175174        scrollBackStartDate = assignmentWorkCaptureHelper.scrollBackStartDate.getTime(); 
    176175        scrollForwardStartDate = assignmentWorkCaptureHelper.scrollForwardStartDate.getTime(); 
     
    185184                                                        .get(objectId)); 
    186185        }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()); 
    188187                } 
    189188        for (Iterator it = dateHeaders.iterator(); it.hasNext();) { 
     
    282281                                dateLongName.setIsNonWorkingDay(true);  
    283282                        } 
     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));        
    284287                }catch(Exception e){ 
    285288                        log.error("Error occured while setting non working day flag to highlight" + e.getMessage()); 
  • trunk/core/web/css/blog.css

    r18326 r18347  
    718718} 
    719719#entry-time { 
    720         padding-top: 5px; 
    721         padding-bottom: 10px; 
     720        padding-top: 2px; 
     721        padding-bottom: 2px; 
    722722} 
    723723#entry-time .title { 
     
    856856        font-size: 14px; 
    857857} 
     858 
     859.oldWorkForDay{ 
     860        color: #9B5379; 
     861} 
  • trunk/core/web/html/assignments/Timesheet.html

    r18321 r18347  
    1818                                                        </t:if> 
    1919                                                        </span> 
     20                                                        <span id="loadingDiv" class="loadingText"></span> 
    2021                                                </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%">&nbsp;</div> 
    2324                                                 
    2425                                                <div id="timeWorkedDiv" width="100%"> 
     
    111112                                                                                                <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}'  
    112113                                                                                                                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> 
    114116                                                                                        </td> 
    115117                                                                                                        <t:parameter name="else"> 
     
    118120                                                                                                        <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}'  
    119121                                                                                                                        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> 
    121124                                                                                                </td> 
    122125                                                                                                        </t:parameter> 
     
    128131                                                                                                        <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}'  
    129132                                                                                                                        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> 
    131135                                                                                                </td> 
    132136                                                                                                <t:parameter name="else"> 
     
    135139                                                                                                        <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}'  
    136140                                                                                                                        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> 
    138143                                                                                                </td> 
    139144                                                                                                </t:parameter> 
     
    146151                                                                                        <input type='text' size='1' maxlength='5' id='timesheetbox${dateLongName.forcount}'  
    147152                                                                                                        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> 
    149155                                                                                </td> 
    150156                                                                        </t:parameter> 
     
    177183                                                        </t:if> 
    178184                                                                <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" onmouseout="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" onmouseout="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> 
    181187                                                                        <td width="10%" id="estPctComplete" class="table-content-estimates-right" nowrap="nowrap" style="padding-left:10px;"></td> 
    182188                                                                        <td></td> 
  • trunk/core/web/src/blogit.js

    r18346 r18347  
    384384                        document.getElementsByTagName('html')[0].style.overflowY = 'scroll'; 
    385385                        document.getElementsByTagName('body')[0].style.overflowY = 'hidden'; 
     386                        document.getElementsByTagName('html')[0].style.overflowX = 'auto'; 
    386387                } 
    387388                showHtmlSelectTags(); 
     
    515516                                } 
    516517                        } 
     518                        else if(typeof document.getElementById("timeWorkedDiv") == 'undefined' || document.getElementById("timeWorkedDiv") == null){ 
     519                                document.getElementsByTagName('body')[0].appendChild(blogActionDiv); 
     520                                saveBlogEntry(); 
     521                        } 
    517522                        // to save blog entry without any work capture or work remaining div changes 
    518523                        else { 
    519                                 if(!validTimeSheet && workSubmitted != 0){ 
     524                                if(!validTimeSheet){ 
    520525                                        return false; 
    521526                                } 
  • trunk/core/web/src/workCapture.js

    r18321 r18347  
    3434                                        timeValues = new Array(); 
    3535                                    timeValues = timesValueArray.split(","); 
     36                                    validTimeSheet = true; 
     37                            } else { 
     38                                validTimeSheet = false; 
    3639                            } 
    37                                                          
    3840                                if(document.getElementById('timeSheet') != null){ 
    3941                                        document.getElementById('timeSheet').innerHTML = timesheetHTMLText;                                      
     
    6870function scroll(scrollby, scrolltype) { 
    6971        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>'; 
    7274                } 
    73         }catch(err){} 
    74         getTimeSheet(scrollby, scrolltype); 
     75        }catch(err){}   getTimeSheet(scrollby, scrolltype); 
    7576} 
    7677 
     
    8081        paramString = ''; 
    8182        var errorMessage = ''; 
    82     document.getElementById("blogErrorLocationID").innerHTML = ""; 
     83    document.getElementById("blogErrorLocationID").innerHTML = "&nbsp;"; 
    8384    for (var i = 0; i < timeValues.length; i++) { 
    8485                var element = document.getElementsByName("dateupdX" + objectId + "X" + timeValues[i]); 
     
    9899                                if(invalidErrorKey != ''){//invalid Error Key is get set while getting time sheet entries 
    99100                                        errorMessage = invalidErrorKey.replace(/0/, value); 
    100                                         document.getElementById("blogErrorLocationID").innerHTML = errorMessage; 
     101                                        document.getElementById("blogErrorLocationID").innerHTML = "&nbsp;"+errorMessage; 
    101102                                        validTimeSheet = false; 
    102103                                } 
     
    130131           }, 
    131132           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(); 
    134136           } 
    135137        }); 
     
    147149                var time = ((totalToMinutes) - (totalFromMinutes)); 
    148150                document.getElementById(currentbox).value = time/60; 
    149                 document.getElementById("blogErrorLocationID").innerHTML = ""; 
     151                document.getElementById("blogErrorLocationID").innerHTML = "&nbsp;"; 
    150152                // getting dayTimeValue for selected timebox to change work 
    151153                var dayTimeValue = document.getElementById('timesheetbox0').name.split('X')[2]; 
     
    177179function changeScrollType(scrolltype) { 
    178180        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>'; 
    181183                } 
    182184        }catch(err){} 
     
    199201 
    200202function showErrorDiv(errorMessage) { 
    201         document.getElementById("blogErrorLocationID").innerHTML = errorMessage; 
     203        document.getElementById("blogErrorLocationID").innerHTML = "&nbsp;"+errorMessage; 
    202204} 
    203205