perkins 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +5 -0
- data/.ruby-version +1 -0
- data/.vagrant/machines/default/virtualbox/action_provision +1 -0
- data/.vagrant/machines/default/virtualbox/action_set_name +1 -0
- data/.vagrant/machines/default/virtualbox/id +1 -0
- data/Gemfile +0 -1
- data/README.md +11 -4
- data/Rakefile +3 -2
- data/TODO.md +2 -2
- data/Vagrantfile +53 -0
- data/db/migrate/20150220143050_add_status_fields_to_repos.rb +11 -0
- data/db/schema.rb +3 -1
- data/examples/Gemfile +4 -0
- data/examples/Gemfile.lock +164 -0
- data/examples/Procfile +4 -0
- data/examples/boot.rb +15 -0
- data/examples/config.ru +22 -0
- data/examples/database.yml +2 -2
- data/examples/sidekiq.yml +9 -0
- data/lib/core_ext/string/color.rb +22 -0
- data/lib/perkins/application.rb +27 -3
- data/lib/perkins/assets/images/error.gif +0 -0
- data/lib/perkins/assets/images/working.gif +0 -0
- data/lib/perkins/assets/javascripts/app.js +17 -1
- data/lib/perkins/assets/javascripts/config.js.coffee +14 -0
- data/lib/perkins/assets/javascripts/log_view.js.coffee +1 -2
- data/lib/perkins/assets/javascripts/perkings.js.coffee +129 -20
- data/lib/perkins/assets/javascripts/perkins/helpers.js.coffee +21 -0
- data/lib/perkins/assets/javascripts/perkins/m/models.js.coffee +50 -0
- data/lib/perkins/assets/javascripts/perkins/router.js.coffee +10 -0
- data/lib/perkins/assets/javascripts/perkins/v/dashboard.js.coffee +17 -0
- data/lib/perkins/assets/javascripts/perkins/v/err.js.coffee +12 -0
- data/lib/perkins/assets/javascripts/perkins/v/menu.js.coffee +10 -0
- data/lib/perkins/assets/javascripts/perkins/v/my_repos.js.coffee +41 -0
- data/lib/perkins/assets/javascripts/perkins/v/orgs.js.coffee +39 -0
- data/lib/perkins/assets/javascripts/perkins/v/profile.js.coffee +20 -0
- data/lib/perkins/assets/javascripts/perkins/v/repo.js.coffee +192 -0
- data/lib/perkins/assets/javascripts/perkins/v/sidebar.js.coffee +33 -0
- data/lib/perkins/assets/javascripts/templates/dashboard.hamlc +11 -0
- data/lib/perkins/assets/javascripts/templates/error.hamlc +22 -0
- data/lib/perkins/assets/javascripts/templates/menu.hamlc +18 -0
- data/lib/perkins/assets/javascripts/templates/org.hamlc +77 -0
- data/lib/perkins/assets/javascripts/templates/profile.hamlc +28 -0
- data/lib/perkins/assets/javascripts/templates/repo.hamlc +37 -0
- data/lib/perkins/assets/javascripts/templates/repos/build_row.hamlc +19 -0
- data/lib/perkins/assets/javascripts/templates/repos/builds.hamlc +25 -0
- data/lib/perkins/assets/javascripts/templates/repos/config.hamlc +77 -0
- data/lib/perkins/assets/javascripts/templates/repos/gb_repo.hamlc +31 -0
- data/lib/perkins/assets/javascripts/templates/repos/github.hamlc +7 -0
- data/lib/perkins/assets/javascripts/templates/repos/menu.hamlc +17 -0
- data/lib/perkins/assets/javascripts/templates/repos/report_detail.hamlc +53 -0
- data/lib/perkins/assets/javascripts/templates/sidebar.hamlc +14 -0
- data/lib/perkins/assets/javascripts/templates/sidebar_repo.hamlc +4 -0
- data/lib/perkins/assets/javascripts/vendor/backbone-min.js +2 -0
- data/lib/perkins/assets/javascripts/vendor/backbone.marionette.js +2891 -0
- data/lib/perkins/assets/javascripts/vendor/hamlcoffee.js.coffee.erb +138 -0
- data/lib/perkins/assets/javascripts/vendor/livequery.jquery.js +8 -0
- data/lib/perkins/assets/javascripts/vendor/log.js +1 -1
- data/lib/perkins/assets/javascripts/vendor/md5.js +207 -0
- data/lib/perkins/assets/javascripts/vendor/nprogress.js +476 -0
- data/lib/perkins/assets/javascripts/vendor/underscore.js +6 -0
- data/lib/perkins/assets/stylesheets/app.css +3 -0
- data/lib/perkins/assets/stylesheets/bootstrap-overrides.css.scss +13 -0
- data/lib/perkins/assets/stylesheets/styles.css.scss +30 -3
- data/lib/perkins/assets/stylesheets/vendor/nprogress.css +74 -0
- data/lib/perkins/assets.rb +42 -0
- data/lib/perkins/build/script/ruby.rb +1 -1
- data/lib/perkins/build_report.rb +13 -0
- data/lib/perkins/{worker.rb → build_worker.rb} +9 -5
- data/lib/perkins/cli.rb +4 -2
- data/lib/perkins/commit.rb +8 -1
- data/lib/perkins/git_loader_worker.rb +29 -0
- data/lib/perkins/repo.rb +23 -9
- data/lib/perkins/runner.rb +16 -25
- data/lib/perkins/server.rb +121 -116
- data/lib/perkins/version.rb +1 -1
- data/lib/perkins/views/builds.haml +0 -3
- data/lib/perkins/views/layout.haml +25 -36
- data/lib/perkins/views/menu.haml +1 -1
- data/lib/perkins/views/repos/github.haml +0 -31
- data/lib/perkins/views/repos/repo.haml +1 -1
- data/lib/perkins.rb +4 -2
- data/perkins.gemspec +5 -2
- data/spec/lib/repo_spec.rb +27 -6
- data/spec/lib/runner_spec.rb +1 -0
- data/spec/lib/server_spec.rb +6 -23
- data/spec/spec_helper.rb +14 -3
- metadata +160 -70
- data/examples/config.rb +0 -12
- data/examples/mongo.yml +0 -13
- data/lib/perkins/listener.rb +0 -38
- data/spec/lib/listener_spec.rb +0 -30
@@ -0,0 +1,476 @@
|
|
1
|
+
/* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
|
2
|
+
* @license MIT */
|
3
|
+
|
4
|
+
;(function(root, factory) {
|
5
|
+
|
6
|
+
if (typeof define === 'function' && define.amd) {
|
7
|
+
define(factory);
|
8
|
+
} else if (typeof exports === 'object') {
|
9
|
+
module.exports = factory();
|
10
|
+
} else {
|
11
|
+
root.NProgress = factory();
|
12
|
+
}
|
13
|
+
|
14
|
+
})(this, function() {
|
15
|
+
var NProgress = {};
|
16
|
+
|
17
|
+
NProgress.version = '0.1.6';
|
18
|
+
|
19
|
+
var Settings = NProgress.settings = {
|
20
|
+
minimum: 0.08,
|
21
|
+
easing: 'ease',
|
22
|
+
positionUsing: '',
|
23
|
+
speed: 200,
|
24
|
+
trickle: true,
|
25
|
+
trickleRate: 0.02,
|
26
|
+
trickleSpeed: 800,
|
27
|
+
showSpinner: true,
|
28
|
+
barSelector: '[role="bar"]',
|
29
|
+
spinnerSelector: '[role="spinner"]',
|
30
|
+
parent: 'body',
|
31
|
+
template: '<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'
|
32
|
+
};
|
33
|
+
|
34
|
+
/**
|
35
|
+
* Updates configuration.
|
36
|
+
*
|
37
|
+
* NProgress.configure({
|
38
|
+
* minimum: 0.1
|
39
|
+
* });
|
40
|
+
*/
|
41
|
+
NProgress.configure = function(options) {
|
42
|
+
var key, value;
|
43
|
+
for (key in options) {
|
44
|
+
value = options[key];
|
45
|
+
if (value !== undefined && options.hasOwnProperty(key)) Settings[key] = value;
|
46
|
+
}
|
47
|
+
|
48
|
+
return this;
|
49
|
+
};
|
50
|
+
|
51
|
+
/**
|
52
|
+
* Last number.
|
53
|
+
*/
|
54
|
+
|
55
|
+
NProgress.status = null;
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Sets the progress bar status, where `n` is a number from `0.0` to `1.0`.
|
59
|
+
*
|
60
|
+
* NProgress.set(0.4);
|
61
|
+
* NProgress.set(1.0);
|
62
|
+
*/
|
63
|
+
|
64
|
+
NProgress.set = function(n) {
|
65
|
+
var started = NProgress.isStarted();
|
66
|
+
|
67
|
+
n = clamp(n, Settings.minimum, 1);
|
68
|
+
NProgress.status = (n === 1 ? null : n);
|
69
|
+
|
70
|
+
var progress = NProgress.render(!started),
|
71
|
+
bar = progress.querySelector(Settings.barSelector),
|
72
|
+
speed = Settings.speed,
|
73
|
+
ease = Settings.easing;
|
74
|
+
|
75
|
+
progress.offsetWidth; /* Repaint */
|
76
|
+
|
77
|
+
queue(function(next) {
|
78
|
+
// Set positionUsing if it hasn't already been set
|
79
|
+
if (Settings.positionUsing === '') Settings.positionUsing = NProgress.getPositioningCSS();
|
80
|
+
|
81
|
+
// Add transition
|
82
|
+
css(bar, barPositionCSS(n, speed, ease));
|
83
|
+
|
84
|
+
if (n === 1) {
|
85
|
+
// Fade out
|
86
|
+
css(progress, {
|
87
|
+
transition: 'none',
|
88
|
+
opacity: 1
|
89
|
+
});
|
90
|
+
progress.offsetWidth; /* Repaint */
|
91
|
+
|
92
|
+
setTimeout(function() {
|
93
|
+
css(progress, {
|
94
|
+
transition: 'all ' + speed + 'ms linear',
|
95
|
+
opacity: 0
|
96
|
+
});
|
97
|
+
setTimeout(function() {
|
98
|
+
NProgress.remove();
|
99
|
+
next();
|
100
|
+
}, speed);
|
101
|
+
}, speed);
|
102
|
+
} else {
|
103
|
+
setTimeout(next, speed);
|
104
|
+
}
|
105
|
+
});
|
106
|
+
|
107
|
+
return this;
|
108
|
+
};
|
109
|
+
|
110
|
+
NProgress.isStarted = function() {
|
111
|
+
return typeof NProgress.status === 'number';
|
112
|
+
};
|
113
|
+
|
114
|
+
/**
|
115
|
+
* Shows the progress bar.
|
116
|
+
* This is the same as setting the status to 0%, except that it doesn't go backwards.
|
117
|
+
*
|
118
|
+
* NProgress.start();
|
119
|
+
*
|
120
|
+
*/
|
121
|
+
NProgress.start = function() {
|
122
|
+
if (!NProgress.status) NProgress.set(0);
|
123
|
+
|
124
|
+
var work = function() {
|
125
|
+
setTimeout(function() {
|
126
|
+
if (!NProgress.status) return;
|
127
|
+
NProgress.trickle();
|
128
|
+
work();
|
129
|
+
}, Settings.trickleSpeed);
|
130
|
+
};
|
131
|
+
|
132
|
+
if (Settings.trickle) work();
|
133
|
+
|
134
|
+
return this;
|
135
|
+
};
|
136
|
+
|
137
|
+
/**
|
138
|
+
* Hides the progress bar.
|
139
|
+
* This is the *sort of* the same as setting the status to 100%, with the
|
140
|
+
* difference being `done()` makes some placebo effect of some realistic motion.
|
141
|
+
*
|
142
|
+
* NProgress.done();
|
143
|
+
*
|
144
|
+
* If `true` is passed, it will show the progress bar even if its hidden.
|
145
|
+
*
|
146
|
+
* NProgress.done(true);
|
147
|
+
*/
|
148
|
+
|
149
|
+
NProgress.done = function(force) {
|
150
|
+
if (!force && !NProgress.status) return this;
|
151
|
+
|
152
|
+
return NProgress.inc(0.3 + 0.5 * Math.random()).set(1);
|
153
|
+
};
|
154
|
+
|
155
|
+
/**
|
156
|
+
* Increments by a random amount.
|
157
|
+
*/
|
158
|
+
|
159
|
+
NProgress.inc = function(amount) {
|
160
|
+
var n = NProgress.status;
|
161
|
+
|
162
|
+
if (!n) {
|
163
|
+
return NProgress.start();
|
164
|
+
} else {
|
165
|
+
if (typeof amount !== 'number') {
|
166
|
+
amount = (1 - n) * clamp(Math.random() * n, 0.1, 0.95);
|
167
|
+
}
|
168
|
+
|
169
|
+
n = clamp(n + amount, 0, 0.994);
|
170
|
+
return NProgress.set(n);
|
171
|
+
}
|
172
|
+
};
|
173
|
+
|
174
|
+
NProgress.trickle = function() {
|
175
|
+
return NProgress.inc(Math.random() * Settings.trickleRate);
|
176
|
+
};
|
177
|
+
|
178
|
+
/**
|
179
|
+
* Waits for all supplied jQuery promises and
|
180
|
+
* increases the progress as the promises resolve.
|
181
|
+
*
|
182
|
+
* @param $promise jQUery Promise
|
183
|
+
*/
|
184
|
+
(function() {
|
185
|
+
var initial = 0, current = 0;
|
186
|
+
|
187
|
+
NProgress.promise = function($promise) {
|
188
|
+
if (!$promise || $promise.state() == "resolved") {
|
189
|
+
return this;
|
190
|
+
}
|
191
|
+
|
192
|
+
if (current == 0) {
|
193
|
+
NProgress.start();
|
194
|
+
}
|
195
|
+
|
196
|
+
initial++;
|
197
|
+
current++;
|
198
|
+
|
199
|
+
$promise.always(function() {
|
200
|
+
current--;
|
201
|
+
if (current == 0) {
|
202
|
+
initial = 0;
|
203
|
+
NProgress.done();
|
204
|
+
} else {
|
205
|
+
NProgress.set((initial - current) / initial);
|
206
|
+
}
|
207
|
+
});
|
208
|
+
|
209
|
+
return this;
|
210
|
+
};
|
211
|
+
|
212
|
+
})();
|
213
|
+
|
214
|
+
/**
|
215
|
+
* (Internal) renders the progress bar markup based on the `template`
|
216
|
+
* setting.
|
217
|
+
*/
|
218
|
+
|
219
|
+
NProgress.render = function(fromStart) {
|
220
|
+
if (NProgress.isRendered()) return document.getElementById('nprogress');
|
221
|
+
|
222
|
+
addClass(document.documentElement, 'nprogress-busy');
|
223
|
+
|
224
|
+
var progress = document.createElement('div');
|
225
|
+
progress.id = 'nprogress';
|
226
|
+
progress.innerHTML = Settings.template;
|
227
|
+
|
228
|
+
var bar = progress.querySelector(Settings.barSelector),
|
229
|
+
perc = fromStart ? '-100' : toBarPerc(NProgress.status || 0),
|
230
|
+
parent = document.querySelector(Settings.parent),
|
231
|
+
spinner;
|
232
|
+
|
233
|
+
css(bar, {
|
234
|
+
transition: 'all 0 linear',
|
235
|
+
transform: 'translate3d(' + perc + '%,0,0)'
|
236
|
+
});
|
237
|
+
|
238
|
+
if (!Settings.showSpinner) {
|
239
|
+
spinner = progress.querySelector(Settings.spinnerSelector);
|
240
|
+
spinner && removeElement(spinner);
|
241
|
+
}
|
242
|
+
|
243
|
+
if (parent != document.body) {
|
244
|
+
addClass(parent, 'nprogress-custom-parent');
|
245
|
+
}
|
246
|
+
|
247
|
+
parent.appendChild(progress);
|
248
|
+
return progress;
|
249
|
+
};
|
250
|
+
|
251
|
+
/**
|
252
|
+
* Removes the element. Opposite of render().
|
253
|
+
*/
|
254
|
+
|
255
|
+
NProgress.remove = function() {
|
256
|
+
removeClass(document.documentElement, 'nprogress-busy');
|
257
|
+
removeClass(document.querySelector(Settings.parent), 'nprogress-custom-parent')
|
258
|
+
var progress = document.getElementById('nprogress');
|
259
|
+
progress && removeElement(progress);
|
260
|
+
};
|
261
|
+
|
262
|
+
/**
|
263
|
+
* Checks if the progress bar is rendered.
|
264
|
+
*/
|
265
|
+
|
266
|
+
NProgress.isRendered = function() {
|
267
|
+
return !!document.getElementById('nprogress');
|
268
|
+
};
|
269
|
+
|
270
|
+
/**
|
271
|
+
* Determine which positioning CSS rule to use.
|
272
|
+
*/
|
273
|
+
|
274
|
+
NProgress.getPositioningCSS = function() {
|
275
|
+
// Sniff on document.body.style
|
276
|
+
var bodyStyle = document.body.style;
|
277
|
+
|
278
|
+
// Sniff prefixes
|
279
|
+
var vendorPrefix = ('WebkitTransform' in bodyStyle) ? 'Webkit' :
|
280
|
+
('MozTransform' in bodyStyle) ? 'Moz' :
|
281
|
+
('msTransform' in bodyStyle) ? 'ms' :
|
282
|
+
('OTransform' in bodyStyle) ? 'O' : '';
|
283
|
+
|
284
|
+
if (vendorPrefix + 'Perspective' in bodyStyle) {
|
285
|
+
// Modern browsers with 3D support, e.g. Webkit, IE10
|
286
|
+
return 'translate3d';
|
287
|
+
} else if (vendorPrefix + 'Transform' in bodyStyle) {
|
288
|
+
// Browsers without 3D support, e.g. IE9
|
289
|
+
return 'translate';
|
290
|
+
} else {
|
291
|
+
// Browsers without translate() support, e.g. IE7-8
|
292
|
+
return 'margin';
|
293
|
+
}
|
294
|
+
};
|
295
|
+
|
296
|
+
/**
|
297
|
+
* Helpers
|
298
|
+
*/
|
299
|
+
|
300
|
+
function clamp(n, min, max) {
|
301
|
+
if (n < min) return min;
|
302
|
+
if (n > max) return max;
|
303
|
+
return n;
|
304
|
+
}
|
305
|
+
|
306
|
+
/**
|
307
|
+
* (Internal) converts a percentage (`0..1`) to a bar translateX
|
308
|
+
* percentage (`-100%..0%`).
|
309
|
+
*/
|
310
|
+
|
311
|
+
function toBarPerc(n) {
|
312
|
+
return (-1 + n) * 100;
|
313
|
+
}
|
314
|
+
|
315
|
+
|
316
|
+
/**
|
317
|
+
* (Internal) returns the correct CSS for changing the bar's
|
318
|
+
* position given an n percentage, and speed and ease from Settings
|
319
|
+
*/
|
320
|
+
|
321
|
+
function barPositionCSS(n, speed, ease) {
|
322
|
+
var barCSS;
|
323
|
+
|
324
|
+
if (Settings.positionUsing === 'translate3d') {
|
325
|
+
barCSS = { transform: 'translate3d('+toBarPerc(n)+'%,0,0)' };
|
326
|
+
} else if (Settings.positionUsing === 'translate') {
|
327
|
+
barCSS = { transform: 'translate('+toBarPerc(n)+'%,0)' };
|
328
|
+
} else {
|
329
|
+
barCSS = { 'margin-left': toBarPerc(n)+'%' };
|
330
|
+
}
|
331
|
+
|
332
|
+
barCSS.transition = 'all '+speed+'ms '+ease;
|
333
|
+
|
334
|
+
return barCSS;
|
335
|
+
}
|
336
|
+
|
337
|
+
/**
|
338
|
+
* (Internal) Queues a function to be executed.
|
339
|
+
*/
|
340
|
+
|
341
|
+
var queue = (function() {
|
342
|
+
var pending = [];
|
343
|
+
|
344
|
+
function next() {
|
345
|
+
var fn = pending.shift();
|
346
|
+
if (fn) {
|
347
|
+
fn(next);
|
348
|
+
}
|
349
|
+
}
|
350
|
+
|
351
|
+
return function(fn) {
|
352
|
+
pending.push(fn);
|
353
|
+
if (pending.length == 1) next();
|
354
|
+
};
|
355
|
+
})();
|
356
|
+
|
357
|
+
/**
|
358
|
+
* (Internal) Applies css properties to an element, similar to the jQuery
|
359
|
+
* css method.
|
360
|
+
*
|
361
|
+
* While this helper does assist with vendor prefixed property names, it
|
362
|
+
* does not perform any manipulation of values prior to setting styles.
|
363
|
+
*/
|
364
|
+
|
365
|
+
var css = (function() {
|
366
|
+
var cssPrefixes = [ 'Webkit', 'O', 'Moz', 'ms' ],
|
367
|
+
cssProps = {};
|
368
|
+
|
369
|
+
function camelCase(string) {
|
370
|
+
return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function(match, letter) {
|
371
|
+
return letter.toUpperCase();
|
372
|
+
});
|
373
|
+
}
|
374
|
+
|
375
|
+
function getVendorProp(name) {
|
376
|
+
var style = document.body.style;
|
377
|
+
if (name in style) return name;
|
378
|
+
|
379
|
+
var i = cssPrefixes.length,
|
380
|
+
capName = name.charAt(0).toUpperCase() + name.slice(1),
|
381
|
+
vendorName;
|
382
|
+
while (i--) {
|
383
|
+
vendorName = cssPrefixes[i] + capName;
|
384
|
+
if (vendorName in style) return vendorName;
|
385
|
+
}
|
386
|
+
|
387
|
+
return name;
|
388
|
+
}
|
389
|
+
|
390
|
+
function getStyleProp(name) {
|
391
|
+
name = camelCase(name);
|
392
|
+
return cssProps[name] || (cssProps[name] = getVendorProp(name));
|
393
|
+
}
|
394
|
+
|
395
|
+
function applyCss(element, prop, value) {
|
396
|
+
prop = getStyleProp(prop);
|
397
|
+
element.style[prop] = value;
|
398
|
+
}
|
399
|
+
|
400
|
+
return function(element, properties) {
|
401
|
+
var args = arguments,
|
402
|
+
prop,
|
403
|
+
value;
|
404
|
+
|
405
|
+
if (args.length == 2) {
|
406
|
+
for (prop in properties) {
|
407
|
+
value = properties[prop];
|
408
|
+
if (value !== undefined && properties.hasOwnProperty(prop)) applyCss(element, prop, value);
|
409
|
+
}
|
410
|
+
} else {
|
411
|
+
applyCss(element, args[1], args[2]);
|
412
|
+
}
|
413
|
+
}
|
414
|
+
})();
|
415
|
+
|
416
|
+
/**
|
417
|
+
* (Internal) Determines if an element or space separated list of class names contains a class name.
|
418
|
+
*/
|
419
|
+
|
420
|
+
function hasClass(element, name) {
|
421
|
+
var list = typeof element == 'string' ? element : classList(element);
|
422
|
+
return list.indexOf(' ' + name + ' ') >= 0;
|
423
|
+
}
|
424
|
+
|
425
|
+
/**
|
426
|
+
* (Internal) Adds a class to an element.
|
427
|
+
*/
|
428
|
+
|
429
|
+
function addClass(element, name) {
|
430
|
+
var oldList = classList(element),
|
431
|
+
newList = oldList + name;
|
432
|
+
|
433
|
+
if (hasClass(oldList, name)) return;
|
434
|
+
|
435
|
+
// Trim the opening space.
|
436
|
+
element.className = newList.substring(1);
|
437
|
+
}
|
438
|
+
|
439
|
+
/**
|
440
|
+
* (Internal) Removes a class from an element.
|
441
|
+
*/
|
442
|
+
|
443
|
+
function removeClass(element, name) {
|
444
|
+
var oldList = classList(element),
|
445
|
+
newList;
|
446
|
+
|
447
|
+
if (!hasClass(element, name)) return;
|
448
|
+
|
449
|
+
// Replace the class name.
|
450
|
+
newList = oldList.replace(' ' + name + ' ', ' ');
|
451
|
+
|
452
|
+
// Trim the opening and closing spaces.
|
453
|
+
element.className = newList.substring(1, newList.length - 1);
|
454
|
+
}
|
455
|
+
|
456
|
+
/**
|
457
|
+
* (Internal) Gets a space separated list of the class names on the element.
|
458
|
+
* The list is wrapped with a single space on each end to facilitate finding
|
459
|
+
* matches within the list.
|
460
|
+
*/
|
461
|
+
|
462
|
+
function classList(element) {
|
463
|
+
return (' ' + (element.className || '') + ' ').replace(/\s+/gi, ' ');
|
464
|
+
}
|
465
|
+
|
466
|
+
/**
|
467
|
+
* (Internal) Removes an element from the DOM.
|
468
|
+
*/
|
469
|
+
|
470
|
+
function removeElement(element) {
|
471
|
+
element && element.parentNode && element.parentNode.removeChild(element);
|
472
|
+
}
|
473
|
+
|
474
|
+
return NProgress;
|
475
|
+
});
|
476
|
+
|
@@ -0,0 +1,6 @@
|
|
1
|
+
// Underscore.js 1.7.0
|
2
|
+
// http://underscorejs.org
|
3
|
+
// (c) 2009-2014 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
|
4
|
+
// Underscore may be freely distributed under the MIT license.
|
5
|
+
(function(){var n=this,t=n._,r=Array.prototype,e=Object.prototype,u=Function.prototype,i=r.push,a=r.slice,o=r.concat,l=e.toString,c=e.hasOwnProperty,f=Array.isArray,s=Object.keys,p=u.bind,h=function(n){return n instanceof h?n:this instanceof h?void(this._wrapped=n):new h(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=h),exports._=h):n._=h,h.VERSION="1.7.0";var g=function(n,t,r){if(t===void 0)return n;switch(null==r?3:r){case 1:return function(r){return n.call(t,r)};case 2:return function(r,e){return n.call(t,r,e)};case 3:return function(r,e,u){return n.call(t,r,e,u)};case 4:return function(r,e,u,i){return n.call(t,r,e,u,i)}}return function(){return n.apply(t,arguments)}};h.iteratee=function(n,t,r){return null==n?h.identity:h.isFunction(n)?g(n,t,r):h.isObject(n)?h.matches(n):h.property(n)},h.each=h.forEach=function(n,t,r){if(null==n)return n;t=g(t,r);var e,u=n.length;if(u===+u)for(e=0;u>e;e++)t(n[e],e,n);else{var i=h.keys(n);for(e=0,u=i.length;u>e;e++)t(n[i[e]],i[e],n)}return n},h.map=h.collect=function(n,t,r){if(null==n)return[];t=h.iteratee(t,r);for(var e,u=n.length!==+n.length&&h.keys(n),i=(u||n).length,a=Array(i),o=0;i>o;o++)e=u?u[o]:o,a[o]=t(n[e],e,n);return a};var v="Reduce of empty array with no initial value";h.reduce=h.foldl=h.inject=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length,o=0;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[o++]:o++]}for(;a>o;o++)u=i?i[o]:o,r=t(r,n[u],u,n);return r},h.reduceRight=h.foldr=function(n,t,r,e){null==n&&(n=[]),t=g(t,e,4);var u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;if(arguments.length<3){if(!a)throw new TypeError(v);r=n[i?i[--a]:--a]}for(;a--;)u=i?i[a]:a,r=t(r,n[u],u,n);return r},h.find=h.detect=function(n,t,r){var e;return t=h.iteratee(t,r),h.some(n,function(n,r,u){return t(n,r,u)?(e=n,!0):void 0}),e},h.filter=h.select=function(n,t,r){var e=[];return null==n?e:(t=h.iteratee(t,r),h.each(n,function(n,r,u){t(n,r,u)&&e.push(n)}),e)},h.reject=function(n,t,r){return h.filter(n,h.negate(h.iteratee(t)),r)},h.every=h.all=function(n,t,r){if(null==n)return!0;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,!t(n[u],u,n))return!1;return!0},h.some=h.any=function(n,t,r){if(null==n)return!1;t=h.iteratee(t,r);var e,u,i=n.length!==+n.length&&h.keys(n),a=(i||n).length;for(e=0;a>e;e++)if(u=i?i[e]:e,t(n[u],u,n))return!0;return!1},h.contains=h.include=function(n,t){return null==n?!1:(n.length!==+n.length&&(n=h.values(n)),h.indexOf(n,t)>=0)},h.invoke=function(n,t){var r=a.call(arguments,2),e=h.isFunction(t);return h.map(n,function(n){return(e?t:n[t]).apply(n,r)})},h.pluck=function(n,t){return h.map(n,h.property(t))},h.where=function(n,t){return h.filter(n,h.matches(t))},h.findWhere=function(n,t){return h.find(n,h.matches(t))},h.max=function(n,t,r){var e,u,i=-1/0,a=-1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],e>i&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(u>a||u===-1/0&&i===-1/0)&&(i=n,a=u)});return i},h.min=function(n,t,r){var e,u,i=1/0,a=1/0;if(null==t&&null!=n){n=n.length===+n.length?n:h.values(n);for(var o=0,l=n.length;l>o;o++)e=n[o],i>e&&(i=e)}else t=h.iteratee(t,r),h.each(n,function(n,r,e){u=t(n,r,e),(a>u||1/0===u&&1/0===i)&&(i=n,a=u)});return i},h.shuffle=function(n){for(var t,r=n&&n.length===+n.length?n:h.values(n),e=r.length,u=Array(e),i=0;e>i;i++)t=h.random(0,i),t!==i&&(u[i]=u[t]),u[t]=r[i];return u},h.sample=function(n,t,r){return null==t||r?(n.length!==+n.length&&(n=h.values(n)),n[h.random(n.length-1)]):h.shuffle(n).slice(0,Math.max(0,t))},h.sortBy=function(n,t,r){return t=h.iteratee(t,r),h.pluck(h.map(n,function(n,r,e){return{value:n,index:r,criteria:t(n,r,e)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index-t.index}),"value")};var m=function(n){return function(t,r,e){var u={};return r=h.iteratee(r,e),h.each(t,function(e,i){var a=r(e,i,t);n(u,e,a)}),u}};h.groupBy=m(function(n,t,r){h.has(n,r)?n[r].push(t):n[r]=[t]}),h.indexBy=m(function(n,t,r){n[r]=t}),h.countBy=m(function(n,t,r){h.has(n,r)?n[r]++:n[r]=1}),h.sortedIndex=function(n,t,r,e){r=h.iteratee(r,e,1);for(var u=r(t),i=0,a=n.length;a>i;){var o=i+a>>>1;r(n[o])<u?i=o+1:a=o}return i},h.toArray=function(n){return n?h.isArray(n)?a.call(n):n.length===+n.length?h.map(n,h.identity):h.values(n):[]},h.size=function(n){return null==n?0:n.length===+n.length?n.length:h.keys(n).length},h.partition=function(n,t,r){t=h.iteratee(t,r);var e=[],u=[];return h.each(n,function(n,r,i){(t(n,r,i)?e:u).push(n)}),[e,u]},h.first=h.head=h.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:0>t?[]:a.call(n,0,t)},h.initial=function(n,t,r){return a.call(n,0,Math.max(0,n.length-(null==t||r?1:t)))},h.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:a.call(n,Math.max(n.length-t,0))},h.rest=h.tail=h.drop=function(n,t,r){return a.call(n,null==t||r?1:t)},h.compact=function(n){return h.filter(n,h.identity)};var y=function(n,t,r,e){if(t&&h.every(n,h.isArray))return o.apply(e,n);for(var u=0,a=n.length;a>u;u++){var l=n[u];h.isArray(l)||h.isArguments(l)?t?i.apply(e,l):y(l,t,r,e):r||e.push(l)}return e};h.flatten=function(n,t){return y(n,t,!1,[])},h.without=function(n){return h.difference(n,a.call(arguments,1))},h.uniq=h.unique=function(n,t,r,e){if(null==n)return[];h.isBoolean(t)||(e=r,r=t,t=!1),null!=r&&(r=h.iteratee(r,e));for(var u=[],i=[],a=0,o=n.length;o>a;a++){var l=n[a];if(t)a&&i===l||u.push(l),i=l;else if(r){var c=r(l,a,n);h.indexOf(i,c)<0&&(i.push(c),u.push(l))}else h.indexOf(u,l)<0&&u.push(l)}return u},h.union=function(){return h.uniq(y(arguments,!0,!0,[]))},h.intersection=function(n){if(null==n)return[];for(var t=[],r=arguments.length,e=0,u=n.length;u>e;e++){var i=n[e];if(!h.contains(t,i)){for(var a=1;r>a&&h.contains(arguments[a],i);a++);a===r&&t.push(i)}}return t},h.difference=function(n){var t=y(a.call(arguments,1),!0,!0,[]);return h.filter(n,function(n){return!h.contains(t,n)})},h.zip=function(n){if(null==n)return[];for(var t=h.max(arguments,"length").length,r=Array(t),e=0;t>e;e++)r[e]=h.pluck(arguments,e);return r},h.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},h.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=h.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}for(;u>e;e++)if(n[e]===t)return e;return-1},h.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=n.length;for("number"==typeof r&&(e=0>r?e+r+1:Math.min(e,r+1));--e>=0;)if(n[e]===t)return e;return-1},h.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=r||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=Array(e),i=0;e>i;i++,n+=r)u[i]=n;return u};var d=function(){};h.bind=function(n,t){var r,e;if(p&&n.bind===p)return p.apply(n,a.call(arguments,1));if(!h.isFunction(n))throw new TypeError("Bind must be called on a function");return r=a.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(a.call(arguments)));d.prototype=n.prototype;var u=new d;d.prototype=null;var i=n.apply(u,r.concat(a.call(arguments)));return h.isObject(i)?i:u}},h.partial=function(n){var t=a.call(arguments,1);return function(){for(var r=0,e=t.slice(),u=0,i=e.length;i>u;u++)e[u]===h&&(e[u]=arguments[r++]);for(;r<arguments.length;)e.push(arguments[r++]);return n.apply(this,e)}},h.bindAll=function(n){var t,r,e=arguments.length;if(1>=e)throw new Error("bindAll must be passed function names");for(t=1;e>t;t++)r=arguments[t],n[r]=h.bind(n[r],n);return n},h.memoize=function(n,t){var r=function(e){var u=r.cache,i=t?t.apply(this,arguments):e;return h.has(u,i)||(u[i]=n.apply(this,arguments)),u[i]};return r.cache={},r},h.delay=function(n,t){var r=a.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},h.defer=function(n){return h.delay.apply(h,[n,1].concat(a.call(arguments,1)))},h.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var l=function(){o=r.leading===!1?0:h.now(),a=null,i=n.apply(e,u),a||(e=u=null)};return function(){var c=h.now();o||r.leading!==!1||(o=c);var f=t-(c-o);return e=this,u=arguments,0>=f||f>t?(clearTimeout(a),a=null,o=c,i=n.apply(e,u),a||(e=u=null)):a||r.trailing===!1||(a=setTimeout(l,f)),i}},h.debounce=function(n,t,r){var e,u,i,a,o,l=function(){var c=h.now()-a;t>c&&c>0?e=setTimeout(l,t-c):(e=null,r||(o=n.apply(i,u),e||(i=u=null)))};return function(){i=this,u=arguments,a=h.now();var c=r&&!e;return e||(e=setTimeout(l,t)),c&&(o=n.apply(i,u),i=u=null),o}},h.wrap=function(n,t){return h.partial(t,n)},h.negate=function(n){return function(){return!n.apply(this,arguments)}},h.compose=function(){var n=arguments,t=n.length-1;return function(){for(var r=t,e=n[t].apply(this,arguments);r--;)e=n[r].call(this,e);return e}},h.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},h.before=function(n,t){var r;return function(){return--n>0?r=t.apply(this,arguments):t=null,r}},h.once=h.partial(h.before,2),h.keys=function(n){if(!h.isObject(n))return[];if(s)return s(n);var t=[];for(var r in n)h.has(n,r)&&t.push(r);return t},h.values=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=n[t[u]];return e},h.pairs=function(n){for(var t=h.keys(n),r=t.length,e=Array(r),u=0;r>u;u++)e[u]=[t[u],n[t[u]]];return e},h.invert=function(n){for(var t={},r=h.keys(n),e=0,u=r.length;u>e;e++)t[n[r[e]]]=r[e];return t},h.functions=h.methods=function(n){var t=[];for(var r in n)h.isFunction(n[r])&&t.push(r);return t.sort()},h.extend=function(n){if(!h.isObject(n))return n;for(var t,r,e=1,u=arguments.length;u>e;e++){t=arguments[e];for(r in t)c.call(t,r)&&(n[r]=t[r])}return n},h.pick=function(n,t,r){var e,u={};if(null==n)return u;if(h.isFunction(t)){t=g(t,r);for(e in n){var i=n[e];t(i,e,n)&&(u[e]=i)}}else{var l=o.apply([],a.call(arguments,1));n=new Object(n);for(var c=0,f=l.length;f>c;c++)e=l[c],e in n&&(u[e]=n[e])}return u},h.omit=function(n,t,r){if(h.isFunction(t))t=h.negate(t);else{var e=h.map(o.apply([],a.call(arguments,1)),String);t=function(n,t){return!h.contains(e,t)}}return h.pick(n,t,r)},h.defaults=function(n){if(!h.isObject(n))return n;for(var t=1,r=arguments.length;r>t;t++){var e=arguments[t];for(var u in e)n[u]===void 0&&(n[u]=e[u])}return n},h.clone=function(n){return h.isObject(n)?h.isArray(n)?n.slice():h.extend({},n):n},h.tap=function(n,t){return t(n),n};var b=function(n,t,r,e){if(n===t)return 0!==n||1/n===1/t;if(null==n||null==t)return n===t;n instanceof h&&(n=n._wrapped),t instanceof h&&(t=t._wrapped);var u=l.call(n);if(u!==l.call(t))return!1;switch(u){case"[object RegExp]":case"[object String]":return""+n==""+t;case"[object Number]":return+n!==+n?+t!==+t:0===+n?1/+n===1/t:+n===+t;case"[object Date]":case"[object Boolean]":return+n===+t}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]===n)return e[i]===t;var a=n.constructor,o=t.constructor;if(a!==o&&"constructor"in n&&"constructor"in t&&!(h.isFunction(a)&&a instanceof a&&h.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c,f;if("[object Array]"===u){if(c=n.length,f=c===t.length)for(;c--&&(f=b(n[c],t[c],r,e)););}else{var s,p=h.keys(n);if(c=p.length,f=h.keys(t).length===c)for(;c--&&(s=p[c],f=h.has(t,s)&&b(n[s],t[s],r,e)););}return r.pop(),e.pop(),f};h.isEqual=function(n,t){return b(n,t,[],[])},h.isEmpty=function(n){if(null==n)return!0;if(h.isArray(n)||h.isString(n)||h.isArguments(n))return 0===n.length;for(var t in n)if(h.has(n,t))return!1;return!0},h.isElement=function(n){return!(!n||1!==n.nodeType)},h.isArray=f||function(n){return"[object Array]"===l.call(n)},h.isObject=function(n){var t=typeof n;return"function"===t||"object"===t&&!!n},h.each(["Arguments","Function","String","Number","Date","RegExp"],function(n){h["is"+n]=function(t){return l.call(t)==="[object "+n+"]"}}),h.isArguments(arguments)||(h.isArguments=function(n){return h.has(n,"callee")}),"function"!=typeof/./&&(h.isFunction=function(n){return"function"==typeof n||!1}),h.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},h.isNaN=function(n){return h.isNumber(n)&&n!==+n},h.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"===l.call(n)},h.isNull=function(n){return null===n},h.isUndefined=function(n){return n===void 0},h.has=function(n,t){return null!=n&&c.call(n,t)},h.noConflict=function(){return n._=t,this},h.identity=function(n){return n},h.constant=function(n){return function(){return n}},h.noop=function(){},h.property=function(n){return function(t){return t[n]}},h.matches=function(n){var t=h.pairs(n),r=t.length;return function(n){if(null==n)return!r;n=new Object(n);for(var e=0;r>e;e++){var u=t[e],i=u[0];if(u[1]!==n[i]||!(i in n))return!1}return!0}},h.times=function(n,t,r){var e=Array(Math.max(0,n));t=g(t,r,1);for(var u=0;n>u;u++)e[u]=t(u);return e},h.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))},h.now=Date.now||function(){return(new Date).getTime()};var _={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"},w=h.invert(_),j=function(n){var t=function(t){return n[t]},r="(?:"+h.keys(n).join("|")+")",e=RegExp(r),u=RegExp(r,"g");return function(n){return n=null==n?"":""+n,e.test(n)?n.replace(u,t):n}};h.escape=j(_),h.unescape=j(w),h.result=function(n,t){if(null==n)return void 0;var r=n[t];return h.isFunction(r)?n[t]():r};var x=0;h.uniqueId=function(n){var t=++x+"";return n?n+t:t},h.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var A=/(.)^/,k={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"},O=/\\|'|\r|\n|\u2028|\u2029/g,F=function(n){return"\\"+k[n]};h.template=function(n,t,r){!t&&r&&(t=r),t=h.defaults({},t,h.templateSettings);var e=RegExp([(t.escape||A).source,(t.interpolate||A).source,(t.evaluate||A).source].join("|")+"|$","g"),u=0,i="__p+='";n.replace(e,function(t,r,e,a,o){return i+=n.slice(u,o).replace(O,F),u=o+t.length,r?i+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'":e?i+="'+\n((__t=("+e+"))==null?'':__t)+\n'":a&&(i+="';\n"+a+"\n__p+='"),t}),i+="';\n",t.variable||(i="with(obj||{}){\n"+i+"}\n"),i="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+i+"return __p;\n";try{var a=new Function(t.variable||"obj","_",i)}catch(o){throw o.source=i,o}var l=function(n){return a.call(this,n,h)},c=t.variable||"obj";return l.source="function("+c+"){\n"+i+"}",l},h.chain=function(n){var t=h(n);return t._chain=!0,t};var E=function(n){return this._chain?h(n).chain():n};h.mixin=function(n){h.each(h.functions(n),function(t){var r=h[t]=n[t];h.prototype[t]=function(){var n=[this._wrapped];return i.apply(n,arguments),E.call(this,r.apply(h,n))}})},h.mixin(h),h.each(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=r[n];h.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!==n&&"splice"!==n||0!==r.length||delete r[0],E.call(this,r)}}),h.each(["concat","join","slice"],function(n){var t=r[n];h.prototype[n]=function(){return E.call(this,t.apply(this._wrapped,arguments))}}),h.prototype.value=function(){return this._wrapped},"function"==typeof define&&define.amd&&define("underscore",[],function(){return h})}).call(this);
|
6
|
+
//# sourceMappingURL=underscore-min.map
|
@@ -24,12 +24,27 @@ body {
|
|
24
24
|
width: 100%;
|
25
25
|
}
|
26
26
|
|
27
|
+
.error {
|
28
|
+
display: block;
|
29
|
+
margin-left: auto;
|
30
|
+
margin-right: auto;
|
31
|
+
text-align: center;
|
32
|
+
margin:10px;
|
33
|
+
margin-top:60px;
|
34
|
+
i{
|
35
|
+
color: #ccc;
|
36
|
+
}
|
37
|
+
}
|
38
|
+
|
27
39
|
nav{
|
28
40
|
background-color: #F9F9F6 !important;
|
29
41
|
}
|
30
|
-
|
42
|
+
h1{
|
43
|
+
font-size: 43px;
|
44
|
+
font-weight: 700;
|
45
|
+
}
|
31
46
|
h2, .h2, h4 {
|
32
|
-
font-family: "ff-tisa-web-pro",Georgia,Cambria,"Times New Roman",Times,serif !important
|
47
|
+
font-family: "ff-tisa-web-pro",Georgia,Cambria,"Times New Roman",Times,serif !important;
|
33
48
|
&.title{
|
34
49
|
font-family: $serif;
|
35
50
|
text-transform: uppercase;
|
@@ -77,6 +92,10 @@ nav.transparent.navbar {
|
|
77
92
|
padding-bottom: 17px;
|
78
93
|
padding-top: 17px;
|
79
94
|
text-align: center;
|
95
|
+
background-color: #fff;
|
96
|
+
.pull-right{
|
97
|
+
margin-right: 25px;
|
98
|
+
}
|
80
99
|
//text-transform: uppercase;
|
81
100
|
}
|
82
101
|
|
@@ -153,7 +172,7 @@ nav.transparent.navbar {
|
|
153
172
|
height: 100%;
|
154
173
|
left: 0px;
|
155
174
|
padding: 0;
|
156
|
-
width: 253px;
|
175
|
+
//width: 253px;
|
157
176
|
background-color: $background-color;
|
158
177
|
#sidebar-header{
|
159
178
|
border-bottom: 1px solid #cecece;
|
@@ -163,6 +182,8 @@ nav.transparent.navbar {
|
|
163
182
|
|
164
183
|
#main-content{
|
165
184
|
min-width: 600px;
|
185
|
+
min-height: 500px;
|
186
|
+
//padding-top: 20px;
|
166
187
|
}
|
167
188
|
|
168
189
|
#repo-menu{
|
@@ -196,4 +217,10 @@ pre#log{
|
|
196
217
|
padding: 5px 20px 5px 0;
|
197
218
|
text-align: left;
|
198
219
|
vertical-align: top;
|
220
|
+
}
|
221
|
+
|
222
|
+
#build-report-container .stats{
|
223
|
+
p{
|
224
|
+
margin: 9px 16px;
|
225
|
+
}
|
199
226
|
}
|
@@ -0,0 +1,74 @@
|
|
1
|
+
/* Make clicks pass-through */
|
2
|
+
#nprogress {
|
3
|
+
pointer-events: none;
|
4
|
+
}
|
5
|
+
|
6
|
+
#nprogress .bar {
|
7
|
+
background: #5100a9;
|
8
|
+
|
9
|
+
position: fixed;
|
10
|
+
z-index: 1031;
|
11
|
+
top: 0;
|
12
|
+
left: 0;
|
13
|
+
|
14
|
+
width: 100%;
|
15
|
+
height: 2px;
|
16
|
+
}
|
17
|
+
|
18
|
+
/* Fancy blur effect */
|
19
|
+
#nprogress .peg {
|
20
|
+
display: block;
|
21
|
+
position: absolute;
|
22
|
+
right: 0px;
|
23
|
+
width: 100px;
|
24
|
+
height: 100%;
|
25
|
+
box-shadow: 0 0 10px #5100a9, 0 0 5px #5100a9;
|
26
|
+
opacity: 1.0;
|
27
|
+
|
28
|
+
-webkit-transform: rotate(3deg) translate(0px, -4px);
|
29
|
+
-ms-transform: rotate(3deg) translate(0px, -4px);
|
30
|
+
transform: rotate(3deg) translate(0px, -4px);
|
31
|
+
}
|
32
|
+
|
33
|
+
/* Remove these to get rid of the spinner */
|
34
|
+
#nprogress .spinner {
|
35
|
+
display: block;
|
36
|
+
position: fixed;
|
37
|
+
z-index: 1031;
|
38
|
+
top: 15px;
|
39
|
+
right: 15px;
|
40
|
+
}
|
41
|
+
|
42
|
+
#nprogress .spinner-icon {
|
43
|
+
width: 18px;
|
44
|
+
height: 18px;
|
45
|
+
box-sizing: border-box;
|
46
|
+
|
47
|
+
border: solid 2px transparent;
|
48
|
+
border-top-color: #29d;
|
49
|
+
border-left-color: #29d;
|
50
|
+
border-radius: 50%;
|
51
|
+
|
52
|
+
-webkit-animation: nprogress-spinner 400ms linear infinite;
|
53
|
+
animation: nprogress-spinner 400ms linear infinite;
|
54
|
+
}
|
55
|
+
|
56
|
+
.nprogress-custom-parent {
|
57
|
+
overflow: hidden;
|
58
|
+
position: relative;
|
59
|
+
}
|
60
|
+
|
61
|
+
.nprogress-custom-parent #nprogress .spinner,
|
62
|
+
.nprogress-custom-parent #nprogress .bar {
|
63
|
+
position: absolute;
|
64
|
+
}
|
65
|
+
|
66
|
+
@-webkit-keyframes nprogress-spinner {
|
67
|
+
0% { -webkit-transform: rotate(0deg); }
|
68
|
+
100% { -webkit-transform: rotate(360deg); }
|
69
|
+
}
|
70
|
+
@keyframes nprogress-spinner {
|
71
|
+
0% { transform: rotate(0deg); }
|
72
|
+
100% { transform: rotate(360deg); }
|
73
|
+
}
|
74
|
+
|