##// END OF EJS Templates
removed call to window location in some cases when request end up to early it showed a bad page....
marcink -
r1637:974d6193 default
parent child Browse files
Show More
@@ -1,219 +1,218 b''
1 /**
1 /**
2 RhodeCode JS Files
2 RhodeCode JS Files
3 **/
3 **/
4
4
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
5 if (typeof console == "undefined" || typeof console.log == "undefined"){
6 console = { log: function() {} }
6 console = { log: function() {} }
7 }
7 }
8
8
9
9
10 function str_repeat(i, m) {
10 function str_repeat(i, m) {
11 for (var o = []; m > 0; o[--m] = i);
11 for (var o = []; m > 0; o[--m] = i);
12 return o.join('');
12 return o.join('');
13 }
13 }
14
14
15 /**
15 /**
16 * INJECT .format function into String
16 * INJECT .format function into String
17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
17 * Usage: "My name is {0} {1}".format("Johny","Bravo")
18 * Return "My name is Johny Bravo"
18 * Return "My name is Johny Bravo"
19 * Inspired by https://gist.github.com/1049426
19 * Inspired by https://gist.github.com/1049426
20 */
20 */
21 String.prototype.format = function() {
21 String.prototype.format = function() {
22
22
23 function format() {
23 function format() {
24 var str = this;
24 var str = this;
25 var len = arguments.length+1;
25 var len = arguments.length+1;
26 var safe = undefined;
26 var safe = undefined;
27 var arg = undefined;
27 var arg = undefined;
28
28
29 // For each {0} {1} {n...} replace with the argument in that position. If
29 // For each {0} {1} {n...} replace with the argument in that position. If
30 // the argument is an object or an array it will be stringified to JSON.
30 // the argument is an object or an array it will be stringified to JSON.
31 for (var i=0; i < len; arg = arguments[i++]) {
31 for (var i=0; i < len; arg = arguments[i++]) {
32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
32 safe = typeof arg === 'object' ? JSON.stringify(arg) : arg;
33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
33 str = str.replace(RegExp('\\{'+(i-1)+'\\}', 'g'), safe);
34 }
34 }
35 return str;
35 return str;
36 }
36 }
37
37
38 // Save a reference of what may already exist under the property native.
38 // Save a reference of what may already exist under the property native.
39 // Allows for doing something like: if("".format.native) { /* use native */ }
39 // Allows for doing something like: if("".format.native) { /* use native */ }
40 format.native = String.prototype.format;
40 format.native = String.prototype.format;
41
41
42 // Replace the prototype property
42 // Replace the prototype property
43 return format;
43 return format;
44
44
45 }();
45 }();
46
46
47
47
48 /**
48 /**
49 * SmartColorGenerator
49 * SmartColorGenerator
50 *
50 *
51 *usage::
51 *usage::
52 * var CG = new ColorGenerator();
52 * var CG = new ColorGenerator();
53 * var col = CG.getColor(key); //returns array of RGB
53 * var col = CG.getColor(key); //returns array of RGB
54 * 'rgb({0})'.format(col.join(',')
54 * 'rgb({0})'.format(col.join(',')
55 *
55 *
56 * @returns {ColorGenerator}
56 * @returns {ColorGenerator}
57 */
57 */
58 function ColorGenerator(){
58 function ColorGenerator(){
59 this.GOLDEN_RATIO = 0.618033988749895;
59 this.GOLDEN_RATIO = 0.618033988749895;
60 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
60 this.CURRENT_RATIO = 0.22717784590367374 // this can be random
61 this.HSV_1 = 0.75;//saturation
61 this.HSV_1 = 0.75;//saturation
62 this.HSV_2 = 0.95;
62 this.HSV_2 = 0.95;
63 this.color;
63 this.color;
64 this.cacheColorMap = {};
64 this.cacheColorMap = {};
65 };
65 };
66
66
67 ColorGenerator.prototype = {
67 ColorGenerator.prototype = {
68 getColor:function(key){
68 getColor:function(key){
69 if(this.cacheColorMap[key] !== undefined){
69 if(this.cacheColorMap[key] !== undefined){
70 return this.cacheColorMap[key];
70 return this.cacheColorMap[key];
71 }
71 }
72 else{
72 else{
73 this.cacheColorMap[key] = this.generateColor();
73 this.cacheColorMap[key] = this.generateColor();
74 return this.cacheColorMap[key];
74 return this.cacheColorMap[key];
75 }
75 }
76 },
76 },
77 _hsvToRgb:function(h,s,v){
77 _hsvToRgb:function(h,s,v){
78 if (s == 0.0)
78 if (s == 0.0)
79 return [v, v, v];
79 return [v, v, v];
80 i = parseInt(h * 6.0)
80 i = parseInt(h * 6.0)
81 f = (h * 6.0) - i
81 f = (h * 6.0) - i
82 p = v * (1.0 - s)
82 p = v * (1.0 - s)
83 q = v * (1.0 - s * f)
83 q = v * (1.0 - s * f)
84 t = v * (1.0 - s * (1.0 - f))
84 t = v * (1.0 - s * (1.0 - f))
85 i = i % 6
85 i = i % 6
86 if (i == 0)
86 if (i == 0)
87 return [v, t, p]
87 return [v, t, p]
88 if (i == 1)
88 if (i == 1)
89 return [q, v, p]
89 return [q, v, p]
90 if (i == 2)
90 if (i == 2)
91 return [p, v, t]
91 return [p, v, t]
92 if (i == 3)
92 if (i == 3)
93 return [p, q, v]
93 return [p, q, v]
94 if (i == 4)
94 if (i == 4)
95 return [t, p, v]
95 return [t, p, v]
96 if (i == 5)
96 if (i == 5)
97 return [v, p, q]
97 return [v, p, q]
98 },
98 },
99 generateColor:function(){
99 generateColor:function(){
100 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
100 this.CURRENT_RATIO = this.CURRENT_RATIO+this.GOLDEN_RATIO;
101 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
101 this.CURRENT_RATIO = this.CURRENT_RATIO %= 1;
102 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
102 HSV_tuple = [this.CURRENT_RATIO, this.HSV_1, this.HSV_2]
103 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
103 RGB_tuple = this._hsvToRgb(HSV_tuple[0],HSV_tuple[1],HSV_tuple[2]);
104 function toRgb(v){
104 function toRgb(v){
105 return ""+parseInt(v*256)
105 return ""+parseInt(v*256)
106 }
106 }
107 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
107 return [toRgb(RGB_tuple[0]),toRgb(RGB_tuple[1]),toRgb(RGB_tuple[2])];
108
108
109 }
109 }
110 }
110 }
111
111
112
112
113
113
114
114
115
115
116 /**
116 /**
117 * GLOBAL YUI Shortcuts
117 * GLOBAL YUI Shortcuts
118 */
118 */
119 var YUC = YAHOO.util.Connect;
119 var YUC = YAHOO.util.Connect;
120 var YUD = YAHOO.util.Dom;
120 var YUD = YAHOO.util.Dom;
121 var YUE = YAHOO.util.Event;
121 var YUE = YAHOO.util.Event;
122 var YUQ = YAHOO.util.Selector.query;
122 var YUQ = YAHOO.util.Selector.query;
123
123
124 // defines if push state is enabled for this browser ?
124 // defines if push state is enabled for this browser ?
125 var push_state_enabled = Boolean(
125 var push_state_enabled = Boolean(
126 window.history && window.history.pushState && window.history.replaceState
126 window.history && window.history.pushState && window.history.replaceState
127 && !( /* disable for versions of iOS before version 4.3 (8F190) */
127 && !( /* disable for versions of iOS before version 4.3 (8F190) */
128 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
128 (/ Mobile\/([1-7][a-z]|(8([abcde]|f(1[0-8]))))/i).test(navigator.userAgent)
129 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
129 /* disable for the mercury iOS browser, or at least older versions of the webkit engine */
130 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
130 || (/AppleWebKit\/5([0-2]|3[0-2])/i).test(navigator.userAgent)
131 )
131 )
132 )
132 )
133
133
134 /**
134 /**
135 * Partial Ajax Implementation
135 * Partial Ajax Implementation
136 *
136 *
137 * @param url: defines url to make partial request
137 * @param url: defines url to make partial request
138 * @param container: defines id of container to input partial result
138 * @param container: defines id of container to input partial result
139 * @param s_call: success callback function that takes o as arg
139 * @param s_call: success callback function that takes o as arg
140 * o.tId
140 * o.tId
141 * o.status
141 * o.status
142 * o.statusText
142 * o.statusText
143 * o.getResponseHeader[ ]
143 * o.getResponseHeader[ ]
144 * o.getAllResponseHeaders
144 * o.getAllResponseHeaders
145 * o.responseText
145 * o.responseText
146 * o.responseXML
146 * o.responseXML
147 * o.argument
147 * o.argument
148 * @param f_call: failure callback
148 * @param f_call: failure callback
149 * @param args arguments
149 * @param args arguments
150 */
150 */
151 function ypjax(url,container,s_call,f_call,args){
151 function ypjax(url,container,s_call,f_call,args){
152 var method='GET';
152 var method='GET';
153 if(args===undefined){
153 if(args===undefined){
154 args=null;
154 args=null;
155 }
155 }
156
156
157 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
157 // Set special header for partial ajax == HTTP_X_PARTIAL_XHR
158 YUC.initHeader('X-PARTIAL-XHR',true);
158 YUC.initHeader('X-PARTIAL-XHR',true);
159
159
160 // wrapper of passed callback
160 // wrapper of passed callback
161 var s_wrapper = (function(o){
161 var s_wrapper = (function(o){
162 return function(o){
162 return function(o){
163 YUD.get(container).innerHTML=o.responseText;
163 YUD.get(container).innerHTML=o.responseText;
164 YUD.setStyle(container,'opacity','1.0');
164 YUD.setStyle(container,'opacity','1.0');
165 //execute the given original callback
165 //execute the given original callback
166 if (s_call !== undefined){
166 if (s_call !== undefined){
167 s_call(o);
167 s_call(o);
168 }
168 }
169 }
169 }
170 })()
170 })()
171 YUD.setStyle(container,'opacity','0.3');
171 YUD.setStyle(container,'opacity','0.3');
172 YUC.asyncRequest(method,url,{
172 YUC.asyncRequest(method,url,{
173 success:s_wrapper,
173 success:s_wrapper,
174 failure:function(o){
174 failure:function(o){
175 //failure
175 console.log(o)
176 window.location = url;
177 }
176 }
178 },args);
177 },args);
179
178
180 }
179 }
181
180
182 /**
181 /**
183 * tooltip activate
182 * tooltip activate
184 */
183 */
185 var tooltip_activate = function(){
184 var tooltip_activate = function(){
186 function toolTipsId(){
185 function toolTipsId(){
187 var ids = [];
186 var ids = [];
188 var tts = YUQ('.tooltip');
187 var tts = YUQ('.tooltip');
189 for (var i = 0; i < tts.length; i++) {
188 for (var i = 0; i < tts.length; i++) {
190 // if element doesn't not have and id
189 // if element doesn't not have and id
191 // autogenerate one for tooltip
190 // autogenerate one for tooltip
192 if (!tts[i].id){
191 if (!tts[i].id){
193 tts[i].id='tt'+((i*100)+tts.length);
192 tts[i].id='tt'+((i*100)+tts.length);
194 }
193 }
195 ids.push(tts[i].id);
194 ids.push(tts[i].id);
196 }
195 }
197 return ids
196 return ids
198 };
197 };
199 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
198 var myToolTips = new YAHOO.widget.Tooltip("tooltip", {
200 context: [[toolTipsId()],"tl","bl",null,[0,5]],
199 context: [[toolTipsId()],"tl","bl",null,[0,5]],
201 monitorresize:false,
200 monitorresize:false,
202 xyoffset :[0,0],
201 xyoffset :[0,0],
203 autodismissdelay:300000,
202 autodismissdelay:300000,
204 hidedelay:5,
203 hidedelay:5,
205 showdelay:20,
204 showdelay:20,
206 });
205 });
207 }
206 }
208
207
209 /**
208 /**
210 * show more
209 * show more
211 */
210 */
212 var show_more_event = function(){
211 var show_more_event = function(){
213 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
212 YUE.on(YUD.getElementsByClassName('show_more'),'click',function(e){
214 var el = e.target;
213 var el = e.target;
215 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
214 YUD.setStyle(YUD.get(el.id.substring(1)),'display','');
216 YUD.setStyle(el.parentNode,'display','none');
215 YUD.setStyle(el.parentNode,'display','none');
217 });
216 });
218 }
217 }
219
218
General Comments 0
You need to be logged in to leave comments. Login now