Changeset 17842

Show
Ignore:
Timestamp:
08/07/08 08:00:01 (1 month ago)
Author:
int_ro
Message:

--

Files:

Legend:

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

    r17828 r17842  
    44package net.project.view.pages.project; 
    55 
     6import java.util.ArrayList; 
     7import java.util.List; 
     8 
     9import net.project.base.Module; 
     10import net.project.calendar.MyMeetings; 
     11import net.project.hibernate.model.project_space.ProjectSchedule; 
     12import net.project.hibernate.service.IPnProjectSpaceService; 
    613import net.project.hibernate.service.ServiceFactory; 
    714import net.project.project.ProjectSpaceBean; 
    815import net.project.security.SessionManager; 
    9  
     16import net.project.util.DateFormat; 
     17 
     18import org.apache.log4j.Logger; 
     19import org.apache.tapestry.annotations.Inject; 
     20import org.apache.tapestry.annotations.Persist; 
     21import org.apache.tapestry.annotations.SetupRender; 
    1022import org.apache.tapestry.services.RequestGlobals; 
    1123 
     
    1527public class ViewProject { 
    1628         
    17         private String jspRootURL; 
    18          
    19         private ProjectSpaceBean projectSpace; 
    20          
    21         private String projectName; 
    22          
    23         private String projectDescription; 
    24          
    25         private String projectManager; 
    26          
    27         private String projectStatus; 
    28          
    29         private String percent; 
    30          
    31         private int peopleAssigned; 
    32          
    33         private RequestGlobals requestGlobals; 
    34  
    35         /** 
    36          * default constructor 
    37          */ 
    38         public ViewProject() { 
    39                 jspRootURL = SessionManager.getJSPRootURL(); 
    40                 try{ 
    41                         projectSpace = new ProjectSpaceBean(); 
    42                         projectSpace.setID("8980"); 
    43                     projectSpace.load(); 
    44                      
    45                     projectName = net.project.util.HTMLUtils.escape(projectSpace.getName()); 
    46                         projectDescription = net.project.util.HTMLUtils.escape(projectSpace.getDescription()); 
    47                         projectManager = projectSpace.getMetaData().getProperty("ProjectManager"); 
    48                         projectStatus = net.project.util.HTMLUtils.escape(projectSpace.getStatus()); 
    49                          
    50                         percent = projectSpace.getPercentComplete(); 
    51                          
    52                         peopleAssigned = ServiceFactory.getInstance().getPnPersonService().getPersonsByProjectId(Integer.parseInt(projectSpace.getID())).size(); 
    53                 }catch(Exception e) { 
    54                          
    55                 } 
    56         } 
    57          
    58         public RequestGlobals getRequestGlobals() { 
    59                 return requestGlobals; 
    60         } 
    61          
    62         public void setRequestGlobals(RequestGlobals rg) { 
    63                 requestGlobals = rg; 
    64         } 
    65  
    66         /** 
    67          * Method called on page activation 
    68          */ 
    69         void onActivate() { 
    70                  
    71         } 
    72          
    73          
    74          
    75         /** 
    76          * Method called on page activation with single parameter 
    77          * @param action to perform 
    78          */ 
    79         Object onActivate(String action){ 
    80                  
    81                 return null; 
    82         } 
    83          
    84         /** 
    85          * Method called on page activation with three parameters 
    86          * @param strStartDate 
    87          * @param strEndDate 
    88          * @param userId 
    89          */ 
    90         void onActivate(String strStartDate, String strEndDate, String userId){ 
    91         } 
    92          
    93         /** 
    94          * Method which will be called on page activation with four parameters 
    95          * @param spaceId 
    96          * @param userId 
    97          * @param spaceType 
    98          * @param moduleId 
    99          */ 
    100         void onActivate(Integer spaceId, Integer userId, String spaceType, Integer moduleId){ 
    101         } 
    102          
    103          
    104          
    105         /** 
    106          * Seting up values before page render 
    107          */ 
    108         void setValues() { 
    109                  
    110         } 
    111          
    112         public String getJspRootURL() { 
    113                 return jspRootURL; 
    114         } 
    115          
    116         public String getModuleReport() { 
    117                 return "1"; 
    118         } 
    119          
    120         public ProjectSpaceBean getProjectSpace() { 
    121                 return projectSpace; 
    122         } 
    123          
    124         public String getProjectName() { 
    125                 return projectName; 
    126         } 
    127          
    128         public String getProjectDescription() { 
    129                 return projectDescription; 
    130         } 
    131          
    132         public String getProjectManager() { 
    133                 return projectManager; 
    134         } 
    135          
    136         public String getProjectStatus() { 
    137                 return projectStatus; 
    138         } 
    139          
    140         public String getPercent() { 
    141                 return percent; 
    142         } 
    143          
    144         public int getPeopleAssigned(){ 
    145                 return peopleAssigned; 
    146         } 
     29    private static Logger log = Logger.getLogger(ViewProject.class); 
     30 
     31    private String jspRootURL; 
     32 
     33    private ProjectSpaceBean projectSpace; 
     34 
     35    private String projectName; 
     36 
     37    private String projectDescription; 
     38 
     39    private String projectManager; 
     40 
     41    private String projectStatus; 
     42 
     43    private String percent; 
     44 
     45    private int peopleAssigned; 
     46 
     47    private int numberLateTasks; 
     48 
     49    private int numberComingDueTasks; 
     50 
     51    private int numberUnassignedTasks; 
     52 
     53    private int numberCompletedTasks; 
     54 
     55    private String projectId; 
     56 
     57    private String startDate; 
     58 
     59    private String startActualDate; 
     60 
     61    private String finishDate; 
     62 
     63    private String finishActualDate; 
     64 
     65    @Persist 
     66    private List<String> meetings; 
     67 
     68    private String meeting; 
     69 
     70    @Inject 
     71    private RequestGlobals requestGlobals; 
     72 
     73    /** 
     74     * default constructor 
     75     */ 
     76    public ViewProject() { 
     77        jspRootURL = SessionManager.getJSPRootURL(); 
     78    } 
     79 
     80    public RequestGlobals getRequestGlobals() { 
     81        return requestGlobals; 
     82    } 
     83 
     84    public void setRequestGlobals(RequestGlobals rg) { 
     85        requestGlobals = rg; 
     86    } 
     87 
     88    /** 
     89     * Method called on page activation 
     90     */ 
     91    void onActivate() { 
     92    } 
     93 
     94    /** 
     95     * Method called on page activation with single parameter 
     96     *  
     97     * @param action to perform 
     98     */ 
     99    Object onActivate(String action) { 
     100        return null; 
     101    } 
     102 
     103    /** 
     104     * Method called on page activation with three parameters 
     105     *  
     106     * @param strStartDate 
     107     * @param strEndDate 
     108     * @param userId 
     109     */ 
     110    void onActivate(String strStartDate, String strEndDate, String userId) { 
     111    } 
     112 
     113    /** 
     114     * Method which will be called on page activation with four parameters 
     115     *  
     116     * @param spaceId 
     117     * @param userId 
     118     * @param spaceType 
     119     * @param moduleId 
     120     */ 
     121    void onActivate(Integer spaceId, Integer userId, String spaceType, 
     122            Integer moduleId) { 
     123    } 
     124 
     125    /** 
     126     * Seting up values before page render 
     127     */ 
     128    @SetupRender 
     129    void setValues() { 
     130        try { 
     131            projectId = requestGlobals.getHTTPServletRequest().getParameter("id"); 
     132            projectSpace = new ProjectSpaceBean(); 
     133            projectSpace.setID(projectId); 
     134            projectSpace.load(); 
     135 
     136            projectName = net.project.util.HTMLUtils.escape(projectSpace 
     137                    .getName()); 
     138            projectDescription = net.project.util.HTMLUtils.escape(projectSpace 
     139                    .getDescription()); 
     140            projectManager = projectSpace.getMetaData().getProperty( 
     141                    "ProjectManager"); 
     142            projectStatus = net.project.util.HTMLUtils.escape(projectSpace 
     143                    .getStatus()); 
     144 
     145            percent = projectSpace.getPercentComplete(); 
     146 
     147            peopleAssigned = ServiceFactory.getInstance().getPnPersonService() 
     148                    .getPersonsByProjectId( 
     149                            Integer.parseInt(projectSpace.getID())).size(); 
     150 
     151            DateFormat userDateFormatter = SessionManager.getUser() 
     152                    .getDateFormatter(); 
     153            IPnProjectSpaceService service = ServiceFactory.getInstance() 
     154                    .getPnProjectSpaceService(); 
     155            ProjectSchedule projectSchedule = service 
     156                    .getProjectSchedule(Integer.parseInt(projectSpace.getID())); 
     157 
     158            numberComingDueTasks = projectSchedule.getNumberOfTaskComingDue(); 
     159            numberCompletedTasks = projectSchedule.getNumberOfCompletedTasks(); 
     160            numberLateTasks = projectSchedule.getNumberOfLateTasks(); 
     161            numberUnassignedTasks = projectSchedule 
     162                    .getNumberOfUnassignedTasks(); 
     163 
     164            if (projectSchedule.getPlannedStart() != null) { 
     165                startDate = userDateFormatter.formatDate(projectSchedule 
     166                        .getPlannedStart(), "dd/MM/yyyy"); 
     167            } else { 
     168                startDate = ""; 
     169            } 
     170 
     171            if (projectSchedule.getActualStart() != null) { 
     172                startActualDate = userDateFormatter.formatDate(projectSchedule 
     173                        .getActualStart(), "dd/MM/yyyy"); 
     174            } else { 
     175                startActualDate = ""; 
     176            } 
     177 
     178            if (projectSchedule.getPlannedFinish() != null) { 
     179                finishDate = userDateFormatter.formatDate(projectSchedule 
     180                        .getPlannedFinish(), "dd/MM/yyyy"); 
     181            } else { 
     182                finishDate = ""; 
     183            } 
     184 
     185            if (projectSchedule.getActualFinish() != null) { 
     186                finishActualDate = userDateFormatter.formatDate(projectSchedule 
     187                        .getActualFinish(), "dd/MM/yyyy"); 
     188            } else { 
     189                finishActualDate = ""; 
     190            } 
     191 
     192            MyMeetings myMeetings = new MyMeetings(); 
     193            myMeetings.setUser(SessionManager.getUser()); 
     194            myMeetings.loadEntries(); 
     195 
     196            // meetings = myMeetings.getMeetingList(); 
     197            meetings = new ArrayList<String>(); 
     198            meetings.add("uno"); 
     199            meetings.add("dos"); 
     200        } catch (Exception e) { 
     201 
     202        } 
     203    } 
     204 
     205    public String getJspRootURL() { 
     206        return jspRootURL; 
     207    } 
     208 
     209    public int getModuleReport() { 
     210        return Module.REPORT; 
     211    } 
     212 
     213    public ProjectSpaceBean getProjectSpace() { 
     214        return projectSpace; 
     215    } 
     216 
     217    public String getProjectName() { 
     218        return projectName; 
     219    } 
     220 
     221    public String getProjectDescription() { 
     222        return projectDescription; 
     223    } 
     224 
     225    public String getProjectManager() { 
     226        return projectManager; 
     227    } 
     228 
     229    public String getProjectStatus() { 
     230        return projectStatus; 
     231    } 
     232 
     233    public String getPercent() { 
     234        return percent; 
     235    } 
     236 
     237    public int getPeopleAssigned() { 
     238        return peopleAssigned; 
     239    } 
     240 
     241    public int getProjectSpaceModule() { 
     242        return Module.PROJECT_SPACE; 
     243    } 
     244 
     245    public int getNumberLateTasks() { 
     246        return numberLateTasks; 
     247    } 
     248 
     249    public int getNumberComingDueTasks() { 
     250        return numberComingDueTasks; 
     251    } 
     252 
     253    public int getNumberUnassignedTasks() { 
     254        return numberUnassignedTasks; 
     255    } 
     256 
     257    public int getNumberCompletedTasks() { 
     258        return numberCompletedTasks; 
     259    } 
     260 
     261    public String getProjectId() { 
     262        return projectId; 
     263    } 
     264 
     265    public String getStartDate() { 
     266        return startDate; 
     267    } 
     268 
     269    public String getStartActualDate() { 
     270        return startActualDate; 
     271    } 
     272 
     273    public String getFinishDate() { 
     274        return finishDate; 
     275    } 
     276 
     277    public String getFinishActualDate() { 
     278        return finishActualDate; 
     279    } 
     280 
     281    public String getPieChartUrl() { 
     282        return this.jspRootURL + "/servlet/PieChartServlet?project=" 
     283                + this.projectId + "&module=" + Module.PROJECT_SPACE; 
     284    } 
     285 
     286    public List<String> getMeetings() { 
     287        return meetings; 
     288    } 
     289     
     290    public void setMeetings(List<String> meetings) { 
     291        this.meetings = meetings; 
     292    } 
     293 
     294    public String getMeeting() { 
     295        return meeting; 
     296    } 
     297 
     298    public void setMeeting(String meeting) { 
     299        this.meeting = meeting; 
     300    } 
    147301         
    148302} 
  • trunk/core/web/html/project/ViewProject.html

    r17828 r17842  
    11<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    22"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    3 <t:BlogLayout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> 
     3<t:DashboardLayout xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> 
    44 
    5 <form name="reportParameters" id="reportParameters" method="post" action="${jspRootURL}/servlet/ShowReportServlet"> 
    6         <input type="hidden" name="reportType" id="reportType" /> 
    7         <input type="hidden" name="module" id="module" value="${moduleReport}" /> 
    8         <input type="hidden" name="objectID" id="objectID" value="${projectSpace}" /> 
    9         <input type="hidden" name="reportScope" id="reportScope" value="10" /> 
    10         <input type="hidden" name="filter10" id="filter10" value="20" /> 
    11         <input type="hidden" name="filter20" id="filter20" /> 
    12         <input type="hidden" name="grouping" id="grouping" value="10" /> 
    13         <input type="hidden" name="output" id="output" value="html" /> 
    14         <input type="hidden" name="checkbox30" id="checkbox30" /> 
    15         <input type="hidden" name="checkbox10" id="checkbox10" /> 
    16         <input type="hidden" name="filter40" id="filter40" /> 
    17         <input type="hidden" name="filter40Start" id="filter40Start" /> 
    18         <input type="hidden" name="filter40Finish" id="filter40Finish" /> 
    19         <input type="hidden" name="filter40comparator" id="filter40comparator" /> 
    20         <input type="hidden" name="showReportParameters" id="showReportParameters" value="false" /> 
    21         <input type="hidden" name="assignmentType" id="assignmentType" value="task" /> 
    22 </form> 
     5<div style="margin-top: 60px;"> 
     6    <form name="reportParameters" id="reportParameters" method="post" action="${jspRootURL}/servlet/ShowReportServlet"> 
     7        <input type="hidden" name="reportType" id="reportType" /> 
     8        <input type="hidden" name="module" id="module" value="${moduleReport}" /> 
     9        <input type="hidden" name="objectID" id="objectID" value="${projectSpace}" /> 
     10        <input type="hidden" name="reportScope" id="reportScope" value="10" /> 
     11        <input type="hidden" name="filter10" id="filter10" value="20" /> 
     12        <input type="hidden" name="filter20" id="filter20" /> 
     13        <input type="hidden" name="grouping" id="grouping" value="10" /> 
     14        <input type="hidden" name="output" id="output" value="html" /> 
     15        <input type="hidden" name="checkbox30" id="checkbox30" /> 
     16        <input type="hidden" name="checkbox10" id="checkbox10" /> 
     17        <input type="hidden" name="filter40" id="filter40" /> 
     18        <input type="hidden" name="filter40Start" id="filter40Start" /> 
     19        <input type="hidden" name="filter40Finish" id="filter40Finish" /> 
     20        <input type="hidden" name="filter40comparator" id="filter40comparator" /> 
     21        <input type="hidden" name="showReportParameters" id="showReportParameters" value="false" /> 
     22        <input type="hidden" name="assignmentType" id="assignmentType" value="task" /> 
     23    </form> 
     24     
     25    <form method="post" action="${jspRootURL}/project/MainProcessing.jsp"> 
     26    <input type="hidden" name="theAction"/> 
     27        <table cellspacing="0" cellpadding="0" width="100%"> 
     28            <tr valign="top"> 
     29                <td width="20%"> 
     30                    <div id="left_section"> 
     31                        <div style="padding: 5px;"> 
     32                            <div id="project_channel"> 
     33                                <div style="padding: 5px;"> 
     34                                    <div style="font-weight: bold; font-size: medium;">Project: <a href="javascript:modify();">${projectName}</a></div> 
     35                                    <b>Description:</b> ${projectDescription}<br /> 
     36                                    <b>Manager:</b> ${projectManager}<br /> 
     37                                    <b>Status:</b> ${projectStatus} 
     38                                    <br /><p /> 
     39                                    <b>Completion</b> ${percent}%<br /> 
     40                                    <div style="width: 100px;"> 
     41                                        <table border="1" width="100" height="8" cellspacing="0" cellpadding="0"> 
     42                                            <tr> 
     43                                                <td bgcolor="#FFFFFF" title="${percent}%"> 
     44                                                    <img src="${jspRootURL}/images/lgreen.gif" width="${percent}" height="8"/> 
     45                                                </td> 
     46                                            </tr> 
     47                                        </table> 
     48                                    </div> 
     49                                    <div id="project_separator"></div> 
     50                                    <div> 
     51                                        <table cellspacing="5" cellpadding="0" style="font-size: small;"> 
     52                                            <tr> 
     53                                                <td><b>O</b></td> 
     54                                                <td><b>F</b></td> 
     55                                                <td><b>S</b></td> 
     56                                                <td><b>R</b></td> 
     57                                            </tr> 
     58                                            <tr> 
     59                                                <td> 
     60                                                </td> 
     61                                                <td> 
     62                                                </td> 
     63                                                <td> 
     64                                                </td> 
     65                                                <td> 
     66                                                </td> 
     67                                            </tr> 
     68                                        </table> 
     69                                    </div> 
     70                                </div> 
     71                            </div> 
     72                            <div id="project_separator"></div> 
     73                            <div style="width: 100%;"> 
     74                                <div style="padding: 5px;"> 
     75                                 
     76                                    <table border="0" cellpadding="0" cellspacing="0" width="97%"> 
     77                                        <tr> 
     78                                            <td valign="top" align="left" width="20%"> 
     79                                                <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     80                                                    <tr class="channelHeader"> 
     81                                                        <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" /> 
     83                                                        </td> 
     84                                                        <td nowrap="true" class="channelHeader">Project News</td> 
     85                                                        <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
     86                                                        <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" /> 
     88                                                        </td> 
     89                                                    </tr> 
     90                                                    <tr valign="top"> 
     91                                                        <td class="channelContent">&nbsp;</td> 
     92                                                        <td colspan="4" align="left" class="channelContent"> 
     93                                                            <table border="0" cellspacing="0" cellpadding="0" width="100%"> 
     94                                                                <tr class="tableContent" align="left"> 
     95                                                                    <td class="tableContent" colspan="5">There are no news items.</td> 
     96                                                                </tr> 
     97                                                            </table> 
     98                                                        </td> 
     99                                                    </tr> 
     100                                                </table> 
     101                                            </td> 
     102                                        </tr> 
     103                                    </table> 
     104                                    <br clear="all" /><br /> 
     105                                                                     
     106                                    <table border="0" cellpadding="0" cellspacing="0" width="97%"> 
     107                                        <tr> 
     108                                            <td valign="top" align="left" width="20%"> 
     109                                                <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     110                                                    <tr class="channelHeader"> 
     111                                                        <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> 
     115                                                        <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
     116                                                        <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" /> 
     118                                                        </td> 
     119                                                    </tr> 
     120                                                    <tr valign="top"> 
     121                                                        <td class="channelContent">&nbsp;</td> 
     122                                                        <td colspan="4" align="left" class="channelContent"> 
     123                                                            <table border="0" cellspacing="0" cellpadding="0" width="100%"> 
     124                                                                <tr class="tableContent" align="left"> 
     125                                                                    <td class="tableContent" colspan="5"> 
     126                                                                        <table t:type="loop" source="${meetings}" value="meeting"> 
     127                                                                        </table> 
     128                                                                    </td> 
     129                                                                </tr> 
     130                                                            </table> 
     131                                                        </td> 
     132                                                    </tr> 
     133                                                </table> 
     134                                            </td> 
     135                                        </tr> 
     136                                    </table> 
     137                                    <br clear="all" /><br /> 
     138                                     
     139                                    <table border="0" cellpadding="0" cellspacing="0" width="97%"> 
     140                                        <tr> 
     141                                            <td valign="top" align="left" width="20%"> 
     142                                                <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     143                                                    <tr class="channelHeader"> 
     144                                                        <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> 
     148                                                        <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
     149                                                        <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" /> 
     151                                                        </td> 
     152                                                    </tr> 
     153                                                    <tr valign="top"> 
     154                                                        <td class="channelContent">&nbsp;</td> 
     155                                                        <td colspan="4" align="left" class="channelContent"> 
     156                                                            <table border="0" cellspacing="0" cellpadding="0" width="100%"> 
     157                                                                <tr class="tableContent" align="left"> 
     158                                                                    <td class="tableContent" colspan="5"> 
     159                                                                        <table t:type="loop" source="${meetings}" value="meeting"> 
     160                                                                        </table> 
     161                                                                    </td> 
     162                                                                </tr> 
     163                                                            </table> 
     164                                                        </td> 
     165                                                    </tr> 
     166                                                </table> 
     167                                            </td> 
     168                                        </tr> 
     169                                    </table> 
     170                                    <br clear="all" /><br /> 
     171                                </div> 
     172                            </div> 
     173                        </div> 
     174                    </div> 
     175                </td> 
     176                <td width="50%"> 
     177                    <div id="middle_section"> 
     178                        <div style="padding: 5px;"> 
     179                            <div style="width: 100%;"> 
     180                                <div id="project_schedule"> 
     181                                    <div> 
     182                                        <span id="project_schedule_title">Schedule</span><br /> 
     183                                        <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> 
     201                                            <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 /> 
     206                                        </div> 
     207                                    </div> 
     208                                    <div> 
     209                                        <img src='${pieChartUrl}' /> 
     210                                        <div style="width: 100%; height: 10px;"></div> 
     211                                        <table border="0" cellpadding="0" cellspacing="0" width="97%"> 
     212                                            <tr> 
     213                                                <td valign="top" align="left" width="20%"> 
     214                                                    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     215                                                        <tr class="channelHeader"> 
     216                                                            <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" /> 
     218                                                            </td> 
     219                                                            <td nowrap="true" class="channelHeader">Phases and Milestones</td> 
     220                                                            <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
     221                                                            <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" /> 
     223                                                            </td> 
     224                                                        </tr> 
     225                                                        <tr valign="top"> 
     226                                                            <td class="channelContent">&nbsp;</td> 
     227                                                            <td colspan="4" align="left" class="channelContent"> 
     228                                                                <table border="0" cellspacing="0" cellpadding="0" width="100%"> 
     229                                                                    <tr class="tableContent" align="left"> 
     230                                                                        <td class="tableContent" colspan="5"> 
     231                                                                            <table t:type="loop" source="${meetings}" value="meeting"> 
     232                                                                            </table> 
     233                                                                        </td> 
     234                                                                    </tr> 
     235                                                                </table> 
     236                                                            </td> 
     237                                                        </tr> 
     238                                                    </table> 
     239                                                </td> 
     240                                            </tr> 
     241                                        </table> 
     242                                        <br clear="all" /><br /> 
     243                                         
     244                                        <table border="0" cellpadding="0" cellspacing="0" width="97%"> 
     245                                            <tr> 
     246                                                <td valign="top" align="left" width="20%"> 
     247                                                    <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
     248                                                        <tr class="channelHeader"> 
     249                                                            <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" /> 
     251                                                            </td> 
     252                                                            <td nowrap="true" class="channelHeader">Subprojects</td> 
     253                                                            <td align="right" nowrap="true" class="channelHeader">&nbsp;</td> 
     254                                                            <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" /> 
     256                                                            </td> 
     257                                                        </tr> 
     258                                                        <tr valign="top"> 
     259                                                            <td class="channelContent">&nbsp;</td> 
     260                                                            <td colspan="4" align="left" class="channelContent"> 
     261                                                                <table border="0" cellspacing="0" cellpadding="0" width="100%"> 
     262                                                                    <tr class="tableContent" align="left"> 
     263                                                                        <td class="tableContent" colspan="5"> 
     264                                                                            <table t:type="loop" source="${meetings}" value="meeting"> 
     265                                                                            </table> 
     266                                                                        </td> 
     267                                                                    </tr> 
     268                                                                </table> 
     269                                                            </td> 
     270                                                        </tr> 
     271                                                    </table> 
     272                                                </td> 
     273                                            </tr> 
     274                                        </table> 
     275                                        <br clear="all" /><br /> 
     276                                    </div> 
     277                                </div> 
     278                            </div> 
     279                        </div> 
     280                    </div> 
     281                </td> 
     282                <td width="30%"> 
     283                    <div id="right_section"> 
     284                        <div id="resource_section"> 
     285                            <div style="padding: 5px;"> 
     286                                <div style="font-weight: bold; font-size: medium;">Resources</div> 
     287                                ${peopleAssigned} People Assigned 
     288                            </div> 
     289                        </div> 
     290                        <div id="teammate_section"> 
     291                            <div style="padding: 5px;">