Author: ahorincar
Date: Fri Aug  9 00:02:55 2013
New Revision: 1512107

URL: http://svn.apache.org/r1512107
Log:
Added bootstrap modal to bh_ticket and modified the templates in bhembedding

Added:
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/htdocs/
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/htdocs/embedding.css
Modified:
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/api.py
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_milestone.html
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_product.html
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_ticket.html
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/setup.py
    
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_theme/bhtheme/templates/bh_ticket.html

Modified: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/api.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/api.py?rev=1512107&r1=1512106&r2=1512107&view=diff
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/api.py
 (original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/api.py
 Fri Aug  9 00:02:55 2013
@@ -1,5 +1,6 @@
 import re
 import pkg_resources
+from datetime import datetime, date, time
 
 from trac.core import *
 from trac.web.chrome import ITemplateProvider
@@ -61,22 +62,22 @@ class EmbeddingSystem(Component):
     # IRequestHandler methods
 
     def match_request(self, req):
-        if re.match(r'/api/ticket/([0-9]+)$', req.path_info):
-            match = re.match(r'/api/(ticket)/([0-9]+)$', req.path_info)
+        if re.match(r'/embed/ticket/([0-9]+)$', req.path_info):
+            match = re.match(r'/embed/(ticket)/([0-9]+)$', req.path_info)
             req.args['name'] = match.group(1)
             req.args['id'] = match.group(2)
             return True
-        elif re.match(r'/api/milestone/(.+)$', req.path_info):
-            match = re.match(r'/api/(milestone)/(.+)$', req.path_info)
+        elif re.match(r'/embed/milestone/(.+)$', req.path_info):
+            match = re.match(r'/embed/(milestone)/(.+)$', req.path_info)
             req.args['name'] = match.group(1)
             req.args['id'] = match.group(2)
             return True
-        elif re.match(r'/api/products/(.+)$', req.path_info):
-            match = re.match(r'/api/(products)/(.+)$', req.path_info)
+        elif re.match(r'/embed/products/(.+)$', req.path_info):
+            match = re.match(r'/embed/(products)/(.+)$', req.path_info)
             req.args['name'] = match.group(1)
             req.args['id'] = match.group(2)
             return True
-        elif req.path_info == '/api/query':
+        elif req.path_info == '/embed/query':
             req.args['name'] = 'query'
             return True
 
@@ -95,7 +96,11 @@ class EmbeddingSystem(Component):
                 if log[2] == 'comment' and log[4]:
                     comm_num += 1
 
+            # print "LAST LOG"
+            # print last_log
             ticket = Ticket(self.env, id)
+            changetime = ticket['changetime']
+            c_time = changetime.strftime("%H:%M:%S, %Y-%m-%d ")
 
             data = {'ticket': ticket,
                     'comm_num': comm_num,
@@ -166,4 +171,5 @@ class EmbeddingSystem(Component):
         return [resource_filename('bhembedding', 'templates')]
 
     def get_htdocs_dirs(self):
-        return []
+        resource_filename = pkg_resources.resource_filename
+        return [('embedding', resource_filename('bhembedding', 'htdocs'))]

Added: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/htdocs/embedding.css
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/htdocs/embedding.css?rev=1512107&view=auto
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/htdocs/embedding.css
 (added)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/htdocs/embedding.css
 Fri Aug  9 00:02:55 2013
@@ -0,0 +1,14 @@
+.properties {
+  color: rgb(120, 120, 120);
+  width: 35%;
+}
+
+.table th, .table td {
+     border-top: none;
+ }
+
+.table th {
+  width: 250px;
+  padding-left: 0px;
+}
+

Modified: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_milestone.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_milestone.html?rev=1512107&r1=1512106&r2=1512107&view=diff
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_milestone.html
 (original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_milestone.html
 Fri Aug  9 00:02:55 2013
@@ -34,7 +34,5 @@
     <p><strong>Product:</strong> ${product.name}</p>
     <p><strong>Number of tickets:</strong> ${ticket_number}</p>
     <p><strong>Attachments:</strong> ${attachment_number}</p>
-
-    <a class='btn' href="${href.milestone(milestone.name)}">Back to milestone 
${milestone.name}</a>
   </body>
 </html>

Modified: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_product.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_product.html?rev=1512107&r1=1512106&r2=1512107&view=diff
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_product.html
 (original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_product.html
 Fri Aug  9 00:02:55 2013
@@ -27,7 +27,5 @@
     <p><strong>Number of milestones:</strong> ${milestone_num}</p>
     <p><strong>Number of versions:</strong> ${version_num}</p>
     <p><strong>Number of components:</strong> ${component_num}</p>
-
-    <a class='btn' href="${href.products(product.prefix)}">Back to product 
${product.name}</a>
   </body>
 </html>

Modified: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_ticket.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_ticket.html?rev=1512107&r1=1512106&r2=1512107&view=diff
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_ticket.html
 (original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/bhembedding/templates/bh_emb_ticket.html
 Fri Aug  9 00:02:55 2013
@@ -7,60 +7,101 @@
       xmlns:i18n="http://genshi.edgewall.org/i18n";>
       <link rel="stylesheet" 
href="${href.chrome('dashboard/css/bootstrap.css')}" type="text/css" />
       <link rel="stylesheet" 
href="${href.chrome('dashboard/css/bootstrap-responsive.css')}" type="text/css" 
/>
-  <!-- <xi:include href="layout.html" /> -->
-
+      <link rel="stylesheet" href="${href.chrome('embedding/embedding.css')}" 
type="text/css" />
 
   <head>
     <title>Ticket ${ticket.id}</title>
   </head>
 
   <body>
-    <div class="span4">
+    <div>
       <h2>${ticket.summary}</h2>
-      <p>
-        <a href="${href.ticket(ticket.id)}">Ticket ${ticket.id}</a>
-         - Assigned to
-        <a href="${href.query(owner=ticket.owner, status='!closed',
-            ticket=ticket.id, order='priority')}">${ticket.owner}</a>
-         , last modified ${pretty_dateinfo(ticket.changetime)}
-      </p>
-      <p><strong>Reporter:</strong> ${ticket.reporter}</p>
-      <py:choose>
-        <p py:when="ticket.keywords">
-         <strong>Keywords:</strong> ${ticket.keywords}</p>
-      </py:choose>
-      <p><strong>Type:</strong> ${ticket.type}</p>
-      <p><strong>Status:</strong> ${ticket.status}</p>
-      <py:choose>
-        <p py:when="ticket.priority">
-         <strong>Priority:</strong> ${ticket.priority}</p>
-      </py:choose>
-      <p><strong>Product:</strong> ${ticket.product}</p>
-      <py:choose>
-        <p py:when="ticket.milestone">
-          <strong>Milestone:</strong> ${ticket.milestone}</p>
-      </py:choose>
-      <py:choose>
-        <p py:when="ticket.milestone">
-         <strong>Component:</strong> ${ticket.component}</p>
-      </py:choose>
-      <py:choose>
-        <p py:when="ticket.milestone">
-         <strong>Version:</strong> ${ticket.version}</p>
-      </py:choose>
-      <py:choose>
-        <p py:when="ticket.severity">
-         <strong>Severity:</strong> ${ticket.severity}</p>
-      </py:choose>
-      <py:choose>
-        <p py:when="comm_num">
-         <strong>Number of comments:</strong> $comm_num</p>
-      </py:choose>
-      <py:choose>
-        <p py:when="attachment_num">
-         <strong>Number of attachments:</strong> ${attachment_num}</p>
-      </py:choose>
-      <a class='btn' href="${href.ticket(ticket.id)}">Back to Ticket 
${ticket.id}</a>
+      <h4><a target="_blank" href="${href.ticket(ticket.id)}">Ticket 
#${ticket.id}</a></h4>
+        <h5>Assigned to
+          <a target="_blank" href="${href.query(owner=ticket.owner, 
status='!closed',
+              ticket=ticket.id, order='priority')}">${ticket.owner}</a>
+           , last modified
+<!--            <a target="_blank" href="${href('timeline', {'from': 
ticket.changetime})}">
+                      ${ticket.changetime}</a> -->
+           ${pretty_dateinfo(ticket.changetime)}
+        </h5>
+
+      <table class="table table-condensed ticket-properties">
+        <tr>
+          <th class="properties">Reporter</th>
+          <td><a target="_blank" href="${href.query(reporter=ticket.reporter, 
status='!closed',
+                ticket=ticket.id, 
order='priority')}">${ticket.reporter}</a></td>
+        </tr>
+        <py:choose>
+          <tr py:when="ticket.keywords">
+            <th class="properties">Keywords</th>
+            <td><a target="_blank" 
href="${href.query(keywords=ticket.keywords, status='!closed',
+                  ticket=ticket.id, 
order='priority')}">${ticket.keywords}</a></td>
+          </tr>
+        </py:choose>
+        <tr>
+          <th class="properties">Type</th>
+          <td><a target="_blank" href="${href.query(type=ticket.type, 
status='!closed',
+                ticket=ticket.id, order='priority')}">${ticket.type}</a></td>
+        </tr>
+        <tr>
+          <th class="properties">Status</th>
+          <td><a target="_blank" href="${href.query(status=ticket.status,
+                ticket=ticket.id, order='priority')}">${ticket.status}</a></td>
+        </tr>
+        <py:choose>
+          <tr py:when="ticket.priority">
+            <th class="properties">Priority</th>
+            <td><a target="_blank" 
href="${href.query(priority=ticket.priority, status='!closed',
+                  ticket=ticket.id, 
order='priority')}">${ticket.priority}</a></td>
+          </tr>
+        </py:choose>
+        <tr>
+          <th class="properties">Product</th>
+          <td><a target="_blank" href="${href.query(product=ticket.product, 
status='!closed',
+                ticket=ticket.id, 
order='priority')}">${ticket.product}</a></td>
+        </tr>
+        <py:choose>
+          <tr py:when="ticket.milestone">
+            <th class="properties">Milestone</th>
+            <td><a target="_blank" 
href="${href.query(milestone=ticket.milestone, status='!closed',
+                  ticket=ticket.id, 
order='priority')}">${ticket.milestone}</a></td>
+          </tr>
+        </py:choose>
+        <py:choose>
+          <tr py:when="ticket.component">
+            <th class="properties">Component</th>
+            <td><a target="_blank" 
href="${href.query(component=ticket.component, status='!closed',
+                  ticket=ticket.id, 
order='priority')}">${ticket.component}</a></td>
+          </tr>
+        </py:choose>
+        <py:choose>
+          <tr py:when="ticket.version">
+            <th class="properties">Version</th>
+            <td><a target="_blank" href="${href.query(version=ticket.version, 
status='!closed',
+                  ticket=ticket.id, 
order='priority')}">${ticket.version}</a></td>
+          </tr>
+        </py:choose>
+        <py:choose>
+          <tr py:when="ticket.severity">
+            <th class="properties">Severity</th>
+            <td><a target="_blank" 
href="${href.query(severity=ticket.severity, status='!closed',
+                  ticket=ticket.id, 
order='priority')}">${ticket.severity}</a></td>
+          </tr>
+        </py:choose>
+        <py:choose>
+          <tr py:when="comm_num">
+            <th class="properties">Number of comments</th>
+            <td><a target="_blank" 
href="${href.ticket(ticket.id)}">${comm_num}</a></td>
+          </tr>
+        </py:choose>
+        <py:choose>
+          <tr py:when="attachment_num">
+            <th class="properties">Number of attachments</th>
+            <td><a target="_blank" href="${href.attachment('ticket', 
ticket.id)}">${attachment_num}</a></td>
+          </tr>
+        </py:choose>
+      </table>
     </div>
   </body>
 </html>

