Author: gjm
Date: Wed Jan  2 08:33:52 2013
New Revision: 1427699

URL: http://svn.apache.org/viewvc?rev=1427699&view=rev
Log:
add in-place editing of fields - towards #146 (from olemis)

Modified:
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
    incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html
    
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_box.html

Modified: 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css?rev=1427699&r1=1427698&r2=1427699&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css 
(original)
+++ incubator/bloodhound/trunk/bloodhound_theme/bhtheme/htdocs/bloodhound.css 
Wed Jan  2 08:33:52 2013
@@ -230,6 +230,11 @@ pre.wiki {
   margin-left: 25px;
 }
 
+.ticket textarea {
+  height: auto;
+  width: auto;
+}
+
 /* @end */
 
 /* @group Quick Ticket fieldset */

Modified: 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html?rev=1427699&r1=1427698&r2=1427699&view=diff
==============================================================================
--- 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html 
(original)
+++ 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket.html 
Wed Jan  2 08:33:52 2013
@@ -41,6 +41,32 @@
         $(".local-nav a").click(function() { 
$($(this).attr('href')).removeClass('collapsed').parent().removeClass("collapsed");
 });
         $('.trac-nav').hide();
         $('.trac-topnav').hide();
+
+        // Install in place editing
+
+        var modify_elem = $('#modify');
+        modify_elem.parent().hide();
+  
+        function modify_ticket() {
+          $('[data-edit="inplace"]').each(function() {
+              var fc = $(this);
+              var fieldurl = fc.find('a').attr('href');
+              var fieldnm = fc.attr('id').substr(3);
+              fc.empty();
+              var editor = $('#properties #field-' + fieldnm);
+              if (editor.length == 0)
+                editor = $('#editor-' + fieldnm);
+              var fieldval = editor.val();
+              editor = editor.clone(false).appendTo(fc).val(fieldval);
+              if (editor.prop('tagName') == 'TEXTAREA') {
+                if (editor.is('.wikitext'))
+                  addWikiFormattingToolbar(editor.get(0));
+              }
+            });
+        }
+  
+        $('.local-nav a[href = "#inplace-edit"]').click(modify_ticket);
+
         $('body').scrollspy({ 
             'target' : '.local-nav' , 
             'offset' : $('.stickyBox').height() + 40
@@ -173,7 +199,7 @@
                         (_('Attachments'), 'attachments', 
attachments.attachments or attachments.can_create, _('Go to the list of 
attachments'), 'icon-file'),
                         (_('Comments'), 'changelog', True, _('Go to the 
changelog'), 'icon-comment'),
                         (_('Add comment'), 'propertyform', ticket.exists and 
can_append, _('Go to the ticket editor'), 'icon-plus-sign'),
-                        (_('Modify Ticket'), 'modify', can_modify or can_edit 
or can_create, _('Modify ticket fields and description'), 'icon-edit'),
+                        (_('Modify Ticket'), 'inplace-edit', can_modify or 
can_edit or can_create, _('Modify ticket fields and description'), 'icon-edit'),
                     )">
               <div>
                 <small>
@@ -408,9 +434,10 @@ ${ticket.description}</textarea>
                               field.edit_label or field.label or 
field.name}:</label>
                           </th>
                           <td class="col${idx + 1}" py:if="idx == 0 or not 
fullrow"
-                              colspan="${3 if fullrow else None}">
+                              colspan="${3 if fullrow else None}"
+                              id="${'editor-' + field.name if field else 
None}">
                             <py:choose test="field.type" py:if="field">
-                              <select py:when="'select'" 
id="field-${field.name}" name="field_${field.name}">
+                              <select py:when="'select'" 
id="field-${field.name}" name="field_${field.name}" class="input-medium">
                                 <option py:if="field.optional"></option>
                                 <option py:for="option in field.options"
                                         selected="${value == option or None}"

Modified: 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_box.html
URL: 
http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_box.html?rev=1427699&r1=1427698&r2=1427699&view=diff
==============================================================================
--- 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_box.html
 (original)
+++ 
incubator/bloodhound/trunk/bloodhound_theme/bhtheme/templates/bh_ticket_box.html
 Wed Jan  2 08:33:52 2013
@@ -47,7 +47,8 @@ Arguments:
               <py:if test="field"><i18n:msg params="field">${field.label or 
field.name}:</i18n:msg></py:if>
             </h5>
           </div>
-          <div class="${'span2' if is_inline else None}">
+          <div class="${'span2' if is_inline else None}" data-edit="inplace" 
+              id="${'vc-' + field.name if field else None}">
             <py:if test="field">
               <py:choose test="">
                 <py:when test="'rendered' in field">${field.rendered}</py:when>


Reply via email to