Project

General

Profile

RE: Redmine boards/wiki/issues watchers management plugin » boards_watchers.js

Boards watchers JS compatibile with JQuery - Mikołaj Milej, 2012-11-21 00:05

 
1
function VVK_getWatchersCheckBoxes(watchers_dom_id) {
2
  var bw_users=$(watchers_dom_id+'-users');
3

    
4
  return bw_users == null ? null : $(bw_users + "input:checkbox");
5
}
6

    
7
function toggleWatchersCheckBoxes(ids_to_toggle_str,on_off_str,watchers_dom_id) {
8
  var user_ids=jQuery.parseJSON(ids_to_toggle_str);
9
  var turn_on=jQuery.parseJSON(on_off_str);
10
  var user_check_boxes=VVK_getWatchersCheckBoxes(watchers_dom_id);
11

    
12
  if(user_check_boxes!=null) {
13
    var i;
14
    for(i=0;i<user_check_boxes.length;i++) {
15
      if(user_ids[0] == -1 || user_ids.indexOf(parseInt(user_check_boxes[i].value)) != -1) {
16
        if(turn_on==-1) {
17
          turn_on = !user_check_boxes[i].checked;
18
        }
19
        user_check_boxes[i].checked=turn_on;
20
      }
21
    }
22
  }
23
}
24

    
25
function highlightWatchers(watchers_dom_id) {
26
  var user_check_boxes=VVK_getWatchersCheckBoxes(watchers_dom_id);
27

    
28
  if(user_check_boxes!=null) {
29
    var value=$('#'+watchers_dom_id+'-search').val().toUpperCase();
30
    var i;
31
    var user_name;
32
    var label_elem;
33

    
34
    for(i=0;i<user_check_boxes.length;i++) {
35
      label_elem=$(user_check_boxes[i]).parent();
36
      label_elem.removeClass('bw-floating');
37
      label_elem.removeClass('bw-floating-select');
38

    
39
      user_name=label_elem.attr('full_text').toUpperCase();
40

    
41
      if(value.length > 1 && user_name.indexOf(value) >= 0) {
42
        label_elem.addClass('bw-floating-select');
43
      } else {
44
        label_elem.addClass('bw-floating');
45
      }
46
    }
47
  }
48
}
49

    
50
function toggleSelectedWatchers(on_off_str,watchers_dom_id) {
51
  var turn_on=jQuery.parseJSON(on_off_str);
52
  var user_check_boxes=VVK_getWatchersCheckBoxes(watchers_dom_id);
53

    
54
  if(user_check_boxes!=null) {
55
    var i;
56

    
57
    for(i=0;i<user_check_boxes.length;i++) {
58
      if(user_check_boxes[i].up().hasClassName('bw-floating-select')) {
59
        user_check_boxes[i].checked=turn_on;
60
      }
61
    }
62

    
63
  }
64
}
65

    
66
function serializeWatchersForRemote(watchers_pfx,watchers_dom_id) {
67
  var user_check_boxes=VVK_getWatchersCheckBoxes(watchers_dom_id);
68
  var uri_str;
69

    
70
  uri_str='';
71

    
72
  if(user_check_boxes!=null) {
73
    var i;
74

    
75
    for(i=0;i<user_check_boxes.length;i++) {
76
      if(user_check_boxes[i].checked) {
77
        uri_str += (watchers_pfx + '=' + user_check_boxes[i].value + '&')
78
      }
79
    }
80
  }
81

    
82
  return uri_str;
83
}
    (1-1/1)