Modified: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/setup.py
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/setup.py?rev=1512107&r1=1512106&r2=1512107&view=diff
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/setup.py
 (original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_embedding_plugin/setup.py
 Fri Aug  9 00:02:55 2013
@@ -9,7 +9,7 @@ setup(
     license = "Apache License v2",
     url = "http://bloodhound.apache.org/";,
     packages = ['bhembedding', 'bhembedding.tests',],
-    package_data = {'bhembedding' : ['templates/*.html',]},
+    package_data = {'bhembedding' : ['templates/*.html', 'htdocs/*.css',]},
     entry_points = {'trac.plugins': [
             'bhembedding.api = bhembedding.api',
         ],},

Modified: 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_theme/bhtheme/templates/bh_ticket.html
URL: 
http://svn.apache.org/viewvc/bloodhound/branches/bep_0007_embeddable_objects/bloodhound_theme/bhtheme/templates/bh_ticket.html?rev=1512107&r1=1512106&r2=1512107&view=diff
==============================================================================
--- 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_theme/bhtheme/templates/bh_ticket.html
 (original)
+++ 
bloodhound/branches/bep_0007_embeddable_objects/bloodhound_theme/bhtheme/templates/bh_ticket.html
 Fri Aug  9 00:02:55 2013
@@ -351,9 +351,10 @@
           <span>${_('Modify Ticket')}</span>
         </button>
 
-        <!-- Embedding plugin -->
 
-        <a href='#' class="btn" id="embed-btn">Embed ticket</a>
+
+        <!-- Embedding plugin -->
+        <a id="embed-btn" href="#embed-modal" role="button" class="btn" 
data-toggle="modal">Embed Ticket</a>
 
         <script language="JavaScript" type="text/javascript">
           function make_iframe(src) {
@@ -361,16 +362,33 @@
             $(iframe).attr("src", src);
             $(iframe).attr("width", "640");
             $(iframe).attr("height", "480");
+            $(iframe).attr("frameborder", "0");
             return $(iframe).get(0).outerHTML;
          }
 
          $('#embed-btn').click(function() {
-           alert(make_iframe('${href.api("ticket", ticket.id)}'));
-
-           return false;
+           $('#embed-textarea').val(make_iframe('${href.embed("ticket", 
ticket.id)}'));
          });
         </script>
 
+
+        <!-- Embedding Modal -->
+        <div id="embed-modal" class="modal hide fade" tabindex="-1" 
role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
+          <div class="modal-header">
+            <button type="button" class="close" data-dismiss="modal" 
aria-hidden="true">×</button>
+            <h3 id="myModalLabel">Embed this Ticket</h3>
+          </div>
+          <div class="modal-body">
+            <textarea id="embed-textarea" class="input-block-level" 
style="width:100%;min-width:100%;max-width:100%;">
+            </textarea>
+          </div>
+          <div class="modal-footer">
+            <button class="btn" data-dismiss="modal" 
aria-hidden="true">Close</button>
+          </div>
+        </div>
+
+
+
         <span id="edit-state-buttons" class="btn-toolbar" style="display: 
None">
           <button id="edit-submit" class="btn" type="submit"
               value="Submit changes" name="submit">


Reply via email to