diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..f0881a7 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "admin"] + path = admin + url = https://github.com/Spacebrew/webAdmin.git diff --git a/README.md b/README.md index 8aaf272..5d8ed6f 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,8 @@ Getting Started * Clone the repo from github * Install the dependencies using node packaged modules - `npm install` +* Initialize admin submodule + - ```git submodule update --init``` ### 2. Run the Server * Open terminal and navigate to the base directory of the spacebrew server diff --git a/admin b/admin new file mode 160000 index 0000000..4876f11 --- /dev/null +++ b/admin @@ -0,0 +1 @@ +Subproject commit 4876f112dad47da7153412bc3f5f1ace079258af diff --git a/admin/2012-09-10 Comp-C.png b/admin/2012-09-10 Comp-C.png deleted file mode 100755 index 1cd02f1..0000000 Binary files a/admin/2012-09-10 Comp-C.png and /dev/null differ diff --git a/admin/css/reset.css b/admin/css/reset.css deleted file mode 100644 index f3a9fd5..0000000 --- a/admin/css/reset.css +++ /dev/null @@ -1,13 +0,0 @@ -html, body { - width: 100%; - height: 100%; - border: 0px; - padding: 0px; - margin: 0px; - background-color: gray; - overflow:hidden; - font-family: Helvetica; -} -html, body { - /*cursor:none;*/ -} \ No newline at end of file diff --git a/admin/css/style.css b/admin/css/style.css deleted file mode 100644 index 0082db9..0000000 --- a/admin/css/style.css +++ /dev/null @@ -1,330 +0,0 @@ -@font-face{ - font-family: Din; - font-weight: 100;/*lighter;*/ - src: url("../fonts/DIN/DINNeuzeitGroteskStd-Light.otf") format("opentype"); -} -@font-face{ - font-family: Din; - font-weight: bold; - src: url("../fonts/DIN/DINNeuzeitGroteskStd-BdCond.otf") format("opentype"); -} -@font-face{ - font-family: DinPro; - src: url("../fonts/DIN/DINPro-Regular.otf") format("opentype"); -} -@font-face{ - font-family: DinPro; - font-weight: bold; - src: url("../fonts/DIN/DINPro-Bold.otf") format("opentype"); -} -@font-face{ - font-family: DinPro; - font-weight: 400;/*bolder;*/ - src: url("../fonts/DIN/DINPro-Black.otf") format("opentype"); -} -@font-face{ - font-family: DinPro; - font-weight: 500; - src: url("../fonts/DIN/DINPro-Medium.otf") format("opentype"); -} -body{ - height:100%; - background-color:#fff; - /*background-image:url("../img/design/Spacebrew_0000_Default A notop.png");*/ -} -.container{ - height:100%; - margin-top:27px; - margin-left:0px; - margin-right:0px; -} - -.navbar-fixed-bottom { - position:fixed; - right:0; - left:0; - z-index:1030; - margin-bottom:0; - bottom:0; -} - -.navbar div{ - float:left; - font-family:Din; - font-weight:bold; - font-size:10pt; - margin-top:2px; - letter-spacing:1px; - margin-right:28px; - text-transform:uppercase; -} - -.navbar .sig { - font-size:6pt; - float:right; - margin-right:23px; - margin-top:2px; - color:#000; -} - -.navbar .sig img{ - vertical-align:middle; - margin-top:-5px; - margin-left:-9px; -} - -.navbar div .prefix{ - font-size:8pt; - margin-right:6px; -} - -.navbar{ - height:50px; - line-height:50px; - color:#fff; - overflow:visible; - background-color:rgb(51,51,51); -} - -.navbar .brand { - display: block; - float: left; - font-size: 24px; - font-family:DinPro; - font-weight:bold; - color:#999; - text-decoration: none; - letter-spacing:2px; - margin-left:9px; - margin-right:56px; -} -.navbar .brand img{ - vertical-align:middle; - margin-top:-10px; -} -.item.publisher{ - padding-right:18px; - background-color:rgb(176,237,255); - text-align:right; -} -.item.subscriber{ - padding-left:16px; - background-color:rgb(177,255,216); -} -.key{ - line-height:1; -} -.key div{ - font-size:8pt; -} -.key .itemanchor{ - height:9px; - width:3px; - margin-right:8px; -} -.itemanchor{ - height:25px; - width:55px; - padding-right:10px; - padding-left:10px; - float:left; - text-transform:uppercase; - font-family:Din; - font-weight:bold; - color:white; - font-size:7.5pt; - text-align:center; - letter-spacing:1px; - background-color:black; -} -.subscriber .itemanchor{ - float:right; -} -.string .itemanchor{ - background-color:#ff0000; -} -.range .itemanchor{ - background-color:#c600f8; -} -.boolean .itemanchor{ - background-color:#ffae00; -} -.item.publisher[class*='sub_'], -.item.connected.publisher{ - background-color:rgb(168,182,255); - text-align:right; -} -.item.subscriber[class*='pub_'], -.item.connected.subscriber{ - background-color:rgb(129,212,170); -} -.item{ - line-height:25px; - height:25px; - /*margin:4px;*/ - min-width:282px; - font-family:DinPro; - font-weight:500; - font-size:10pt; - /*-webkit-transition:all .4s ease-in-out;*/ - pointer-events:none; -} -.itemwrapper{ - padding:2px 4px 2px 4px; - cursor:pointer; - -webkit-touch-callout: none; - -webkit-user-select: none; - -khtml-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; -} -.publisher.itemwrapper{ - padding-right:8px; - padding-left:0px; - margin-left:4px; - margin-right:-4px; -} -.subscriber.itemwrapper{ - padding-right:0px; - padding-left:8px; - margin-left:-4px; - margin-right:4px; -} -.pubsubsep{ - height:100%; - position:absolute; - margin-left:-36px; - border-right:1px dashed black; -} -.clientrow{ - margin-bottom:53px; - overflow:hidden; - min-width:973px; - position:relative; -} -.clientrow:hover, -.clientrow.selected{ - background-image:url("../img/dot-bg.png"); -} -.clientanchor{ - position:absolute; - width:17px; - height:100%; - background-color:rgb(230,230,230); -} -.client{ - -} -.clientdata{ - padding-top:5px; - padding-bottom:4px; -} -.clientnickname{ - font-family:DinPro; - font-weight:bold; - font-size:13pt; -} -.clientname, -.clientinfo{ - font-family:DinPro; - font-size:9pt; - /*margin-top:-3px;*/ -} -.clientnickname span, -.clientname span, -.clientinfo span{ - display:inline-block; - background-color:white; - padding-left:3px; - margin-left:-3px; -} -.clientcol{ - float:left; - width:231px; - margin-left:35px; - overflow:hidden; -} -.pubcol{ - float:left; -} -.subcol{ - float:left; -} -.pubdata{ - margin-right:93px; - min-width:308px; -} -._jsPlumb_endpoint{ - z-index:5; - pointer-events:none; -} -.headerrow{ - margin-bottom:29px; - margin-left:14px; - overflow:hidden; - min-width:940px; -} -.header{ - font-family:DinPro; - font-size:18pt; - letter-spacing:2px; - text-transform:uppercase; -} -#clientdataheader{ - margin-right:144px; - margin-left:6px; -} -#pubdataheader{ - margin-right:85px; -} -.header .prefix{ - font-size:9pt; - margin-right:7px; -} -.publisher .deletebutton{ - float:left; - border-right:solid white 2px; -} -.subscriber .deletebutton{ - float:right; - border-left:solid white 2px; -} -.deletebutton{ - display:none; - pointer-events:auto; - width:20px; - text-align: center; - background-color:black; - color:white; - font-weight:bolder; - font-family:DinPro; -} -.deletebutton:hover{ - color:red; -} -.clientinfo{ - display:none; -} -.clientinfo.show{ - display:block; -} -.clientname span.infobutton{ - font-family:DinPro; - font-weight:bolder; - color:black; - background-color:#FFBE00; - font-size:9pt; - width:10px; - margin-left:2px; - cursor:pointer; - display:none; -} -.clientinfo span{ - background-color:yellow; - margin-right:10px; -} - -div.links{ - cursor: hand; cursor: pointer; -} \ No newline at end of file diff --git a/admin/fonts/DIN/DINNeuzeitGroteskStd-BdCond.otf b/admin/fonts/DIN/DINNeuzeitGroteskStd-BdCond.otf deleted file mode 100755 index 95627fa..0000000 Binary files a/admin/fonts/DIN/DINNeuzeitGroteskStd-BdCond.otf and /dev/null differ diff --git a/admin/fonts/DIN/DINNeuzeitGroteskStd-Light.otf b/admin/fonts/DIN/DINNeuzeitGroteskStd-Light.otf deleted file mode 100755 index b9b86df..0000000 Binary files a/admin/fonts/DIN/DINNeuzeitGroteskStd-Light.otf and /dev/null differ diff --git a/admin/fonts/DIN/DINPro-Black.otf b/admin/fonts/DIN/DINPro-Black.otf deleted file mode 100644 index 2092a7b..0000000 Binary files a/admin/fonts/DIN/DINPro-Black.otf and /dev/null differ diff --git a/admin/fonts/DIN/DINPro-Bold.otf b/admin/fonts/DIN/DINPro-Bold.otf deleted file mode 100644 index 7c83953..0000000 Binary files a/admin/fonts/DIN/DINPro-Bold.otf and /dev/null differ diff --git a/admin/fonts/DIN/DINPro-Medium.otf b/admin/fonts/DIN/DINPro-Medium.otf deleted file mode 100644 index b4608d0..0000000 Binary files a/admin/fonts/DIN/DINPro-Medium.otf and /dev/null differ diff --git a/admin/fonts/DIN/DINPro-Regular.otf b/admin/fonts/DIN/DINPro-Regular.otf deleted file mode 100644 index 84d57ab..0000000 Binary files a/admin/fonts/DIN/DINPro-Regular.otf and /dev/null differ diff --git a/admin/img/design/2012-09-10 Comp-Cnotop.png b/admin/img/design/2012-09-10 Comp-Cnotop.png deleted file mode 100644 index 893ec85..0000000 Binary files a/admin/img/design/2012-09-10 Comp-Cnotop.png and /dev/null differ diff --git a/admin/img/design/Spacebrew_0000_Default A notop inv.png b/admin/img/design/Spacebrew_0000_Default A notop inv.png deleted file mode 100644 index fb6cdc9..0000000 Binary files a/admin/img/design/Spacebrew_0000_Default A notop inv.png and /dev/null differ diff --git a/admin/img/design/Spacebrew_0000_Default A notop.png b/admin/img/design/Spacebrew_0000_Default A notop.png deleted file mode 100644 index 97e71a0..0000000 Binary files a/admin/img/design/Spacebrew_0000_Default A notop.png and /dev/null differ diff --git a/admin/img/design/Spacebrew_0000_Default A.jpg b/admin/img/design/Spacebrew_0000_Default A.jpg deleted file mode 100755 index 2ec62af..0000000 Binary files a/admin/img/design/Spacebrew_0000_Default A.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0001_Receiving Input A.jpg b/admin/img/design/Spacebrew_0001_Receiving Input A.jpg deleted file mode 100755 index bea6b0b..0000000 Binary files a/admin/img/design/Spacebrew_0001_Receiving Input A.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0002_Receiving Input B.jpg b/admin/img/design/Spacebrew_0002_Receiving Input B.jpg deleted file mode 100755 index 37e08cb..0000000 Binary files a/admin/img/design/Spacebrew_0002_Receiving Input B.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0003_Hover Highlight A.jpg b/admin/img/design/Spacebrew_0003_Hover Highlight A.jpg deleted file mode 100755 index 89ce7b6..0000000 Binary files a/admin/img/design/Spacebrew_0003_Hover Highlight A.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0004_Hover Highlight B.jpg b/admin/img/design/Spacebrew_0004_Hover Highlight B.jpg deleted file mode 100755 index 0102a01..0000000 Binary files a/admin/img/design/Spacebrew_0004_Hover Highlight B.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0005_Click A.jpg b/admin/img/design/Spacebrew_0005_Click A.jpg deleted file mode 100755 index 5ce4ff7..0000000 Binary files a/admin/img/design/Spacebrew_0005_Click A.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0006_Click B.jpg b/admin/img/design/Spacebrew_0006_Click B.jpg deleted file mode 100755 index 80743ad..0000000 Binary files a/admin/img/design/Spacebrew_0006_Click B.jpg and /dev/null differ diff --git a/admin/img/design/Spacebrew_0007_Click C.jpg b/admin/img/design/Spacebrew_0007_Click C.jpg deleted file mode 100755 index d6c3a44..0000000 Binary files a/admin/img/design/Spacebrew_0007_Click C.jpg and /dev/null differ diff --git a/admin/img/design/focus.png b/admin/img/design/focus.png deleted file mode 100644 index e53b269..0000000 Binary files a/admin/img/design/focus.png and /dev/null differ diff --git a/admin/img/design/item type formatting.jpg b/admin/img/design/item type formatting.jpg deleted file mode 100755 index da59678..0000000 Binary files a/admin/img/design/item type formatting.jpg and /dev/null differ diff --git a/admin/img/dot-bg.png b/admin/img/dot-bg.png deleted file mode 100755 index 03d26d6..0000000 Binary files a/admin/img/dot-bg.png and /dev/null differ diff --git a/admin/img/lab-logo.png b/admin/img/lab-logo.png deleted file mode 100755 index 3e3ecc3..0000000 Binary files a/admin/img/lab-logo.png and /dev/null differ diff --git a/admin/img/node-closed-active-i.png b/admin/img/node-closed-active-i.png deleted file mode 100644 index b0dc26c..0000000 Binary files a/admin/img/node-closed-active-i.png and /dev/null differ diff --git a/admin/img/node-closed.png b/admin/img/node-closed.png deleted file mode 100755 index 1743408..0000000 Binary files a/admin/img/node-closed.png and /dev/null differ diff --git a/admin/img/node-open-active-i.png b/admin/img/node-open-active-i.png deleted file mode 100644 index 1778a25..0000000 Binary files a/admin/img/node-open-active-i.png and /dev/null differ diff --git a/admin/img/node-open.png b/admin/img/node-open.png deleted file mode 100755 index d3032b9..0000000 Binary files a/admin/img/node-open.png and /dev/null differ diff --git a/admin/img/p-node-on-closed.png b/admin/img/p-node-on-closed.png deleted file mode 100644 index ad49338..0000000 Binary files a/admin/img/p-node-on-closed.png and /dev/null differ diff --git a/admin/img/p-node-on-open.png b/admin/img/p-node-on-open.png deleted file mode 100644 index 40237f6..0000000 Binary files a/admin/img/p-node-on-open.png and /dev/null differ diff --git a/admin/img/s-node-on-closed.png b/admin/img/s-node-on-closed.png deleted file mode 100644 index d9cbb9b..0000000 Binary files a/admin/img/s-node-on-closed.png and /dev/null differ diff --git a/admin/img/s-node-on-open.png b/admin/img/s-node-on-open.png deleted file mode 100644 index bc1cfcf..0000000 Binary files a/admin/img/s-node-on-open.png and /dev/null differ diff --git a/admin/img/spacebrew-logo-2.png b/admin/img/spacebrew-logo-2.png deleted file mode 100755 index 2b81367..0000000 Binary files a/admin/img/spacebrew-logo-2.png and /dev/null differ diff --git a/admin/img/spacebrew-logo.png b/admin/img/spacebrew-logo.png deleted file mode 100755 index 9e813d1..0000000 Binary files a/admin/img/spacebrew-logo.png and /dev/null differ diff --git a/admin/index.html b/admin/index.html deleted file mode 100644 index bbb4958..0000000 --- a/admin/index.html +++ /dev/null @@ -1,170 +0,0 @@ - - - - - - Spacebrew Admin - - - - - - - - - -
-
-
- /Clients -
-
- /Publishers -
-
-
- /Subscribers -
-
-
-
-
-
-
-
-
-
-
- -
- - - - - - - - - - - - - - diff --git a/admin/js/bootstrap.js b/admin/js/bootstrap.js deleted file mode 100644 index 5d6e65b..0000000 --- a/admin/js/bootstrap.js +++ /dev/null @@ -1,1825 +0,0 @@ -/* =================================================== - * bootstrap-transition.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#transitions - * =================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - $(function () { - - "use strict"; // jshint ;_; - - - /* CSS TRANSITION SUPPORT (http://www.modernizr.com/) - * ======================================================= */ - - $.support.transition = (function () { - - var transitionEnd = (function () { - - var el = document.createElement('bootstrap') - , transEndEventNames = { - 'WebkitTransition' : 'webkitTransitionEnd' - , 'MozTransition' : 'transitionend' - , 'OTransition' : 'oTransitionEnd' - , 'msTransition' : 'MSTransitionEnd' - , 'transition' : 'transitionend' - } - , name - - for (name in transEndEventNames){ - if (el.style[name] !== undefined) { - return transEndEventNames[name] - } - } - - }()) - - return transitionEnd && { - end: transitionEnd - } - - })() - - }) - -}(window.jQuery);/* ========================================================== - * bootstrap-alert.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#alerts - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* ALERT CLASS DEFINITION - * ====================== */ - - var dismiss = '[data-dismiss="alert"]' - , Alert = function (el) { - $(el).on('click', dismiss, this.close) - } - - Alert.prototype.close = function (e) { - var $this = $(this) - , selector = $this.attr('data-target') - , $parent - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - - e && e.preventDefault() - - $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent()) - - $parent.trigger(e = $.Event('close')) - - if (e.isDefaultPrevented()) return - - $parent.removeClass('in') - - function removeElement() { - $parent - .trigger('closed') - .remove() - } - - $.support.transition && $parent.hasClass('fade') ? - $parent.on($.support.transition.end, removeElement) : - removeElement() - } - - - /* ALERT PLUGIN DEFINITION - * ======================= */ - - $.fn.alert = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('alert') - if (!data) $this.data('alert', (data = new Alert(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.alert.Constructor = Alert - - - /* ALERT DATA-API - * ============== */ - - $(function () { - $('body').on('click.alert.data-api', dismiss, Alert.prototype.close) - }) - -}(window.jQuery);/* ============================================================ - * bootstrap-button.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#buttons - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* BUTTON PUBLIC CLASS DEFINITION - * ============================== */ - - var Button = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.button.defaults, options) - } - - Button.prototype.setState = function (state) { - var d = 'disabled' - , $el = this.$element - , data = $el.data() - , val = $el.is('input') ? 'val' : 'html' - - state = state + 'Text' - data.resetText || $el.data('resetText', $el[val]()) - - $el[val](data[state] || this.options[state]) - - // push to event loop to allow forms to submit - setTimeout(function () { - state == 'loadingText' ? - $el.addClass(d).attr(d, d) : - $el.removeClass(d).removeAttr(d) - }, 0) - } - - Button.prototype.toggle = function () { - var $parent = this.$element.parent('[data-toggle="buttons-radio"]') - - $parent && $parent - .find('.active') - .removeClass('active') - - this.$element.toggleClass('active') - } - - - /* BUTTON PLUGIN DEFINITION - * ======================== */ - - $.fn.button = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('button') - , options = typeof option == 'object' && option - if (!data) $this.data('button', (data = new Button(this, options))) - if (option == 'toggle') data.toggle() - else if (option) data.setState(option) - }) - } - - $.fn.button.defaults = { - loadingText: 'loading...' - } - - $.fn.button.Constructor = Button - - - /* BUTTON DATA-API - * =============== */ - - $(function () { - $('body').on('click.button.data-api', '[data-toggle^=button]', function ( e ) { - var $btn = $(e.target) - if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn') - $btn.button('toggle') - }) - }) - -}(window.jQuery);/* ========================================================== - * bootstrap-carousel.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#carousel - * ========================================================== - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================== */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* CAROUSEL CLASS DEFINITION - * ========================= */ - - var Carousel = function (element, options) { - this.$element = $(element) - this.options = options - this.options.slide && this.slide(this.options.slide) - this.options.pause == 'hover' && this.$element - .on('mouseenter', $.proxy(this.pause, this)) - .on('mouseleave', $.proxy(this.cycle, this)) - } - - Carousel.prototype = { - - cycle: function (e) { - if (!e) this.paused = false - this.options.interval - && !this.paused - && (this.interval = setInterval($.proxy(this.next, this), this.options.interval)) - return this - } - - , to: function (pos) { - var $active = this.$element.find('.active') - , children = $active.parent().children() - , activePos = children.index($active) - , that = this - - if (pos > (children.length - 1) || pos < 0) return - - if (this.sliding) { - return this.$element.one('slid', function () { - that.to(pos) - }) - } - - if (activePos == pos) { - return this.pause().cycle() - } - - return this.slide(pos > activePos ? 'next' : 'prev', $(children[pos])) - } - - , pause: function (e) { - if (!e) this.paused = true - clearInterval(this.interval) - this.interval = null - return this - } - - , next: function () { - if (this.sliding) return - return this.slide('next') - } - - , prev: function () { - if (this.sliding) return - return this.slide('prev') - } - - , slide: function (type, next) { - var $active = this.$element.find('.active') - , $next = next || $active[type]() - , isCycling = this.interval - , direction = type == 'next' ? 'left' : 'right' - , fallback = type == 'next' ? 'first' : 'last' - , that = this - , e = $.Event('slide') - - this.sliding = true - - isCycling && this.pause() - - $next = $next.length ? $next : this.$element.find('.item')[fallback]() - - if ($next.hasClass('active')) return - - if ($.support.transition && this.$element.hasClass('slide')) { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $next.addClass(type) - $next[0].offsetWidth // force reflow - $active.addClass(direction) - $next.addClass(direction) - this.$element.one($.support.transition.end, function () { - $next.removeClass([type, direction].join(' ')).addClass('active') - $active.removeClass(['active', direction].join(' ')) - that.sliding = false - setTimeout(function () { that.$element.trigger('slid') }, 0) - }) - } else { - this.$element.trigger(e) - if (e.isDefaultPrevented()) return - $active.removeClass('active') - $next.addClass('active') - this.sliding = false - this.$element.trigger('slid') - } - - isCycling && this.cycle() - - return this - } - - } - - - /* CAROUSEL PLUGIN DEFINITION - * ========================== */ - - $.fn.carousel = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('carousel') - , options = $.extend({}, $.fn.carousel.defaults, typeof option == 'object' && option) - if (!data) $this.data('carousel', (data = new Carousel(this, options))) - if (typeof option == 'number') data.to(option) - else if (typeof option == 'string' || (option = options.slide)) data[option]() - else if (options.interval) data.cycle() - }) - } - - $.fn.carousel.defaults = { - interval: 5000 - , pause: 'hover' - } - - $.fn.carousel.Constructor = Carousel - - - /* CAROUSEL DATA-API - * ================= */ - - $(function () { - $('body').on('click.carousel.data-api', '[data-slide]', function ( e ) { - var $this = $(this), href - , $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7 - , options = !$target.data('modal') && $.extend({}, $target.data(), $this.data()) - $target.carousel(options) - e.preventDefault() - }) - }) - -}(window.jQuery);/* ============================================================= - * bootstrap-collapse.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#collapse - * ============================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* COLLAPSE PUBLIC CLASS DEFINITION - * ================================ */ - - var Collapse = function (element, options) { - this.$element = $(element) - this.options = $.extend({}, $.fn.collapse.defaults, options) - - if (this.options.parent) { - this.$parent = $(this.options.parent) - } - - this.options.toggle && this.toggle() - } - - Collapse.prototype = { - - constructor: Collapse - - , dimension: function () { - var hasWidth = this.$element.hasClass('width') - return hasWidth ? 'width' : 'height' - } - - , show: function () { - var dimension - , scroll - , actives - , hasData - - if (this.transitioning) return - - dimension = this.dimension() - scroll = $.camelCase(['scroll', dimension].join('-')) - actives = this.$parent && this.$parent.find('> .accordion-group > .in') - - if (actives && actives.length) { - hasData = actives.data('collapse') - if (hasData && hasData.transitioning) return - actives.collapse('hide') - hasData || actives.data('collapse', null) - } - - this.$element[dimension](0) - this.transition('addClass', $.Event('show'), 'shown') - this.$element[dimension](this.$element[0][scroll]) - } - - , hide: function () { - var dimension - if (this.transitioning) return - dimension = this.dimension() - this.reset(this.$element[dimension]()) - this.transition('removeClass', $.Event('hide'), 'hidden') - this.$element[dimension](0) - } - - , reset: function (size) { - var dimension = this.dimension() - - this.$element - .removeClass('collapse') - [dimension](size || 'auto') - [0].offsetWidth - - this.$element[size !== null ? 'addClass' : 'removeClass']('collapse') - - return this - } - - , transition: function (method, startEvent, completeEvent) { - var that = this - , complete = function () { - if (startEvent.type == 'show') that.reset() - that.transitioning = 0 - that.$element.trigger(completeEvent) - } - - this.$element.trigger(startEvent) - - if (startEvent.isDefaultPrevented()) return - - this.transitioning = 1 - - this.$element[method]('in') - - $.support.transition && this.$element.hasClass('collapse') ? - this.$element.one($.support.transition.end, complete) : - complete() - } - - , toggle: function () { - this[this.$element.hasClass('in') ? 'hide' : 'show']() - } - - } - - - /* COLLAPSIBLE PLUGIN DEFINITION - * ============================== */ - - $.fn.collapse = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('collapse') - , options = typeof option == 'object' && option - if (!data) $this.data('collapse', (data = new Collapse(this, options))) - if (typeof option == 'string') data[option]() - }) - } - - $.fn.collapse.defaults = { - toggle: true - } - - $.fn.collapse.Constructor = Collapse - - - /* COLLAPSIBLE DATA-API - * ==================== */ - - $(function () { - $('body').on('click.collapse.data-api', '[data-toggle=collapse]', function ( e ) { - var $this = $(this), href - , target = $this.attr('data-target') - || e.preventDefault() - || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7 - , option = $(target).data('collapse') ? 'toggle' : $this.data() - $(target).collapse(option) - }) - }) - -}(window.jQuery);/* ============================================================ - * bootstrap-dropdown.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#dropdowns - * ============================================================ - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================================================ */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* DROPDOWN CLASS DEFINITION - * ========================= */ - - var toggle = '[data-toggle="dropdown"]' - , Dropdown = function (element) { - var $el = $(element).on('click.dropdown.data-api', this.toggle) - $('html').on('click.dropdown.data-api', function () { - $el.parent().removeClass('open') - }) - } - - Dropdown.prototype = { - - constructor: Dropdown - - , toggle: function (e) { - var $this = $(this) - , $parent - , selector - , isActive - - if ($this.is('.disabled, :disabled')) return - - selector = $this.attr('data-target') - - if (!selector) { - selector = $this.attr('href') - selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7 - } - - $parent = $(selector) - $parent.length || ($parent = $this.parent()) - - isActive = $parent.hasClass('open') - - clearMenus() - - if (!isActive) $parent.toggleClass('open') - - return false - } - - } - - function clearMenus() { - $(toggle).parent().removeClass('open') - } - - - /* DROPDOWN PLUGIN DEFINITION - * ========================== */ - - $.fn.dropdown = function (option) { - return this.each(function () { - var $this = $(this) - , data = $this.data('dropdown') - if (!data) $this.data('dropdown', (data = new Dropdown(this))) - if (typeof option == 'string') data[option].call($this) - }) - } - - $.fn.dropdown.Constructor = Dropdown - - - /* APPLY TO STANDARD DROPDOWN ELEMENTS - * =================================== */ - - $(function () { - $('html').on('click.dropdown.data-api', clearMenus) - $('body') - .on('click.dropdown', '.dropdown form', function (e) { e.stopPropagation() }) - .on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle) - }) - -}(window.jQuery);/* ========================================================= - * bootstrap-modal.js v2.0.4 - * http://twitter.github.com/bootstrap/javascript.html#modals - * ========================================================= - * Copyright 2012 Twitter, Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ========================================================= */ - - -!function ($) { - - "use strict"; // jshint ;_; - - - /* MODAL CLASS DEFINITION - * ====================== */ - - var Modal = function (content, options) { - this.options = options - this.$element = $(content) - .delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this)) - } - - Modal.prototype = { - - constructor: Modal - - , toggle: function () { - return this[!this.isShown ? 'show' : 'hide']() - } - - , show: function () { - var that = this - , e = $.Event('show') - - this.$element.trigger(e) - - if (this.isShown || e.isDefaultPrevented()) return - - $('body').addClass('modal-open') - - this.isShown = true - - escape.call(this) - backdrop.call(this, function () { - var transition = $.support.transition && that.$element.hasClass('fade') - - if (!that.$element.parent().length) { - that.$element.appendTo(document.body) //don't move modals dom position - } - - that.$element - .show() - - if (transition) { - that.$element[0].offsetWidth // force reflow - } - - that.$element.addClass('in') - - transition ? - that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) : - that.$element.trigger('shown') - - }) - } - - , hide: function (e) { - e && e.preventDefault() - - var that = this - - e = $.Event('hide') - - this.$element.trigger(e) - - if (!this.isShown || e.isDefaultPrevented()) return - - this.isShown = false - - $('body').removeClass('modal-open') - - escape.call(this) - - this.$element.removeClass('in') - - $.support.transition && this.$element.hasClass('fade') ? - hideWithTransition.call(this) : - hideModal.call(this) - } - - } - - - /* MODAL PRIVATE METHODS - * ===================== */ - - function hideWithTransition() { - var that = this - , timeout = setTimeout(function () { - that.$element.off($.support.transition.end) - hideModal.call(that) - }, 500) - - this.$element.one($.support.transition.end, function () { - clearTimeout(timeout) - hideModal.call(that) - }) - } - - function hideModal(that) { - this.$element - .hide() - .trigger('hidden') - - backdrop.call(this) - } - - function backdrop(callback) { - var that = this - , animate = this.$element.hasClass('fade') ? 'fade' : '' - - if (this.isShown && this.options.backdrop) { - var doAnimate = $.support.transition && animate - - this.$backdrop = $('