mongo_request_logger 0.1.0 → 0.2.0
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.
- data/CHANGELOG.md +9 -0
- data/README.md +3 -11
- data/angular/.gitignore +8 -0
- data/angular/README.md +143 -0
- data/angular/app/css/.gitignore +0 -0
- data/angular/app/css/app.css +30 -0
- data/angular/app/img/.gitignore +0 -0
- data/{public → angular/app}/img/flags/ad.png +0 -0
- data/{public → angular/app}/img/flags/ae.png +0 -0
- data/{public → angular/app}/img/flags/af.png +0 -0
- data/{public → angular/app}/img/flags/ag.png +0 -0
- data/{public → angular/app}/img/flags/ai.png +0 -0
- data/{public → angular/app}/img/flags/al.png +0 -0
- data/{public → angular/app}/img/flags/am.png +0 -0
- data/{public → angular/app}/img/flags/an.png +0 -0
- data/{public → angular/app}/img/flags/ao.png +0 -0
- data/{public → angular/app}/img/flags/ar.png +0 -0
- data/{public → angular/app}/img/flags/as.png +0 -0
- data/{public → angular/app}/img/flags/at.png +0 -0
- data/{public → angular/app}/img/flags/au.png +0 -0
- data/{public → angular/app}/img/flags/aw.png +0 -0
- data/{public → angular/app}/img/flags/ax.png +0 -0
- data/{public → angular/app}/img/flags/az.png +0 -0
- data/{public → angular/app}/img/flags/ba.png +0 -0
- data/{public → angular/app}/img/flags/bb.png +0 -0
- data/{public → angular/app}/img/flags/bd.png +0 -0
- data/{public → angular/app}/img/flags/be.png +0 -0
- data/{public → angular/app}/img/flags/bf.png +0 -0
- data/{public → angular/app}/img/flags/bg.png +0 -0
- data/{public → angular/app}/img/flags/bh.png +0 -0
- data/{public → angular/app}/img/flags/bi.png +0 -0
- data/{public → angular/app}/img/flags/bj.png +0 -0
- data/{public → angular/app}/img/flags/bm.png +0 -0
- data/{public → angular/app}/img/flags/bn.png +0 -0
- data/{public → angular/app}/img/flags/bo.png +0 -0
- data/{public → angular/app}/img/flags/br.png +0 -0
- data/{public → angular/app}/img/flags/bs.png +0 -0
- data/{public → angular/app}/img/flags/bt.png +0 -0
- data/{public → angular/app}/img/flags/bv.png +0 -0
- data/{public → angular/app}/img/flags/bw.png +0 -0
- data/{public → angular/app}/img/flags/by.png +0 -0
- data/{public → angular/app}/img/flags/bz.png +0 -0
- data/{public → angular/app}/img/flags/ca.png +0 -0
- data/{public → angular/app}/img/flags/catalonia.png +0 -0
- data/{public → angular/app}/img/flags/cc.png +0 -0
- data/{public → angular/app}/img/flags/cd.png +0 -0
- data/{public → angular/app}/img/flags/cf.png +0 -0
- data/{public → angular/app}/img/flags/cg.png +0 -0
- data/{public → angular/app}/img/flags/ch.png +0 -0
- data/{public → angular/app}/img/flags/ci.png +0 -0
- data/{public → angular/app}/img/flags/ck.png +0 -0
- data/{public → angular/app}/img/flags/cl.png +0 -0
- data/{public → angular/app}/img/flags/cm.png +0 -0
- data/{public → angular/app}/img/flags/cn.png +0 -0
- data/{public → angular/app}/img/flags/co.png +0 -0
- data/{public → angular/app}/img/flags/cr.png +0 -0
- data/{public → angular/app}/img/flags/cs.png +0 -0
- data/{public → angular/app}/img/flags/cu.png +0 -0
- data/{public → angular/app}/img/flags/cv.png +0 -0
- data/{public → angular/app}/img/flags/cx.png +0 -0
- data/{public → angular/app}/img/flags/cy.png +0 -0
- data/{public → angular/app}/img/flags/cz.png +0 -0
- data/{public → angular/app}/img/flags/de.png +0 -0
- data/{public → angular/app}/img/flags/dj.png +0 -0
- data/{public → angular/app}/img/flags/dk.png +0 -0
- data/{public → angular/app}/img/flags/dm.png +0 -0
- data/{public → angular/app}/img/flags/do.png +0 -0
- data/{public → angular/app}/img/flags/dz.png +0 -0
- data/{public → angular/app}/img/flags/ec.png +0 -0
- data/{public → angular/app}/img/flags/ee.png +0 -0
- data/{public → angular/app}/img/flags/eg.png +0 -0
- data/{public → angular/app}/img/flags/eh.png +0 -0
- data/{public → angular/app}/img/flags/england.png +0 -0
- data/{public → angular/app}/img/flags/er.png +0 -0
- data/{public → angular/app}/img/flags/es.png +0 -0
- data/{public → angular/app}/img/flags/et.png +0 -0
- data/{public → angular/app}/img/flags/europeanunion.png +0 -0
- data/{public → angular/app}/img/flags/fam.png +0 -0
- data/{public → angular/app}/img/flags/fi.png +0 -0
- data/{public → angular/app}/img/flags/fj.png +0 -0
- data/{public → angular/app}/img/flags/fk.png +0 -0
- data/{public → angular/app}/img/flags/fm.png +0 -0
- data/{public → angular/app}/img/flags/fo.png +0 -0
- data/{public → angular/app}/img/flags/fr.png +0 -0
- data/{public → angular/app}/img/flags/ga.png +0 -0
- data/{public → angular/app}/img/flags/gb.png +0 -0
- data/{public → angular/app}/img/flags/gd.png +0 -0
- data/{public → angular/app}/img/flags/ge.png +0 -0
- data/{public → angular/app}/img/flags/gf.png +0 -0
- data/{public → angular/app}/img/flags/gh.png +0 -0
- data/{public → angular/app}/img/flags/gi.png +0 -0
- data/{public → angular/app}/img/flags/gl.png +0 -0
- data/{public → angular/app}/img/flags/gm.png +0 -0
- data/{public → angular/app}/img/flags/gn.png +0 -0
- data/{public → angular/app}/img/flags/gp.png +0 -0
- data/{public → angular/app}/img/flags/gq.png +0 -0
- data/{public → angular/app}/img/flags/gr.png +0 -0
- data/{public → angular/app}/img/flags/gs.png +0 -0
- data/{public → angular/app}/img/flags/gt.png +0 -0
- data/{public → angular/app}/img/flags/gu.png +0 -0
- data/{public → angular/app}/img/flags/gw.png +0 -0
- data/{public → angular/app}/img/flags/gy.png +0 -0
- data/{public → angular/app}/img/flags/hk.png +0 -0
- data/{public → angular/app}/img/flags/hm.png +0 -0
- data/{public → angular/app}/img/flags/hn.png +0 -0
- data/{public → angular/app}/img/flags/hr.png +0 -0
- data/{public → angular/app}/img/flags/ht.png +0 -0
- data/{public → angular/app}/img/flags/hu.png +0 -0
- data/{public → angular/app}/img/flags/id.png +0 -0
- data/{public → angular/app}/img/flags/ie.png +0 -0
- data/{public → angular/app}/img/flags/il.png +0 -0
- data/{public → angular/app}/img/flags/in.png +0 -0
- data/{public → angular/app}/img/flags/io.png +0 -0
- data/{public → angular/app}/img/flags/iq.png +0 -0
- data/{public → angular/app}/img/flags/ir.png +0 -0
- data/{public → angular/app}/img/flags/is.png +0 -0
- data/{public → angular/app}/img/flags/it.png +0 -0
- data/{public → angular/app}/img/flags/jm.png +0 -0
- data/{public → angular/app}/img/flags/jo.png +0 -0
- data/{public → angular/app}/img/flags/jp.png +0 -0
- data/{public → angular/app}/img/flags/ke.png +0 -0
- data/{public → angular/app}/img/flags/kg.png +0 -0
- data/{public → angular/app}/img/flags/kh.png +0 -0
- data/{public → angular/app}/img/flags/ki.png +0 -0
- data/{public → angular/app}/img/flags/km.png +0 -0
- data/{public → angular/app}/img/flags/kn.png +0 -0
- data/{public → angular/app}/img/flags/kp.png +0 -0
- data/{public → angular/app}/img/flags/kr.png +0 -0
- data/{public → angular/app}/img/flags/kw.png +0 -0
- data/{public → angular/app}/img/flags/ky.png +0 -0
- data/{public → angular/app}/img/flags/kz.png +0 -0
- data/{public → angular/app}/img/flags/la.png +0 -0
- data/{public → angular/app}/img/flags/lb.png +0 -0
- data/{public → angular/app}/img/flags/lc.png +0 -0
- data/{public → angular/app}/img/flags/li.png +0 -0
- data/{public → angular/app}/img/flags/lk.png +0 -0
- data/{public → angular/app}/img/flags/lr.png +0 -0
- data/{public → angular/app}/img/flags/ls.png +0 -0
- data/{public → angular/app}/img/flags/lt.png +0 -0
- data/{public → angular/app}/img/flags/lu.png +0 -0
- data/{public → angular/app}/img/flags/lv.png +0 -0
- data/{public → angular/app}/img/flags/ly.png +0 -0
- data/{public → angular/app}/img/flags/ma.png +0 -0
- data/{public → angular/app}/img/flags/mc.png +0 -0
- data/{public → angular/app}/img/flags/md.png +0 -0
- data/{public → angular/app}/img/flags/me.png +0 -0
- data/{public → angular/app}/img/flags/mg.png +0 -0
- data/{public → angular/app}/img/flags/mh.png +0 -0
- data/{public → angular/app}/img/flags/mk.png +0 -0
- data/{public → angular/app}/img/flags/ml.png +0 -0
- data/{public → angular/app}/img/flags/mm.png +0 -0
- data/{public → angular/app}/img/flags/mn.png +0 -0
- data/{public → angular/app}/img/flags/mo.png +0 -0
- data/{public → angular/app}/img/flags/mp.png +0 -0
- data/{public → angular/app}/img/flags/mq.png +0 -0
- data/{public → angular/app}/img/flags/mr.png +0 -0
- data/{public → angular/app}/img/flags/ms.png +0 -0
- data/{public → angular/app}/img/flags/mt.png +0 -0
- data/{public → angular/app}/img/flags/mu.png +0 -0
- data/{public → angular/app}/img/flags/mv.png +0 -0
- data/{public → angular/app}/img/flags/mw.png +0 -0
- data/{public → angular/app}/img/flags/mx.png +0 -0
- data/{public → angular/app}/img/flags/my.png +0 -0
- data/{public → angular/app}/img/flags/mz.png +0 -0
- data/{public → angular/app}/img/flags/na.png +0 -0
- data/{public → angular/app}/img/flags/nc.png +0 -0
- data/{public → angular/app}/img/flags/ne.png +0 -0
- data/{public → angular/app}/img/flags/nf.png +0 -0
- data/{public → angular/app}/img/flags/ng.png +0 -0
- data/{public → angular/app}/img/flags/ni.png +0 -0
- data/{public → angular/app}/img/flags/nl.png +0 -0
- data/{public → angular/app}/img/flags/no.png +0 -0
- data/{public → angular/app}/img/flags/np.png +0 -0
- data/{public → angular/app}/img/flags/nr.png +0 -0
- data/{public → angular/app}/img/flags/nu.png +0 -0
- data/{public → angular/app}/img/flags/nz.png +0 -0
- data/{public → angular/app}/img/flags/om.png +0 -0
- data/{public → angular/app}/img/flags/pa.png +0 -0
- data/{public → angular/app}/img/flags/pe.png +0 -0
- data/{public → angular/app}/img/flags/pf.png +0 -0
- data/{public → angular/app}/img/flags/pg.png +0 -0
- data/{public → angular/app}/img/flags/ph.png +0 -0
- data/{public → angular/app}/img/flags/pk.png +0 -0
- data/{public → angular/app}/img/flags/pl.png +0 -0
- data/{public → angular/app}/img/flags/pm.png +0 -0
- data/{public → angular/app}/img/flags/pn.png +0 -0
- data/{public → angular/app}/img/flags/pr.png +0 -0
- data/{public → angular/app}/img/flags/ps.png +0 -0
- data/{public → angular/app}/img/flags/pt.png +0 -0
- data/{public → angular/app}/img/flags/pw.png +0 -0
- data/{public → angular/app}/img/flags/py.png +0 -0
- data/{public → angular/app}/img/flags/qa.png +0 -0
- data/{public → angular/app}/img/flags/re.png +0 -0
- data/{public → angular/app}/img/flags/ro.png +0 -0
- data/{public → angular/app}/img/flags/rs.png +0 -0
- data/{public → angular/app}/img/flags/ru.png +0 -0
- data/{public → angular/app}/img/flags/rw.png +0 -0
- data/{public → angular/app}/img/flags/sa.png +0 -0
- data/{public → angular/app}/img/flags/sb.png +0 -0
- data/{public → angular/app}/img/flags/sc.png +0 -0
- data/{public → angular/app}/img/flags/scotland.png +0 -0
- data/{public → angular/app}/img/flags/sd.png +0 -0
- data/{public → angular/app}/img/flags/se.png +0 -0
- data/{public → angular/app}/img/flags/sg.png +0 -0
- data/{public → angular/app}/img/flags/sh.png +0 -0
- data/{public → angular/app}/img/flags/si.png +0 -0
- data/{public → angular/app}/img/flags/sj.png +0 -0
- data/{public → angular/app}/img/flags/sk.png +0 -0
- data/{public → angular/app}/img/flags/sl.png +0 -0
- data/{public → angular/app}/img/flags/sm.png +0 -0
- data/{public → angular/app}/img/flags/sn.png +0 -0
- data/{public → angular/app}/img/flags/so.png +0 -0
- data/{public → angular/app}/img/flags/sr.png +0 -0
- data/{public → angular/app}/img/flags/st.png +0 -0
- data/{public → angular/app}/img/flags/sv.png +0 -0
- data/{public → angular/app}/img/flags/sy.png +0 -0
- data/{public → angular/app}/img/flags/sz.png +0 -0
- data/{public → angular/app}/img/flags/tc.png +0 -0
- data/{public → angular/app}/img/flags/td.png +0 -0
- data/{public → angular/app}/img/flags/tf.png +0 -0
- data/{public → angular/app}/img/flags/tg.png +0 -0
- data/{public → angular/app}/img/flags/th.png +0 -0
- data/{public → angular/app}/img/flags/tj.png +0 -0
- data/{public → angular/app}/img/flags/tk.png +0 -0
- data/{public → angular/app}/img/flags/tl.png +0 -0
- data/{public → angular/app}/img/flags/tm.png +0 -0
- data/{public → angular/app}/img/flags/tn.png +0 -0
- data/{public → angular/app}/img/flags/to.png +0 -0
- data/{public → angular/app}/img/flags/tr.png +0 -0
- data/{public → angular/app}/img/flags/tt.png +0 -0
- data/{public → angular/app}/img/flags/tv.png +0 -0
- data/{public → angular/app}/img/flags/tw.png +0 -0
- data/{public → angular/app}/img/flags/tz.png +0 -0
- data/{public → angular/app}/img/flags/ua.png +0 -0
- data/{public → angular/app}/img/flags/ug.png +0 -0
- data/{public → angular/app}/img/flags/uk.png +0 -0
- data/{public → angular/app}/img/flags/um.png +0 -0
- data/{public → angular/app}/img/flags/us.png +0 -0
- data/{public → angular/app}/img/flags/uy.png +0 -0
- data/{public → angular/app}/img/flags/uz.png +0 -0
- data/{public → angular/app}/img/flags/va.png +0 -0
- data/{public → angular/app}/img/flags/vc.png +0 -0
- data/{public → angular/app}/img/flags/ve.png +0 -0
- data/{public → angular/app}/img/flags/vg.png +0 -0
- data/{public → angular/app}/img/flags/vi.png +0 -0
- data/{public → angular/app}/img/flags/vn.png +0 -0
- data/{public → angular/app}/img/flags/vu.png +0 -0
- data/{public → angular/app}/img/flags/wales.png +0 -0
- data/{public → angular/app}/img/flags/wf.png +0 -0
- data/{public → angular/app}/img/flags/ws.png +0 -0
- data/{public → angular/app}/img/flags/ye.png +0 -0
- data/{public → angular/app}/img/flags/yt.png +0 -0
- data/{public → angular/app}/img/flags/za.png +0 -0
- data/{public → angular/app}/img/flags/zm.png +0 -0
- data/{public → angular/app}/img/flags/zw.png +0 -0
- data/angular/app/js/app.js +9 -0
- data/angular/app/js/controllers.js +184 -0
- data/angular/app/js/directives.js +7 -0
- data/angular/app/js/filters.js +34 -0
- data/angular/app/js/services.js +6 -0
- data/angular/app/lib/angular-ui/angular-ui-ieshiv.js +81 -0
- data/angular/app/lib/angular-ui/angular-ui-ieshiv.min.js +7 -0
- data/angular/app/lib/angular-ui/angular-ui.css +50 -0
- data/angular/app/lib/angular-ui/angular-ui.js +1316 -0
- data/angular/app/lib/angular-ui/angular-ui.min.css +1 -0
- data/angular/app/lib/angular-ui/angular-ui.min.js +7 -0
- data/angular/app/lib/angular/angular-cookies.js +171 -0
- data/angular/app/lib/angular/angular-cookies.min.js +7 -0
- data/angular/app/lib/angular/angular-loader.js +276 -0
- data/angular/app/lib/angular/angular-loader.min.js +7 -0
- data/angular/app/lib/angular/angular-resource.js +445 -0
- data/angular/app/lib/angular/angular-resource.min.js +10 -0
- data/angular/app/lib/angular/angular-sanitize.js +535 -0
- data/angular/app/lib/angular/angular-sanitize.min.js +13 -0
- data/angular/app/lib/angular/angular.js +14604 -0
- data/angular/app/lib/angular/angular.min.js +160 -0
- data/angular/app/lib/angular/version.txt +1 -0
- data/angular/app/lib/bootstrap/css/bootstrap.css +6103 -0
- data/angular/app/lib/bootstrap/css/bootstrap.min.css +868 -0
- data/{public → angular/app/lib/bootstrap}/img/glyphicons-halflings-white.png +0 -0
- data/angular/app/lib/bootstrap/img/glyphicons-halflings.png +0 -0
- data/{public → angular/app/lib/bootstrap}/js/bootstrap.js +1210 -865
- data/angular/app/lib/bootstrap/js/bootstrap.min.js +7 -0
- data/{public/js → angular/app/lib/jquery}/jquery-1.7.2.min.js +0 -0
- data/angular/app/partials/.gitignore +0 -0
- data/angular/app/partials/logs.html +91 -0
- data/angular/app/partials/page.html +18 -0
- data/angular/config/testacular-e2e.conf.js +22 -0
- data/angular/config/testacular.conf.js +20 -0
- data/angular/logs/.gitignore +2 -0
- data/angular/scripts/e2e-test.bat +11 -0
- data/angular/scripts/e2e-test.sh +9 -0
- data/angular/scripts/test.bat +11 -0
- data/angular/scripts/test.sh +9 -0
- data/angular/scripts/watchr.rb +19 -0
- data/angular/scripts/web-server.js +244 -0
- data/angular/test/e2e/runner.html +10 -0
- data/angular/test/e2e/scenarios.js +45 -0
- data/angular/test/lib/angular/angular-mocks.js +1764 -0
- data/angular/test/lib/angular/angular-scenario.js +26066 -0
- data/angular/test/lib/angular/version.txt +1 -0
- data/angular/test/unit/controllersSpec.js +31 -0
- data/angular/test/unit/directivesSpec.js +19 -0
- data/angular/test/unit/filtersSpec.js +19 -0
- data/angular/test/unit/servicesSpec.js +14 -0
- data/config.ru +1 -2
- data/lib/mongo_request_logger/adapters/mongo.rb +1 -1
- data/lib/mongo_request_logger/adapters/moped.rb +1 -1
- data/lib/mongo_request_logger/log_message.rb +22 -7
- data/lib/mongo_request_logger/version.rb +1 -1
- data/lib/mongo_request_logger/viewer.rb +40 -15
- data/spec/mongo_logger_spec.rb +1 -1
- data/spec/moped_logger_spec.rb +1 -1
- data/views/index.erb +69 -0
- metadata +318 -275
- data/public/css/bootstrap-responsive.css +0 -815
- data/public/css/bootstrap-responsive.min.css +0 -9
- data/public/css/bootstrap.css +0 -4983
- data/public/css/bootstrap.min.css +0 -9
- data/public/img/glyphicons-halflings.png +0 -0
- data/public/js/bootstrap.min.js +0 -6
- data/public/js/logs.js +0 -194
- data/views/layout.erb +0 -61
- data/views/log_page.erb +0 -22
- data/views/logs.erb +0 -76
|
File without changes
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* ===================================================
|
|
2
|
-
* bootstrap-transition.js v2.
|
|
2
|
+
* bootstrap-transition.js v2.2.2
|
|
3
3
|
* http://twitter.github.com/bootstrap/javascript.html#transitions
|
|
4
4
|
* ===================================================
|
|
5
5
|
* Copyright 2012 Twitter, Inc.
|
|
@@ -20,13 +20,13 @@
|
|
|
20
20
|
|
|
21
21
|
!function ($) {
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
"use strict"; // jshint ;_;
|
|
24
24
|
|
|
25
|
-
"use strict"; // jshint ;_;
|
|
26
25
|
|
|
26
|
+
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
|
|
27
|
+
* ======================================================= */
|
|
27
28
|
|
|
28
|
-
|
|
29
|
-
* ======================================================= */
|
|
29
|
+
$(function () {
|
|
30
30
|
|
|
31
31
|
$.support.transition = (function () {
|
|
32
32
|
|
|
@@ -36,8 +36,7 @@
|
|
|
36
36
|
, transEndEventNames = {
|
|
37
37
|
'WebkitTransition' : 'webkitTransitionEnd'
|
|
38
38
|
, 'MozTransition' : 'transitionend'
|
|
39
|
-
, 'OTransition' : 'oTransitionEnd'
|
|
40
|
-
, 'msTransition' : 'MSTransitionEnd'
|
|
39
|
+
, 'OTransition' : 'oTransitionEnd otransitionend'
|
|
41
40
|
, 'transition' : 'transitionend'
|
|
42
41
|
}
|
|
43
42
|
, name
|
|
@@ -58,10 +57,11 @@
|
|
|
58
57
|
|
|
59
58
|
})
|
|
60
59
|
|
|
61
|
-
}(window.jQuery)
|
|
62
|
-
|
|
63
|
-
*
|
|
64
|
-
*
|
|
60
|
+
}(window.jQuery);
|
|
61
|
+
/* =========================================================
|
|
62
|
+
* bootstrap-modal.js v2.2.2
|
|
63
|
+
* http://twitter.github.com/bootstrap/javascript.html#modals
|
|
64
|
+
* =========================================================
|
|
65
65
|
* Copyright 2012 Twitter, Inc.
|
|
66
66
|
*
|
|
67
67
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
76
76
|
* See the License for the specific language governing permissions and
|
|
77
77
|
* limitations under the License.
|
|
78
|
-
*
|
|
78
|
+
* ========================================================= */
|
|
79
79
|
|
|
80
80
|
|
|
81
81
|
!function ($) {
|
|
@@ -83,169 +83,231 @@
|
|
|
83
83
|
"use strict"; // jshint ;_;
|
|
84
84
|
|
|
85
85
|
|
|
86
|
-
/*
|
|
86
|
+
/* MODAL CLASS DEFINITION
|
|
87
87
|
* ====================== */
|
|
88
88
|
|
|
89
|
-
var
|
|
90
|
-
|
|
91
|
-
|
|
89
|
+
var Modal = function (element, options) {
|
|
90
|
+
this.options = options
|
|
91
|
+
this.$element = $(element)
|
|
92
|
+
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
|
93
|
+
this.options.remote && this.$element.find('.modal-body').load(this.options.remote)
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
Modal.prototype = {
|
|
97
|
+
|
|
98
|
+
constructor: Modal
|
|
99
|
+
|
|
100
|
+
, toggle: function () {
|
|
101
|
+
return this[!this.isShown ? 'show' : 'hide']()
|
|
92
102
|
}
|
|
93
103
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
, $parent
|
|
104
|
+
, show: function () {
|
|
105
|
+
var that = this
|
|
106
|
+
, e = $.Event('show')
|
|
98
107
|
|
|
99
|
-
|
|
100
|
-
selector = $this.attr('href')
|
|
101
|
-
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
102
|
-
}
|
|
108
|
+
this.$element.trigger(e)
|
|
103
109
|
|
|
104
|
-
|
|
110
|
+
if (this.isShown || e.isDefaultPrevented()) return
|
|
105
111
|
|
|
106
|
-
|
|
112
|
+
this.isShown = true
|
|
107
113
|
|
|
108
|
-
|
|
114
|
+
this.escape()
|
|
109
115
|
|
|
110
|
-
|
|
116
|
+
this.backdrop(function () {
|
|
117
|
+
var transition = $.support.transition && that.$element.hasClass('fade')
|
|
111
118
|
|
|
112
|
-
|
|
119
|
+
if (!that.$element.parent().length) {
|
|
120
|
+
that.$element.appendTo(document.body) //don't move modals dom position
|
|
121
|
+
}
|
|
113
122
|
|
|
114
|
-
|
|
123
|
+
that.$element
|
|
124
|
+
.show()
|
|
115
125
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
.remove()
|
|
120
|
-
}
|
|
126
|
+
if (transition) {
|
|
127
|
+
that.$element[0].offsetWidth // force reflow
|
|
128
|
+
}
|
|
121
129
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
130
|
+
that.$element
|
|
131
|
+
.addClass('in')
|
|
132
|
+
.attr('aria-hidden', false)
|
|
126
133
|
|
|
134
|
+
that.enforceFocus()
|
|
127
135
|
|
|
128
|
-
|
|
129
|
-
|
|
136
|
+
transition ?
|
|
137
|
+
that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
|
|
138
|
+
that.$element.focus().trigger('shown')
|
|
130
139
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
var $this = $(this)
|
|
134
|
-
, data = $this.data('alert')
|
|
135
|
-
if (!data) $this.data('alert', (data = new Alert(this)))
|
|
136
|
-
if (typeof option == 'string') data[option].call($this)
|
|
137
|
-
})
|
|
138
|
-
}
|
|
140
|
+
})
|
|
141
|
+
}
|
|
139
142
|
|
|
140
|
-
|
|
143
|
+
, hide: function (e) {
|
|
144
|
+
e && e.preventDefault()
|
|
141
145
|
|
|
146
|
+
var that = this
|
|
142
147
|
|
|
143
|
-
|
|
144
|
-
* ============== */
|
|
148
|
+
e = $.Event('hide')
|
|
145
149
|
|
|
146
|
-
|
|
147
|
-
$('body').on('click.alert.data-api', dismiss, Alert.prototype.close)
|
|
148
|
-
})
|
|
150
|
+
this.$element.trigger(e)
|
|
149
151
|
|
|
150
|
-
|
|
151
|
-
* bootstrap-button.js v2.0.4
|
|
152
|
-
* http://twitter.github.com/bootstrap/javascript.html#buttons
|
|
153
|
-
* ============================================================
|
|
154
|
-
* Copyright 2012 Twitter, Inc.
|
|
155
|
-
*
|
|
156
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
157
|
-
* you may not use this file except in compliance with the License.
|
|
158
|
-
* You may obtain a copy of the License at
|
|
159
|
-
*
|
|
160
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
161
|
-
*
|
|
162
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
163
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
164
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
165
|
-
* See the License for the specific language governing permissions and
|
|
166
|
-
* limitations under the License.
|
|
167
|
-
* ============================================================ */
|
|
152
|
+
if (!this.isShown || e.isDefaultPrevented()) return
|
|
168
153
|
|
|
154
|
+
this.isShown = false
|
|
169
155
|
|
|
170
|
-
|
|
156
|
+
this.escape()
|
|
171
157
|
|
|
172
|
-
|
|
158
|
+
$(document).off('focusin.modal')
|
|
173
159
|
|
|
160
|
+
this.$element
|
|
161
|
+
.removeClass('in')
|
|
162
|
+
.attr('aria-hidden', true)
|
|
174
163
|
|
|
175
|
-
|
|
176
|
-
|
|
164
|
+
$.support.transition && this.$element.hasClass('fade') ?
|
|
165
|
+
this.hideWithTransition() :
|
|
166
|
+
this.hideModal()
|
|
167
|
+
}
|
|
177
168
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
169
|
+
, enforceFocus: function () {
|
|
170
|
+
var that = this
|
|
171
|
+
$(document).on('focusin.modal', function (e) {
|
|
172
|
+
if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
|
|
173
|
+
that.$element.focus()
|
|
174
|
+
}
|
|
175
|
+
})
|
|
176
|
+
}
|
|
182
177
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
178
|
+
, escape: function () {
|
|
179
|
+
var that = this
|
|
180
|
+
if (this.isShown && this.options.keyboard) {
|
|
181
|
+
this.$element.on('keyup.dismiss.modal', function ( e ) {
|
|
182
|
+
e.which == 27 && that.hide()
|
|
183
|
+
})
|
|
184
|
+
} else if (!this.isShown) {
|
|
185
|
+
this.$element.off('keyup.dismiss.modal')
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
188
|
|
|
189
|
-
|
|
190
|
-
|
|
189
|
+
, hideWithTransition: function () {
|
|
190
|
+
var that = this
|
|
191
|
+
, timeout = setTimeout(function () {
|
|
192
|
+
that.$element.off($.support.transition.end)
|
|
193
|
+
that.hideModal()
|
|
194
|
+
}, 500)
|
|
191
195
|
|
|
192
|
-
|
|
196
|
+
this.$element.one($.support.transition.end, function () {
|
|
197
|
+
clearTimeout(timeout)
|
|
198
|
+
that.hideModal()
|
|
199
|
+
})
|
|
200
|
+
}
|
|
193
201
|
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
$el.removeClass(d).removeAttr(d)
|
|
199
|
-
}, 0)
|
|
200
|
-
}
|
|
202
|
+
, hideModal: function (that) {
|
|
203
|
+
this.$element
|
|
204
|
+
.hide()
|
|
205
|
+
.trigger('hidden')
|
|
201
206
|
|
|
202
|
-
|
|
203
|
-
|
|
207
|
+
this.backdrop()
|
|
208
|
+
}
|
|
204
209
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
210
|
+
, removeBackdrop: function () {
|
|
211
|
+
this.$backdrop.remove()
|
|
212
|
+
this.$backdrop = null
|
|
213
|
+
}
|
|
208
214
|
|
|
209
|
-
|
|
215
|
+
, backdrop: function (callback) {
|
|
216
|
+
var that = this
|
|
217
|
+
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
|
218
|
+
|
|
219
|
+
if (this.isShown && this.options.backdrop) {
|
|
220
|
+
var doAnimate = $.support.transition && animate
|
|
221
|
+
|
|
222
|
+
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
|
|
223
|
+
.appendTo(document.body)
|
|
224
|
+
|
|
225
|
+
this.$backdrop.click(
|
|
226
|
+
this.options.backdrop == 'static' ?
|
|
227
|
+
$.proxy(this.$element[0].focus, this.$element[0])
|
|
228
|
+
: $.proxy(this.hide, this)
|
|
229
|
+
)
|
|
230
|
+
|
|
231
|
+
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
|
|
232
|
+
|
|
233
|
+
this.$backdrop.addClass('in')
|
|
234
|
+
|
|
235
|
+
doAnimate ?
|
|
236
|
+
this.$backdrop.one($.support.transition.end, callback) :
|
|
237
|
+
callback()
|
|
238
|
+
|
|
239
|
+
} else if (!this.isShown && this.$backdrop) {
|
|
240
|
+
this.$backdrop.removeClass('in')
|
|
241
|
+
|
|
242
|
+
$.support.transition && this.$element.hasClass('fade')?
|
|
243
|
+
this.$backdrop.one($.support.transition.end, $.proxy(this.removeBackdrop, this)) :
|
|
244
|
+
this.removeBackdrop()
|
|
245
|
+
|
|
246
|
+
} else if (callback) {
|
|
247
|
+
callback()
|
|
248
|
+
}
|
|
249
|
+
}
|
|
210
250
|
}
|
|
211
251
|
|
|
212
252
|
|
|
213
|
-
/*
|
|
214
|
-
*
|
|
253
|
+
/* MODAL PLUGIN DEFINITION
|
|
254
|
+
* ======================= */
|
|
215
255
|
|
|
216
|
-
$.fn.
|
|
256
|
+
var old = $.fn.modal
|
|
257
|
+
|
|
258
|
+
$.fn.modal = function (option) {
|
|
217
259
|
return this.each(function () {
|
|
218
260
|
var $this = $(this)
|
|
219
|
-
, data = $this.data('
|
|
220
|
-
, options = typeof option == 'object' && option
|
|
221
|
-
if (!data) $this.data('
|
|
222
|
-
if (option == '
|
|
223
|
-
else if (
|
|
261
|
+
, data = $this.data('modal')
|
|
262
|
+
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
|
|
263
|
+
if (!data) $this.data('modal', (data = new Modal(this, options)))
|
|
264
|
+
if (typeof option == 'string') data[option]()
|
|
265
|
+
else if (options.show) data.show()
|
|
224
266
|
})
|
|
225
267
|
}
|
|
226
268
|
|
|
227
|
-
$.fn.
|
|
228
|
-
|
|
269
|
+
$.fn.modal.defaults = {
|
|
270
|
+
backdrop: true
|
|
271
|
+
, keyboard: true
|
|
272
|
+
, show: true
|
|
229
273
|
}
|
|
230
274
|
|
|
231
|
-
$.fn.
|
|
275
|
+
$.fn.modal.Constructor = Modal
|
|
232
276
|
|
|
233
277
|
|
|
234
|
-
/*
|
|
235
|
-
*
|
|
278
|
+
/* MODAL NO CONFLICT
|
|
279
|
+
* ================= */
|
|
236
280
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
281
|
+
$.fn.modal.noConflict = function () {
|
|
282
|
+
$.fn.modal = old
|
|
283
|
+
return this
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
/* MODAL DATA-API
|
|
288
|
+
* ============== */
|
|
289
|
+
|
|
290
|
+
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
|
|
291
|
+
var $this = $(this)
|
|
292
|
+
, href = $this.attr('href')
|
|
293
|
+
, $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
|
294
|
+
, option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
|
|
295
|
+
|
|
296
|
+
e.preventDefault()
|
|
297
|
+
|
|
298
|
+
$target
|
|
299
|
+
.modal(option)
|
|
300
|
+
.one('hide', function () {
|
|
301
|
+
$this.focus()
|
|
302
|
+
})
|
|
243
303
|
})
|
|
244
304
|
|
|
245
|
-
}(window.jQuery)
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
*
|
|
305
|
+
}(window.jQuery);
|
|
306
|
+
|
|
307
|
+
/* ============================================================
|
|
308
|
+
* bootstrap-dropdown.js v2.2.2
|
|
309
|
+
* http://twitter.github.com/bootstrap/javascript.html#dropdowns
|
|
310
|
+
* ============================================================
|
|
249
311
|
* Copyright 2012 Twitter, Inc.
|
|
250
312
|
*
|
|
251
313
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -259,7 +321,7 @@
|
|
|
259
321
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
260
322
|
* See the License for the specific language governing permissions and
|
|
261
323
|
* limitations under the License.
|
|
262
|
-
*
|
|
324
|
+
* ============================================================ */
|
|
263
325
|
|
|
264
326
|
|
|
265
327
|
!function ($) {
|
|
@@ -267,309 +329,146 @@
|
|
|
267
329
|
"use strict"; // jshint ;_;
|
|
268
330
|
|
|
269
331
|
|
|
270
|
-
/*
|
|
332
|
+
/* DROPDOWN CLASS DEFINITION
|
|
271
333
|
* ========================= */
|
|
272
334
|
|
|
273
|
-
var
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
}
|
|
335
|
+
var toggle = '[data-toggle=dropdown]'
|
|
336
|
+
, Dropdown = function (element) {
|
|
337
|
+
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
|
338
|
+
$('html').on('click.dropdown.data-api', function () {
|
|
339
|
+
$el.parent().removeClass('open')
|
|
340
|
+
})
|
|
341
|
+
}
|
|
281
342
|
|
|
282
|
-
|
|
343
|
+
Dropdown.prototype = {
|
|
283
344
|
|
|
284
|
-
|
|
285
|
-
if (!e) this.paused = false
|
|
286
|
-
this.options.interval
|
|
287
|
-
&& !this.paused
|
|
288
|
-
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
|
|
289
|
-
return this
|
|
290
|
-
}
|
|
345
|
+
constructor: Dropdown
|
|
291
346
|
|
|
292
|
-
,
|
|
293
|
-
var $
|
|
294
|
-
,
|
|
295
|
-
,
|
|
296
|
-
, that = this
|
|
347
|
+
, toggle: function (e) {
|
|
348
|
+
var $this = $(this)
|
|
349
|
+
, $parent
|
|
350
|
+
, isActive
|
|
297
351
|
|
|
298
|
-
if (
|
|
352
|
+
if ($this.is('.disabled, :disabled')) return
|
|
299
353
|
|
|
300
|
-
|
|
301
|
-
return this.$element.one('slid', function () {
|
|
302
|
-
that.to(pos)
|
|
303
|
-
})
|
|
304
|
-
}
|
|
354
|
+
$parent = getParent($this)
|
|
305
355
|
|
|
306
|
-
|
|
307
|
-
return this.pause().cycle()
|
|
308
|
-
}
|
|
356
|
+
isActive = $parent.hasClass('open')
|
|
309
357
|
|
|
310
|
-
|
|
311
|
-
}
|
|
312
|
-
|
|
313
|
-
, pause: function (e) {
|
|
314
|
-
if (!e) this.paused = true
|
|
315
|
-
clearInterval(this.interval)
|
|
316
|
-
this.interval = null
|
|
317
|
-
return this
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
, next: function () {
|
|
321
|
-
if (this.sliding) return
|
|
322
|
-
return this.slide('next')
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
, prev: function () {
|
|
326
|
-
if (this.sliding) return
|
|
327
|
-
return this.slide('prev')
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
, slide: function (type, next) {
|
|
331
|
-
var $active = this.$element.find('.active')
|
|
332
|
-
, $next = next || $active[type]()
|
|
333
|
-
, isCycling = this.interval
|
|
334
|
-
, direction = type == 'next' ? 'left' : 'right'
|
|
335
|
-
, fallback = type == 'next' ? 'first' : 'last'
|
|
336
|
-
, that = this
|
|
337
|
-
, e = $.Event('slide')
|
|
338
|
-
|
|
339
|
-
this.sliding = true
|
|
340
|
-
|
|
341
|
-
isCycling && this.pause()
|
|
342
|
-
|
|
343
|
-
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
|
|
344
|
-
|
|
345
|
-
if ($next.hasClass('active')) return
|
|
358
|
+
clearMenus()
|
|
346
359
|
|
|
347
|
-
if (
|
|
348
|
-
|
|
349
|
-
if (e.isDefaultPrevented()) return
|
|
350
|
-
$next.addClass(type)
|
|
351
|
-
$next[0].offsetWidth // force reflow
|
|
352
|
-
$active.addClass(direction)
|
|
353
|
-
$next.addClass(direction)
|
|
354
|
-
this.$element.one($.support.transition.end, function () {
|
|
355
|
-
$next.removeClass([type, direction].join(' ')).addClass('active')
|
|
356
|
-
$active.removeClass(['active', direction].join(' '))
|
|
357
|
-
that.sliding = false
|
|
358
|
-
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
|
359
|
-
})
|
|
360
|
-
} else {
|
|
361
|
-
this.$element.trigger(e)
|
|
362
|
-
if (e.isDefaultPrevented()) return
|
|
363
|
-
$active.removeClass('active')
|
|
364
|
-
$next.addClass('active')
|
|
365
|
-
this.sliding = false
|
|
366
|
-
this.$element.trigger('slid')
|
|
360
|
+
if (!isActive) {
|
|
361
|
+
$parent.toggleClass('open')
|
|
367
362
|
}
|
|
368
363
|
|
|
369
|
-
|
|
364
|
+
$this.focus()
|
|
370
365
|
|
|
371
|
-
return
|
|
366
|
+
return false
|
|
372
367
|
}
|
|
373
368
|
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
return this.each(function () {
|
|
382
|
-
var $this = $(this)
|
|
383
|
-
, data = $this.data('carousel')
|
|
384
|
-
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
|
|
385
|
-
if (!data) $this.data('carousel', (data = new Carousel(this, options)))
|
|
386
|
-
if (typeof option == 'number') data.to(option)
|
|
387
|
-
else if (typeof option == 'string' || (option = options.slide)) data[option]()
|
|
388
|
-
else if (options.interval) data.cycle()
|
|
389
|
-
})
|
|
390
|
-
}
|
|
391
|
-
|
|
392
|
-
$.fn.carousel.defaults = {
|
|
393
|
-
interval: 5000
|
|
394
|
-
, pause: 'hover'
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
$.fn.carousel.Constructor = Carousel
|
|
369
|
+
, keydown: function (e) {
|
|
370
|
+
var $this
|
|
371
|
+
, $items
|
|
372
|
+
, $active
|
|
373
|
+
, $parent
|
|
374
|
+
, isActive
|
|
375
|
+
, index
|
|
398
376
|
|
|
377
|
+
if (!/(38|40|27)/.test(e.keyCode)) return
|
|
399
378
|
|
|
400
|
-
|
|
401
|
-
* ================= */
|
|
379
|
+
$this = $(this)
|
|
402
380
|
|
|
403
|
-
$(function () {
|
|
404
|
-
$('body').on('click.carousel.data-api', '[data-slide]', function ( e ) {
|
|
405
|
-
var $this = $(this), href
|
|
406
|
-
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
|
407
|
-
, options = !$target.data('modal') && $.extend({}, $target.data(), $this.data())
|
|
408
|
-
$target.carousel(options)
|
|
409
381
|
e.preventDefault()
|
|
410
|
-
|
|
411
|
-
})
|
|
412
|
-
|
|
413
|
-
}(window.jQuery);/* =============================================================
|
|
414
|
-
* bootstrap-collapse.js v2.0.4
|
|
415
|
-
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
|
416
|
-
* =============================================================
|
|
417
|
-
* Copyright 2012 Twitter, Inc.
|
|
418
|
-
*
|
|
419
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
420
|
-
* you may not use this file except in compliance with the License.
|
|
421
|
-
* You may obtain a copy of the License at
|
|
422
|
-
*
|
|
423
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
424
|
-
*
|
|
425
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
426
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
427
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
428
|
-
* See the License for the specific language governing permissions and
|
|
429
|
-
* limitations under the License.
|
|
430
|
-
* ============================================================ */
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
!function ($) {
|
|
434
|
-
|
|
435
|
-
"use strict"; // jshint ;_;
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
/* COLLAPSE PUBLIC CLASS DEFINITION
|
|
439
|
-
* ================================ */
|
|
440
|
-
|
|
441
|
-
var Collapse = function (element, options) {
|
|
442
|
-
this.$element = $(element)
|
|
443
|
-
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
|
444
|
-
|
|
445
|
-
if (this.options.parent) {
|
|
446
|
-
this.$parent = $(this.options.parent)
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
this.options.toggle && this.toggle()
|
|
450
|
-
}
|
|
451
|
-
|
|
452
|
-
Collapse.prototype = {
|
|
453
|
-
|
|
454
|
-
constructor: Collapse
|
|
455
|
-
|
|
456
|
-
, dimension: function () {
|
|
457
|
-
var hasWidth = this.$element.hasClass('width')
|
|
458
|
-
return hasWidth ? 'width' : 'height'
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
, show: function () {
|
|
462
|
-
var dimension
|
|
463
|
-
, scroll
|
|
464
|
-
, actives
|
|
465
|
-
, hasData
|
|
382
|
+
e.stopPropagation()
|
|
466
383
|
|
|
467
|
-
if (this.
|
|
384
|
+
if ($this.is('.disabled, :disabled')) return
|
|
468
385
|
|
|
469
|
-
|
|
470
|
-
scroll = $.camelCase(['scroll', dimension].join('-'))
|
|
471
|
-
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
|
386
|
+
$parent = getParent($this)
|
|
472
387
|
|
|
473
|
-
|
|
474
|
-
hasData = actives.data('collapse')
|
|
475
|
-
if (hasData && hasData.transitioning) return
|
|
476
|
-
actives.collapse('hide')
|
|
477
|
-
hasData || actives.data('collapse', null)
|
|
478
|
-
}
|
|
388
|
+
isActive = $parent.hasClass('open')
|
|
479
389
|
|
|
480
|
-
this
|
|
481
|
-
this.transition('addClass', $.Event('show'), 'shown')
|
|
482
|
-
this.$element[dimension](this.$element[0][scroll])
|
|
483
|
-
}
|
|
390
|
+
if (!isActive || (isActive && e.keyCode == 27)) return $this.click()
|
|
484
391
|
|
|
485
|
-
|
|
486
|
-
var dimension
|
|
487
|
-
if (this.transitioning) return
|
|
488
|
-
dimension = this.dimension()
|
|
489
|
-
this.reset(this.$element[dimension]())
|
|
490
|
-
this.transition('removeClass', $.Event('hide'), 'hidden')
|
|
491
|
-
this.$element[dimension](0)
|
|
492
|
-
}
|
|
392
|
+
$items = $('[role=menu] li:not(.divider):visible a', $parent)
|
|
493
393
|
|
|
494
|
-
|
|
495
|
-
var dimension = this.dimension()
|
|
394
|
+
if (!$items.length) return
|
|
496
395
|
|
|
497
|
-
|
|
498
|
-
.removeClass('collapse')
|
|
499
|
-
[dimension](size || 'auto')
|
|
500
|
-
[0].offsetWidth
|
|
396
|
+
index = $items.index($items.filter(':focus'))
|
|
501
397
|
|
|
502
|
-
|
|
398
|
+
if (e.keyCode == 38 && index > 0) index-- // up
|
|
399
|
+
if (e.keyCode == 40 && index < $items.length - 1) index++ // down
|
|
400
|
+
if (!~index) index = 0
|
|
503
401
|
|
|
504
|
-
|
|
402
|
+
$items
|
|
403
|
+
.eq(index)
|
|
404
|
+
.focus()
|
|
505
405
|
}
|
|
506
406
|
|
|
507
|
-
|
|
508
|
-
var that = this
|
|
509
|
-
, complete = function () {
|
|
510
|
-
if (startEvent.type == 'show') that.reset()
|
|
511
|
-
that.transitioning = 0
|
|
512
|
-
that.$element.trigger(completeEvent)
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
this.$element.trigger(startEvent)
|
|
516
|
-
|
|
517
|
-
if (startEvent.isDefaultPrevented()) return
|
|
407
|
+
}
|
|
518
408
|
|
|
519
|
-
|
|
409
|
+
function clearMenus() {
|
|
410
|
+
$(toggle).each(function () {
|
|
411
|
+
getParent($(this)).removeClass('open')
|
|
412
|
+
})
|
|
413
|
+
}
|
|
520
414
|
|
|
521
|
-
|
|
415
|
+
function getParent($this) {
|
|
416
|
+
var selector = $this.attr('data-target')
|
|
417
|
+
, $parent
|
|
522
418
|
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
419
|
+
if (!selector) {
|
|
420
|
+
selector = $this.attr('href')
|
|
421
|
+
selector = selector && /#/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
526
422
|
}
|
|
527
423
|
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
}
|
|
424
|
+
$parent = $(selector)
|
|
425
|
+
$parent.length || ($parent = $this.parent())
|
|
531
426
|
|
|
427
|
+
return $parent
|
|
532
428
|
}
|
|
533
429
|
|
|
534
430
|
|
|
535
|
-
|
|
536
|
-
|
|
431
|
+
/* DROPDOWN PLUGIN DEFINITION
|
|
432
|
+
* ========================== */
|
|
537
433
|
|
|
538
|
-
$.fn.
|
|
434
|
+
var old = $.fn.dropdown
|
|
435
|
+
|
|
436
|
+
$.fn.dropdown = function (option) {
|
|
539
437
|
return this.each(function () {
|
|
540
438
|
var $this = $(this)
|
|
541
|
-
, data = $this.data('
|
|
542
|
-
|
|
543
|
-
if (
|
|
544
|
-
if (typeof option == 'string') data[option]()
|
|
439
|
+
, data = $this.data('dropdown')
|
|
440
|
+
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
|
441
|
+
if (typeof option == 'string') data[option].call($this)
|
|
545
442
|
})
|
|
546
443
|
}
|
|
547
444
|
|
|
548
|
-
$.fn.
|
|
549
|
-
toggle: true
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
$.fn.collapse.Constructor = Collapse
|
|
445
|
+
$.fn.dropdown.Constructor = Dropdown
|
|
553
446
|
|
|
554
447
|
|
|
555
|
-
/*
|
|
448
|
+
/* DROPDOWN NO CONFLICT
|
|
556
449
|
* ==================== */
|
|
557
450
|
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|| e.preventDefault()
|
|
563
|
-
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
|
564
|
-
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
|
565
|
-
$(target).collapse(option)
|
|
566
|
-
})
|
|
567
|
-
})
|
|
451
|
+
$.fn.dropdown.noConflict = function () {
|
|
452
|
+
$.fn.dropdown = old
|
|
453
|
+
return this
|
|
454
|
+
}
|
|
568
455
|
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
456
|
+
|
|
457
|
+
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
|
458
|
+
* =================================== */
|
|
459
|
+
|
|
460
|
+
$(document)
|
|
461
|
+
.on('click.dropdown.data-api touchstart.dropdown.data-api', clearMenus)
|
|
462
|
+
.on('click.dropdown touchstart.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
|
463
|
+
.on('touchstart.dropdown.data-api', '.dropdown-menu', function (e) { e.stopPropagation() })
|
|
464
|
+
.on('click.dropdown.data-api touchstart.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
|
|
465
|
+
.on('keydown.dropdown.data-api touchstart.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
|
|
466
|
+
|
|
467
|
+
}(window.jQuery);
|
|
468
|
+
/* =============================================================
|
|
469
|
+
* bootstrap-scrollspy.js v2.2.2
|
|
470
|
+
* http://twitter.github.com/bootstrap/javascript.html#scrollspy
|
|
471
|
+
* =============================================================
|
|
573
472
|
* Copyright 2012 Twitter, Inc.
|
|
574
473
|
*
|
|
575
474
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -583,7 +482,7 @@
|
|
|
583
482
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
584
483
|
* See the License for the specific language governing permissions and
|
|
585
484
|
* limitations under the License.
|
|
586
|
-
*
|
|
485
|
+
* ============================================================== */
|
|
587
486
|
|
|
588
487
|
|
|
589
488
|
!function ($) {
|
|
@@ -591,84 +490,147 @@
|
|
|
591
490
|
"use strict"; // jshint ;_;
|
|
592
491
|
|
|
593
492
|
|
|
594
|
-
/*
|
|
595
|
-
*
|
|
493
|
+
/* SCROLLSPY CLASS DEFINITION
|
|
494
|
+
* ========================== */
|
|
596
495
|
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
496
|
+
function ScrollSpy(element, options) {
|
|
497
|
+
var process = $.proxy(this.process, this)
|
|
498
|
+
, $element = $(element).is('body') ? $(window) : $(element)
|
|
499
|
+
, href
|
|
500
|
+
this.options = $.extend({}, $.fn.scrollspy.defaults, options)
|
|
501
|
+
this.$scrollElement = $element.on('scroll.scroll-spy.data-api', process)
|
|
502
|
+
this.selector = (this.options.target
|
|
503
|
+
|| ((href = $(element).attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
|
504
|
+
|| '') + ' .nav li > a'
|
|
505
|
+
this.$body = $('body')
|
|
506
|
+
this.refresh()
|
|
507
|
+
this.process()
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
ScrollSpy.prototype = {
|
|
511
|
+
|
|
512
|
+
constructor: ScrollSpy
|
|
513
|
+
|
|
514
|
+
, refresh: function () {
|
|
515
|
+
var self = this
|
|
516
|
+
, $targets
|
|
517
|
+
|
|
518
|
+
this.offsets = $([])
|
|
519
|
+
this.targets = $([])
|
|
520
|
+
|
|
521
|
+
$targets = this.$body
|
|
522
|
+
.find(this.selector)
|
|
523
|
+
.map(function () {
|
|
524
|
+
var $el = $(this)
|
|
525
|
+
, href = $el.data('target') || $el.attr('href')
|
|
526
|
+
, $href = /^#\w/.test(href) && $(href)
|
|
527
|
+
return ( $href
|
|
528
|
+
&& $href.length
|
|
529
|
+
&& [[ $href.position().top + self.$scrollElement.scrollTop(), href ]] ) || null
|
|
530
|
+
})
|
|
531
|
+
.sort(function (a, b) { return a[0] - b[0] })
|
|
532
|
+
.each(function () {
|
|
533
|
+
self.offsets.push(this[0])
|
|
534
|
+
self.targets.push(this[1])
|
|
535
|
+
})
|
|
603
536
|
}
|
|
604
537
|
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
538
|
+
, process: function () {
|
|
539
|
+
var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
|
|
540
|
+
, scrollHeight = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight
|
|
541
|
+
, maxScroll = scrollHeight - this.$scrollElement.height()
|
|
542
|
+
, offsets = this.offsets
|
|
543
|
+
, targets = this.targets
|
|
544
|
+
, activeTarget = this.activeTarget
|
|
545
|
+
, i
|
|
608
546
|
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
, isActive
|
|
547
|
+
if (scrollTop >= maxScroll) {
|
|
548
|
+
return activeTarget != (i = targets.last()[0])
|
|
549
|
+
&& this.activate ( i )
|
|
550
|
+
}
|
|
614
551
|
|
|
615
|
-
|
|
552
|
+
for (i = offsets.length; i--;) {
|
|
553
|
+
activeTarget != targets[i]
|
|
554
|
+
&& scrollTop >= offsets[i]
|
|
555
|
+
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
|
556
|
+
&& this.activate( targets[i] )
|
|
557
|
+
}
|
|
558
|
+
}
|
|
616
559
|
|
|
617
|
-
|
|
560
|
+
, activate: function (target) {
|
|
561
|
+
var active
|
|
562
|
+
, selector
|
|
618
563
|
|
|
619
|
-
|
|
620
|
-
selector = $this.attr('href')
|
|
621
|
-
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
622
|
-
}
|
|
564
|
+
this.activeTarget = target
|
|
623
565
|
|
|
624
|
-
|
|
625
|
-
|
|
566
|
+
$(this.selector)
|
|
567
|
+
.parent('.active')
|
|
568
|
+
.removeClass('active')
|
|
626
569
|
|
|
627
|
-
|
|
570
|
+
selector = this.selector
|
|
571
|
+
+ '[data-target="' + target + '"],'
|
|
572
|
+
+ this.selector + '[href="' + target + '"]'
|
|
628
573
|
|
|
629
|
-
|
|
574
|
+
active = $(selector)
|
|
575
|
+
.parent('li')
|
|
576
|
+
.addClass('active')
|
|
630
577
|
|
|
631
|
-
|
|
578
|
+
if (active.parent('.dropdown-menu').length) {
|
|
579
|
+
active = active.closest('li.dropdown').addClass('active')
|
|
580
|
+
}
|
|
632
581
|
|
|
633
|
-
|
|
634
|
-
|
|
582
|
+
active.trigger('activate')
|
|
583
|
+
}
|
|
635
584
|
|
|
636
585
|
}
|
|
637
586
|
|
|
638
|
-
function clearMenus() {
|
|
639
|
-
$(toggle).parent().removeClass('open')
|
|
640
|
-
}
|
|
641
587
|
|
|
588
|
+
/* SCROLLSPY PLUGIN DEFINITION
|
|
589
|
+
* =========================== */
|
|
642
590
|
|
|
643
|
-
|
|
644
|
-
* ========================== */
|
|
591
|
+
var old = $.fn.scrollspy
|
|
645
592
|
|
|
646
|
-
$.fn.
|
|
593
|
+
$.fn.scrollspy = function (option) {
|
|
647
594
|
return this.each(function () {
|
|
648
595
|
var $this = $(this)
|
|
649
|
-
, data = $this.data('
|
|
650
|
-
|
|
651
|
-
if (
|
|
596
|
+
, data = $this.data('scrollspy')
|
|
597
|
+
, options = typeof option == 'object' && option
|
|
598
|
+
if (!data) $this.data('scrollspy', (data = new ScrollSpy(this, options)))
|
|
599
|
+
if (typeof option == 'string') data[option]()
|
|
652
600
|
})
|
|
653
601
|
}
|
|
654
602
|
|
|
655
|
-
$.fn.
|
|
603
|
+
$.fn.scrollspy.Constructor = ScrollSpy
|
|
656
604
|
|
|
605
|
+
$.fn.scrollspy.defaults = {
|
|
606
|
+
offset: 10
|
|
607
|
+
}
|
|
657
608
|
|
|
658
|
-
/* APPLY TO STANDARD DROPDOWN ELEMENTS
|
|
659
|
-
* =================================== */
|
|
660
609
|
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
610
|
+
/* SCROLLSPY NO CONFLICT
|
|
611
|
+
* ===================== */
|
|
612
|
+
|
|
613
|
+
$.fn.scrollspy.noConflict = function () {
|
|
614
|
+
$.fn.scrollspy = old
|
|
615
|
+
return this
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
|
|
619
|
+
/* SCROLLSPY DATA-API
|
|
620
|
+
* ================== */
|
|
621
|
+
|
|
622
|
+
$(window).on('load', function () {
|
|
623
|
+
$('[data-spy="scroll"]').each(function () {
|
|
624
|
+
var $spy = $(this)
|
|
625
|
+
$spy.scrollspy($spy.data())
|
|
626
|
+
})
|
|
666
627
|
})
|
|
667
628
|
|
|
668
|
-
}(window.jQuery)
|
|
669
|
-
|
|
670
|
-
*
|
|
671
|
-
*
|
|
629
|
+
}(window.jQuery);
|
|
630
|
+
/* ========================================================
|
|
631
|
+
* bootstrap-tab.js v2.2.2
|
|
632
|
+
* http://twitter.github.com/bootstrap/javascript.html#tabs
|
|
633
|
+
* ========================================================
|
|
672
634
|
* Copyright 2012 Twitter, Inc.
|
|
673
635
|
*
|
|
674
636
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -682,7 +644,7 @@
|
|
|
682
644
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
683
645
|
* See the License for the specific language governing permissions and
|
|
684
646
|
* limitations under the License.
|
|
685
|
-
*
|
|
647
|
+
* ======================================================== */
|
|
686
648
|
|
|
687
649
|
|
|
688
650
|
!function ($) {
|
|
@@ -690,200 +652,127 @@
|
|
|
690
652
|
"use strict"; // jshint ;_;
|
|
691
653
|
|
|
692
654
|
|
|
693
|
-
/*
|
|
694
|
-
*
|
|
655
|
+
/* TAB CLASS DEFINITION
|
|
656
|
+
* ==================== */
|
|
695
657
|
|
|
696
|
-
var
|
|
697
|
-
this.
|
|
698
|
-
this.$element = $(content)
|
|
699
|
-
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
|
658
|
+
var Tab = function (element) {
|
|
659
|
+
this.element = $(element)
|
|
700
660
|
}
|
|
701
661
|
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
constructor: Modal
|
|
705
|
-
|
|
706
|
-
, toggle: function () {
|
|
707
|
-
return this[!this.isShown ? 'show' : 'hide']()
|
|
708
|
-
}
|
|
709
|
-
|
|
710
|
-
, show: function () {
|
|
711
|
-
var that = this
|
|
712
|
-
, e = $.Event('show')
|
|
713
|
-
|
|
714
|
-
this.$element.trigger(e)
|
|
715
|
-
|
|
716
|
-
if (this.isShown || e.isDefaultPrevented()) return
|
|
717
|
-
|
|
718
|
-
$('body').addClass('modal-open')
|
|
719
|
-
|
|
720
|
-
this.isShown = true
|
|
721
|
-
|
|
722
|
-
escape.call(this)
|
|
723
|
-
backdrop.call(this, function () {
|
|
724
|
-
var transition = $.support.transition && that.$element.hasClass('fade')
|
|
725
|
-
|
|
726
|
-
if (!that.$element.parent().length) {
|
|
727
|
-
that.$element.appendTo(document.body) //don't move modals dom position
|
|
728
|
-
}
|
|
729
|
-
|
|
730
|
-
that.$element
|
|
731
|
-
.show()
|
|
732
|
-
|
|
733
|
-
if (transition) {
|
|
734
|
-
that.$element[0].offsetWidth // force reflow
|
|
735
|
-
}
|
|
662
|
+
Tab.prototype = {
|
|
736
663
|
|
|
737
|
-
|
|
664
|
+
constructor: Tab
|
|
738
665
|
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
666
|
+
, show: function () {
|
|
667
|
+
var $this = this.element
|
|
668
|
+
, $ul = $this.closest('ul:not(.dropdown-menu)')
|
|
669
|
+
, selector = $this.attr('data-target')
|
|
670
|
+
, previous
|
|
671
|
+
, $target
|
|
672
|
+
, e
|
|
742
673
|
|
|
743
|
-
|
|
674
|
+
if (!selector) {
|
|
675
|
+
selector = $this.attr('href')
|
|
676
|
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
744
677
|
}
|
|
745
678
|
|
|
746
|
-
|
|
747
|
-
e && e.preventDefault()
|
|
748
|
-
|
|
749
|
-
var that = this
|
|
750
|
-
|
|
751
|
-
e = $.Event('hide')
|
|
752
|
-
|
|
753
|
-
this.$element.trigger(e)
|
|
754
|
-
|
|
755
|
-
if (!this.isShown || e.isDefaultPrevented()) return
|
|
756
|
-
|
|
757
|
-
this.isShown = false
|
|
758
|
-
|
|
759
|
-
$('body').removeClass('modal-open')
|
|
760
|
-
|
|
761
|
-
escape.call(this)
|
|
762
|
-
|
|
763
|
-
this.$element.removeClass('in')
|
|
679
|
+
if ( $this.parent('li').hasClass('active') ) return
|
|
764
680
|
|
|
765
|
-
|
|
766
|
-
hideWithTransition.call(this) :
|
|
767
|
-
hideModal.call(this)
|
|
768
|
-
}
|
|
681
|
+
previous = $ul.find('.active:last a')[0]
|
|
769
682
|
|
|
770
|
-
|
|
683
|
+
e = $.Event('show', {
|
|
684
|
+
relatedTarget: previous
|
|
685
|
+
})
|
|
771
686
|
|
|
687
|
+
$this.trigger(e)
|
|
772
688
|
|
|
773
|
-
|
|
774
|
-
* ===================== */
|
|
689
|
+
if (e.isDefaultPrevented()) return
|
|
775
690
|
|
|
776
|
-
|
|
777
|
-
var that = this
|
|
778
|
-
, timeout = setTimeout(function () {
|
|
779
|
-
that.$element.off($.support.transition.end)
|
|
780
|
-
hideModal.call(that)
|
|
781
|
-
}, 500)
|
|
691
|
+
$target = $(selector)
|
|
782
692
|
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
693
|
+
this.activate($this.parent('li'), $ul)
|
|
694
|
+
this.activate($target, $target.parent(), function () {
|
|
695
|
+
$this.trigger({
|
|
696
|
+
type: 'shown'
|
|
697
|
+
, relatedTarget: previous
|
|
698
|
+
})
|
|
699
|
+
})
|
|
700
|
+
}
|
|
788
701
|
|
|
789
|
-
function
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
702
|
+
, activate: function ( element, container, callback) {
|
|
703
|
+
var $active = container.find('> .active')
|
|
704
|
+
, transition = callback
|
|
705
|
+
&& $.support.transition
|
|
706
|
+
&& $active.hasClass('fade')
|
|
793
707
|
|
|
794
|
-
|
|
795
|
-
|
|
708
|
+
function next() {
|
|
709
|
+
$active
|
|
710
|
+
.removeClass('active')
|
|
711
|
+
.find('> .dropdown-menu > .active')
|
|
712
|
+
.removeClass('active')
|
|
796
713
|
|
|
797
|
-
|
|
798
|
-
var that = this
|
|
799
|
-
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
|
714
|
+
element.addClass('active')
|
|
800
715
|
|
|
801
|
-
|
|
802
|
-
|
|
716
|
+
if (transition) {
|
|
717
|
+
element[0].offsetWidth // reflow for transition
|
|
718
|
+
element.addClass('in')
|
|
719
|
+
} else {
|
|
720
|
+
element.removeClass('fade')
|
|
721
|
+
}
|
|
803
722
|
|
|
804
|
-
|
|
805
|
-
|
|
723
|
+
if ( element.parent('.dropdown-menu') ) {
|
|
724
|
+
element.closest('li.dropdown').addClass('active')
|
|
725
|
+
}
|
|
806
726
|
|
|
807
|
-
|
|
808
|
-
this.$backdrop.click($.proxy(this.hide, this))
|
|
727
|
+
callback && callback()
|
|
809
728
|
}
|
|
810
729
|
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
doAnimate ?
|
|
816
|
-
this.$backdrop.one($.support.transition.end, callback) :
|
|
817
|
-
callback()
|
|
818
|
-
|
|
819
|
-
} else if (!this.isShown && this.$backdrop) {
|
|
820
|
-
this.$backdrop.removeClass('in')
|
|
821
|
-
|
|
822
|
-
$.support.transition && this.$element.hasClass('fade')?
|
|
823
|
-
this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
|
|
824
|
-
removeBackdrop.call(this)
|
|
730
|
+
transition ?
|
|
731
|
+
$active.one($.support.transition.end, next) :
|
|
732
|
+
next()
|
|
825
733
|
|
|
826
|
-
|
|
827
|
-
callback()
|
|
734
|
+
$active.removeClass('in')
|
|
828
735
|
}
|
|
829
736
|
}
|
|
830
737
|
|
|
831
|
-
function removeBackdrop() {
|
|
832
|
-
this.$backdrop.remove()
|
|
833
|
-
this.$backdrop = null
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
function escape() {
|
|
837
|
-
var that = this
|
|
838
|
-
if (this.isShown && this.options.keyboard) {
|
|
839
|
-
$(document).on('keyup.dismiss.modal', function ( e ) {
|
|
840
|
-
e.which == 27 && that.hide()
|
|
841
|
-
})
|
|
842
|
-
} else if (!this.isShown) {
|
|
843
|
-
$(document).off('keyup.dismiss.modal')
|
|
844
|
-
}
|
|
845
|
-
}
|
|
846
738
|
|
|
739
|
+
/* TAB PLUGIN DEFINITION
|
|
740
|
+
* ===================== */
|
|
847
741
|
|
|
848
|
-
|
|
849
|
-
* ======================= */
|
|
742
|
+
var old = $.fn.tab
|
|
850
743
|
|
|
851
|
-
$.fn.
|
|
744
|
+
$.fn.tab = function ( option ) {
|
|
852
745
|
return this.each(function () {
|
|
853
746
|
var $this = $(this)
|
|
854
|
-
, data = $this.data('
|
|
855
|
-
|
|
856
|
-
if (!data) $this.data('modal', (data = new Modal(this, options)))
|
|
747
|
+
, data = $this.data('tab')
|
|
748
|
+
if (!data) $this.data('tab', (data = new Tab(this)))
|
|
857
749
|
if (typeof option == 'string') data[option]()
|
|
858
|
-
else if (options.show) data.show()
|
|
859
750
|
})
|
|
860
751
|
}
|
|
861
752
|
|
|
862
|
-
$.fn.
|
|
863
|
-
backdrop: true
|
|
864
|
-
, keyboard: true
|
|
865
|
-
, show: true
|
|
866
|
-
}
|
|
753
|
+
$.fn.tab.Constructor = Tab
|
|
867
754
|
|
|
868
|
-
$.fn.modal.Constructor = Modal
|
|
869
755
|
|
|
756
|
+
/* TAB NO CONFLICT
|
|
757
|
+
* =============== */
|
|
870
758
|
|
|
871
|
-
|
|
872
|
-
|
|
759
|
+
$.fn.tab.noConflict = function () {
|
|
760
|
+
$.fn.tab = old
|
|
761
|
+
return this
|
|
762
|
+
}
|
|
873
763
|
|
|
874
|
-
$(function () {
|
|
875
|
-
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
|
|
876
|
-
var $this = $(this), href
|
|
877
|
-
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
|
878
|
-
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
|
|
879
764
|
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
765
|
+
/* TAB DATA-API
|
|
766
|
+
* ============ */
|
|
767
|
+
|
|
768
|
+
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
|
769
|
+
e.preventDefault()
|
|
770
|
+
$(this).tab('show')
|
|
883
771
|
})
|
|
884
772
|
|
|
885
|
-
}(window.jQuery)
|
|
886
|
-
|
|
773
|
+
}(window.jQuery);
|
|
774
|
+
/* ===========================================================
|
|
775
|
+
* bootstrap-tooltip.js v2.2.2
|
|
887
776
|
* http://twitter.github.com/bootstrap/javascript.html#tooltips
|
|
888
777
|
* Inspired by the original jQuery.tipsy by Jason Frame
|
|
889
778
|
* ===========================================================
|
|
@@ -928,11 +817,13 @@
|
|
|
928
817
|
this.options = this.getOptions(options)
|
|
929
818
|
this.enabled = true
|
|
930
819
|
|
|
931
|
-
if (this.options.trigger
|
|
932
|
-
|
|
820
|
+
if (this.options.trigger == 'click') {
|
|
821
|
+
this.$element.on('click.' + this.type, this.options.selector, $.proxy(this.toggle, this))
|
|
822
|
+
} else if (this.options.trigger != 'manual') {
|
|
823
|
+
eventIn = this.options.trigger == 'hover' ? 'mouseenter' : 'focus'
|
|
933
824
|
eventOut = this.options.trigger == 'hover' ? 'mouseleave' : 'blur'
|
|
934
|
-
this.$element.on(eventIn, this.options.selector, $.proxy(this.enter, this))
|
|
935
|
-
this.$element.on(eventOut, this.options.selector, $.proxy(this.leave, this))
|
|
825
|
+
this.$element.on(eventIn + '.' + this.type, this.options.selector, $.proxy(this.enter, this))
|
|
826
|
+
this.$element.on(eventOut + '.' + this.type, this.options.selector, $.proxy(this.leave, this))
|
|
936
827
|
}
|
|
937
828
|
|
|
938
829
|
this.options.selector ?
|
|
@@ -1001,9 +892,9 @@
|
|
|
1001
892
|
inside = /in/.test(placement)
|
|
1002
893
|
|
|
1003
894
|
$tip
|
|
1004
|
-
.
|
|
895
|
+
.detach()
|
|
1005
896
|
.css({ top: 0, left: 0, display: 'block' })
|
|
1006
|
-
.
|
|
897
|
+
.insertAfter(this.$element)
|
|
1007
898
|
|
|
1008
899
|
pos = this.getPosition(inside)
|
|
1009
900
|
|
|
@@ -1026,26 +917,17 @@
|
|
|
1026
917
|
}
|
|
1027
918
|
|
|
1028
919
|
$tip
|
|
1029
|
-
.
|
|
920
|
+
.offset(tp)
|
|
1030
921
|
.addClass(placement)
|
|
1031
922
|
.addClass('in')
|
|
1032
923
|
}
|
|
1033
924
|
}
|
|
1034
925
|
|
|
1035
|
-
, isHTML: function(text) {
|
|
1036
|
-
// html string detection logic adapted from jQuery
|
|
1037
|
-
return typeof text != 'string'
|
|
1038
|
-
|| ( text.charAt(0) === "<"
|
|
1039
|
-
&& text.charAt( text.length - 1 ) === ">"
|
|
1040
|
-
&& text.length >= 3
|
|
1041
|
-
) || /^(?:[^<]*<[\w\W]+>[^>]*$)/.exec(text)
|
|
1042
|
-
}
|
|
1043
|
-
|
|
1044
926
|
, setContent: function () {
|
|
1045
927
|
var $tip = this.tip()
|
|
1046
928
|
, title = this.getTitle()
|
|
1047
929
|
|
|
1048
|
-
$tip.find('.tooltip-inner')[this.
|
|
930
|
+
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
|
1049
931
|
$tip.removeClass('fade in top bottom left right')
|
|
1050
932
|
}
|
|
1051
933
|
|
|
@@ -1057,18 +939,20 @@
|
|
|
1057
939
|
|
|
1058
940
|
function removeWithAnimation() {
|
|
1059
941
|
var timeout = setTimeout(function () {
|
|
1060
|
-
$tip.off($.support.transition.end).
|
|
942
|
+
$tip.off($.support.transition.end).detach()
|
|
1061
943
|
}, 500)
|
|
1062
944
|
|
|
1063
945
|
$tip.one($.support.transition.end, function () {
|
|
1064
946
|
clearTimeout(timeout)
|
|
1065
|
-
$tip.
|
|
947
|
+
$tip.detach()
|
|
1066
948
|
})
|
|
1067
949
|
}
|
|
1068
950
|
|
|
1069
951
|
$.support.transition && this.$tip.hasClass('fade') ?
|
|
1070
952
|
removeWithAnimation() :
|
|
1071
|
-
$tip.
|
|
953
|
+
$tip.detach()
|
|
954
|
+
|
|
955
|
+
return this
|
|
1072
956
|
}
|
|
1073
957
|
|
|
1074
958
|
, fixTitle: function () {
|
|
@@ -1124,8 +1008,13 @@
|
|
|
1124
1008
|
this.enabled = !this.enabled
|
|
1125
1009
|
}
|
|
1126
1010
|
|
|
1127
|
-
, toggle: function () {
|
|
1128
|
-
|
|
1011
|
+
, toggle: function (e) {
|
|
1012
|
+
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
|
1013
|
+
self[self.tip().hasClass('in') ? 'hide' : 'show']()
|
|
1014
|
+
}
|
|
1015
|
+
|
|
1016
|
+
, destroy: function () {
|
|
1017
|
+
this.hide().$element.off('.' + this.type).removeData(this.type)
|
|
1129
1018
|
}
|
|
1130
1019
|
|
|
1131
1020
|
}
|
|
@@ -1134,6 +1023,8 @@
|
|
|
1134
1023
|
/* TOOLTIP PLUGIN DEFINITION
|
|
1135
1024
|
* ========================= */
|
|
1136
1025
|
|
|
1026
|
+
var old = $.fn.tooltip
|
|
1027
|
+
|
|
1137
1028
|
$.fn.tooltip = function ( option ) {
|
|
1138
1029
|
return this.each(function () {
|
|
1139
1030
|
var $this = $(this)
|
|
@@ -1154,11 +1045,21 @@
|
|
|
1154
1045
|
, trigger: 'hover'
|
|
1155
1046
|
, title: ''
|
|
1156
1047
|
, delay: 0
|
|
1048
|
+
, html: false
|
|
1049
|
+
}
|
|
1050
|
+
|
|
1051
|
+
|
|
1052
|
+
/* TOOLTIP NO CONFLICT
|
|
1053
|
+
* =================== */
|
|
1054
|
+
|
|
1055
|
+
$.fn.tooltip.noConflict = function () {
|
|
1056
|
+
$.fn.tooltip = old
|
|
1057
|
+
return this
|
|
1157
1058
|
}
|
|
1158
1059
|
|
|
1159
1060
|
}(window.jQuery);
|
|
1160
1061
|
/* ===========================================================
|
|
1161
|
-
* bootstrap-popover.js v2.
|
|
1062
|
+
* bootstrap-popover.js v2.2.2
|
|
1162
1063
|
* http://twitter.github.com/bootstrap/javascript.html#popovers
|
|
1163
1064
|
* ===========================================================
|
|
1164
1065
|
* Copyright 2012 Twitter, Inc.
|
|
@@ -1185,7 +1086,7 @@
|
|
|
1185
1086
|
/* POPOVER PUBLIC CLASS DEFINITION
|
|
1186
1087
|
* =============================== */
|
|
1187
1088
|
|
|
1188
|
-
var Popover = function (
|
|
1089
|
+
var Popover = function (element, options) {
|
|
1189
1090
|
this.init('popover', element, options)
|
|
1190
1091
|
}
|
|
1191
1092
|
|
|
@@ -1195,68 +1096,406 @@
|
|
|
1195
1096
|
|
|
1196
1097
|
Popover.prototype = $.extend({}, $.fn.tooltip.Constructor.prototype, {
|
|
1197
1098
|
|
|
1198
|
-
constructor: Popover
|
|
1099
|
+
constructor: Popover
|
|
1100
|
+
|
|
1101
|
+
, setContent: function () {
|
|
1102
|
+
var $tip = this.tip()
|
|
1103
|
+
, title = this.getTitle()
|
|
1104
|
+
, content = this.getContent()
|
|
1105
|
+
|
|
1106
|
+
$tip.find('.popover-title')[this.options.html ? 'html' : 'text'](title)
|
|
1107
|
+
$tip.find('.popover-content')[this.options.html ? 'html' : 'text'](content)
|
|
1108
|
+
|
|
1109
|
+
$tip.removeClass('fade top bottom left right in')
|
|
1110
|
+
}
|
|
1111
|
+
|
|
1112
|
+
, hasContent: function () {
|
|
1113
|
+
return this.getTitle() || this.getContent()
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
, getContent: function () {
|
|
1117
|
+
var content
|
|
1118
|
+
, $e = this.$element
|
|
1119
|
+
, o = this.options
|
|
1120
|
+
|
|
1121
|
+
content = $e.attr('data-content')
|
|
1122
|
+
|| (typeof o.content == 'function' ? o.content.call($e[0]) : o.content)
|
|
1123
|
+
|
|
1124
|
+
return content
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
, tip: function () {
|
|
1128
|
+
if (!this.$tip) {
|
|
1129
|
+
this.$tip = $(this.options.template)
|
|
1130
|
+
}
|
|
1131
|
+
return this.$tip
|
|
1132
|
+
}
|
|
1133
|
+
|
|
1134
|
+
, destroy: function () {
|
|
1135
|
+
this.hide().$element.off('.' + this.type).removeData(this.type)
|
|
1136
|
+
}
|
|
1137
|
+
|
|
1138
|
+
})
|
|
1139
|
+
|
|
1140
|
+
|
|
1141
|
+
/* POPOVER PLUGIN DEFINITION
|
|
1142
|
+
* ======================= */
|
|
1143
|
+
|
|
1144
|
+
var old = $.fn.popover
|
|
1145
|
+
|
|
1146
|
+
$.fn.popover = function (option) {
|
|
1147
|
+
return this.each(function () {
|
|
1148
|
+
var $this = $(this)
|
|
1149
|
+
, data = $this.data('popover')
|
|
1150
|
+
, options = typeof option == 'object' && option
|
|
1151
|
+
if (!data) $this.data('popover', (data = new Popover(this, options)))
|
|
1152
|
+
if (typeof option == 'string') data[option]()
|
|
1153
|
+
})
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
$.fn.popover.Constructor = Popover
|
|
1157
|
+
|
|
1158
|
+
$.fn.popover.defaults = $.extend({} , $.fn.tooltip.defaults, {
|
|
1159
|
+
placement: 'right'
|
|
1160
|
+
, trigger: 'click'
|
|
1161
|
+
, content: ''
|
|
1162
|
+
, template: '<div class="popover"><div class="arrow"></div><div class="popover-inner"><h3 class="popover-title"></h3><div class="popover-content"></div></div></div>'
|
|
1163
|
+
})
|
|
1164
|
+
|
|
1165
|
+
|
|
1166
|
+
/* POPOVER NO CONFLICT
|
|
1167
|
+
* =================== */
|
|
1168
|
+
|
|
1169
|
+
$.fn.popover.noConflict = function () {
|
|
1170
|
+
$.fn.popover = old
|
|
1171
|
+
return this
|
|
1172
|
+
}
|
|
1173
|
+
|
|
1174
|
+
}(window.jQuery);
|
|
1175
|
+
/* ==========================================================
|
|
1176
|
+
* bootstrap-affix.js v2.2.2
|
|
1177
|
+
* http://twitter.github.com/bootstrap/javascript.html#affix
|
|
1178
|
+
* ==========================================================
|
|
1179
|
+
* Copyright 2012 Twitter, Inc.
|
|
1180
|
+
*
|
|
1181
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1182
|
+
* you may not use this file except in compliance with the License.
|
|
1183
|
+
* You may obtain a copy of the License at
|
|
1184
|
+
*
|
|
1185
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1186
|
+
*
|
|
1187
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1188
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1189
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1190
|
+
* See the License for the specific language governing permissions and
|
|
1191
|
+
* limitations under the License.
|
|
1192
|
+
* ========================================================== */
|
|
1193
|
+
|
|
1194
|
+
|
|
1195
|
+
!function ($) {
|
|
1196
|
+
|
|
1197
|
+
"use strict"; // jshint ;_;
|
|
1198
|
+
|
|
1199
|
+
|
|
1200
|
+
/* AFFIX CLASS DEFINITION
|
|
1201
|
+
* ====================== */
|
|
1202
|
+
|
|
1203
|
+
var Affix = function (element, options) {
|
|
1204
|
+
this.options = $.extend({}, $.fn.affix.defaults, options)
|
|
1205
|
+
this.$window = $(window)
|
|
1206
|
+
.on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
|
|
1207
|
+
.on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
|
|
1208
|
+
this.$element = $(element)
|
|
1209
|
+
this.checkPosition()
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
Affix.prototype.checkPosition = function () {
|
|
1213
|
+
if (!this.$element.is(':visible')) return
|
|
1214
|
+
|
|
1215
|
+
var scrollHeight = $(document).height()
|
|
1216
|
+
, scrollTop = this.$window.scrollTop()
|
|
1217
|
+
, position = this.$element.offset()
|
|
1218
|
+
, offset = this.options.offset
|
|
1219
|
+
, offsetBottom = offset.bottom
|
|
1220
|
+
, offsetTop = offset.top
|
|
1221
|
+
, reset = 'affix affix-top affix-bottom'
|
|
1222
|
+
, affix
|
|
1223
|
+
|
|
1224
|
+
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
|
1225
|
+
if (typeof offsetTop == 'function') offsetTop = offset.top()
|
|
1226
|
+
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom()
|
|
1227
|
+
|
|
1228
|
+
affix = this.unpin != null && (scrollTop + this.unpin <= position.top) ?
|
|
1229
|
+
false : offsetBottom != null && (position.top + this.$element.height() >= scrollHeight - offsetBottom) ?
|
|
1230
|
+
'bottom' : offsetTop != null && scrollTop <= offsetTop ?
|
|
1231
|
+
'top' : false
|
|
1232
|
+
|
|
1233
|
+
if (this.affixed === affix) return
|
|
1234
|
+
|
|
1235
|
+
this.affixed = affix
|
|
1236
|
+
this.unpin = affix == 'bottom' ? position.top - scrollTop : null
|
|
1237
|
+
|
|
1238
|
+
this.$element.removeClass(reset).addClass('affix' + (affix ? '-' + affix : ''))
|
|
1239
|
+
}
|
|
1240
|
+
|
|
1241
|
+
|
|
1242
|
+
/* AFFIX PLUGIN DEFINITION
|
|
1243
|
+
* ======================= */
|
|
1244
|
+
|
|
1245
|
+
var old = $.fn.affix
|
|
1246
|
+
|
|
1247
|
+
$.fn.affix = function (option) {
|
|
1248
|
+
return this.each(function () {
|
|
1249
|
+
var $this = $(this)
|
|
1250
|
+
, data = $this.data('affix')
|
|
1251
|
+
, options = typeof option == 'object' && option
|
|
1252
|
+
if (!data) $this.data('affix', (data = new Affix(this, options)))
|
|
1253
|
+
if (typeof option == 'string') data[option]()
|
|
1254
|
+
})
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
$.fn.affix.Constructor = Affix
|
|
1258
|
+
|
|
1259
|
+
$.fn.affix.defaults = {
|
|
1260
|
+
offset: 0
|
|
1261
|
+
}
|
|
1262
|
+
|
|
1263
|
+
|
|
1264
|
+
/* AFFIX NO CONFLICT
|
|
1265
|
+
* ================= */
|
|
1266
|
+
|
|
1267
|
+
$.fn.affix.noConflict = function () {
|
|
1268
|
+
$.fn.affix = old
|
|
1269
|
+
return this
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
|
|
1273
|
+
/* AFFIX DATA-API
|
|
1274
|
+
* ============== */
|
|
1275
|
+
|
|
1276
|
+
$(window).on('load', function () {
|
|
1277
|
+
$('[data-spy="affix"]').each(function () {
|
|
1278
|
+
var $spy = $(this)
|
|
1279
|
+
, data = $spy.data()
|
|
1280
|
+
|
|
1281
|
+
data.offset = data.offset || {}
|
|
1282
|
+
|
|
1283
|
+
data.offsetBottom && (data.offset.bottom = data.offsetBottom)
|
|
1284
|
+
data.offsetTop && (data.offset.top = data.offsetTop)
|
|
1285
|
+
|
|
1286
|
+
$spy.affix(data)
|
|
1287
|
+
})
|
|
1288
|
+
})
|
|
1289
|
+
|
|
1290
|
+
|
|
1291
|
+
}(window.jQuery);
|
|
1292
|
+
/* ==========================================================
|
|
1293
|
+
* bootstrap-alert.js v2.2.2
|
|
1294
|
+
* http://twitter.github.com/bootstrap/javascript.html#alerts
|
|
1295
|
+
* ==========================================================
|
|
1296
|
+
* Copyright 2012 Twitter, Inc.
|
|
1297
|
+
*
|
|
1298
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1299
|
+
* you may not use this file except in compliance with the License.
|
|
1300
|
+
* You may obtain a copy of the License at
|
|
1301
|
+
*
|
|
1302
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1303
|
+
*
|
|
1304
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1305
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1306
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1307
|
+
* See the License for the specific language governing permissions and
|
|
1308
|
+
* limitations under the License.
|
|
1309
|
+
* ========================================================== */
|
|
1310
|
+
|
|
1311
|
+
|
|
1312
|
+
!function ($) {
|
|
1313
|
+
|
|
1314
|
+
"use strict"; // jshint ;_;
|
|
1315
|
+
|
|
1316
|
+
|
|
1317
|
+
/* ALERT CLASS DEFINITION
|
|
1318
|
+
* ====================== */
|
|
1319
|
+
|
|
1320
|
+
var dismiss = '[data-dismiss="alert"]'
|
|
1321
|
+
, Alert = function (el) {
|
|
1322
|
+
$(el).on('click', dismiss, this.close)
|
|
1323
|
+
}
|
|
1324
|
+
|
|
1325
|
+
Alert.prototype.close = function (e) {
|
|
1326
|
+
var $this = $(this)
|
|
1327
|
+
, selector = $this.attr('data-target')
|
|
1328
|
+
, $parent
|
|
1329
|
+
|
|
1330
|
+
if (!selector) {
|
|
1331
|
+
selector = $this.attr('href')
|
|
1332
|
+
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
|
1333
|
+
}
|
|
1334
|
+
|
|
1335
|
+
$parent = $(selector)
|
|
1336
|
+
|
|
1337
|
+
e && e.preventDefault()
|
|
1338
|
+
|
|
1339
|
+
$parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())
|
|
1340
|
+
|
|
1341
|
+
$parent.trigger(e = $.Event('close'))
|
|
1342
|
+
|
|
1343
|
+
if (e.isDefaultPrevented()) return
|
|
1344
|
+
|
|
1345
|
+
$parent.removeClass('in')
|
|
1346
|
+
|
|
1347
|
+
function removeElement() {
|
|
1348
|
+
$parent
|
|
1349
|
+
.trigger('closed')
|
|
1350
|
+
.remove()
|
|
1351
|
+
}
|
|
1352
|
+
|
|
1353
|
+
$.support.transition && $parent.hasClass('fade') ?
|
|
1354
|
+
$parent.on($.support.transition.end, removeElement) :
|
|
1355
|
+
removeElement()
|
|
1356
|
+
}
|
|
1357
|
+
|
|
1358
|
+
|
|
1359
|
+
/* ALERT PLUGIN DEFINITION
|
|
1360
|
+
* ======================= */
|
|
1361
|
+
|
|
1362
|
+
var old = $.fn.alert
|
|
1363
|
+
|
|
1364
|
+
$.fn.alert = function (option) {
|
|
1365
|
+
return this.each(function () {
|
|
1366
|
+
var $this = $(this)
|
|
1367
|
+
, data = $this.data('alert')
|
|
1368
|
+
if (!data) $this.data('alert', (data = new Alert(this)))
|
|
1369
|
+
if (typeof option == 'string') data[option].call($this)
|
|
1370
|
+
})
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
$.fn.alert.Constructor = Alert
|
|
1374
|
+
|
|
1375
|
+
|
|
1376
|
+
/* ALERT NO CONFLICT
|
|
1377
|
+
* ================= */
|
|
1378
|
+
|
|
1379
|
+
$.fn.alert.noConflict = function () {
|
|
1380
|
+
$.fn.alert = old
|
|
1381
|
+
return this
|
|
1382
|
+
}
|
|
1383
|
+
|
|
1384
|
+
|
|
1385
|
+
/* ALERT DATA-API
|
|
1386
|
+
* ============== */
|
|
1387
|
+
|
|
1388
|
+
$(document).on('click.alert.data-api', dismiss, Alert.prototype.close)
|
|
1389
|
+
|
|
1390
|
+
}(window.jQuery);
|
|
1391
|
+
/* ============================================================
|
|
1392
|
+
* bootstrap-button.js v2.2.2
|
|
1393
|
+
* http://twitter.github.com/bootstrap/javascript.html#buttons
|
|
1394
|
+
* ============================================================
|
|
1395
|
+
* Copyright 2012 Twitter, Inc.
|
|
1396
|
+
*
|
|
1397
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
1398
|
+
* you may not use this file except in compliance with the License.
|
|
1399
|
+
* You may obtain a copy of the License at
|
|
1400
|
+
*
|
|
1401
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
1402
|
+
*
|
|
1403
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
1404
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
1405
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1406
|
+
* See the License for the specific language governing permissions and
|
|
1407
|
+
* limitations under the License.
|
|
1408
|
+
* ============================================================ */
|
|
1409
|
+
|
|
1410
|
+
|
|
1411
|
+
!function ($) {
|
|
1412
|
+
|
|
1413
|
+
"use strict"; // jshint ;_;
|
|
1414
|
+
|
|
1415
|
+
|
|
1416
|
+
/* BUTTON PUBLIC CLASS DEFINITION
|
|
1417
|
+
* ============================== */
|
|
1199
1418
|
|
|
1200
|
-
|
|
1201
|
-
|
|
1202
|
-
|
|
1203
|
-
|
|
1419
|
+
var Button = function (element, options) {
|
|
1420
|
+
this.$element = $(element)
|
|
1421
|
+
this.options = $.extend({}, $.fn.button.defaults, options)
|
|
1422
|
+
}
|
|
1204
1423
|
|
|
1205
|
-
|
|
1206
|
-
|
|
1424
|
+
Button.prototype.setState = function (state) {
|
|
1425
|
+
var d = 'disabled'
|
|
1426
|
+
, $el = this.$element
|
|
1427
|
+
, data = $el.data()
|
|
1428
|
+
, val = $el.is('input') ? 'val' : 'html'
|
|
1207
1429
|
|
|
1208
|
-
|
|
1209
|
-
|
|
1430
|
+
state = state + 'Text'
|
|
1431
|
+
data.resetText || $el.data('resetText', $el[val]())
|
|
1210
1432
|
|
|
1211
|
-
|
|
1212
|
-
return this.getTitle() || this.getContent()
|
|
1213
|
-
}
|
|
1433
|
+
$el[val](data[state] || this.options[state])
|
|
1214
1434
|
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
,
|
|
1435
|
+
// push to event loop to allow forms to submit
|
|
1436
|
+
setTimeout(function () {
|
|
1437
|
+
state == 'loadingText' ?
|
|
1438
|
+
$el.addClass(d).attr(d, d) :
|
|
1439
|
+
$el.removeClass(d).removeAttr(d)
|
|
1440
|
+
}, 0)
|
|
1441
|
+
}
|
|
1219
1442
|
|
|
1220
|
-
|
|
1221
|
-
|
|
1443
|
+
Button.prototype.toggle = function () {
|
|
1444
|
+
var $parent = this.$element.closest('[data-toggle="buttons-radio"]')
|
|
1222
1445
|
|
|
1223
|
-
|
|
1224
|
-
|
|
1446
|
+
$parent && $parent
|
|
1447
|
+
.find('.active')
|
|
1448
|
+
.removeClass('active')
|
|
1225
1449
|
|
|
1226
|
-
|
|
1227
|
-
|
|
1228
|
-
this.$tip = $(this.options.template)
|
|
1229
|
-
}
|
|
1230
|
-
return this.$tip
|
|
1231
|
-
}
|
|
1450
|
+
this.$element.toggleClass('active')
|
|
1451
|
+
}
|
|
1232
1452
|
|
|
1233
|
-
})
|
|
1234
1453
|
|
|
1454
|
+
/* BUTTON PLUGIN DEFINITION
|
|
1455
|
+
* ======================== */
|
|
1235
1456
|
|
|
1236
|
-
|
|
1237
|
-
* ======================= */
|
|
1457
|
+
var old = $.fn.button
|
|
1238
1458
|
|
|
1239
|
-
$.fn.
|
|
1459
|
+
$.fn.button = function (option) {
|
|
1240
1460
|
return this.each(function () {
|
|
1241
1461
|
var $this = $(this)
|
|
1242
|
-
, data = $this.data('
|
|
1462
|
+
, data = $this.data('button')
|
|
1243
1463
|
, options = typeof option == 'object' && option
|
|
1244
|
-
if (!data) $this.data('
|
|
1245
|
-
if (
|
|
1464
|
+
if (!data) $this.data('button', (data = new Button(this, options)))
|
|
1465
|
+
if (option == 'toggle') data.toggle()
|
|
1466
|
+
else if (option) data.setState(option)
|
|
1246
1467
|
})
|
|
1247
1468
|
}
|
|
1248
1469
|
|
|
1249
|
-
$.fn.
|
|
1470
|
+
$.fn.button.defaults = {
|
|
1471
|
+
loadingText: 'loading...'
|
|
1472
|
+
}
|
|
1250
1473
|
|
|
1251
|
-
$.fn.
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1474
|
+
$.fn.button.Constructor = Button
|
|
1475
|
+
|
|
1476
|
+
|
|
1477
|
+
/* BUTTON NO CONFLICT
|
|
1478
|
+
* ================== */
|
|
1479
|
+
|
|
1480
|
+
$.fn.button.noConflict = function () {
|
|
1481
|
+
$.fn.button = old
|
|
1482
|
+
return this
|
|
1483
|
+
}
|
|
1484
|
+
|
|
1485
|
+
|
|
1486
|
+
/* BUTTON DATA-API
|
|
1487
|
+
* =============== */
|
|
1488
|
+
|
|
1489
|
+
$(document).on('click.button.data-api', '[data-toggle^=button]', function (e) {
|
|
1490
|
+
var $btn = $(e.target)
|
|
1491
|
+
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
|
|
1492
|
+
$btn.button('toggle')
|
|
1255
1493
|
})
|
|
1256
1494
|
|
|
1257
|
-
}(window.jQuery)
|
|
1258
|
-
|
|
1259
|
-
*
|
|
1495
|
+
}(window.jQuery);
|
|
1496
|
+
/* =============================================================
|
|
1497
|
+
* bootstrap-collapse.js v2.2.2
|
|
1498
|
+
* http://twitter.github.com/bootstrap/javascript.html#collapse
|
|
1260
1499
|
* =============================================================
|
|
1261
1500
|
* Copyright 2012 Twitter, Inc.
|
|
1262
1501
|
*
|
|
@@ -1271,7 +1510,7 @@
|
|
|
1271
1510
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1272
1511
|
* See the License for the specific language governing permissions and
|
|
1273
1512
|
* limitations under the License.
|
|
1274
|
-
*
|
|
1513
|
+
* ============================================================ */
|
|
1275
1514
|
|
|
1276
1515
|
|
|
1277
1516
|
!function ($) {
|
|
@@ -1279,135 +1518,152 @@
|
|
|
1279
1518
|
"use strict"; // jshint ;_;
|
|
1280
1519
|
|
|
1281
1520
|
|
|
1282
|
-
|
|
1283
|
-
|
|
1521
|
+
/* COLLAPSE PUBLIC CLASS DEFINITION
|
|
1522
|
+
* ================================ */
|
|
1284
1523
|
|
|
1285
|
-
function
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
this.options
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
this.$body = $('body')
|
|
1295
|
-
this.refresh()
|
|
1296
|
-
this.process()
|
|
1524
|
+
var Collapse = function (element, options) {
|
|
1525
|
+
this.$element = $(element)
|
|
1526
|
+
this.options = $.extend({}, $.fn.collapse.defaults, options)
|
|
1527
|
+
|
|
1528
|
+
if (this.options.parent) {
|
|
1529
|
+
this.$parent = $(this.options.parent)
|
|
1530
|
+
}
|
|
1531
|
+
|
|
1532
|
+
this.options.toggle && this.toggle()
|
|
1297
1533
|
}
|
|
1298
1534
|
|
|
1299
|
-
|
|
1535
|
+
Collapse.prototype = {
|
|
1300
1536
|
|
|
1301
|
-
|
|
1537
|
+
constructor: Collapse
|
|
1302
1538
|
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1539
|
+
, dimension: function () {
|
|
1540
|
+
var hasWidth = this.$element.hasClass('width')
|
|
1541
|
+
return hasWidth ? 'width' : 'height'
|
|
1542
|
+
}
|
|
1306
1543
|
|
|
1307
|
-
|
|
1308
|
-
|
|
1544
|
+
, show: function () {
|
|
1545
|
+
var dimension
|
|
1546
|
+
, scroll
|
|
1547
|
+
, actives
|
|
1548
|
+
, hasData
|
|
1309
1549
|
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
.each(function () {
|
|
1322
|
-
self.offsets.push(this[0])
|
|
1323
|
-
self.targets.push(this[1])
|
|
1324
|
-
})
|
|
1550
|
+
if (this.transitioning) return
|
|
1551
|
+
|
|
1552
|
+
dimension = this.dimension()
|
|
1553
|
+
scroll = $.camelCase(['scroll', dimension].join('-'))
|
|
1554
|
+
actives = this.$parent && this.$parent.find('> .accordion-group > .in')
|
|
1555
|
+
|
|
1556
|
+
if (actives && actives.length) {
|
|
1557
|
+
hasData = actives.data('collapse')
|
|
1558
|
+
if (hasData && hasData.transitioning) return
|
|
1559
|
+
actives.collapse('hide')
|
|
1560
|
+
hasData || actives.data('collapse', null)
|
|
1325
1561
|
}
|
|
1326
1562
|
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
, offsets = this.offsets
|
|
1332
|
-
, targets = this.targets
|
|
1333
|
-
, activeTarget = this.activeTarget
|
|
1334
|
-
, i
|
|
1563
|
+
this.$element[dimension](0)
|
|
1564
|
+
this.transition('addClass', $.Event('show'), 'shown')
|
|
1565
|
+
$.support.transition && this.$element[dimension](this.$element[0][scroll])
|
|
1566
|
+
}
|
|
1335
1567
|
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1568
|
+
, hide: function () {
|
|
1569
|
+
var dimension
|
|
1570
|
+
if (this.transitioning) return
|
|
1571
|
+
dimension = this.dimension()
|
|
1572
|
+
this.reset(this.$element[dimension]())
|
|
1573
|
+
this.transition('removeClass', $.Event('hide'), 'hidden')
|
|
1574
|
+
this.$element[dimension](0)
|
|
1575
|
+
}
|
|
1340
1576
|
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
&& scrollTop >= offsets[i]
|
|
1344
|
-
&& (!offsets[i + 1] || scrollTop <= offsets[i + 1])
|
|
1345
|
-
&& this.activate( targets[i] )
|
|
1346
|
-
}
|
|
1347
|
-
}
|
|
1577
|
+
, reset: function (size) {
|
|
1578
|
+
var dimension = this.dimension()
|
|
1348
1579
|
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1580
|
+
this.$element
|
|
1581
|
+
.removeClass('collapse')
|
|
1582
|
+
[dimension](size || 'auto')
|
|
1583
|
+
[0].offsetWidth
|
|
1352
1584
|
|
|
1353
|
-
|
|
1585
|
+
this.$element[size !== null ? 'addClass' : 'removeClass']('collapse')
|
|
1354
1586
|
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
.removeClass('active')
|
|
1587
|
+
return this
|
|
1588
|
+
}
|
|
1358
1589
|
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1590
|
+
, transition: function (method, startEvent, completeEvent) {
|
|
1591
|
+
var that = this
|
|
1592
|
+
, complete = function () {
|
|
1593
|
+
if (startEvent.type == 'show') that.reset()
|
|
1594
|
+
that.transitioning = 0
|
|
1595
|
+
that.$element.trigger(completeEvent)
|
|
1596
|
+
}
|
|
1362
1597
|
|
|
1363
|
-
|
|
1364
|
-
.parent('li')
|
|
1365
|
-
.addClass('active')
|
|
1598
|
+
this.$element.trigger(startEvent)
|
|
1366
1599
|
|
|
1367
|
-
|
|
1368
|
-
active = active.closest('li.dropdown').addClass('active')
|
|
1369
|
-
}
|
|
1600
|
+
if (startEvent.isDefaultPrevented()) return
|
|
1370
1601
|
|
|
1371
|
-
|
|
1372
|
-
|
|
1602
|
+
this.transitioning = 1
|
|
1603
|
+
|
|
1604
|
+
this.$element[method]('in')
|
|
1605
|
+
|
|
1606
|
+
$.support.transition && this.$element.hasClass('collapse') ?
|
|
1607
|
+
this.$element.one($.support.transition.end, complete) :
|
|
1608
|
+
complete()
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1611
|
+
, toggle: function () {
|
|
1612
|
+
this[this.$element.hasClass('in') ? 'hide' : 'show']()
|
|
1613
|
+
}
|
|
1373
1614
|
|
|
1374
1615
|
}
|
|
1375
1616
|
|
|
1376
1617
|
|
|
1377
|
-
/*
|
|
1378
|
-
*
|
|
1618
|
+
/* COLLAPSE PLUGIN DEFINITION
|
|
1619
|
+
* ========================== */
|
|
1379
1620
|
|
|
1380
|
-
$.fn.
|
|
1621
|
+
var old = $.fn.collapse
|
|
1622
|
+
|
|
1623
|
+
$.fn.collapse = function (option) {
|
|
1381
1624
|
return this.each(function () {
|
|
1382
1625
|
var $this = $(this)
|
|
1383
|
-
, data = $this.data('
|
|
1626
|
+
, data = $this.data('collapse')
|
|
1384
1627
|
, options = typeof option == 'object' && option
|
|
1385
|
-
if (!data) $this.data('
|
|
1628
|
+
if (!data) $this.data('collapse', (data = new Collapse(this, options)))
|
|
1386
1629
|
if (typeof option == 'string') data[option]()
|
|
1387
1630
|
})
|
|
1388
1631
|
}
|
|
1389
1632
|
|
|
1390
|
-
$.fn.
|
|
1391
|
-
|
|
1392
|
-
$.fn.scrollspy.defaults = {
|
|
1393
|
-
offset: 10
|
|
1633
|
+
$.fn.collapse.defaults = {
|
|
1634
|
+
toggle: true
|
|
1394
1635
|
}
|
|
1395
1636
|
|
|
1637
|
+
$.fn.collapse.Constructor = Collapse
|
|
1396
1638
|
|
|
1397
|
-
/* SCROLLSPY DATA-API
|
|
1398
|
-
* ================== */
|
|
1399
1639
|
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1640
|
+
/* COLLAPSE NO CONFLICT
|
|
1641
|
+
* ==================== */
|
|
1642
|
+
|
|
1643
|
+
$.fn.collapse.noConflict = function () {
|
|
1644
|
+
$.fn.collapse = old
|
|
1645
|
+
return this
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
|
|
1649
|
+
/* COLLAPSE DATA-API
|
|
1650
|
+
* ================= */
|
|
1651
|
+
|
|
1652
|
+
$(document).on('click.collapse.data-api', '[data-toggle=collapse]', function (e) {
|
|
1653
|
+
var $this = $(this), href
|
|
1654
|
+
, target = $this.attr('data-target')
|
|
1655
|
+
|| e.preventDefault()
|
|
1656
|
+
|| (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
|
|
1657
|
+
, option = $(target).data('collapse') ? 'toggle' : $this.data()
|
|
1658
|
+
$this[$(target).hasClass('in') ? 'addClass' : 'removeClass']('collapsed')
|
|
1659
|
+
$(target).collapse(option)
|
|
1405
1660
|
})
|
|
1406
1661
|
|
|
1407
|
-
}(window.jQuery)
|
|
1408
|
-
|
|
1409
|
-
*
|
|
1410
|
-
*
|
|
1662
|
+
}(window.jQuery);
|
|
1663
|
+
/* ==========================================================
|
|
1664
|
+
* bootstrap-carousel.js v2.2.2
|
|
1665
|
+
* http://twitter.github.com/bootstrap/javascript.html#carousel
|
|
1666
|
+
* ==========================================================
|
|
1411
1667
|
* Copyright 2012 Twitter, Inc.
|
|
1412
1668
|
*
|
|
1413
1669
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
@@ -1421,7 +1677,7 @@
|
|
|
1421
1677
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
1422
1678
|
* See the License for the specific language governing permissions and
|
|
1423
1679
|
* limitations under the License.
|
|
1424
|
-
*
|
|
1680
|
+
* ========================================================== */
|
|
1425
1681
|
|
|
1426
1682
|
|
|
1427
1683
|
!function ($) {
|
|
@@ -1429,117 +1685,168 @@
|
|
|
1429
1685
|
"use strict"; // jshint ;_;
|
|
1430
1686
|
|
|
1431
1687
|
|
|
1432
|
-
/*
|
|
1433
|
-
*
|
|
1688
|
+
/* CAROUSEL CLASS DEFINITION
|
|
1689
|
+
* ========================= */
|
|
1434
1690
|
|
|
1435
|
-
var
|
|
1436
|
-
this
|
|
1691
|
+
var Carousel = function (element, options) {
|
|
1692
|
+
this.$element = $(element)
|
|
1693
|
+
this.options = options
|
|
1694
|
+
this.options.pause == 'hover' && this.$element
|
|
1695
|
+
.on('mouseenter', $.proxy(this.pause, this))
|
|
1696
|
+
.on('mouseleave', $.proxy(this.cycle, this))
|
|
1437
1697
|
}
|
|
1438
1698
|
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
constructor: Tab
|
|
1699
|
+
Carousel.prototype = {
|
|
1442
1700
|
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1447
|
-
,
|
|
1448
|
-
|
|
1449
|
-
|
|
1701
|
+
cycle: function (e) {
|
|
1702
|
+
if (!e) this.paused = false
|
|
1703
|
+
this.options.interval
|
|
1704
|
+
&& !this.paused
|
|
1705
|
+
&& (this.interval = setInterval($.proxy(this.next, this), this.options.interval))
|
|
1706
|
+
return this
|
|
1707
|
+
}
|
|
1450
1708
|
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1709
|
+
, to: function (pos) {
|
|
1710
|
+
var $active = this.$element.find('.item.active')
|
|
1711
|
+
, children = $active.parent().children()
|
|
1712
|
+
, activePos = children.index($active)
|
|
1713
|
+
, that = this
|
|
1455
1714
|
|
|
1456
|
-
if (
|
|
1715
|
+
if (pos > (children.length - 1) || pos < 0) return
|
|
1457
1716
|
|
|
1458
|
-
|
|
1717
|
+
if (this.sliding) {
|
|
1718
|
+
return this.$element.one('slid', function () {
|
|
1719
|
+
that.to(pos)
|
|
1720
|
+
})
|
|
1721
|
+
}
|
|
1459
1722
|
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
}
|
|
1723
|
+
if (activePos == pos) {
|
|
1724
|
+
return this.pause().cycle()
|
|
1725
|
+
}
|
|
1463
1726
|
|
|
1464
|
-
|
|
1727
|
+
return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos]))
|
|
1728
|
+
}
|
|
1465
1729
|
|
|
1466
|
-
|
|
1730
|
+
, pause: function (e) {
|
|
1731
|
+
if (!e) this.paused = true
|
|
1732
|
+
if (this.$element.find('.next, .prev').length && $.support.transition.end) {
|
|
1733
|
+
this.$element.trigger($.support.transition.end)
|
|
1734
|
+
this.cycle()
|
|
1735
|
+
}
|
|
1736
|
+
clearInterval(this.interval)
|
|
1737
|
+
this.interval = null
|
|
1738
|
+
return this
|
|
1739
|
+
}
|
|
1467
1740
|
|
|
1468
|
-
|
|
1741
|
+
, next: function () {
|
|
1742
|
+
if (this.sliding) return
|
|
1743
|
+
return this.slide('next')
|
|
1744
|
+
}
|
|
1469
1745
|
|
|
1470
|
-
|
|
1471
|
-
this.
|
|
1472
|
-
|
|
1473
|
-
type: 'shown'
|
|
1474
|
-
, relatedTarget: previous
|
|
1475
|
-
})
|
|
1476
|
-
})
|
|
1746
|
+
, prev: function () {
|
|
1747
|
+
if (this.sliding) return
|
|
1748
|
+
return this.slide('prev')
|
|
1477
1749
|
}
|
|
1478
1750
|
|
|
1479
|
-
,
|
|
1480
|
-
var $active =
|
|
1481
|
-
,
|
|
1482
|
-
|
|
1483
|
-
|
|
1751
|
+
, slide: function (type, next) {
|
|
1752
|
+
var $active = this.$element.find('.item.active')
|
|
1753
|
+
, $next = next || $active[type]()
|
|
1754
|
+
, isCycling = this.interval
|
|
1755
|
+
, direction = type == 'next' ? 'left' : 'right'
|
|
1756
|
+
, fallback = type == 'next' ? 'first' : 'last'
|
|
1757
|
+
, that = this
|
|
1758
|
+
, e
|
|
1484
1759
|
|
|
1485
|
-
|
|
1486
|
-
$active
|
|
1487
|
-
.removeClass('active')
|
|
1488
|
-
.find('> .dropdown-menu > .active')
|
|
1489
|
-
.removeClass('active')
|
|
1760
|
+
this.sliding = true
|
|
1490
1761
|
|
|
1491
|
-
|
|
1762
|
+
isCycling && this.pause()
|
|
1492
1763
|
|
|
1493
|
-
|
|
1494
|
-
element[0].offsetWidth // reflow for transition
|
|
1495
|
-
element.addClass('in')
|
|
1496
|
-
} else {
|
|
1497
|
-
element.removeClass('fade')
|
|
1498
|
-
}
|
|
1764
|
+
$next = $next.length ? $next : this.$element.find('.item')[fallback]()
|
|
1499
1765
|
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1766
|
+
e = $.Event('slide', {
|
|
1767
|
+
relatedTarget: $next[0]
|
|
1768
|
+
})
|
|
1503
1769
|
|
|
1504
|
-
|
|
1770
|
+
if ($next.hasClass('active')) return
|
|
1771
|
+
|
|
1772
|
+
if ($.support.transition && this.$element.hasClass('slide')) {
|
|
1773
|
+
this.$element.trigger(e)
|
|
1774
|
+
if (e.isDefaultPrevented()) return
|
|
1775
|
+
$next.addClass(type)
|
|
1776
|
+
$next[0].offsetWidth // force reflow
|
|
1777
|
+
$active.addClass(direction)
|
|
1778
|
+
$next.addClass(direction)
|
|
1779
|
+
this.$element.one($.support.transition.end, function () {
|
|
1780
|
+
$next.removeClass([type, direction].join(' ')).addClass('active')
|
|
1781
|
+
$active.removeClass(['active', direction].join(' '))
|
|
1782
|
+
that.sliding = false
|
|
1783
|
+
setTimeout(function () { that.$element.trigger('slid') }, 0)
|
|
1784
|
+
})
|
|
1785
|
+
} else {
|
|
1786
|
+
this.$element.trigger(e)
|
|
1787
|
+
if (e.isDefaultPrevented()) return
|
|
1788
|
+
$active.removeClass('active')
|
|
1789
|
+
$next.addClass('active')
|
|
1790
|
+
this.sliding = false
|
|
1791
|
+
this.$element.trigger('slid')
|
|
1505
1792
|
}
|
|
1506
1793
|
|
|
1507
|
-
|
|
1508
|
-
$active.one($.support.transition.end, next) :
|
|
1509
|
-
next()
|
|
1794
|
+
isCycling && this.cycle()
|
|
1510
1795
|
|
|
1511
|
-
|
|
1796
|
+
return this
|
|
1512
1797
|
}
|
|
1798
|
+
|
|
1513
1799
|
}
|
|
1514
1800
|
|
|
1515
1801
|
|
|
1516
|
-
/*
|
|
1517
|
-
*
|
|
1802
|
+
/* CAROUSEL PLUGIN DEFINITION
|
|
1803
|
+
* ========================== */
|
|
1518
1804
|
|
|
1519
|
-
$.fn.
|
|
1805
|
+
var old = $.fn.carousel
|
|
1806
|
+
|
|
1807
|
+
$.fn.carousel = function (option) {
|
|
1520
1808
|
return this.each(function () {
|
|
1521
1809
|
var $this = $(this)
|
|
1522
|
-
, data = $this.data('
|
|
1523
|
-
|
|
1524
|
-
|
|
1810
|
+
, data = $this.data('carousel')
|
|
1811
|
+
, options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option)
|
|
1812
|
+
, action = typeof option == 'string' ? option : options.slide
|
|
1813
|
+
if (!data) $this.data('carousel', (data = new Carousel(this, options)))
|
|
1814
|
+
if (typeof option == 'number') data.to(option)
|
|
1815
|
+
else if (action) data[action]()
|
|
1816
|
+
else if (options.interval) data.cycle()
|
|
1525
1817
|
})
|
|
1526
1818
|
}
|
|
1527
1819
|
|
|
1528
|
-
$.fn.
|
|
1820
|
+
$.fn.carousel.defaults = {
|
|
1821
|
+
interval: 5000
|
|
1822
|
+
, pause: 'hover'
|
|
1823
|
+
}
|
|
1824
|
+
|
|
1825
|
+
$.fn.carousel.Constructor = Carousel
|
|
1529
1826
|
|
|
1530
1827
|
|
|
1531
|
-
/*
|
|
1532
|
-
*
|
|
1828
|
+
/* CAROUSEL NO CONFLICT
|
|
1829
|
+
* ==================== */
|
|
1533
1830
|
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1831
|
+
$.fn.carousel.noConflict = function () {
|
|
1832
|
+
$.fn.carousel = old
|
|
1833
|
+
return this
|
|
1834
|
+
}
|
|
1835
|
+
|
|
1836
|
+
/* CAROUSEL DATA-API
|
|
1837
|
+
* ================= */
|
|
1838
|
+
|
|
1839
|
+
$(document).on('click.carousel.data-api', '[data-slide]', function (e) {
|
|
1840
|
+
var $this = $(this), href
|
|
1841
|
+
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
|
|
1842
|
+
, options = $.extend({}, $target.data(), $this.data())
|
|
1843
|
+
$target.carousel(options)
|
|
1844
|
+
e.preventDefault()
|
|
1539
1845
|
})
|
|
1540
1846
|
|
|
1541
|
-
}(window.jQuery)
|
|
1542
|
-
|
|
1847
|
+
}(window.jQuery);
|
|
1848
|
+
/* =============================================================
|
|
1849
|
+
* bootstrap-typeahead.js v2.2.2
|
|
1543
1850
|
* http://twitter.github.com/bootstrap/javascript.html#typeahead
|
|
1544
1851
|
* =============================================================
|
|
1545
1852
|
* Copyright 2012 Twitter, Inc.
|
|
@@ -1573,8 +1880,8 @@
|
|
|
1573
1880
|
this.sorter = this.options.sorter || this.sorter
|
|
1574
1881
|
this.highlighter = this.options.highlighter || this.highlighter
|
|
1575
1882
|
this.updater = this.options.updater || this.updater
|
|
1576
|
-
this.$menu = $(this.options.menu).appendTo('body')
|
|
1577
1883
|
this.source = this.options.source
|
|
1884
|
+
this.$menu = $(this.options.menu)
|
|
1578
1885
|
this.shown = false
|
|
1579
1886
|
this.listen()
|
|
1580
1887
|
}
|
|
@@ -1596,16 +1903,18 @@
|
|
|
1596
1903
|
}
|
|
1597
1904
|
|
|
1598
1905
|
, show: function () {
|
|
1599
|
-
var pos = $.extend({}, this.$element.
|
|
1906
|
+
var pos = $.extend({}, this.$element.position(), {
|
|
1600
1907
|
height: this.$element[0].offsetHeight
|
|
1601
1908
|
})
|
|
1602
1909
|
|
|
1603
|
-
this.$menu
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1910
|
+
this.$menu
|
|
1911
|
+
.insertAfter(this.$element)
|
|
1912
|
+
.css({
|
|
1913
|
+
top: pos.top + pos.height
|
|
1914
|
+
, left: pos.left
|
|
1915
|
+
})
|
|
1916
|
+
.show()
|
|
1607
1917
|
|
|
1608
|
-
this.$menu.show()
|
|
1609
1918
|
this.shown = true
|
|
1610
1919
|
return this
|
|
1611
1920
|
}
|
|
@@ -1617,17 +1926,23 @@
|
|
|
1617
1926
|
}
|
|
1618
1927
|
|
|
1619
1928
|
, lookup: function (event) {
|
|
1620
|
-
var
|
|
1621
|
-
, items
|
|
1622
|
-
, q
|
|
1929
|
+
var items
|
|
1623
1930
|
|
|
1624
1931
|
this.query = this.$element.val()
|
|
1625
1932
|
|
|
1626
|
-
if (!this.query) {
|
|
1933
|
+
if (!this.query || this.query.length < this.options.minLength) {
|
|
1627
1934
|
return this.shown ? this.hide() : this
|
|
1628
1935
|
}
|
|
1629
1936
|
|
|
1630
|
-
items = $.
|
|
1937
|
+
items = $.isFunction(this.source) ? this.source(this.query, $.proxy(this.process, this)) : this.source
|
|
1938
|
+
|
|
1939
|
+
return items ? this.process(items) : this
|
|
1940
|
+
}
|
|
1941
|
+
|
|
1942
|
+
, process: function (items) {
|
|
1943
|
+
var that = this
|
|
1944
|
+
|
|
1945
|
+
items = $.grep(items, function (item) {
|
|
1631
1946
|
return that.matcher(item)
|
|
1632
1947
|
})
|
|
1633
1948
|
|
|
@@ -1708,8 +2023,8 @@
|
|
|
1708
2023
|
.on('keypress', $.proxy(this.keypress, this))
|
|
1709
2024
|
.on('keyup', $.proxy(this.keyup, this))
|
|
1710
2025
|
|
|
1711
|
-
if (
|
|
1712
|
-
this.$element.on('keydown', $.proxy(this.
|
|
2026
|
+
if (this.eventSupported('keydown')) {
|
|
2027
|
+
this.$element.on('keydown', $.proxy(this.keydown, this))
|
|
1713
2028
|
}
|
|
1714
2029
|
|
|
1715
2030
|
this.$menu
|
|
@@ -1717,32 +2032,16 @@
|
|
|
1717
2032
|
.on('mouseenter', 'li', $.proxy(this.mouseenter, this))
|
|
1718
2033
|
}
|
|
1719
2034
|
|
|
1720
|
-
,
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
case 9: // tab
|
|
1727
|
-
case 13: // enter
|
|
1728
|
-
if (!this.shown) return
|
|
1729
|
-
this.select()
|
|
1730
|
-
break
|
|
1731
|
-
|
|
1732
|
-
case 27: // escape
|
|
1733
|
-
if (!this.shown) return
|
|
1734
|
-
this.hide()
|
|
1735
|
-
break
|
|
1736
|
-
|
|
1737
|
-
default:
|
|
1738
|
-
this.lookup()
|
|
2035
|
+
, eventSupported: function(eventName) {
|
|
2036
|
+
var isSupported = eventName in this.$element
|
|
2037
|
+
if (!isSupported) {
|
|
2038
|
+
this.$element.setAttribute(eventName, 'return;')
|
|
2039
|
+
isSupported = typeof this.$element[eventName] === 'function'
|
|
1739
2040
|
}
|
|
2041
|
+
return isSupported
|
|
2042
|
+
}
|
|
1740
2043
|
|
|
1741
|
-
|
|
1742
|
-
e.preventDefault()
|
|
1743
|
-
}
|
|
1744
|
-
|
|
1745
|
-
, keypress: function (e) {
|
|
2044
|
+
, move: function (e) {
|
|
1746
2045
|
if (!this.shown) return
|
|
1747
2046
|
|
|
1748
2047
|
switch(e.keyCode) {
|
|
@@ -1753,13 +2052,11 @@
|
|
|
1753
2052
|
break
|
|
1754
2053
|
|
|
1755
2054
|
case 38: // up arrow
|
|
1756
|
-
if (e.type != 'keydown') break
|
|
1757
2055
|
e.preventDefault()
|
|
1758
2056
|
this.prev()
|
|
1759
2057
|
break
|
|
1760
2058
|
|
|
1761
2059
|
case 40: // down arrow
|
|
1762
|
-
if (e.type != 'keydown') break
|
|
1763
2060
|
e.preventDefault()
|
|
1764
2061
|
this.next()
|
|
1765
2062
|
break
|
|
@@ -1768,6 +2065,44 @@
|
|
|
1768
2065
|
e.stopPropagation()
|
|
1769
2066
|
}
|
|
1770
2067
|
|
|
2068
|
+
, keydown: function (e) {
|
|
2069
|
+
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27])
|
|
2070
|
+
this.move(e)
|
|
2071
|
+
}
|
|
2072
|
+
|
|
2073
|
+
, keypress: function (e) {
|
|
2074
|
+
if (this.suppressKeyPressRepeat) return
|
|
2075
|
+
this.move(e)
|
|
2076
|
+
}
|
|
2077
|
+
|
|
2078
|
+
, keyup: function (e) {
|
|
2079
|
+
switch(e.keyCode) {
|
|
2080
|
+
case 40: // down arrow
|
|
2081
|
+
case 38: // up arrow
|
|
2082
|
+
case 16: // shift
|
|
2083
|
+
case 17: // ctrl
|
|
2084
|
+
case 18: // alt
|
|
2085
|
+
break
|
|
2086
|
+
|
|
2087
|
+
case 9: // tab
|
|
2088
|
+
case 13: // enter
|
|
2089
|
+
if (!this.shown) return
|
|
2090
|
+
this.select()
|
|
2091
|
+
break
|
|
2092
|
+
|
|
2093
|
+
case 27: // escape
|
|
2094
|
+
if (!this.shown) return
|
|
2095
|
+
this.hide()
|
|
2096
|
+
break
|
|
2097
|
+
|
|
2098
|
+
default:
|
|
2099
|
+
this.lookup()
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
e.stopPropagation()
|
|
2103
|
+
e.preventDefault()
|
|
2104
|
+
}
|
|
2105
|
+
|
|
1771
2106
|
, blur: function (e) {
|
|
1772
2107
|
var that = this
|
|
1773
2108
|
setTimeout(function () { that.hide() }, 150)
|
|
@@ -1790,6 +2125,8 @@
|
|
|
1790
2125
|
/* TYPEAHEAD PLUGIN DEFINITION
|
|
1791
2126
|
* =========================== */
|
|
1792
2127
|
|
|
2128
|
+
var old = $.fn.typeahead
|
|
2129
|
+
|
|
1793
2130
|
$.fn.typeahead = function (option) {
|
|
1794
2131
|
return this.each(function () {
|
|
1795
2132
|
var $this = $(this)
|
|
@@ -1805,21 +2142,29 @@
|
|
|
1805
2142
|
, items: 8
|
|
1806
2143
|
, menu: '<ul class="typeahead dropdown-menu"></ul>'
|
|
1807
2144
|
, item: '<li><a href="#"></a></li>'
|
|
2145
|
+
, minLength: 1
|
|
1808
2146
|
}
|
|
1809
2147
|
|
|
1810
2148
|
$.fn.typeahead.Constructor = Typeahead
|
|
1811
2149
|
|
|
1812
2150
|
|
|
2151
|
+
/* TYPEAHEAD NO CONFLICT
|
|
2152
|
+
* =================== */
|
|
2153
|
+
|
|
2154
|
+
$.fn.typeahead.noConflict = function () {
|
|
2155
|
+
$.fn.typeahead = old
|
|
2156
|
+
return this
|
|
2157
|
+
}
|
|
2158
|
+
|
|
2159
|
+
|
|
1813
2160
|
/* TYPEAHEAD DATA-API
|
|
1814
2161
|
* ================== */
|
|
1815
2162
|
|
|
1816
|
-
$(function () {
|
|
1817
|
-
$
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
$this.typeahead($this.data())
|
|
1822
|
-
})
|
|
2163
|
+
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
|
|
2164
|
+
var $this = $(this)
|
|
2165
|
+
if ($this.data('typeahead')) return
|
|
2166
|
+
e.preventDefault()
|
|
2167
|
+
$this.typeahead($this.data())
|
|
1823
2168
|
})
|
|
1824
2169
|
|
|
1825
|
-
}(window.jQuery);
|
|
2170
|
+
}(window.jQuery);
|