Bug 1859 - Notice fields: can't select multiple fields at once
authorOwen Leonard <oleonard@myacpl.org>
Fri, 13 May 2016 00:35:01 +0000 (20:35 -0400)
committerKyle M Hall <kyle@bywatersolutions.com>
Mon, 16 May 2016 17:25:57 +0000 (17:25 +0000)
When selecting database fields to appear in a notice, selecting multiple
fields at once doesn't work correctly. The selected fields are grouped
together between << and >> instead of each being bracketed separately.

This patch corrects this problem. Also changed: Removal of 'onclick';
Conversion of 'insert' button to a Bootstrap buttons styled with a Font
Awesome icon; HTML validation error fixes.

To test, apply the patch and go to Tools -> Notices & Slips.

- Edit any notice.
- Select a notice version to edit (Email, Print, etc.).
- Confirm that the "Insert" button looks correct.
- Using ctrl+click, select multiple database fields to add to the
  notice. Confirm that clicking the "Insert" button adds the fields
  correctly.
- Confirm that there are no HTML validation errors.

Signed-off-by: Nicole C Engard <nengard@bywatersolutions.com>

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

koha-tmpl/intranet-tmpl/prog/en/modules/tools/letter.tt

index 4b81dd1..8ed7a52 100644 (file)
@@ -97,7 +97,11 @@ $(document).ready(function() {
         }
     });
     $( "#transport-types" ).accordion({ collapsible: true, active:false, animate: 200 });
-}); 
+    $(".insert").on("click",function(){
+        var containerid = $(this).data("containerid");
+        insertValueQuery( containerid );
+    })
+});
 [% IF add_form or copy_form %]
        
     function cancel(f) {
@@ -129,17 +133,11 @@ $(document).ready(function() {
             var myListBox = $(fieldset).find('select[name="SQLfieldname"]');
 
             if($(myListBox).find('option').length > 0) {
-                var chaineAj = "";
-                var NbSelect = 0;
                 $(myListBox).find('option').each( function (){
                     if ( $(this).attr('selected') ) {
-                        NbSelect++;
-                        if (NbSelect > 1)
-                            chaineAj += ", ";
-                        chaineAj += $(this).val();
+                        $(myQuery).insertAtCaret("<<" + $(this).val() + ">>");
                     }
-                } );
-                $(myQuery).insertAtCaret("<<" + chaineAj + ">>");
+                });
             }
         }
        [% END %]
@@ -274,8 +272,8 @@ $(document).ready(function() {
             [% ELSE %]
             <li>
 
-                <label for="branch">Library:</label>
                 [% IF adding %]
+                    <label for="branch">Library:</label>
                     <select name="branchcode" id="branch" style="width:20em;">
                         <option value="">All libraries</option>
                     [% FOREACH branchloo IN branchloop %]
@@ -283,8 +281,13 @@ $(document).ready(function() {
                     [% END %]
                     </select>
                 [% ELSE %]
+                    <span class="label">Library:</span>
                     <input type="hidden" id="branch" name="branchcode" value="[% branchcode %]" />
-                    [% Branches.GetName( branchcode ) %]
+                    [% IF ( branchcode ) %]
+                       [% Branches.GetName( branchcode ) %]
+                    [% ELSE %]
+                        All libraries
+                    [% END %]
                 [% END %]
             </li>
             [% END %]
@@ -349,8 +352,8 @@ $(document).ready(function() {
                   <input type="text" id="code" name="code" size="20" maxlength="20" value="" required="required"/>
                   <span class="required">Required</span>
               [% ELSE %]
-                  <label for="code">Code:</label>
-                  <input type="hidden" id="code" name="code" size="20" maxlength="20" value="[% code %]" required="required"/>
+                  <span class="label">Code:</span>
+                  <input type="hidden" id="code" name="code" value="[% code %]" />
                   [% code %]
               [% END %]
             </li>
@@ -415,7 +418,9 @@ $(document).ready(function() {
                           [% END %]
                         </select>
                       </td>
-                      <td><input type="button" name="insert" value="&gt;&gt;" onclick="insertValueQuery('[% letter.message_transport_type %]')" title="Insert" /></td>
+                        <td class="actions">
+                            <button type="button" data-containerid="[% letter.message_transport_type %]" class="btn btn-small insert">Insert <i class="fa fa-long-arrow-right"></i></button>
+                        </td>
                       <td><textarea name="content" id="content_[% letter.message_transport_type %]" cols="80" rows="15">[% letter.content %]</textarea></td>
                     </tr>
                   </table>