annotate rhodecode/public/js/rhodecode.js @ 2612:9364776d1331 beta

Added autocomplete widget for pull request reviewers, in exchange of 90s style multi select widget
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 15 Jul 2012 18:49:11 +0200
parents e83be26bb8d8
children ad3573d744ef
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
1 /**
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
2 RhodeCode JS Files
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
3 **/
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
4
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
6 console = { log: function() {} }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
7 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
8
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
9
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
10 var str_repeat = function(i, m) {
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
11 for (var o = []; m > 0; o[--m] = i);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
12 return o.join('');
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
13 };
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
14
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
15 /**
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
16 * INJECT .format function into String
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
18 * Return "My name is Johny Bravo"
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
19 * Inspired by https://gist.github.com/1049426
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
20 */
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
21 String.prototype.format = function() {
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
22
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
23 function format() {
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
24 var str = this;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
25 var len = arguments.length+1;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
26 var safe = undefined;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
27 var arg = undefined;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
28
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
29 // For each {0} {1} {n...} replace with the argument in that position. If
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
30 // the argument is an object or an array it will be stringified to JSON.
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
31 for (var i=0; i < len; arg = arguments[i++]) {
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
34 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
35 return str;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
36 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
37
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
38 // Save a reference of what may already exist under the property native.
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
39 // Allows for doing something like: if("".format.native) { /* use native */ }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
40 format.native = String.prototype.format;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
41
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
42 // Replace the prototype property
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
43 return format;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
44
1458
9d9e491e2a21 added author to main page tooltip
Marcin Kuzminski <marcin@python-works.com>
parents: 1426
diff changeset
45 }();
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
46
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
47 String.prototype.strip = function(char) {
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
48 if(char === undefined){
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
49 char = '\\s';
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
50 }
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
51 return this.replace(new RegExp('^'+char+'+|'+char+'+$','g'), '');
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
52 }
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
53 String.prototype.lstrip = function(char) {
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
54 if(char === undefined){
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
55 char = '\\s';
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
56 }
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
57 return this.replace(new RegExp('^'+char+'+'),'');
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
58 }
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
59 String.prototype.rstrip = function(char) {
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
60 if(char === undefined){
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
61 char = '\\s';
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
62 }
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
63 return this.replace(new RegExp(''+char+'+$'),'');
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
64 }
1465
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
65
2612
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
66
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
67 if(!Array.prototype.indexOf) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
68 Array.prototype.indexOf = function(needle) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
69 for(var i = 0; i < this.length; i++) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
70 if(this[i] === needle) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
71 return i;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
72 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
73 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
74 return -1;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
75 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
76 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
77
1465
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
78 /**
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
79 * SmartColorGenerator
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
80 *
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
81 *usage::
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
82 * var CG = new ColorGenerator();
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
83 * var col = CG.getColor(key); //returns array of RGB
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
84 * 'rgb({0})'.format(col.join(',')
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
85 *
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
86 * @returns {ColorGenerator}
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
87 */
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
88 var ColorGenerator = function(){
1465
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
89 this.GOLDEN_RATIO = 0.618033988749895;
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
90 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
91 this.HSV_1 = 0.75;//saturation
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
92 this.HSV_2 = 0.95;
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
93 this.color;
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
94 this.cacheColorMap = {};
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
95 };
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
96
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
97 ColorGenerator.prototype = {
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
98 getColor:function(key){
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
99 if(this.cacheColorMap[key] !== undefined){
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
100 return this.cacheColorMap[key];
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
101 }
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
102 else{
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
103 this.cacheColorMap[key] = this.generateColor();
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
104 return this.cacheColorMap[key];
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
105 }
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
106 },
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
107 _hsvToRgb:function(h,s,v){
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
108 if (s == 0.0)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
109 return [v, v, v];
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
110 i = parseInt(h * 6.0)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
111 f = (h * 6.0) - i
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
112 p = v * (1.0 - s)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
113 q = v * (1.0 - s * f)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
114 t = v * (1.0 - s * (1.0 - f))
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
115 i = i % 6
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
116 if (i == 0)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
117 return [v, t, p]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
118 if (i == 1)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
119 return [q, v, p]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
120 if (i == 2)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
121 return [p, v, t]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
122 if (i == 3)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
123 return [p, q, v]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
124 if (i == 4)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
125 return [t, p, v]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
126 if (i == 5)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
127 return [v, p, q]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
128 },
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
129 generateColor:function(){
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
130 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
131 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
132 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
133 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
134 function toRgb(v){
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
135 return ""+parseInt(v*256)
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
136 }
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
137 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
138
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
139 }
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
140 }
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
141
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
142
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
143
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
144
ef31d0c6bae9 Added smart color generator to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 1458
diff changeset
145
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
146 /**
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
147 * GLOBAL YUI Shortcuts
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
148 */
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
149 var YUC = YAHOO.util.Connect;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
150 var YUD = YAHOO.util.Dom;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
151 var YUE = YAHOO.util.Event;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
152 var YUQ = YAHOO.util.Selector.query;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
153
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
154 // defines if push state is enabled for this browser ?
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
155 var push_state_enabled = Boolean(
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
156 window.history && window.history.pushState && window.history.replaceState
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
157 && !( /* disable for versions of iOS before version 4.3 (8F190) */
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
158 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
159 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
160 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
161 )
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
162 );
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
163
1717
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
164 var _run_callbacks = function(callbacks){
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
165 if (callbacks !== undefined){
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
166 var _l = callbacks.length;
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
167 for (var i=0;i<_l;i++){
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
168 var func = callbacks[i];
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
169 if(typeof(func)=='function'){
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
170 try{
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
171 func();
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
172 }catch (err){};
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
173 }
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
174 }
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
175 }
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
176 }
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
177
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
178 /**
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
179 * Partial Ajax Implementation
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
180 *
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
181 * @param url: defines url to make partial request
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
182 * @param container: defines id of container to input partial result
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
183 * @param s_call: success callback function that takes o as arg
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
184 * o.tId
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
185 * o.status
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
186 * o.statusText
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
187 * o.getResponseHeader[ ]
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
188 * o.getAllResponseHeaders
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
189 * o.responseText
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
190 * o.responseXML
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
191 * o.argument
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
192 * @param f_call: failure callback
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
193 * @param args arguments
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
194 */
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
195 function ypjax(url,container,s_call,f_call,args){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
196 var method='GET';
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
197 if(args===undefined){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
198 args=null;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
199 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
200
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
201 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
202 YUC.initHeader('X-PARTIAL-XHR',true);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
203
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
204 // wrapper of passed callback
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
205 var s_wrapper = (function(o){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
206 return function(o){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
207 YUD.get(container).innerHTML=o.responseText;
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
208 YUD.setStyle(container,'opacity','1.0');
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
209 //execute the given original callback
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
210 if (s_call !== undefined){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
211 s_call(o);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
212 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
213 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
214 })()
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
215 YUD.setStyle(container,'opacity','0.3');
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
216 YUC.asyncRequest(method,url,{
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
217 success:s_wrapper,
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
218 failure:function(o){
1651
96ae22a4e963 Display error on ypjax fail
Marcin Kuzminski <marcin@python-works.com>
parents: 1638
diff changeset
219 console.log(o);
2394
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
220 YUD.get(container).innerHTML='ERROR '+o.status;
1651
96ae22a4e963 Display error on ypjax fail
Marcin Kuzminski <marcin@python-works.com>
parents: 1638
diff changeset
221 YUD.setStyle(container,'opacity','1.0');
96ae22a4e963 Display error on ypjax fail
Marcin Kuzminski <marcin@python-works.com>
parents: 1638
diff changeset
222 YUD.setStyle(container,'color','red');
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
223 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
224 },args);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
225
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
226 };
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
227
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
228 var ajaxPOST = function(url,postData,success) {
2189
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
229 // Set special header for ajax == HTTP_X_PARTIAL_XHR
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
230 YUC.initHeader('X-PARTIAL-XHR',true);
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
231
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
232 var toQueryString = function(o) {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
233 if(typeof o !== 'object') {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
234 return false;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
235 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
236 var _p, _qs = [];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
237 for(_p in o) {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
238 _qs.push(encodeURIComponent(_p) + '=' + encodeURIComponent(o[_p]));
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
239 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
240 return _qs.join('&');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
241 };
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
242
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
243 var sUrl = url;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
244 var callback = {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
245 success: success,
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
246 failure: function (o) {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
247 alert("error");
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
248 },
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
249 };
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
250 var postData = toQueryString(postData);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
251 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl, callback, postData);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
252 return request;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
253 };
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
254
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
255
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
256 /**
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
257 * tooltip activate
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
258 */
1458
9d9e491e2a21 added author to main page tooltip
Marcin Kuzminski <marcin@python-works.com>
parents: 1426
diff changeset
259 var tooltip_activate = function(){
1421
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
260 function toolTipsId(){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
261 var ids = [];
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
262 var tts = YUQ('.tooltip');
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
263 for (var i = 0; i < tts.length; i++) {
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
264 // if element doesn't not have and id
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
265 // autogenerate one for tooltip
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
266 if (!tts[i].id){
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
267 tts[i].id='tt'+((i*100)+tts.length);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
268 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
269 ids.push(tts[i].id);
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
270 }
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
271 return ids
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
272 };
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
273 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
274 context: [[toolTipsId()],"tl","bl",null,[0,5]],
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
275 monitorresize:false,
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
276 xyoffset :[0,0],
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
277 autodismissdelay:300000,
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
278 hidedelay:5,
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
279 showdelay:20,
c6b811f11c94 Javascripts rewrite: updated yui to latest 2.9, simplified ajax loading for multiple pages. Removed YUI dev package
Marcin Kuzminski <marcin@python-works.com>
parents:
diff changeset
280 });
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
281 };
1426
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
282
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
283 /**
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
284 * show more
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
285 */
1458
9d9e491e2a21 added author to main page tooltip
Marcin Kuzminski <marcin@python-works.com>
parents: 1426
diff changeset
286 var show_more_event = function(){
1426
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
287 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
288 var el = e.target;
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
289 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
290 YUD.setStyle(el.parentNode,'display','none');
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
291 });
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
292 };
1426
91708b96e991 Fixed show more links.
Marcin Kuzminski <marcin@python-works.com>
parents: 1421
diff changeset
293
1653
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
294
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
295 /**
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
296 * Quick filter widget
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
297 *
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
298 * @param target: filter input target
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
299 * @param nodes: list of nodes in html we want to filter.
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
300 * @param display_element function that takes current node from nodes and
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
301 * does hide or show based on the node
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
302 *
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
303 */
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
304 var q_filter = function(target,nodes,display_element){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
305
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
306 var nodes = nodes;
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
307 var q_filter_field = YUD.get(target);
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
308 var F = YAHOO.namespace(target);
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
309
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
310 YUE.on(q_filter_field,'click',function(){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
311 q_filter_field.value = '';
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
312 });
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
313
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
314 YUE.on(q_filter_field,'keyup',function(e){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
315 clearTimeout(F.filterTimeout);
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
316 F.filterTimeout = setTimeout(F.updateFilter,600);
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
317 });
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
318
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
319 F.filterTimeout = null;
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
320
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
321 var show_node = function(node){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
322 YUD.setStyle(node,'display','')
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
323 }
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
324 var hide_node = function(node){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
325 YUD.setStyle(node,'display','none');
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
326 }
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
327
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
328 F.updateFilter = function() {
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
329 // Reset timeout
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
330 F.filterTimeout = null;
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
331
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
332 var obsolete = [];
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
333
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
334 var req = q_filter_field.value.toLowerCase();
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
335
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
336 var l = nodes.length;
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
337 var i;
1667
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
338 var showing = 0;
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
339
1653
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
340 for (i=0;i<l;i++ ){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
341 var n = nodes[i];
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
342 var target_element = display_element(n)
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
343 if(req && n.innerHTML.toLowerCase().indexOf(req) == -1){
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
344 hide_node(target_element);
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
345 }
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
346 else{
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
347 show_node(target_element);
1667
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
348 showing+=1;
1653
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
349 }
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
350 }
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
351
1667
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
352 // if repo_count is set update the number
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
353 var cnt = YUD.get('repo_count');
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
354 if(cnt){
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
355 YUD.get('repo_count').innerHTML = showing;
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
356 }
fab837f40cf7 fixed repo counter on main page
Marcin Kuzminski <marcin@python-works.com>
parents: 1653
diff changeset
357
1653
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
358 }
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
359 };
1653
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
360
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
361 var tableTr = function(cls,body){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
362 var tr = document.createElement('tr');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
363 YUD.addClass(tr, cls);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
364
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
365
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
366 var cont = new YAHOO.util.Element(body);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
367 var comment_id = fromHTML(body).children[0].id.split('comment-')[1];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
368 tr.id = 'comment-tr-{0}'.format(comment_id);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
369 tr.innerHTML = '<td class="lineno-inline new-inline"></td>'+
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
370 '<td class="lineno-inline old-inline"></td>'+
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
371 '<td>{0}</td>'.format(body);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
372 return tr;
1674
6f0143e5efe5 #71 code review
Marcin Kuzminski <marcin@python-works.com>
parents: 1667
diff changeset
373 };
1653
b1e1dffd595c one generic qfilter function.
Marcin Kuzminski <marcin@python-works.com>
parents: 1651
diff changeset
374
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
375 /** comments **/
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
376 var removeInlineForm = function(form) {
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
377 form.parentNode.removeChild(form);
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
378 };
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
379
1682
1f2ba96de73e #71 code review
Marcin Kuzminski <marcin@python-works.com>
parents: 1679
diff changeset
380 var createInlineForm = function(parent_tr, f_path, line) {
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
381 var tmpl = YUD.get('comment-inline-form-template').innerHTML;
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
382 tmpl = tmpl.format(f_path, line);
1682
1f2ba96de73e #71 code review
Marcin Kuzminski <marcin@python-works.com>
parents: 1679
diff changeset
383 var form = tableTr('comment-form-inline',tmpl)
1f2ba96de73e #71 code review
Marcin Kuzminski <marcin@python-works.com>
parents: 1679
diff changeset
384
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
385 // create event for hide button
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
386 form = new YAHOO.util.Element(form);
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
387 var form_hide_button = new YAHOO.util.Element(form.getElementsByClassName('hide-inline-form')[0]);
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
388 form_hide_button.on('click', function(e) {
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
389 var newtr = e.currentTarget.parentNode.parentNode.parentNode.parentNode.parentNode;
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
390 if(YUD.hasClass(newtr.nextElementSibling,'inline-comments-button')){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
391 YUD.setStyle(newtr.nextElementSibling,'display','');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
392 }
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
393 removeInlineForm(newtr);
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
394 YUD.removeClass(parent_tr, 'form-open');
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
395
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
396 });
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
397
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
398 return form
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
399 };
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
400
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
401 /**
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
402 * Inject inline comment for on given TR this tr should be always an .line
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
403 * tr containing the line. Code will detect comment, and always put the comment
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
404 * block at the very bottom
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
405 */
1705
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
406 var injectInlineForm = function(tr){
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
407 if(!YUD.hasClass(tr, 'line')){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
408 return
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
409 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
410 var submit_url = AJAX_COMMENT_URL;
2608
58c529332e7e Added option to close pull requests, in future that will be close & merge
Marcin Kuzminski <marcin@python-works.com>
parents: 2548
diff changeset
411 var _td = tr.getElementsByClassName('code')[0];
58c529332e7e Added option to close pull requests, in future that will be close & merge
Marcin Kuzminski <marcin@python-works.com>
parents: 2548
diff changeset
412 if(YUD.hasClass(tr,'form-open') || YUD.hasClass(tr,'context') || YUD.hasClass(_td,'no-comment')){
1705
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
413 return
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
414 }
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
415 YUD.addClass(tr,'form-open');
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
416 var node = tr.parentNode.parentNode.parentNode.getElementsByClassName('full_f_path')[0];
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
417 var f_path = YUD.getAttribute(node,'path');
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
418 var lineno = getLineNo(tr);
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
419 var form = createInlineForm(tr, f_path, lineno, submit_url);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
420
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
421 var parent = tr;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
422 while (1){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
423 var n = parent.nextElementSibling;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
424 // next element are comments !
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
425 if(YUD.hasClass(n,'inline-comments')){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
426 parent = n;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
427 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
428 else{
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
429 break;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
430 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
431 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
432 YUD.insertAfter(form,parent);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
433
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
434 var f = YUD.get(form);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
435
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
436 var overlay = f.getElementsByClassName('overlay')[0];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
437 var _form = f.getElementsByClassName('inline-form')[0];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
438
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
439 form.on('submit',function(e){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
440 YUE.preventDefault(e);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
441
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
442 //ajax submit
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
443 var text = YUD.get('text_'+lineno).value;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
444 var postData = {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
445 'text':text,
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
446 'f_path':f_path,
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
447 'line':lineno
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
448 };
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
449
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
450 if(lineno === undefined){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
451 alert('missing line !');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
452 return
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
453 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
454 if(f_path === undefined){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
455 alert('missing file path !');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
456 return
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
457 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
458
2189
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
459 if(text == ""){
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
460 return
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
461 }
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
462
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
463 var success = function(o){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
464 YUD.removeClass(tr, 'form-open');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
465 removeInlineForm(f);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
466 var json_data = JSON.parse(o.responseText);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
467 renderInlineComment(json_data);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
468 };
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
469
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
470 if (YUD.hasClass(overlay,'overlay')){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
471 var w = _form.offsetWidth;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
472 var h = _form.offsetHeight;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
473 YUD.setStyle(overlay,'width',w+'px');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
474 YUD.setStyle(overlay,'height',h+'px');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
475 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
476 YUD.addClass(overlay, 'submitting');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
477
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
478 ajaxPOST(submit_url, postData, success);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
479 });
2437
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
480
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
481 setTimeout(function(){
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
482 // callbacks
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
483 tooltip_activate();
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
484 MentionsAutoComplete('text_'+lineno, 'mentions_container_'+lineno,
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
485 _USERS_AC_DATA, _GROUPS_AC_DATA);
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
486 YUD.get('text_'+lineno).focus();
81c29d269aed fixed race condition in autocomplete widget on inlines comments
Marcin Kuzminski <marcin@python-works.com>
parents: 2428
diff changeset
487 },10)
1705
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
488 };
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
489
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
490 var deleteComment = function(comment_id){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
491 var url = AJAX_COMMENT_DELETE_URL.replace('__COMMENT_ID__',comment_id);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
492 var postData = {'_method':'delete'};
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
493 var success = function(o){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
494 var n = YUD.get('comment-tr-'+comment_id);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
495 var root = n.previousElementSibling.previousElementSibling;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
496 n.parentNode.removeChild(n);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
497
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
498 // scann nodes, and attach add button to last one
2189
3052f90c568a fixed main comments, prevent from sending inline comments if text is empty
Marcin Kuzminski <marcin@python-works.com>
parents: 2187
diff changeset
499 placeAddButton(root);
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
500 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
501 ajaxPOST(url,postData,success);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
502 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
503
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
504
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
505 var createInlineAddButton = function(tr){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
506
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
507 var label = TRANSLATION_MAP['add another comment'];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
508
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
509 var html_el = document.createElement('div');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
510 YUD.addClass(html_el, 'add-comment');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
511 html_el.innerHTML = '<span class="ui-btn">{0}</span>'.format(label);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
512
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
513 var add = new YAHOO.util.Element(html_el);
1705
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
514 add.on('click', function(e) {
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
515 injectInlineForm(tr);
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
516 });
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
517 return add;
5e4827a8e942 added reply comment button on top of inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1699
diff changeset
518 };
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
519
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
520 var getLineNo = function(tr) {
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
521 var line;
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
522 var o = tr.children[0].id.split('_');
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
523 var n = tr.children[1].id.split('_');
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
524
1679
c3d9cd8c0cba fixed inline comment file parsing
Marcin Kuzminski <marcin@python-works.com>
parents: 1677
diff changeset
525 if (n.length >= 2) {
c3d9cd8c0cba fixed inline comment file parsing
Marcin Kuzminski <marcin@python-works.com>
parents: 1677
diff changeset
526 line = n[n.length-1];
c3d9cd8c0cba fixed inline comment file parsing
Marcin Kuzminski <marcin@python-works.com>
parents: 1677
diff changeset
527 } else if (o.length >= 2) {
1685
2e583dbfcf22 fixed typo in linenumber calculation on inline comments
Marcin Kuzminski <marcin@python-works.com>
parents: 1683
diff changeset
528 line = o[o.length-1];
1677
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
529 }
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
530
7276b170ce8b #71 code-review
Marcin Kuzminski <marcin@python-works.com>
parents: 1674
diff changeset
531 return line
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
532 };
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
533
2187
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
534 var placeAddButton = function(target_tr){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
535 if(!target_tr){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
536 return
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
537 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
538 var last_node = target_tr;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
539 //scann
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
540 while (1){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
541 var n = last_node.nextElementSibling;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
542 // next element are comments !
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
543 if(YUD.hasClass(n,'inline-comments')){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
544 last_node = n;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
545 //also remove the comment button from previos
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
546 var comment_add_buttons = last_node.getElementsByClassName('add-comment');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
547 for(var i=0;i<comment_add_buttons.length;i++){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
548 var b = comment_add_buttons[i];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
549 b.parentNode.removeChild(b);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
550 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
551 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
552 else{
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
553 break;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
554 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
555 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
556
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
557 var add = createInlineAddButton(target_tr);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
558 // get the comment div
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
559 var comment_block = last_node.getElementsByClassName('comment')[0];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
560 // attach add button
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
561 YUD.insertAfter(add,comment_block);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
562 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
563
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
564 /**
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
565 * Places the inline comment into the changeset block in proper line position
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
566 */
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
567 var placeInline = function(target_container,lineno,html){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
568 var lineid = "{0}_{1}".format(target_container,lineno);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
569 var target_line = YUD.get(lineid);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
570 var comment = new YAHOO.util.Element(tableTr('inline-comments',html))
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
571
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
572 // check if there are comments already !
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
573 var parent = target_line.parentNode;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
574 var root_parent = parent;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
575 while (1){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
576 var n = parent.nextElementSibling;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
577 // next element are comments !
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
578 if(YUD.hasClass(n,'inline-comments')){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
579 parent = n;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
580 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
581 else{
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
582 break;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
583 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
584 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
585 // put in the comment at the bottom
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
586 YUD.insertAfter(comment,parent);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
587
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
588 // scann nodes, and attach add button to last one
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
589 placeAddButton(root_parent);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
590
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
591 return target_line;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
592 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
593
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
594 /**
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
595 * make a single inline comment and place it inside
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
596 */
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
597 var renderInlineComment = function(json_data){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
598 try{
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
599 var html = json_data['rendered_text'];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
600 var lineno = json_data['line_no'];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
601 var target_id = json_data['target_id'];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
602 placeInline(target_id, lineno, html);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
603
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
604 }catch(e){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
605 console.log(e);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
606 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
607 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
608
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
609 /**
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
610 * Iterates over all the inlines, and places them inside proper blocks of data
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
611 */
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
612 var renderInlineComments = function(file_comments){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
613 for (f in file_comments){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
614 // holding all comments for a FILE
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
615 var box = file_comments[f];
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
616
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
617 var target_id = YUD.getAttribute(box,'target_id');
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
618 // actually comments with line numbers
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
619 var comments = box.children;
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
620 for(var i=0; i<comments.length; i++){
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
621 var data = {
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
622 'rendered_text': comments[i].outerHTML,
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
623 'line_no': YUD.getAttribute(comments[i],'line'),
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
624 'target_id': target_id
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
625 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
626 renderInlineComment(data);
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
627 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
628 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
629 }
b61e540122f2 #415: Adding comment to changeset causes reload
Marcin Kuzminski <marcin@python-works.com>
parents: 2145
diff changeset
630
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
631
2428
530bd12fc18a removed JSON array envelope from filter files function
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
632 var fileBrowserListeners = function(current_url, node_list_url, url_base){
530bd12fc18a removed JSON array envelope from filter files function
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
633
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
634 var current_url_branch = +"?branch=__BRANCH__";
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
635 var url = url_base;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
636 var node_url = node_list_url;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
637
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
638 YUE.on('stay_at_branch','click',function(e){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
639 if(e.target.checked){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
640 var uri = current_url_branch;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
641 uri = uri.replace('__BRANCH__',e.target.value);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
642 window.location = uri;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
643 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
644 else{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
645 window.location = current_url;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
646 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
647 })
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
648
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
649 var n_filter = YUD.get('node_filter');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
650 var F = YAHOO.namespace('node_filter');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
651
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
652 F.filterTimeout = null;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
653 var nodes = null;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
654
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
655 F.initFilter = function(){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
656 YUD.setStyle('node_filter_box_loading','display','');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
657 YUD.setStyle('search_activate_id','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
658 YUD.setStyle('add_node_id','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
659 YUC.initHeader('X-PARTIAL-XHR',true);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
660 YUC.asyncRequest('GET',url,{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
661 success:function(o){
2428
530bd12fc18a removed JSON array envelope from filter files function
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
662 nodes = JSON.parse(o.responseText).nodes;
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
663 YUD.setStyle('node_filter_box_loading','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
664 YUD.setStyle('node_filter_box','display','');
1810
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
665 n_filter.focus();
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
666 if(YUD.hasClass(n_filter,'init')){
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
667 n_filter.value = '';
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
668 YUD.removeClass(n_filter,'init');
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
669 }
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
670 },
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
671 failure:function(o){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
672 console.log('failed to load');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
673 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
674 },null);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
675 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
676
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
677 F.updateFilter = function(e) {
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
678
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
679 return function(){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
680 // Reset timeout
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
681 F.filterTimeout = null;
1810
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
682 var query = e.target.value.toLowerCase();
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
683 var match = [];
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
684 var matches = 0;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
685 var matches_max = 20;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
686 if (query != ""){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
687 for(var i=0;i<nodes.length;i++){
1810
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
688
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
689 var pos = nodes[i].name.toLowerCase().indexOf(query)
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
690 if(query && pos != -1){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
691
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
692 matches++
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
693 //show only certain amount to not kill browser
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
694 if (matches > matches_max){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
695 break;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
696 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
697
1810
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
698 var n = nodes[i].name;
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
699 var t = nodes[i].type;
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
700 var n_hl = n.substring(0,pos)
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
701 +"<b>{0}</b>".format(n.substring(pos,pos+query.length))
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
702 +n.substring(pos+query.length)
1810
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
703 match.push('<tr><td><a class="browser-{0}" href="{1}">{2}</a></td><td colspan="5"></td></tr>'.format(t,node_url.replace('__FPATH__',n),n_hl));
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
704 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
705 if(match.length >= matches_max){
2428
530bd12fc18a removed JSON array envelope from filter files function
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
706 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['search truncated']));
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
707 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
708 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
709 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
710 if(query != ""){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
711 YUD.setStyle('tbody','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
712 YUD.setStyle('tbody_filtered','display','');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
713
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
714 if (match.length==0){
2428
530bd12fc18a removed JSON array envelope from filter files function
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
715 match.push('<tr><td>{0}</td><td colspan="5"></td></tr>'.format(_TM['no matching files']));
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
716 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
717
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
718 YUD.get('tbody_filtered').innerHTML = match.join("");
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
719 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
720 else{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
721 YUD.setStyle('tbody','display','');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
722 YUD.setStyle('tbody_filtered','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
723 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
724
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
725 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
726 };
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
727
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
728 YUE.on(YUD.get('filter_activate'),'click',function(){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
729 F.initFilter();
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
730 })
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
731 YUE.on(n_filter,'click',function(){
1810
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
732 if(YUD.hasClass(n_filter,'init')){
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
733 n_filter.value = '';
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
734 YUD.removeClass(n_filter,'init');
203af05539e0 implements #330 api method for listing nodes at particular revision
Marcin Kuzminski <marcin@python-works.com>
parents: 1787
diff changeset
735 }
1699
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
736 });
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
737 YUE.on(n_filter,'keyup',function(e){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
738 clearTimeout(F.filterTimeout);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
739 F.filterTimeout = setTimeout(F.updateFilter(e),600);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
740 });
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
741 };
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
742
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
743
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
744 var initCodeMirror = function(textAreadId,resetUrl){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
745 var myCodeMirror = CodeMirror.fromTextArea(YUD.get(textAreadId),{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
746 mode: "null",
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
747 lineNumbers:true
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
748 });
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
749 YUE.on('reset','click',function(e){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
750 window.location=resetUrl
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
751 });
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
752
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
753 YUE.on('file_enable','click',function(){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
754 YUD.setStyle('editor_container','display','');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
755 YUD.setStyle('upload_file_container','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
756 YUD.setStyle('filename_container','display','');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
757 });
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
758
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
759 YUE.on('upload_file_enable','click',function(){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
760 YUD.setStyle('editor_container','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
761 YUD.setStyle('upload_file_container','display','');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
762 YUD.setStyle('filename_container','display','none');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
763 });
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
764 };
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
765
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
766
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
767
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
768 var getIdentNode = function(n){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
769 //iterate thru nodes untill matched interesting node !
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
770
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
771 if (typeof n == 'undefined'){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
772 return -1
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
773 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
774
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
775 if(typeof n.id != "undefined" && n.id.match('L[0-9]+')){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
776 return n
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
777 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
778 else{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
779 return getIdentNode(n.parentNode);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
780 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
781 };
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
782
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
783 var getSelectionLink = function(selection_link_label) {
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
784 return function(){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
785 //get selection from start/to nodes
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
786 if (typeof window.getSelection != "undefined") {
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
787 s = window.getSelection();
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
788
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
789 from = getIdentNode(s.anchorNode);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
790 till = getIdentNode(s.focusNode);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
791
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
792 f_int = parseInt(from.id.replace('L',''));
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
793 t_int = parseInt(till.id.replace('L',''));
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
794
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
795 if (f_int > t_int){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
796 //highlight from bottom
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
797 offset = -35;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
798 ranges = [t_int,f_int];
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
799
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
800 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
801 else{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
802 //highligth from top
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
803 offset = 35;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
804 ranges = [f_int,t_int];
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
805 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
806
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
807 if (ranges[0] != ranges[1]){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
808 if(YUD.get('linktt') == null){
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
809 hl_div = document.createElement('div');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
810 hl_div.id = 'linktt';
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
811 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
812 anchor = '#L'+ranges[0]+'-'+ranges[1];
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
813 hl_div.innerHTML = '';
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
814 l = document.createElement('a');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
815 l.href = location.href.substring(0,location.href.indexOf('#'))+anchor;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
816 l.innerHTML = selection_link_label;
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
817 hl_div.appendChild(l);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
818
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
819 YUD.get('body').appendChild(hl_div);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
820
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
821 xy = YUD.getXY(till.id);
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
822
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
823 YUD.addClass('linktt','yui-tt');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
824 YUD.setStyle('linktt','top',xy[1]+offset+'px');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
825 YUD.setStyle('linktt','left',xy[0]+'px');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
826 YUD.setStyle('linktt','visibility','visible');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
827 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
828 else{
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
829 YUD.setStyle('linktt','visibility','hidden');
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
830 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
831 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
832 }
623b228cf325 cleaned up JS files in files templates.
Marcin Kuzminski <marcin@python-works.com>
parents: 1685
diff changeset
833 };
1712
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
834
1717
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
835 var deleteNotification = function(url, notification_id,callbacks){
1712
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
836 var callback = {
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
837 success:function(o){
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
838 var obj = YUD.get(String("notification_"+notification_id));
1717
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
839 if(obj.parentNode !== undefined){
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
840 obj.parentNode.removeChild(obj);
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
841 }
7ff304d3028f Notification fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 1712
diff changeset
842 _run_callbacks(callbacks);
1712
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
843 },
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
844 failure:function(o){
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
845 alert("error");
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
846 },
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
847 };
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
848 var postData = '_method=delete';
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
849 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
850 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
851 callback, postData);
cac5109ac3b6 Notification system improvements
Marcin Kuzminski <marcin@python-works.com>
parents: 1705
diff changeset
852 };
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
853
2610
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
854 var readNotification = function(url, notification_id,callbacks){
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
855 var callback = {
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
856 success:function(o){
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
857 var obj = YUD.get(String("notification_"+notification_id));
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
858 YUD.removeClass(obj, 'unread');
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
859 var r_button = obj.children[0].getElementsByClassName('read-notification')[0]
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
860
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
861 if(r_button.parentNode !== undefined){
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
862 r_button.parentNode.removeChild(r_button);
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
863 }
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
864 _run_callbacks(callbacks);
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
865 },
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
866 failure:function(o){
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
867 alert("error");
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
868 },
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
869 };
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
870 var postData = '_method=put';
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
871 var sUrl = url.replace('__NOTIFICATION_ID__',notification_id);
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
872 var request = YAHOO.util.Connect.asyncRequest('POST', sUrl,
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
873 callback, postData);
3fdf7c3be2c9 added mark as read for single notifications
Marcin Kuzminski <marcin@python-works.com>
parents: 2608
diff changeset
874 };
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
875
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
876 /** MEMBERS AUTOCOMPLETE WIDGET **/
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
877
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
878 var MembersAutoComplete = function (users_list, groups_list) {
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
879 var myUsers = users_list;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
880 var myGroups = groups_list;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
881
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
882 // Define a custom search function for the DataSource of users
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
883 var matchUsers = function (sQuery) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
884 // Case insensitive matching
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
885 var query = sQuery.toLowerCase();
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
886 var i = 0;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
887 var l = myUsers.length;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
888 var matches = [];
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
889
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
890 // Match against each name of each contact
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
891 for (; i < l; i++) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
892 contact = myUsers[i];
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
893 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
894 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
895 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
896 matches[matches.length] = contact;
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
897 }
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
898 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
899 return matches;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
900 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
901
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
902 // Define a custom search function for the DataSource of usersGroups
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
903 var matchGroups = function (sQuery) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
904 // Case insensitive matching
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
905 var query = sQuery.toLowerCase();
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
906 var i = 0;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
907 var l = myGroups.length;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
908 var matches = [];
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
909
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
910 // Match against each name of each contact
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
911 for (; i < l; i++) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
912 matched_group = myGroups[i];
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
913 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
914 matches[matches.length] = matched_group;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
915 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
916 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
917 return matches;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
918 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
919
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
920 //match all
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
921 var matchAll = function (sQuery) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
922 u = matchUsers(sQuery);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
923 g = matchGroups(sQuery);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
924 return u.concat(g);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
925 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
926
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
927 // DataScheme for members
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
928 var memberDS = new YAHOO.util.FunctionDataSource(matchAll);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
929 memberDS.responseSchema = {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
930 fields: ["id", "fname", "lname", "nname", "grname", "grmembers", "gravatar_lnk"]
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
931 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
932
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
933 // DataScheme for owner
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
934 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
935 ownerDS.responseSchema = {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
936 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
937 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
938
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
939 // Instantiate AutoComplete for perms
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
940 var membersAC = new YAHOO.widget.AutoComplete("perm_new_member_name", "perm_container", memberDS);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
941 membersAC.useShadow = false;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
942 membersAC.resultTypeList = false;
2611
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
943 membersAC.animVert = false;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
944 membersAC.animHoriz = false;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
945 membersAC.animSpeed = 0.1;
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
946
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
947 // Instantiate AutoComplete for owner
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
948 var ownerAC = new YAHOO.widget.AutoComplete("user", "owner_container", ownerDS);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
949 ownerAC.useShadow = false;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
950 ownerAC.resultTypeList = false;
2611
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
951 ownerAC.animVert = false;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
952 ownerAC.animHoriz = false;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
953 ownerAC.animSpeed = 0.1;
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
954
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
955 // Helper highlight function for the formatter
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
956 var highlightMatch = function (full, snippet, matchindex) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
957 return full.substring(0, matchindex)
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
958 + "<span class='match'>"
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
959 + full.substr(matchindex, snippet.length)
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
960 + "</span>" + full.substring(matchindex + snippet.length);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
961 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
962
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
963 // Custom formatter to highlight the matching letters
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
964 var custom_formatter = function (oResultData, sQuery, sResultMatch) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
965 var query = sQuery.toLowerCase();
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
966 var _gravatar = function(res, em, group){
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
967 if (group !== undefined){
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
968 em = '/images/icons/group.png'
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
969 }
2145
f8e66d942dcb autocomplete overflow fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2142
diff changeset
970 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
971 return tmpl.format(em,res)
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
972 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
973 // group
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
974 if (oResultData.grname != undefined) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
975 var grname = oResultData.grname;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
976 var grmembers = oResultData.grmembers;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
977 var grnameMatchIndex = grname.toLowerCase().indexOf(query);
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
978 var grprefix = "{0}: ".format(_TM['Group']);
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
979 var grsuffix = " (" + grmembers + " )";
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
980 var grsuffix = " ({0} {1})".format(grmembers, _TM['members']);
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
981
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
982 if (grnameMatchIndex > -1) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
983 return _gravatar(grprefix + highlightMatch(grname, query, grnameMatchIndex) + grsuffix,null,true);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
984 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
985 return _gravatar(grprefix + oResultData.grname + grsuffix, null,true);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
986 // Users
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
987 } else if (oResultData.nname != undefined) {
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
988 var fname = oResultData.fname || "";
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
989 var lname = oResultData.lname || "";
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
990 var nname = oResultData.nname;
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
991
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
992 // Guard against null value
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
993 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
2142
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
994 lnameMatchIndex = lname.toLowerCase().indexOf(query),
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
995 nnameMatchIndex = nname.toLowerCase().indexOf(query),
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
996 displayfname, displaylname, displaynname;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
997
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
998 if (fnameMatchIndex > -1) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
999 displayfname = highlightMatch(fname, query, fnameMatchIndex);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1000 } else {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1001 displayfname = fname;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1002 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1003
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1004 if (lnameMatchIndex > -1) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1005 displaylname = highlightMatch(lname, query, lnameMatchIndex);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1006 } else {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1007 displaylname = lname;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1008 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1009
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1010 if (nnameMatchIndex > -1) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1011 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1012 } else {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1013 displaynname = nname ? "(" + nname + ")" : "";
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1014 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1015
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1016 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1017 } else {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1018 return '';
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1019 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1020 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1021 membersAC.formatResult = custom_formatter;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1022 ownerAC.formatResult = custom_formatter;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1023
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1024 var myHandler = function (sType, aArgs) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1025
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1026 var myAC = aArgs[0]; // reference back to the AC instance
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1027 var elLI = aArgs[1]; // reference to the selected LI element
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1028 var oData = aArgs[2]; // object literal of selected item's result data
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1029 //fill the autocomplete with value
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1030 if (oData.nname != undefined) {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1031 //users
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1032 myAC.getInputEl().value = oData.nname;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1033 YUD.get('perm_new_member_type').value = 'user';
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1034 } else {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1035 //groups
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1036 myAC.getInputEl().value = oData.grname;
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1037 YUD.get('perm_new_member_type').value = 'users_group';
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1038 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1039 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1040
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1041 membersAC.itemSelectEvent.subscribe(myHandler);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1042 if(ownerAC.itemSelectEvent){
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1043 ownerAC.itemSelectEvent.subscribe(myHandler);
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1044 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1045
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1046 return {
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1047 memberDS: memberDS,
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1048 ownerDS: ownerDS,
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1049 membersAC: membersAC,
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1050 ownerAC: ownerAC,
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1051 };
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1052 }
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1053
a21eab6ff42f Added gravatars into permissions view and permissions autocomplete
Marcin Kuzminski <marcin@python-works.com>
parents: 2128
diff changeset
1054
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1055 var MentionsAutoComplete = function (divid, cont, users_list, groups_list) {
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1056 var myUsers = users_list;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1057 var myGroups = groups_list;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1058
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1059 // Define a custom search function for the DataSource of users
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1060 var matchUsers = function (sQuery) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1061 var org_sQuery = sQuery;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1062 if(this.mentionQuery == null){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1063 return []
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1064 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1065 sQuery = this.mentionQuery;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1066 // Case insensitive matching
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1067 var query = sQuery.toLowerCase();
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1068 var i = 0;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1069 var l = myUsers.length;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1070 var matches = [];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1071
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1072 // Match against each name of each contact
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1073 for (; i < l; i++) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1074 contact = myUsers[i];
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1075 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1076 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1077 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1078 matches[matches.length] = contact;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1079 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1080 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1081 return matches
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1082 };
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1083
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1084 //match all
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1085 var matchAll = function (sQuery) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1086 u = matchUsers(sQuery);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1087 return u
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1088 };
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1089
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1090 // DataScheme for owner
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1091 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1092
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1093 ownerDS.responseSchema = {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1094 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1095 };
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1096
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1097 // Instantiate AutoComplete for mentions
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1098 var ownerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1099 ownerAC.useShadow = false;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1100 ownerAC.resultTypeList = false;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1101 ownerAC.suppressInputUpdate = true;
2611
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
1102 ownerAC.animVert = false;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
1103 ownerAC.animHoriz = false;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
1104 ownerAC.animSpeed = 0.1;
e83be26bb8d8 disable animation on autocomplete widget
Marcin Kuzminski <marcin@python-works.com>
parents: 2610
diff changeset
1105
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1106 // Helper highlight function for the formatter
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1107 var highlightMatch = function (full, snippet, matchindex) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1108 return full.substring(0, matchindex)
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1109 + "<span class='match'>"
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1110 + full.substr(matchindex, snippet.length)
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1111 + "</span>" + full.substring(matchindex + snippet.length);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1112 };
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1113
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1114 // Custom formatter to highlight the matching letters
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1115 ownerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1116 var org_sQuery = sQuery;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1117 if(this.dataSource.mentionQuery != null){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1118 sQuery = this.dataSource.mentionQuery;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1119 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1120
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1121 var query = sQuery.toLowerCase();
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1122 var _gravatar = function(res, em, group){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1123 if (group !== undefined){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1124 em = '/images/icons/group.png'
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1125 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1126 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1127 return tmpl.format(em,res)
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1128 }
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1129 if (oResultData.nname != undefined) {
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1130 var fname = oResultData.fname || "";
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1131 var lname = oResultData.lname || "";
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1132 var nname = oResultData.nname;
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1133
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1134 // Guard against null value
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1135 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1136 lnameMatchIndex = lname.toLowerCase().indexOf(query),
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1137 nnameMatchIndex = nname.toLowerCase().indexOf(query),
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1138 displayfname, displaylname, displaynname;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1139
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1140 if (fnameMatchIndex > -1) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1141 displayfname = highlightMatch(fname, query, fnameMatchIndex);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1142 } else {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1143 displayfname = fname;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1144 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1145
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1146 if (lnameMatchIndex > -1) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1147 displaylname = highlightMatch(lname, query, lnameMatchIndex);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1148 } else {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1149 displaylname = lname;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1150 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1151
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1152 if (nnameMatchIndex > -1) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1153 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1154 } else {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1155 displaynname = nname ? "(" + nname + ")" : "";
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1156 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1157
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1158 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1159 } else {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1160 return '';
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1161 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1162 };
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1163
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1164 if(ownerAC.itemSelectEvent){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1165 ownerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1166
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1167 var myAC = aArgs[0]; // reference back to the AC instance
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1168 var elLI = aArgs[1]; // reference to the selected LI element
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1169 var oData = aArgs[2]; // object literal of selected item's result data
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1170 //fill the autocomplete with value
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1171 if (oData.nname != undefined) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1172 //users
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1173 //Replace the mention name with replaced
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1174 var re = new RegExp();
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1175 var org = myAC.getInputEl().value;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1176 var chunks = myAC.dataSource.chunks
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1177 // replace middle chunk(the search term) with actuall match
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1178 chunks[1] = chunks[1].replace('@'+myAC.dataSource.mentionQuery,
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1179 '@'+oData.nname+' ');
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1180 myAC.getInputEl().value = chunks.join('')
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1181 YUD.get(myAC.getInputEl()).focus(); // Y U NO WORK !?
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1182 } else {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1183 //groups
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1184 myAC.getInputEl().value = oData.grname;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1185 YUD.get('perm_new_member_type').value = 'users_group';
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1186 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1187 });
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1188 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1189
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1190 // in this keybuffer we will gather current value of search !
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1191 // since we need to get this just when someone does `@` then we do the
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1192 // search
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1193 ownerAC.dataSource.chunks = [];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1194 ownerAC.dataSource.mentionQuery = null;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1195
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1196 ownerAC.get_mention = function(msg, max_pos) {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1197 var org = msg;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1198 var re = new RegExp('(?:^@|\s@)([a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+)$')
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1199 var chunks = [];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1200
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1201
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1202 // cut first chunk until curret pos
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1203 var to_max = msg.substr(0, max_pos);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1204 var at_pos = Math.max(0,to_max.lastIndexOf('@')-1);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1205 var msg2 = to_max.substr(at_pos);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1206
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1207 chunks.push(org.substr(0,at_pos))// prefix chunk
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1208 chunks.push(msg2) // search chunk
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1209 chunks.push(org.substr(max_pos)) // postfix chunk
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1210
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1211 // clean up msg2 for filtering and regex match
2369
c2f131502037 Autocomplete fixes
Marcin Kuzminski <marcin@python-works.com>
parents: 2368
diff changeset
1212 var msg2 = msg2.lstrip(' ').lstrip('\n');
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1213
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1214 if(re.test(msg2)){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1215 var unam = re.exec(msg2)[1];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1216 return [unam, chunks];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1217 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1218 return [null, null];
2612
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1219 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1220
2368
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1221 ownerAC.textboxKeyUpEvent.subscribe(function(type, args){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1222
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1223 var ac_obj = args[0];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1224 var currentMessage = args[1];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1225 var currentCaretPosition = args[0]._elTextbox.selectionStart;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1226
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1227 var unam = ownerAC.get_mention(currentMessage, currentCaretPosition);
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1228 var curr_search = null;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1229 if(unam[0]){
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1230 curr_search = unam[0];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1231 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1232
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1233 ownerAC.dataSource.chunks = unam[1];
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1234 ownerAC.dataSource.mentionQuery = curr_search;
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1235
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1236 })
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1237
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1238 return {
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1239 ownerDS: ownerDS,
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1240 ownerAC: ownerAC,
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1241 };
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1242 }
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1243
5143b8df576c Added mentions autocomplete into main comments form
Marcin Kuzminski <marcin@python-works.com>
parents: 2189
diff changeset
1244
2612
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1245 var PullRequestAutoComplete = function (divid, cont, users_list, groups_list) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1246 var myUsers = users_list;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1247 var myGroups = groups_list;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1248
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1249 // Define a custom search function for the DataSource of users
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1250 var matchUsers = function (sQuery) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1251 // Case insensitive matching
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1252 var query = sQuery.toLowerCase();
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1253 var i = 0;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1254 var l = myUsers.length;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1255 var matches = [];
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1256
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1257 // Match against each name of each contact
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1258 for (; i < l; i++) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1259 contact = myUsers[i];
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1260 if (((contact.fname+"").toLowerCase().indexOf(query) > -1) ||
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1261 ((contact.lname+"").toLowerCase().indexOf(query) > -1) ||
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1262 ((contact.nname) && ((contact.nname).toLowerCase().indexOf(query) > -1))) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1263 matches[matches.length] = contact;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1264 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1265 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1266 return matches;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1267 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1268
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1269 // Define a custom search function for the DataSource of usersGroups
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1270 var matchGroups = function (sQuery) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1271 // Case insensitive matching
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1272 var query = sQuery.toLowerCase();
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1273 var i = 0;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1274 var l = myGroups.length;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1275 var matches = [];
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1276
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1277 // Match against each name of each contact
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1278 for (; i < l; i++) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1279 matched_group = myGroups[i];
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1280 if (matched_group.grname.toLowerCase().indexOf(query) > -1) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1281 matches[matches.length] = matched_group;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1282 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1283 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1284 return matches;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1285 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1286
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1287 //match all
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1288 var matchAll = function (sQuery) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1289 u = matchUsers(sQuery);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1290 return u
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1291 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1292
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1293 // DataScheme for owner
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1294 var ownerDS = new YAHOO.util.FunctionDataSource(matchUsers);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1295
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1296 ownerDS.responseSchema = {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1297 fields: ["id", "fname", "lname", "nname", "gravatar_lnk"]
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1298 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1299
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1300 // Instantiate AutoComplete for mentions
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1301 var reviewerAC = new YAHOO.widget.AutoComplete(divid, cont, ownerDS);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1302 reviewerAC.useShadow = false;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1303 reviewerAC.resultTypeList = false;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1304 reviewerAC.suppressInputUpdate = true;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1305 reviewerAC.animVert = false;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1306 reviewerAC.animHoriz = false;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1307 reviewerAC.animSpeed = 0.1;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1308
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1309 // Helper highlight function for the formatter
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1310 var highlightMatch = function (full, snippet, matchindex) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1311 return full.substring(0, matchindex)
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1312 + "<span class='match'>"
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1313 + full.substr(matchindex, snippet.length)
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1314 + "</span>" + full.substring(matchindex + snippet.length);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1315 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1316
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1317 // Custom formatter to highlight the matching letters
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1318 reviewerAC.formatResult = function (oResultData, sQuery, sResultMatch) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1319 var org_sQuery = sQuery;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1320 if(this.dataSource.mentionQuery != null){
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1321 sQuery = this.dataSource.mentionQuery;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1322 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1323
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1324 var query = sQuery.toLowerCase();
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1325 var _gravatar = function(res, em, group){
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1326 if (group !== undefined){
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1327 em = '/images/icons/group.png'
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1328 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1329 tmpl = '<div class="ac-container-wrap"><img class="perm-gravatar-ac" src="{0}"/>{1}</div>'
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1330 return tmpl.format(em,res)
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1331 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1332 if (oResultData.nname != undefined) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1333 var fname = oResultData.fname || "";
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1334 var lname = oResultData.lname || "";
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1335 var nname = oResultData.nname;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1336
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1337 // Guard against null value
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1338 var fnameMatchIndex = fname.toLowerCase().indexOf(query),
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1339 lnameMatchIndex = lname.toLowerCase().indexOf(query),
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1340 nnameMatchIndex = nname.toLowerCase().indexOf(query),
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1341 displayfname, displaylname, displaynname;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1342
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1343 if (fnameMatchIndex > -1) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1344 displayfname = highlightMatch(fname, query, fnameMatchIndex);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1345 } else {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1346 displayfname = fname;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1347 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1348
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1349 if (lnameMatchIndex > -1) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1350 displaylname = highlightMatch(lname, query, lnameMatchIndex);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1351 } else {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1352 displaylname = lname;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1353 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1354
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1355 if (nnameMatchIndex > -1) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1356 displaynname = "(" + highlightMatch(nname, query, nnameMatchIndex) + ")";
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1357 } else {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1358 displaynname = nname ? "(" + nname + ")" : "";
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1359 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1360
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1361 return _gravatar(displayfname + " " + displaylname + " " + displaynname, oResultData.gravatar_lnk);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1362 } else {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1363 return '';
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1364 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1365 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1366
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1367 //members cache to catch duplicates
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1368 reviewerAC.dataSource.cache = [];
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1369 // hack into select event
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1370 if(reviewerAC.itemSelectEvent){
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1371 reviewerAC.itemSelectEvent.subscribe(function (sType, aArgs) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1372
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1373 var myAC = aArgs[0]; // reference back to the AC instance
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1374 var elLI = aArgs[1]; // reference to the selected LI element
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1375 var oData = aArgs[2]; // object literal of selected item's result data
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1376 var members = YUD.get('review_members');
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1377 //fill the autocomplete with value
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1378
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1379 if (oData.nname != undefined) {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1380 if (myAC.dataSource.cache.indexOf(oData.id) != -1){
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1381 return
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1382 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1383
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1384 var tmpl = '<li>'+
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1385 '<div class="reviewers_member">'+
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1386 '<div class="gravatar"><img alt="gravatar" src="{0}"/> </div>'+
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1387 '<div style="float:left">{1}</div>'+
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1388 '<input type="hidden" value="{2}" name="review_members" />'+
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1389 '</div>'+
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1390 '</li>'
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1391
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1392 var displayname = "{0} {1} ({2})".format(oData.fname,oData.lname,oData.nname);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1393 var element = tmpl.format(oData.gravatar_lnk,displayname,oData.id);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1394 members.innerHTML += element;
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1395 myAC.dataSource.cache.push(oData.id);
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1396 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1397 });
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1398 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1399 return {
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1400 ownerDS: ownerDS,
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1401 reviewerAC: reviewerAC,
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1402 };
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1403 }
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1404
9364776d1331 Added autocomplete widget for pull request reviewers, in exchange of 90s style
Marcin Kuzminski <marcin@python-works.com>
parents: 2611
diff changeset
1405
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1406 /**
1779
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1407 * QUICK REPO MENU
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1408 */
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1409 var quick_repo_menu = function(){
2088
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1410 YUE.on(YUQ('.quick_repo_menu'),'mouseenter',function(e){
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1411 var menu = e.currentTarget.firstElementChild.firstElementChild;
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1412 if(YUD.hasClass(menu,'hidden')){
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1413 YUD.replaceClass(e.currentTarget,'hidden', 'active');
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1414 YUD.replaceClass(menu, 'hidden', 'active');
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1415 }
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1416 })
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1417 YUE.on(YUQ('.quick_repo_menu'),'mouseleave',function(e){
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1418 var menu = e.currentTarget.firstElementChild.firstElementChild;
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1419 if(YUD.hasClass(menu,'active')){
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1420 YUD.replaceClass(e.currentTarget, 'active', 'hidden');
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1421 YUD.replaceClass(menu, 'active', 'hidden');
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1422 }
382df4e69dfc quick_repo_menu changed from mouseclick to popup
Marcin Kuzminski <marcin@python-works.com>
parents: 2087
diff changeset
1423 })
1779
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1424 };
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1425
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1426
9edd6ac132f0 Added sorting into journal and admin pages
Marcin Kuzminski <marcin@python-works.com>
parents: 1778
diff changeset
1427 /**
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1428 * TABLE SORTING
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1429 */
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1430
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1431 // returns a node from given html;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1432 var fromHTML = function(html){
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1433 var _html = document.createElement('element');
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1434 _html.innerHTML = html;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1435 return _html;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1436 }
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1437 var get_rev = function(node){
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1438 var n = node.firstElementChild.firstElementChild;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1439
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1440 if (n===null){
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1441 return -1
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1442 }
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1443 else{
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1444 out = n.firstElementChild.innerHTML.split(':')[0].replace('r','');
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1445 return parseInt(out);
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1446 }
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1447 }
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1448
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1449 var get_name = function(node){
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1450 var name = node.firstElementChild.children[2].innerHTML;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1451 return name
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1452 }
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1453 var get_group_name = function(node){
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1454 var name = node.firstElementChild.children[1].innerHTML;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1455 return name
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1456 }
1782
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1457 var get_date = function(node){
2548
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1458 var date_ = YUD.getAttribute(node.firstElementChild,'date');
1782
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1459 return date_
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1460 }
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1461
2548
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1462 var get_age = function(node){
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1463 console.log(node);
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1464 return node
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1465 }
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1466
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1467 var revisionSort = function(a, b, desc, field) {
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1468
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1469 var a_ = fromHTML(a.getData(field));
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1470 var b_ = fromHTML(b.getData(field));
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1471
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1472 // extract revisions from string nodes
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1473 a_ = get_rev(a_)
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1474 b_ = get_rev(b_)
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1475
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1476 var comp = YAHOO.util.Sort.compare;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1477 var compState = comp(a_, b_, desc);
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1478 return compState;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1479 };
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1480 var ageSort = function(a, b, desc, field) {
2548
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1481 var a_ = fromHTML(a.getData(field));
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1482 var b_ = fromHTML(b.getData(field));
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1483
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1484 // extract name from table
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1485 a_ = get_date(a_)
0ff919f1c283 Fixed sorting by data when using custom date format from settings
Marcin Kuzminski <marcin@python-works.com>
parents: 2441
diff changeset
1486 b_ = get_date(b_)
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1487
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1488 var comp = YAHOO.util.Sort.compare;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1489 var compState = comp(a_, b_, desc);
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1490 return compState;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1491 };
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1492
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1493 var nameSort = function(a, b, desc, field) {
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1494 var a_ = fromHTML(a.getData(field));
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1495 var b_ = fromHTML(b.getData(field));
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1496
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1497 // extract name from table
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1498 a_ = get_name(a_)
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1499 b_ = get_name(b_)
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1500
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1501 var comp = YAHOO.util.Sort.compare;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1502 var compState = comp(a_, b_, desc);
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1503 return compState;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1504 };
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1505
2127
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1506 var permNameSort = function(a, b, desc, field) {
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1507 var a_ = fromHTML(a.getData(field));
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1508 var b_ = fromHTML(b.getData(field));
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1509 // extract name from table
2128
e29c688e6885 linkify perms and make global ones display better
Marcin Kuzminski <marcin@python-works.com>
parents: 2127
diff changeset
1510
e29c688e6885 linkify perms and make global ones display better
Marcin Kuzminski <marcin@python-works.com>
parents: 2127
diff changeset
1511 a_ = a_.children[0].innerHTML;
e29c688e6885 linkify perms and make global ones display better
Marcin Kuzminski <marcin@python-works.com>
parents: 2127
diff changeset
1512 b_ = b_.children[0].innerHTML;
2127
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1513
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1514 var comp = YAHOO.util.Sort.compare;
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1515 var compState = comp(a_, b_, desc);
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1516 return compState;
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1517 };
b745d5d2563c implemented #377 Users view own permissions
Marcin Kuzminski <marcin@python-works.com>
parents: 2088
diff changeset
1518
1778
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1519 var groupNameSort = function(a, b, desc, field) {
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1520 var a_ = fromHTML(a.getData(field));
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1521 var b_ = fromHTML(b.getData(field));
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1522
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1523 // extract name from table
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1524 a_ = get_group_name(a_)
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1525 b_ = get_group_name(b_)
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1526
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1527 var comp = YAHOO.util.Sort.compare;
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1528 var compState = comp(a_, b_, desc);
defcf245f3e9 fixes #229 repo sorting is not working.
Marcin Kuzminski <marcin@python-works.com>
parents: 1772
diff changeset
1529 return compState;
1782
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1530 };
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1531 var dateSort = function(a, b, desc, field) {
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1532 var a_ = fromHTML(a.getData(field));
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1533 var b_ = fromHTML(b.getData(field));
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1534
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1535 // extract name from table
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1536 a_ = get_date(a_)
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1537 b_ = get_date(b_)
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1538
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1539 var comp = YAHOO.util.Sort.compare;
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1540 var compState = comp(a_, b_, desc);
eaf09acf6872 added sorting to bookmarks tags and branches
Marcin Kuzminski <marcin@python-works.com>
parents: 1779
diff changeset
1541 return compState;
2394
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1542 };
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1543
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1544
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1545
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1546 /* Multi selectors */
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1547
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1548 var MultiSelectWidget = function(selected_id, available_id, form_id){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1549
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1550
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1551 //definition of containers ID's
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1552 var selected_container = selected_id;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1553 var available_container = available_id;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1554
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1555 //temp container for selected storage.
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1556 var cache = new Array();
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1557 var av_cache = new Array();
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1558 var c = YUD.get(selected_container);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1559 var ac = YUD.get(available_container);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1560
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1561 //get only selected options for further fullfilment
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1562 for(var i = 0;node =c.options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1563 if(node.selected){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1564 //push selected to my temp storage left overs :)
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1565 cache.push(node);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1566 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1567 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1568
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1569 //get all available options to cache
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1570 for(var i = 0;node =ac.options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1571 //push selected to my temp storage left overs :)
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1572 av_cache.push(node);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1573 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1574
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1575 //fill available only with those not in choosen
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1576 ac.options.length=0;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1577 tmp_cache = new Array();
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1578
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1579 for(var i = 0;node = av_cache[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1580 var add = true;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1581 for(var i2 = 0;node_2 = cache[i2];i2++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1582 if(node.value == node_2.value){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1583 add=false;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1584 break;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1585 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1586 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1587 if(add){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1588 tmp_cache.push(new Option(node.text, node.value, false, false));
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1589 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1590 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1591
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1592 for(var i = 0;node = tmp_cache[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1593 ac.options[i] = node;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1594 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1595
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1596 function prompts_action_callback(e){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1597
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1598 var choosen = YUD.get(selected_container);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1599 var available = YUD.get(available_container);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1600
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1601 //get checked and unchecked options from field
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1602 function get_checked(from_field){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1603 //temp container for storage.
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1604 var sel_cache = new Array();
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1605 var oth_cache = new Array();
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1606
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1607 for(var i = 0;node = from_field.options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1608 if(node.selected){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1609 //push selected fields :)
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1610 sel_cache.push(node);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1611 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1612 else{
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1613 oth_cache.push(node)
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1614 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1615 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1616
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1617 return [sel_cache,oth_cache]
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1618 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1619
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1620 //fill the field with given options
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1621 function fill_with(field,options){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1622 //clear firtst
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1623 field.options.length=0;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1624 for(var i = 0;node = options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1625 field.options[i]=new Option(node.text, node.value,
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1626 false, false);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1627 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1628
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1629 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1630 //adds to current field
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1631 function add_to(field,options){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1632 for(var i = 0;node = options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1633 field.appendChild(new Option(node.text, node.value,
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1634 false, false));
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1635 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1636 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1637
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1638 // add action
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1639 if (this.id=='add_element'){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1640 var c = get_checked(available);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1641 add_to(choosen,c[0]);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1642 fill_with(available,c[1]);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1643 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1644 // remove action
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1645 if (this.id=='remove_element'){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1646 var c = get_checked(choosen);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1647 add_to(available,c[0]);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1648 fill_with(choosen,c[1]);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1649 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1650 // add all elements
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1651 if(this.id=='add_all_elements'){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1652 for(var i=0; node = available.options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1653 choosen.appendChild(new Option(node.text,
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1654 node.value, false, false));
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1655 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1656 available.options.length = 0;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1657 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1658 //remove all elements
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1659 if(this.id=='remove_all_elements'){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1660 for(var i=0; node = choosen.options[i];i++){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1661 available.appendChild(new Option(node.text,
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1662 node.value, false, false));
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1663 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1664 choosen.options.length = 0;
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1665 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1666
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1667 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1668
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1669 YUE.addListener(['add_element','remove_element',
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1670 'add_all_elements','remove_all_elements'],'click',
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1671 prompts_action_callback)
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1672 if (form_id !== undefined) {
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1673 YUE.addListener(form_id,'submit',function(){
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1674 var choosen = YUD.get(selected_container);
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1675 for (var i = 0; i < choosen.options.length; i++) {
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1676 choosen.options[i].selected = 'selected';
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1677 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1678 });
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1679 }
6776f4e569d7 Moved select widget to rhodecode.js
Marcin Kuzminski <marcin@python-works.com>
parents: 2369
diff changeset
1680 }