home *** CD-ROM | disk | FTP | other *** search
/ Chip 2005 May / CMCD0505.ISO / Software / Shareware / Programare / bugzero / jsp / _issuelist.jspf < prev    next >
Text File  |  2005-01-26  |  8KB  |  248 lines

  1. <%
  2.   boolean isHomePage = false;
  3.   if ("home.jsp".equals(parent)) {
  4.     isHomePage = true;
  5.   }
  6.   IssueList _issueList = null;
  7.   Issue[] issueList = null;
  8.   int startIndex = 0;
  9.   String startStr = request.getParameter("startIndex");
  10.   if (startStr != null && startStr.trim().length() > 0) {
  11.     try {
  12.       startIndex = Integer.parseInt(startStr.trim());
  13.     } catch (Exception e) {
  14.       startIndex = 0;
  15.     }
  16.   }
  17.   if (startStr != null || msg != null) {
  18.     // in case startStr or msg is there, the issue is already loaded
  19.     if (!needReload(request)) {
  20.       _issueList = (IssueList)session.getAttribute("issueList");
  21.       if (_issueList != null) {
  22.         issueList = _issueList.getIssues();
  23.       }
  24.     }
  25.   }
  26.   if (issueList == null || !query.isLoaded()) {
  27.     if (isHomePage) {
  28.       query.loadFilter(); // need to reload the default query
  29.     }
  30.     _issueList = query.list();
  31.     issueList = _issueList.getIssues();
  32.     session.setAttribute("issueList", _issueList);
  33.   }
  34.   // set the query in the seesion
  35.   if (isHomePage) {
  36.     session.setAttribute("query", query);
  37.   }
  38.  
  39.   String[] showColumns = query.getShowColumns();
  40.   int showNumbers = query.getShowNumbers();
  41.   if (showNumbers == 0) {
  42.     showNumbers = 10;
  43.     if (isHomePage) {
  44.       query.setShowNumbers(showNumbers);
  45.     }
  46.   }
  47.  
  48.   String referUrl = "referUrl"; 
  49. %>
  50.  
  51. <% if (issueList.length == 0) {
  52.      if (isHomePage) { %>
  53.    <dd><b><%=MessageCode.get("jsp.no_active_issue")%></b>
  54. <%   } else { %>
  55.    <dd><b><%=MessageCode.get("jsp.no_query_result")%></b>
  56. <%   }
  57.      if (msg != null) { %>
  58.    <center>
  59.    <font color=red><b><%=msg%></b></font>
  60.    </center>
  61. <% }
  62.      session.removeAttribute(referUrl);
  63.      return;
  64.    } %>
  65. <%
  66.    if (startIndex > issueList.length || startIndex < 0) {
  67.      startIndex = 0;    
  68.    }
  69.    String referPage = contextPath+"/jsp/"+parent+"?startIndex="+startIndex;
  70.    session.setAttribute(referUrl, referPage);
  71.    int endIndex = startIndex + showNumbers;
  72.    if (endIndex > issueList.length) {  
  73.      endIndex = issueList.length;
  74.    }
  75.    _issueList.setStart(startIndex);
  76.    _issueList.setEnd(endIndex);
  77. %>
  78.  
  79. <%
  80.   String projectId = person.getProject();
  81.   Project conf = Project.getInstance(projectId);
  82.   String sortColumn = _issueList.getSortColumn();
  83.   String exportType = null;
  84.   DateTime dateTime = (DateTime)session.getAttribute("datetime");
  85.   boolean showButton = "edit".equals(person.getAccessCode());
  86.   String responsibleSelect = "responsibleSelect"; 
  87. %>
  88. <%!
  89.   String getImage(String sortColumn, IssueList _issueList) {
  90.     String image = null;
  91.     if (sortColumn.equals(_issueList.getSortColumn())) {
  92.       if (_issueList.isDesc()) {
  93.         image = "<img src=\"img/desc.gif\">";
  94.       } else {
  95.         image = "<img src=\"img/asc.gif\">";
  96.       }
  97.     } else {
  98.       image = "";
  99.     } 
  100.     return image;
  101.   }
  102. %>
  103. <center>
  104. <form method="POST" name="issuelist_form" action="<%=contextPath%>/servlet/qa" style="margin-top:0;margin-bottom:0;">
  105. <input type="hidden" name="action" value="none">
  106. <input type="hidden" name="responsible">
  107. <table cellspacing=2 cellpadding=2 width=95% border=0>
  108. <tr><td><b>
  109. <%   if (isHomePage) { 
  110.         exportType = "1";
  111. %>
  112.      <%=label.get("my_favorites", projectId)%>
  113. <%   } else {
  114.         exportType = "2";
  115. %>
  116.      <%=label.get("query_result", projectId)%>
  117. <%} %>
  118. </b> (<%=dateTime.localTime()%>)
  119. </td><td align=right>
  120. <font color="#555555" size="-1"><b><%=label.get("sort_order_label")%></b></font> 
  121.     <select name="sort" 
  122.         style="font-size:14px;font-face:arial;"
  123.         onChange="location.href='<%=contextPath%>/servlet/sorting?parent=<%=parent%>&sort_column='+issuelist_form.sort.options[issuelist_form.sort.selectedIndex].value;">
  124.         <%=ListMaker.makeOptionList(label, projectId, conf.sortFields(person.getGroup()), sortColumn) %>
  125.     </select>
  126.   <a href="<%=contextPath%>/servlet/export/issueList.csv?type=<%=exportType%>" title="Export to CSV"><img src="img/excel.gif" border=0></a>
  127. </td></tr>
  128. </table>
  129.  
  130. <% if (showButton && (endIndex-startIndex) > 15) { %>
  131. <%@ include file="_buttons.jspf" %>
  132. <% responsibleSelect += "2"; } %>
  133.  
  134. <table cellspacing=1 cellpadding=3 width=95% border=0>
  135. <tr class="header">
  136.     <td><nobr><input type=checkbox name="allbox" value="1" onClick="do_checkbox(issuelist_form, issuelist_form.allbox)">
  137.     <%=getImage("entryId", _issueList)%>
  138.     <a href="<%=contextPath%>/servlet/sorting?parent=<%=parent%>&sort_column=entryId" class="button">
  139.     <%=label.get("entryId", projectId)%></a></nobr></td>
  140.     <% for (int c=0; c<showColumns.length; c++) { %>
  141.     <td><%=getImage(showColumns[c], _issueList)%>
  142.     <a href="<%=contextPath%>/servlet/sorting?parent=<%=parent%>&sort_column=<%=showColumns[c]%>" class="button">
  143.     <%=label.get(showColumns[c], projectId)%></a></td>
  144.     <% } %>
  145. </tr>
  146. <%  int index=0;
  147.     for (int i=startIndex; i<endIndex; i++) { 
  148.     int id = issueList[i].getId();
  149.     String listColor="f1";
  150.     if ((index/2)*2 != index++) {
  151.       listColor = "e8";
  152.     }
  153. %>
  154. <tr class="<%=listColor%>">
  155.     <td valign=top><nobr><input type=checkbox name="<%=id%>" value="1">
  156.     <a href="edit.jsp?projectId=<%=projectId%>&entryId=<%=id%>&index=<%=i%>"><%=id%></a></nobr></td>
  157.     <% for (int c=0; c<showColumns.length; c++) {
  158.        String field_name = showColumns[c];
  159.        String field_value = null;
  160.        if ("last_modified".equals(field_name)) {
  161.           field_value = dateTime.localTime(issueList[i].getLastModified());
  162.        } else if ("arrived_date".equals(field_name)) {
  163.           field_value = dateTime.localTime(issueList[i].getArrivedDate());
  164.        } else if ("closed_date".equals(field_name)) {
  165.           long t = issueList[i].getClosedDate();
  166.           if (t == 0) {
  167.             field_value = "N/A";
  168.           } else {
  169.             field_value = dateTime.localTime(t);
  170.           }
  171.        } else if ("detail".equals(field_name)
  172.            || "response".equals(field_name) ) {
  173.           field_value = HtmlParser.toHtml(issueList[i].get(field_name));
  174.        } else if (conf.getField(field_name).isURLField()) {
  175.           field_value = issueList[i].getLink(field_name);
  176.        } else if (conf.getField(field_name).isTextAreaField()) {
  177.           field_value = HtmlParser.toHtml(issueList[i].get(field_name));
  178.        } else {
  179.           field_value = HtmlParser.escapeTag(issueList[i].getDisplay(field_name));
  180.        } 
  181.     %>
  182.     <td valign=top><%=field_value%></td>
  183.     <% } %>
  184. </tr>
  185. <% } %>
  186. </table>
  187. <table cellspacing=0 cellpadding=2 width=95% border=0>
  188. <tr class="header"><td>
  189. <font color="#000000">
  190. <%=label.get("total_pages")%> <%=issueList.length%> | <%=startIndex+1%>-<%=endIndex%> <%=label.get("displayed")%>
  191. </font>
  192.   
  193. <%@ include file="_buttons.jspf" %>
  194. </td><td align=right>
  195. <% int showPages = 10; %>
  196. <% if (startIndex>0) {
  197.   int prev = startIndex-showNumbers;
  198.   if (prev < 0) prev = 0;
  199. %>
  200. <a href="<%=parent%>?startIndex=<%=prev%>">
  201. <img src="img/prev.gif" title="<%=label.get("previous_button")%>" align=middle border=0></a>  
  202. <% } %>
  203. <%
  204.   int currentPage = startIndex/showNumbers;
  205.   if ( (startIndex-showNumbers*currentPage) > 0) currentPage++;
  206.   currentPage++;
  207.   int totalPages = currentPage + (issueList.length - startIndex - 1)/showNumbers;
  208.   int startPage = currentPage - showPages/2;
  209.   if ( startPage> (totalPages - showPages + 1) ) {
  210.     startPage = totalPages - showPages + 1;
  211.   }
  212.   if (startPage < 1) {
  213.     startPage = 1;
  214.   } 
  215.   int endPage = startPage + showPages - 1;
  216.   if (endPage > totalPages) {
  217.     endPage = totalPages;
  218.   }
  219.   if (totalPages > 1) {
  220.     for (int i=startPage; i<=endPage; i++) {
  221.       int pageIndex = startIndex + showNumbers*(i - currentPage);
  222.       if (pageIndex < 0) {
  223.         pageIndex = 0;
  224.       } else if (pageIndex > issueList.length) {  
  225.         pageIndex = issueList.length;
  226.       }
  227. %>
  228. <%    if (i != currentPage) { %>
  229. <a href="<%=parent%>?startIndex=<%=pageIndex%>">
  230. <font color="#000000"><%=i%></font></a> 
  231. <%    } else {%>
  232. <font color="#000000"><%=i%></font> 
  233. <%    } %>
  234. <%} }%>
  235.  
  236. <% if (endIndex<issueList.length) {
  237.   int next = issueList.length - endIndex;
  238.   if (next > showNumbers) next = showNumbers;
  239. %>
  240.  
  241. <a href="<%=parent%>?startIndex=<%=endIndex%>">
  242. <img src="img/next.gif" title="<%=label.get("next_button")%>" align=middle border=0></a>  
  243. <% } %>
  244. </td></tr>
  245. </table>
  246. </form>
  247. </center>
  248.