]> source.dussan.org Git - redmine.git/commitdiff
Replaces the link with a checkbox to select/unselect all items in the list.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 23 Oct 2015 16:45:27 +0000 (16:45 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Fri, 23 Oct 2015 16:45:27 +0000 (16:45 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@14729 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/issues/_list.html.erb
app/views/timelog/_list.html.erb
public/javascripts/context_menu.js

index 57ae6b2bc550d6f53a8f48a7009e442e34a5aa31..7d3654169a046f596d759e83b15e0749ae411978 100644 (file)
@@ -5,9 +5,8 @@
   <thead>
     <tr>
       <th class="checkbox hide-when-print">
-        <%= link_to image_tag('toggle_check.png'), {},
-                              :onclick => 'toggleIssuesSelection(this); return false;',
-                              :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
+        <%= check_box_tag 'check_all', '', false, :class => 'toggle-selection',
+              :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
       </th>
       <% query.inline_columns.each do |column| %>
         <%= column_header(column) %>
index d257375d52814e3fe3adf061a4a7f3930d1cf32d..7ec60cdbd8971322ce0185a9b0f4bceb18fe9921 100644 (file)
@@ -5,9 +5,7 @@
 <thead>
   <tr>
     <th class="checkbox hide-when-print">
-      <%= link_to image_tag('toggle_check.png'),
-        {},
-        :onclick => 'toggleIssuesSelection(this); return false;',
+      <%= check_box_tag 'check_all', '', false, :class => 'toggle-selection',
         :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
     </th>
     <% @query.inline_columns.each do |column| %>
index de848a1ed0a6bedaae649786bab3e933aad0e733..2b48e351bc1cdcc21819cacd07538bead98462ff 100644 (file)
@@ -67,6 +67,8 @@ function contextMenuClick(event) {
       // click is outside the rows
       if (target.is('a') && (target.hasClass('disabled') || target.hasClass('submenu'))) {
         event.preventDefault();
+      } else if (target.is('.toggle-selection')) {
+        // nop
       } else {
         contextMenuUnselectAll();
       }
@@ -149,6 +151,7 @@ function contextMenuLastSelected() {
 }
 
 function contextMenuUnselectAll() {
+  $('input[type=checkbox].toggle-selection').prop('checked', false);
   $('.hascontextmenu').each(function(){
     contextMenuRemoveSelection($(this));
   });
@@ -208,18 +211,9 @@ function contextMenuInit(url) {
 }
 
 function toggleIssuesSelection(el) {
-  var boxes = $(el).parents('form').find('input[type=checkbox]');
-  var all_checked = true;
-  boxes.each(function(){ if (!$(this).prop('checked')) { all_checked = false; } });
-  boxes.each(function(){
-    if (all_checked) {
-      $(this).removeAttr('checked');
-      $(this).parents('tr').removeClass('context-menu-selection');
-    } else if (!$(this).prop('checked')) {
-      $(this).prop('checked', true);
-      $(this).parents('tr').addClass('context-menu-selection');
-    }
-  });
+  var checked = $(this).prop('checked');
+  var boxes = $(this).parents('table').find('input[name=ids\\[\\]]');
+  boxes.prop('checked', checked).parents('tr').toggleClass('context-menu-selection', checked);
 }
 
 function window_size() {
@@ -237,3 +231,7 @@ function window_size() {
   }
   return {width: w, height: h};
 }
+
+$(document).ready(function(){
+  $('input[type=checkbox].toggle-selection').on('change', toggleIssuesSelection);
+});