Changeset 18298

Show
Ignore:
Timestamp:
11/04/08 12:47:37 (2 months ago)
Author:
avinash
Message:

blog-it - work capture UI changes as per Dorothy mock up

Files:

Legend:

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

    r18241 r18298  
    2626import javax.servlet.http.HttpSession; 
    2727 
    28 import net.project.base.Module; 
    2928import net.project.base.ObjectType; 
    3029import net.project.base.PnetRuntimeException; 
     
    8988            private Date endDate; 
    9089 
    91             private List dateHeaders; 
    92  
    93             private List dateLongNames; 
     90            public List dateHeaders; 
     91 
     92            public List dateLongNames; 
    9493 
    9594            private List assignments; 
    9695 
    97             private Map dateValues; 
     96            public Map dateValues; 
    9897 
    9998            private Map summaryDateValues; 
     
    111110            private TimeQuantity currentWork = assnWork; 
    112111 
    113             private Date scrollBackStartDate; 
    114  
    115             private Date scrollForwardStartDate; 
     112            public Date scrollBackStartDate; 
     113 
     114            public Date scrollForwardStartDate; 
    116115 
    117116                private String objectId; 
     
    124123 
    125124                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                         
    126172            } 
    127173             
    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> &nbsp; week\n"; 
    184                 } else { 
    185                     timeSheetTable += "\t\t\t\t day &nbsp; <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>&nbsp;<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             
    286223            /** 
    287224                 * Return the String as array for time values as array in blogit.js for some validations  
     
    326263                } 
    327264 
    328  
    329265                // Get the column headers for each day 
    330266                getDateHeaders(scrollType); 
     
    508444             * assignments. 
    509445             */  
    510             public void getAssignments(String objectID1) throws PersistenceException { 
     446            public List getAssignments(String objectID1) throws PersistenceException { 
    511447                String objectID = objectID1; 
    512448                String[] objectIDList = { objectID1 }; 
     
    719655                    } 
    720656                } 
     657                return assignments; 
    721658            } 
    722659             
     
    17121649                                        WorkingTimeCalendarDefinition def = calendarProvider.getForPlanID((String) planIDMap.get(id)); 
    17131650                                        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                                                } 
    17161665                                        } 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                                                }                                  
    17221672                                        } 
    17231673                                        DateCalculatorHelper dateCalculatorHelper = new DateCalculatorHelper((DefinitionBasedWorkingTimeCalendar) cal); 
  • trunk/core/src/net/project/view/pages/assignments/MyAssignments.java

    r18241 r18298  
    352352                        } 
    353353                         
    354                         // Action To generate the time sheet enteries from database ,if exist 
    355                         // otherwise generate a blank time sheet div for js and return 
    356                         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                         } 
    373354                        // Action to update the time sheet entries  
    374355                        // Return js call : an error message call if error found 
     
    448429                try { 
    449430                        if (childTaskList.equals("-1")) { 
    450                                 blogEntries.setMessage("No blog entries for this object!"); 
     431                                blogEntries.setMessage("No blog entries for this object"); 
    451432                                blogEntries.setUserWeblogEntries(null); 
    452433                                blogEntries.setTotalWorkDone(""); 
  • trunk/core/src/net/project/view/pages/assignments/Timesheet.java

    r18131 r18298  
    44package net.project.view.pages.assignments; 
    55 
     6import java.text.ParseException; 
     7import java.text.SimpleDateFormat; 
    68import java.util.ArrayList; 
    79import java.util.Calendar; 
     10import java.util.Date; 
     11import java.util.Iterator; 
    812import java.util.List; 
    913 
    1014import javax.servlet.http.HttpServletRequest; 
    1115 
     16import net.project.base.Module; 
     17import net.project.base.property.PropertyProvider; 
     18import net.project.form.assignment.FormAssignment; 
     19import net.project.resource.ActivityAssignment; 
     20import net.project.resource.Assignment; 
     21import net.project.resource.AssignmentWorkCaptureHelper; 
     22import net.project.resource.ScheduleEntryAssignment; 
     23import net.project.resource.AssignmentWorkCaptureHelper.DateHeader; 
     24import net.project.resource.AssignmentWorkCaptureHelper.DateLongName; 
     25import net.project.resource.mvc.handler.AssignmentDate; 
    1226import net.project.security.SessionManager; 
    1327import net.project.util.DateFormat; 
     28import net.project.util.NumberFormat; 
     29import net.project.util.TimeQuantity; 
     30import net.project.util.TimeQuantityUnit; 
    1431 
    1532import org.apache.commons.lang.StringUtils; 
     
    4764        @Inject 
    4865        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; 
    49104 
    50105        public void onActivate() { 
     
    54109 
    55110                JSPRootURL = SessionManager.getJSPRootURL(); 
     111                moduleId = Module.PERSONAL_SPACE; 
    56112 
    57113                HttpServletRequest request = requestGlobals.getHTTPServletRequest(); 
     
    64120                date = userDateFormat.formatDate(Calendar.getInstance().getTime(), "EEEEE, MMM dd, yyyy"); 
    65121 
    66                 hoursModel = new ArrayList<String>(); 
     122                /*hoursModel = new ArrayList<String>(); 
    67123                for (int hourIndex = 1; hourIndex <= 12; hourIndex++) { 
    68124                        hoursModel.add(hourIndex < 10 ? "0" + hourIndex : "" + hourIndex); 
     
    72128                for (int minuteIndex = 0; minuteIndex <= 59; minuteIndex++) { 
    73129                        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                        } 
    74147                } 
    75148        } 
    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     
    77248        /** 
    78249         * @return the fromHours 
     
    138309        } 
    139310 
     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 
    140444} 
  • trunk/core/web/css/blog.css

    r18241 r18298  
    2525        padding: 0px; 
    2626        z-index: 12; 
     27         
    2728} 
    2829#blogPopupbody { 
     
    142143        font-family: Arial,Helvetica; 
    143144} 
    144 .timeSheetHeader { 
    145         background-color: #FFFFFF; 
    146         color: #666666; 
    147         font-weight: bold; 
    148         font-size: 12px; 
    149 } 
    150145.setTitle{ 
    151146        font-family: Arial,Verdana,Helvetica; 
     
    513508        font-size: 12px; 
    514509} 
     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;