perkins 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|
+
|