Total Complexity | 11 |
Complexity/F | 1.38 |
Lines of Code | 55 |
Function Count | 8 |
Duplicated Lines | 55 |
Ratio | 100 % |
Changes | 1 | ||
Bugs | 0 | Features | 0 |
Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
1 | View Code Duplication | $('i.glyphicon-refresh-animate').hide(); |
|
2 | function updateItems(r) { |
||
3 | _opts.items.avaliable = r.avaliable; |
||
|
|||
4 | _opts.items.assigned = r.assigned; |
||
5 | search('avaliable'); |
||
6 | search('assigned'); |
||
7 | } |
||
8 | |||
9 | $('.btn-assign').click(function (e) { |
||
10 | e.preventDefault(); |
||
11 | var $this = $(this); |
||
12 | var target = $this.data('target'); |
||
13 | var items = $('select.list[data-target="' + target + '"]').val(); |
||
14 | |||
15 | if (items.length) { |
||
16 | $this.children('i.glyphicon-refresh-animate').show(); |
||
17 | $.post($this.attr('href'), {items: items}, function (r) { |
||
18 | updateItems(r); |
||
19 | }).always(function () { |
||
20 | $this.children('i.glyphicon-refresh-animate').hide(); |
||
21 | }); |
||
22 | } |
||
23 | return false; |
||
24 | }); |
||
25 | |||
26 | $('.search[data-target]').keyup(function () { |
||
27 | search($(this).data('target')); |
||
28 | }); |
||
29 | |||
30 | function search(target) { |
||
31 | var $list = $('select.list[data-target="' + target + '"]'); |
||
32 | $list.html(''); |
||
33 | var q = $('.search[data-target="' + target + '"]').val(); |
||
34 | |||
35 | var groups = { |
||
36 | role: [$('<optgroup label="Roles">'), false], |
||
37 | permission: [$('<optgroup label="Permission">'), false], |
||
38 | route: [$('<optgroup label="Routes">'), false], |
||
39 | }; |
||
40 | $.each(_opts.items[target], function (name, group) { |
||
41 | if (name.indexOf(q) >= 0) { |
||
42 | $('<option>').text(name).val(name).appendTo(groups[group][0]); |
||
43 | groups[group][1] = true; |
||
44 | } |
||
45 | }); |
||
46 | $.each(groups, function () { |
||
47 | if (this[1]) { |
||
48 | $list.append(this[0]); |
||
49 | } |
||
50 | }); |
||
51 | } |
||
52 | |||
53 | // initial |
||
54 | search('avaliable'); |
||
55 | search('assigned'); |
||
56 |
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.
To learn more about declaring variables in Javascript, see the MDN.