Ignore:
Timestamp:
Jun 8, 2009 3:07:47 AM (15 years ago)
Author:
retracile
Message:

Mergebot: redesigned implementation. Still has rough edges.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • mergebot/trunk/mergebot/templates/mergebot.html

    r16 r17  
    1 <?cs include "header.cs"?>
    2 <?cs include "macros.cs"?>
     1<!DOCTYPE html
     2    PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     3    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
     4<html xmlns="http://www.w3.org/1999/xhtml"
     5      xmlns:py="http://genshi.edgewall.org/"
     6      xmlns:xi="http://www.w3.org/2001/XInclude">
     7  <xi:include href="layout.html" />
     8  <xi:include href="macros.html" />
    39
    4 <div id="ctxtnav"></div>
     10  <head>
     11    <title>
     12        MergeBot
     13    </title>
     14  </head>
    515
    6 <div id="content" class="mergebot">
     16  <body>
     17  <div id="content" class="mergebot">
    718
    8 <h1>MergeBot</h1>
     19  <div id="content" class="query">
     20    <h1>Queued</h1>
     21    <table class="listing tickets">
     22      <thead><tr>
     23        <th>Ticket</th>
     24        <th>Summary</th>
    925
    10 <!-- DEBUG SECTION -->
    11 <?cs if:mergebot.debug ?>
    12 <h2>Debug info:</h2>
    13 <?cs each:debug = mergebot.debug ?>
    14         <li><?cs var:debug ?></li>
    15 <?cs /each ?>
    16 <hr>
    17 <?cs /if ?>
    18 <!-- END DEBUG SECTION -->
     26        <th>Requestor</th>
     27        <th>Action</th>
     28        <th>Task ID</th>
     29        <th>Task Status</th>
    1930
    20 <!-- Show all of our queues -->
    21 <?cs each:queue = mergebot.queue ?>
    22         <div id="content" class="query">
    23         <h1><?cs var:queue ?> Queue</h1>
     31        <th>Component</th>
     32        <th>Version</th>
     33        <th>Actions</th>
     34      </tr></thead>
    2435
    25         <table class="listing tickets">
    26         <!-- Hardcode the header for now: -->
    27         <thead><tr>
    28                 <th>Ticket</th>
    29                 <th>Summary</th>
    30                 <th>Component</th>
    31                 <th>Version</th>
    32                 <th>Status</th>
    33                 <th>Requestor</th>
    34                 <th>Activity</th> <!-- for lack of a better name -->
    35         </tr></thead>
     36      <tr py:for="task_id, task_status, ticket_id, action, component, version, requestor, summary in queue">
     37        <td><a href="${href.ticket(ticket_id)}">#${ticket_id}</a></td>
     38        <td><a href="${href.ticket(ticket_id)}">${summary}</a></td>
    3639
    37         <?cs if:queue.current ?>
    38                 <tr>
    39                 <th><a href=<?cs var:queue.current.href ?>>#<?cs var:queue.current ?></a></th> <!-- #ticket -->
    40                 <th><a href=<?cs var:queue.current.href ?>><?cs var:queue.current.summary ?></a></th>
    41                 <th><?cs var:queue.current.component ?></th>
    42                 <th><?cs var:queue.current.version ?></th>
    43                 <th><?cs var:queue.current.status ?></th>
    44                 <th><?cs var:queue.current.requestor ?></th>
    45                 <th>Doing <?cs name:queue ?></th> <!-- activity -->
    46                 </tr>
    47         <?cs /if ?>
    48         <?cs each:task = queue.queue ?> <!-- was queue.queue -->
    49                 <tr>
    50                 <th><a href=<?cs var:task.href ?>>#<?cs var:task ?></a></th> <!-- #ticket -->
    51                 <th><a href=<?cs var:task.href ?>><?cs var:task.summary ?></a></th>
    52                 <th><?cs var:task.component ?></th>
    53                 <th><?cs var:task.version ?></th>
    54                 <th><?cs var:task.status ?></th>
    55                 <th><?cs var:task.requestor ?></th>
    56                 <th><?cs var:task.mergebotstate ?></th> <!-- activity -->
    57                 </tr>
    58         <?cs /each ?>
     40        <td>${requestor}</td>
     41        <td>${action}</td>
     42        <td>${task_id}</td>
     43        <td>${task_status}</td>
    5944
    60         </table>
    61         </div>
    62 <?cs /each ?>
     45        <td>${component}</td>
     46        <td>${version}</td>
     47        <td>
     48          <form id="cancel_tasks" method="post" name="cancel-task-%{task_id}" action="">
     49            <input type="hidden" name="task" value="${task_id}"/>
     50            <input type="submit" name="action" value="Cancel" py:if="task_status in ['Waiting', 'Pending']"/>
     51          </form>
     52        </td>
     53      </tr>
     54    </table>
     55  </div>
    6356
    64 <!-- Tickets that are not in an activity queue: -->
    65 <div id="content" class="query">
    66 <h1>Unqueued</h1>
     57  <!-- Tickets that are not in an activity queue: -->
     58  <div id="content" class="query">
     59    <h1>Unqueued</h1>
    6760
    68 <table class="listing tickets">
    69 <!-- Hardcode the header for now: -->
    70 <thead><tr>
    71         <th>Ticket</th>
    72         <th>Summary</th>
    73         <th>Component</th>
    74         <th>Version</th>
    75         <th>Status</th>
    76         <th>MergeBotState</th>
    77         <th>Actions</th>
    78 </tr></thead>
     61    <table class="listing tickets">
     62      <thead><tr>
     63        <th>Ticket</th>
     64        <th>Summary</th>
     65        <th>Component</th>
     66        <th>Version</th>
     67        <th>Status</th>
     68        <th>MergeBotState</th>
     69        <th>Actions</th>
     70      </tr></thead>
     71      <tr py:for="ticket in unqueued">
     72        <td><a href="${href.ticket(ticket.info.id)}">${ticket.info.id}</a></td>
     73        <td><a href="${href.ticket(ticket.info.id)}">${ticket.info.summary}</a></td>
     74        <td>${ticket.info.component}</td>
     75        <td>${ticket.info.version}</td>
     76        <td>${ticket.info.status}</td>
     77        <td>${ticket.info.mergebotstate}</td>
     78        <td>
     79          <form id="ops" method="post" name="ops-${ticket.info.id}" action="">
     80            <input type="hidden" name="ticket" value="${ticket.info.id}" />
     81            <input type="hidden" name="component" value="${ticket.info.component}" />
     82            <input type="hidden" name="version" value="${ticket.info.version}" />
     83            <input type="submit" name="action" value="Branch" py:if="ticket.branch"/>
     84            <input type="submit" name="action" value="Rebranch" py:if="ticket.rebranch"/>
     85            <input type="submit" name="action" value="Merge" py:if="ticket.merge"/>
     86            <input type="submit" name="action" value="CheckMerge" py:if="ticket.checkmerge"/>
     87          </form>
     88        </td>
     89      </tr>
     90    </table>
     91  </div>
    7992
    80 <?cs each:task = mergebot.notqueued ?>
    81         <tr>
    82         <th><a href=<?cs var:task.href ?>>#<?cs var:task ?></a></th> <!-- ticket -->
    83         <th><a href=<?cs var:task.href ?>><?cs var:task.summary ?></a></th> <!-- summary -->
    84         <th><?cs var:task.component ?></th>
    85         <th><?cs var:task.version ?></th>
    86         <th><?cs var:task.status ?></th>
    87         <th><?cs var:task.mergebotstate ?></th>
    88 
    89         <td>
    90         <!-- For each of the buttons, MergeBot's web_ui tells us if it's a
    91         valid operation for the ticket.  Use that to determine which buttons to
    92         show.  -->
    93         <form id="ops" method="post" name="ops-<?cs var:task ?>" action="">
    94         <input type="hidden" name="ticket" value="<?cs var:task ?>" />
    95         <input type="hidden" name="component" value="<?cs var:task.component ?>" />
    96         <input type="hidden" name="version" value="<?cs var:task.version ?>" />
    97         <?cs if:task.actions.branch ?>
    98                 <input type="submit" name="action" value="Branch" />
    99         <?cs /if ?>
    100         <?cs if:task.actions.rebranch ?>
    101                 <input type="submit" name="action" value="Rebranch" />
    102         <?cs /if ?>
    103         <?cs if:task.actions.merge ?>
    104                 <input type="submit" name="action" value="Merge" />
    105         <?cs /if ?>
    106         <?cs if:task.actions.checkmerge ?>
    107                 <input type="submit" name="action" value="CheckMerge" />
    108         <?cs /if ?>
    109         </form>
    110         </td>
    111 
    112         </tr>
    113 <?cs /each ?>
    114 
    115 </table>
    116 </div>
    117 
    118 
    119 </div>
    120 
    121 <?cs include:"footer.cs"?>
     93  </div>
     94  </body>
     95</html>
Note: See TracChangeset for help on using the changeset viewer.