Changeset 17860

Show
Ignore:
Timestamp:
08/08/08 07:39:58 (2 months ago)
Author:
anarancio
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/core/src/net/project/view/components/DashboardLayout.java

    r17843 r17860  
    11package net.project.view.components; 
     2 
     3import java.util.Calendar; 
     4import java.util.Date; 
    25 
    36import javax.servlet.http.HttpServletRequest; 
     
    58import net.project.base.Module; 
    69import net.project.base.property.PropertyProvider; 
     10import net.project.calendar.PnCalendar; 
     11import net.project.security.Action; 
    712import net.project.security.SessionManager; 
    813import net.project.space.Space; 
     
    1823 
    1924public class DashboardLayout { 
    20      
     25 
    2126    private static Logger log = Logger.getLogger(DashboardLayout.class); 
    2227 
    2328    @ApplicationState 
    2429    private String jSPRootURL; 
    25      
    26     @Persist  
    27     private String versionNumber;  
     30 
     31    @Persist 
     32    private String versionNumber; 
    2833 
    2934    @Persist 
     
    3237    @Inject 
    3338    private RequestGlobals globals; 
    34      
     39 
    3540    @Persist 
    3641    private String spaceType; 
    37      
     42 
    3843    public DashboardLayout() { 
    3944        try { 
     
    4146                    .get("prm.global.application.title"); 
    4247        } catch (Exception ex) { 
    43             log.error("Error occured while getting property values in Layout page : "+ex.getMessage());          
     48            log 
     49                    .error("Error occured while getting property values in Layout page : " 
     50                            + ex.getMessage()); 
    4451        } 
    4552    } 
    46      
     53 
    4754    @SetupRender 
    4855    void setValues() { 
    4956        jSPRootURL = SessionManager.getJSPRootURL(); 
    50         versionNumber = StringUtils.deleteWhitespace(Version.getInstance().getAppVersion()); 
     57        versionNumber = StringUtils.deleteWhitespace(Version.getInstance() 
     58                .getAppVersion()); 
    5159        HttpServletRequest request = globals.getHTTPServletRequest(); 
    52          
     60 
    5361        String module = request.getParameter("module"); 
    54         //spaceType = SessionManager.getUser().getCurrentSpace().getType(); 
    55         if (module != null && !module.equalsIgnoreCase("null"))
    56             if(module.equals(""+Module.PERSONAL_SPACE)) { 
     62        // spaceType = SessionManager.getUser().getCurrentSpace().getType(); 
     63        if (module != null && !module.equalsIgnoreCase("null"))
     64            if (module.equals("" + Module.PERSONAL_SPACE)) { 
    5765                spaceType = Space.PERSONAL_SPACE; 
    58             } else if(module.equals(""+Module.PROJECT_SPACE)) { 
     66            } else if (module.equals("" + Module.PROJECT_SPACE)) { 
    5967                spaceType = Space.PROJECT_SPACE; 
    6068            } 
    6169        } 
    62          
    63         log.info("REQUEST: "+request); 
     70 
     71        log.info("REQUEST: " + request); 
    6472    } 
    6573 
     
    7280 
    7381    /** 
    74      * @param application_title 
    75      *            The application_title to set. 
     82     * @param application_title The application_title to set. 
    7683     */ 
    7784    public void setApplication_title(String application_title) { 
     
    8592        return versionNumber; 
    8693    } 
    87      
     94 
    8895    public String getJSPRootURL() { 
    8996        return jSPRootURL; 
    9097    } 
    91      
     98 
    9299    public String getSpaceType() { 
    93100        return spaceType; 
    94101    } 
    95102 
     103    public String getActualDate() { 
     104        Date actual = new Date(); 
     105        return SessionManager.getUser().getDateFormatter().formatDate(actual, 
     106                "M/d/yy"); 
     107    } 
     108 
     109    public String getWeekLaterDate() { 
     110        Calendar c = Calendar.getInstance(); 
     111        c.add(Calendar.DAY_OF_MONTH, 7); 
     112        return SessionManager.getUser().getDateFormatter().formatDate( 
     113                c.getTime(), "M/d/yy"); 
     114    } 
     115 
     116    public String getSpaceId() { 
     117        return SessionManager.getUser().getCurrentSpace().getID(); 
     118    } 
     119 
     120    public int getProcessModule() { 
     121        return Module.PROCESS; 
     122    } 
     123 
     124    public int getActionView() { 
     125        return Action.VIEW; 
     126    } 
     127 
     128    public long getStartOfMonth() { 
     129        PnCalendar calendar = new PnCalendar(); 
     130        return calendar.startOfMonth(new Date()).getTime(); 
     131    } 
     132     
     133    public String getViewPhaseParams() { 
     134        return "&module=" + Module.PROCESS + "&action=" + Action.VIEW; 
     135    } 
     136     
     137    public String getShowResourceAllocationParams() { 
     138        return "&module=140&startDate=" + this.getStartOfMonth(); 
     139    } 
     140     
    96141} 
  • trunk/core/src/net/project/view/pages/project/ViewProject.java

    r17842 r17860  
    55 
    66import java.util.ArrayList; 
     7import java.util.Calendar; 
     8import java.util.Date; 
     9import java.util.Iterator; 
    710import java.util.List; 
    811 
    912import net.project.base.Module; 
    10 import net.project.calendar.MyMeetings; 
     13import net.project.hibernate.model.project_space.ObjectChanged; 
     14import net.project.hibernate.model.project_space.ProjectChanges; 
     15import net.project.hibernate.model.project_space.ProjectPhase; 
    1116import net.project.hibernate.model.project_space.ProjectSchedule; 
     17import net.project.hibernate.model.project_space.Teammate; 
     18import net.project.hibernate.service.IPnAssignmentService; 
    1219import net.project.hibernate.service.IPnProjectSpaceService; 
    1320import net.project.hibernate.service.ServiceFactory; 
     
    2734public class ViewProject { 
    2835         
    29     private static Logger log = Logger.getLogger(ViewProject.class); 
     36       private static Logger log = Logger.getLogger(ViewProject.class); 
    3037 
    3138    private String jspRootURL; 
     
    6774 
    6875    private String meeting; 
     76 
     77    @Persist 
     78    private List<ObjectChanged> documents; 
     79 
     80    private ObjectChanged document; 
     81 
     82    @Persist 
     83    private List<TeammateWrapper> teammates; 
     84 
     85    private TeammateWrapper teammate; 
     86 
     87    @Persist 
     88    private List<ProjectPhaseWrapper> phases; 
     89 
     90    private ProjectPhaseWrapper phase; 
     91 
     92    private PnTaskWrapper milestone; 
    6993 
    7094    @Inject 
     
    129153    void setValues() { 
    130154        try { 
    131             projectId = requestGlobals.getHTTPServletRequest().getParameter("id"); 
     155            projectId = requestGlobals.getHTTPServletRequest().getParameter( 
     156                    "id"); 
    132157            projectSpace = new ProjectSpaceBean(); 
    133158            projectSpace.setID(projectId); 
     
    190215            } 
    191216 
    192             MyMeetings myMeetings = new MyMeetings(); 
    193             myMeetings.setUser(SessionManager.getUser()); 
    194             myMeetings.loadEntries(); 
    195  
    196             // meetings = myMeetings.getMeetingList(); 
    197217            meetings = new ArrayList<String>(); 
    198             meetings.add("uno"); 
    199             meetings.add("dos"); 
     218 
     219            /* 
     220            meetings.add("UNO"); 
     221            meetings.add("DOS"); 
     222            meetings.add("TRES"); 
     223            */ 
     224 
     225            IPnProjectSpaceService projectSpaceService = ServiceFactory 
     226                    .getInstance().getPnProjectSpaceService(); 
     227            ProjectChanges changes = projectSpaceService.getProjectChanges( 
     228                    Integer.parseInt(projectSpace.getID()), 7); 
     229            documents = changes.getDocuments(); 
     230 
     231            Calendar c = Calendar.getInstance(); 
     232            Date start = c.getTime(); 
     233            c.add(Calendar.MONTH, 3); 
     234            Date finish = c.getTime(); 
     235 
     236            IPnAssignmentService assignmentService = ServiceFactory 
     237                    .getInstance().getPnAssignmentService(); 
     238            List<Teammate> auxTeammates = assignmentService 
     239                    .getAssignmentsByPersonForProject(Integer 
     240                            .parseInt(projectSpace.getID()), start, finish); 
     241            teammates = new ArrayList<TeammateWrapper>(); 
     242            Iterator<Teammate> iTeammates = auxTeammates.iterator(); 
     243            while (iTeammates.hasNext()) { 
     244                teammates.add(new TeammateWrapper(iTeammates.next())); 
     245            } 
     246 
     247            List<ProjectPhase> phasesAux = projectSpaceService 
     248                    .getProjectPhasesAndMilestones(Integer 
     249                            .parseInt(projectSpace.getID())); 
     250            phases = new ArrayList<ProjectPhaseWrapper>(); 
     251            Iterator<ProjectPhase> iPhases = phasesAux.iterator(); 
     252            while (iPhases.hasNext()) { 
     253                phases.add(new ProjectPhaseWrapper(iPhases.next())); 
     254            } 
     255 
    200256        } catch (Exception e) { 
    201257 
     
    287343        return meetings; 
    288344    } 
    289      
     345 
    290346    public void setMeetings(List<String> meetings) { 
    291347        this.meetings = meetings; 
     
    299355        this.meeting = meeting; 
    300356    } 
     357 
     358    public List<ObjectChanged> getDocuments() { 
     359        return documents; 
     360    } 
     361 
     362    public void setDocuments(List<ObjectChanged> documents) { 
     363        this.documents = documents; 
     364    } 
     365 
     366    public ObjectChanged getDocument() { 
     367        return document; 
     368    } 
     369 
     370    public void setDocument(ObjectChanged document) { 
     371        this.document = document; 
     372    } 
     373 
     374    public List<TeammateWrapper> getTeammates() { 
     375        return teammates; 
     376    } 
     377 
     378    public void setTeammates(List<TeammateWrapper> teammates) { 
     379        this.teammates = teammates; 
     380    } 
     381 
     382    public TeammateWrapper getTeammate() { 
     383        return teammate; 
     384    } 
     385 
     386    public void setTeammate(TeammateWrapper teammate) { 
     387        this.teammate = teammate; 
     388    } 
     389 
     390    public List<ProjectPhaseWrapper> getPhases() { 
     391        return phases; 
     392    } 
     393 
     394    public void setPhases(List<ProjectPhaseWrapper> phases) { 
     395        this.phases = phases; 
     396    } 
     397 
     398    public ProjectPhaseWrapper getPhase() { 
     399        return phase; 
     400    } 
     401 
     402    public void setPhase(ProjectPhaseWrapper phase) { 
     403        this.phase = phase; 
     404    } 
     405 
     406    public PnTaskWrapper getMilestone() { 
     407        return milestone; 
     408    } 
     409 
     410    public void setMilestone(PnTaskWrapper milestone) { 
     411        this.milestone = milestone; 
     412    } 
     413     
     414    public boolean getImprovementCode() { 
     415        return projectSpace.getImprovementCode() != null; 
     416    } 
     417     
     418    public String getImprovementCodeUrl() { 
     419        return projectSpace.getImprovementCode().getImageURL(projectSpace.getColorCode()); 
     420    } 
     421     
     422    public boolean getFinancialStatusCode() { 
     423        return projectSpace.getFinancialStatusColorCode() != null; 
     424    } 
     425    public String getFinancialStatusCodeUrl() { 
     426        return projectSpace.getImprovementCode().getImageURL(projectSpace.getFinancialStatusColorCode()); 
     427    } 
     428     
     429    public boolean getScheduleStatusCode() { 
     430        return projectSpace.getScheduleStatusColorCode() != null; 
     431    } 
     432     
     433    public String getScheduleStatusCodeUrl() { 
     434        return projectSpace.getImprovementCode().getImageURL(projectSpace.getScheduleStatusColorCode()); 
     435    } 
     436     
     437    public boolean getResourceStatusCode() { 
     438        return projectSpace.getResourceStatusColorCode() != null; 
     439    } 
     440     
     441    public String getResourceStatusCodeUrl() { 
     442        return projectSpace.getImprovementCode().getImageURL(projectSpace.getResourceStatusColorCode()); 
     443    } 
    301444         
    302445} 
  • trunk/core/web/html/project/ViewProject.html

    r17842 r17860  
    5858                                            <tr> 
    5959                                                <td> 
     60                                                    <t:if test="improvementCode"> 
     61                                                        <img src="${jspRootURL}${improvementCodeUrl}" /> 
     62                                                    </t:if> 
    6063                                                </td> 
    6164                                                <td> 
     65                                                    <t:if test="financialStatusCode"> 
     66                                                        <img src="${jspRootURL}${financialStatusCodeUrl}" /> 
     67                                                    </t:if> 
    6268                                                </td> 
    6369                                                <td> 
     70                                                    <t:if test="scheduleStatusCode"> 
     71                                                        <img src="${jspRootURL}${scheduleStatusCodeUrl}" /> 
     72                                                    </t:if> 
    6473                                                </td> 
    6574                                                <td> 
     75                                                    <t:if test="resourceStatusCode"> 
     76                                                        <img src="${jspRootURL}${resourceStatusCode}" /> 
     77                                                    </t:if> 
    6678                                                </td> 
    6779                                            </tr> 
     
    8092                                                    <tr class="channelHeader"> 
    8193                                                        <td class="channelHeader" width="1%"> 
    82                                                             <img src="/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     94                                                            <img src="${jspRootURL}/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    8395                                                        </td> 
    8496                                                        <td nowrap="true" class="channelHeader">Project News</td> 
    8597                                                        <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
    8698                                                        <td align="right" class="channelHeader" width="5%"> 
    87                                                             <img src="/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     99                                                            <img src="${jspRootURL}/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    88100                                                        </td> 
    89101                                                    </tr> 
     
    110122                                                    <tr class="channelHeader"> 
    111123                                                        <td class="channelHeader" width="1%"> 
    112                                                             <img src="/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    113                                                         </td> 
    114                                                         <td nowrap="true" class="channelHeader">Upcoming Meetings</td> 
     124                                                            <img src="${jspRootURL}/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     125                                                        </td> 
     126                                                        <td nowrap="true" class="channelHeader">Changes Within 7 Days</td> 
    115127                                                        <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
    116128                                                        <td align="right" class="channelHeader" width="5%"> 
    117                                                             <img src="/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     129                                                            <img src="${jspRootURL}/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    118130                                                        </td> 
    119131                                                    </tr> 
     
    124136                                                                <tr class="tableContent" align="left"> 
    125137                                                                    <td class="tableContent" colspan="5"> 
    126                                                                         <table t:type="loop" source="${meetings}" value="meeting"> 
    127                                                                         </table> 
     138                                                                        <div t:type="loop" t:source="documents" t:value="document"> 
     139                                                                            ${document.objectName} 
     140                                                                        </div> 
    128141                                                                    </td> 
    129142                                                                </tr> 
     
    143156                                                    <tr class="channelHeader"> 
    144157                                                        <td class="channelHeader" width="1%"> 
    145                                                             <img src="/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    146                                                         </td> 
    147                                                         <td nowrap="true" class="channelHeader">Changes Within 7 Days</td> 
     158                                                            <img src="${jspRootURL}/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     159                                                        </td> 
     160                                                        <td nowrap="true" class="channelHeader">Upcoming Meetings</td> 
    148161                                                        <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
    149162                                                        <td align="right" class="channelHeader" width="5%"> 
    150                                                             <img src="/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     163                                                            <img src="${jspRootURL}/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    151164                                                        </td> 
    152165                                                    </tr> 
     
    157170                                                                <tr class="tableContent" align="left"> 
    158171                                                                    <td class="tableContent" colspan="5"> 
    159                                                                         <table t:type="loop" source="${meetings}" value="meeting"> 
    160                                                                         </table> 
     172                                                                        <div t:type="loop" source="meetings" value="meeting"> 
     173                                                                            ${meeting}<br /> 
     174                                                                        </div> 
    161175                                                                    </td> 
    162176                                                                </tr> 
     
    182196                                        <span id="project_schedule_title">Schedule</span><br /> 
    183197                                        <div id="project_schedule"> 
    184                                             <table cellspacing="5" cellpadding="0" style="font-size: small;"> 
    185                                                 <tr> 
    186                                                     <td></td> 
    187                                                     <td><b>Start</b></td> 
    188                                                     <td><b>Finish</b></td> 
    189                                                 </tr> 
    190                                                 <tr> 
    191                                                     <td><b>Planned:</b></td> 
    192                                                     <td>${startDate}</td> 
    193                                                     <td>${finishDate}</td> 
    194                                                 </tr> 
    195                                                 <tr> 
    196                                                     <td><b>Actual:</b></td> 
    197                                                     <td>${startActualDate}</td> 
    198                                                     <td>${finishActualDate}</td> 
    199                                                 </tr> 
    200                                             </table> 
     198                                            <div style="width: 100%;"> 
     199                                                <div style="float: right;"> 
     200                                                    <a href="javascript:showReport('ltr')">${numberLateTasks} late tasks</a><br /> 
     201                                                    <a href="javascript:showReport('tcdr')">${numberComingDueTasks} tasks coming due this week</a><br /> 
     202                                                    <a href="javascript:showReport('unassigned')">${numberUnassignedTasks} unassigned tasks</a><br /> 
     203                                                    <a href="javascript:showReport('wcr')">${numberCompletedTasks} tasks completed</a><br /> 
     204                                                </div> 
     205                                                <div style="float: left;"> 
     206                                                    <table cellspacing="5" cellpadding="0" style="font-size: small;"> 
     207                                                        <tr> 
     208                                                            <td></td> 
     209                                                            <td><b>Start</b></td> 
     210                                                            <td><b>Finish</b></td> 
     211                                                        </tr> 
     212                                                        <tr> 
     213                                                            <td><b>Planned:</b></td> 
     214                                                            <td>${startDate}</td>    
     215                                                            <td>${finishDate}</td> 
     216                                                        </tr> 
     217                                                        <tr> 
     218                                                            <td><b>Actual:</b></td> 
     219                                                            <td>${startActualDate}</td> 
     220                                                            <td>${finishActualDate}</td> 
     221                                                        </tr> 
     222                                                    </table> 
     223                                                </div> 
     224                                            </div> 
    201225                                            <br /><p /> 
    202                                             <a href="javascript:showReport('ltr')">${numberLateTasks} late tasks</a><br /> 
    203                                             <a href="javascript:showReport('tcdr')">${numberComingDueTasks} tasks coming due this week</a><br /> 
    204                                             <a href="javascript:showReport('unassigned')">${numberUnassignedTasks} unassigned tasks</a><br /> 
    205                                             <a href="javascript:showReport('wcr')">${numberCompletedTasks} tasks completed</a><br /> 
    206226                                        </div> 
    207227                                    </div> 
     
    215235                                                        <tr class="channelHeader"> 
    216236                                                            <td class="channelHeader" width="1%"> 
    217                                                                 <img src="/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     237                                                                <img src="${jspRootURL}/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    218238                                                            </td> 
    219239                                                            <td nowrap="true" class="channelHeader">Phases and Milestones</td> 
    220240                                                            <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
    221241                                                            <td align="right" class="channelHeader" width="5%"> 
    222                                                                 <img src="/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     242                                                                <img src="${jspRootURL}/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    223243                                                            </td> 
    224244                                                        </tr> 
     
    229249                                                                    <tr class="tableContent" align="left"> 
    230250                                                                        <td class="tableContent" colspan="5"> 
    231                                                                             <table t:type="loop" source="${meetings}" value="meeting"> 
     251                                                                            <table cellspacing="0" cellpadding="0" width="100%"> 
     252                                                                                <tr class="tableHeader"> 
     253                                                                                    <td class="tableHeader">Name</td> 
     254                                                                                    <td class="tableHeader">End Date</td> 
     255                                                                                    <td class="tableHeader">Status</td> 
     256                                                                                    <td class="tableHeader">Progress</td> 
     257                                                                                </tr> 
     258                                                                                <t:loop source="phases" value="phase"> 
     259                                                                                    <tr class="tableLine"> 
     260                                                                                        <td colspan="4" class="tableLine"><img src="${jspRootURL}/images/spacers/trans.gif" width="1" height="2" border="0" /></td> 
     261                                                                                    </tr> 
     262                                                                                    <tr> 
     263                                                                                        <td class="tableContent"><a href="${jspRootURL}${phase.url}">${phase.name}</a>&nbsp;</td> 
     264                                                                                        <td class="tableContent">&nbsp;${phase.endDate}</td> 
     265                                                                                        <td class="tableContent">${phase.status}&nbsp;</td> 
     266                                                                                        <td class="tableContent"> 
     267                                                                                            <table> 
     268                                                                                                <tr> 
     269                                                                                                    <td> 
     270                                                                                                        <div style="width: 100px;"> 
     271                                                                                                            <table border="1" width="100" height="10" cellspacing="0" cellpadding="0"> 
     272                                                                                                                <tr> 
     273                                                                                                                    <td bgcolor="#FFFFFF" title="${phase.percentComplete}%"> 
     274                                                                                                                        <img src="${jspRootURL}/images/lgreen.gif" width="${phase.percentComplete}" height="10"/> 
     275                                                                                                                    </td> 
     276                                                                                                                </tr> 
     277                                                                                                            </table> 
     278                                                                                                        </div> 
     279                                                                                                    </td> 
     280                                                                                                    <td style="font-size: small;"> 
     281                                                                                                        ${phase.percentComplete}% 
     282                                                                                                    </td> 
     283                                                                                                </tr> 
     284                                                                                            </table> 
     285                                                                                        </td> 
     286                                                                                    </tr> 
     287                                                                                </t:loop> 
    232288                                                                            </table> 
    233289                                                                        </td> 
     
    248304                                                        <tr class="channelHeader"> 
    249305                                                            <td class="channelHeader" width="1%"> 
    250                                                                 <img src="/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     306                                                                <img src="${jspRootURL}/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    251307                                                            </td> 
    252308                                                            <td nowrap="true" class="channelHeader">Subprojects</td> 
    253309                                                            <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
    254310                                                            <td align="right" class="channelHeader" width="5%"> 
    255                                                                 <img src="/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     311                                                                <img src="${jspRootURL}/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    256312                                                            </td> 
    257313                                                        </tr> 
     
    296352                                                <tr class="channelHeader"> 
    297353                                                    <td class="channelHeader" width="1%"> 
    298                                                         <img src="/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     354                                                        <img src="${jspRootURL}/images/icons/channelbar-left_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    299355                                                    </td> 
    300356                                                    <td nowrap="true" class="channelHeader">Teammates</td> 
    301357                                                    <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
    302358                                                    <td align="right" class="channelHeader" width="5%"> 
    303                                                         <img src="/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
     359                                                        <img src="${jspRootURL}/images/icons/channelbar-right_end.gif" width="8" height="15" alt="" border="0" hspace="0" vspace="0" /> 
    304360                                                    </td> 
    305361                                                </tr> 
     
    310366                                                            <tr class="tableContent" align="left"> 
    311367                                                                <td class="tableContent" colspan="5"> 
    312                                                                     <table t:type="loop" source="${meetings}" value="meeting"> 
     368                                                                    <table cellspacing="0" cellpadding="0" width="100%"> 
     369                                                                        <tr class="tableHeader"> 
     370                                                                            <td class="tableHeader"> 
     371                                                                                Name 
     372                                                                            </td> 
     373                                                                            <td colspan="2" class="tableHeader"> 
     374                                                                                <center> 
     375                                                                                    Assignments 
     376                                                                                </center> 
     377                                                                            </td> 
     378                                                                        </tr> 
     379                                                                        <t:loop source="teammates" value="teammate"> 
     380                                                                            <tr class="tableLine"> 
     381                                                                                <td colspan="3" class="tableLine"><img src="/images/space