diff --git a/web/public/css/main.css b/web/public/css/main.css index 09a71dd..dab74de 100644 --- a/web/public/css/main.css +++ b/web/public/css/main.css @@ -20,7 +20,6 @@ html, body { END OF COMMON ******************/ - /***************** SPINNER ******************/ @@ -487,4 +486,56 @@ END OF REPO && VER /***************** END OF POPUP +******************/ + +/***************** + GRAPH +******************/ +.graph svg { + font-size: 10px; + margin: 5px 20px; +} + +.graph .line { + fill: none; + stroke-width: 1px; +} + +.graph .axis path, +.graph .axis line { + fill: none; + stroke: #999999; + shape-rendering: crispEdges; +} + +.graph .axis text { + fill: #999999 +} + +.graph ul, .graph ul li { + list-style: none; + padding: 0; + margin: 0; +} + +.graph ul { + position: absolute; + right: 0; + top: 0; +} + +.graph ul li { + height: 18px; + line-height: 18px; + list-style-type: square; +} + +.graph ul li span { + width: 10px; + height: 5px; + display: block; +} + +/***************** + END OF GRAPH ******************/ \ No newline at end of file diff --git a/web/public/js/bootstrap.min.js b/web/public/js/bootstrap.min.js index ac11e59..ab7ad14 100755 --- a/web/public/js/bootstrap.min.js +++ b/web/public/js/bootstrap.min.js @@ -1,765 +1,27 @@ -/*! - * Bootstrap v3.3.0 (http://getbootstrap.com) - * Copyright 2011-2014 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -/*! - * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=96424a68f1fcf5ec132f) - * Config saved to config.json and https://gist.github.com/96424a68f1fcf5ec132f - */ -if ("undefined" == typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery"); -+function(t){ - var e = t.fn.jquery.split(" ")[0].split("."); - if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher") -}(jQuery), +function(t){ - "use strict"; - function e(e){ - return this.each(function(){ - var i = t(this), s = i.data("bs.alert"); - s || i.data("bs.alert", s = new o(this)), "string" == typeof e && s[e].call(i) - }) - } - - var i = '[data-dismiss="alert"]', o = function(e){ - t(e).on("click", i, this.close) - }; - o.VERSION = "3.3.0", o.TRANSITION_DURATION = 150, o.prototype.close = function(e){ - function i(){ - r.detach().trigger("closed.bs.alert").remove() - } - - var s = t(this), n = s.attr("data-target"); - n || (n = s.attr("href"), n = n && n.replace(/.*(?=#[^\s]*$)/, "")); - var r = t(n); - e && e.preventDefault(), r.length || (r = s.closest(".alert")), r.trigger(e = t.Event("close.bs.alert")), e.isDefaultPrevented() || (r.removeClass("in"), t.support.transition && r.hasClass("fade") ? r.one("bsTransitionEnd", i).emulateTransitionEnd(o.TRANSITION_DURATION) : i()) - }; - var s = t.fn.alert; - t.fn.alert = e, t.fn.alert.Constructor = o, t.fn.alert.noConflict = function(){ - return t.fn.alert = s, this - }, t(document).on("click.bs.alert.data-api", i, o.prototype.close) -}(jQuery), +function(t){ - "use strict"; - function e(e){ - return this.each(function(){ - var o = t(this), s = o.data("bs.button"), n = "object" == typeof e && e; - s || o.data("bs.button", s = new i(this, n)), "toggle" == e ? s.toggle() : e && s.setState(e) - }) - } - - var i = function(e, o){ - this.$element = t(e), this.options = t.extend({}, i.DEFAULTS, o), this.isLoading = !1 - }; - i.VERSION = "3.3.0", i.DEFAULTS = {loadingText: "loading..."}, i.prototype.setState = function(e){ - var i = "disabled", o = this.$element, s = o.is("input") ? "val" : "html", n = o.data(); - e += "Text", null == n.resetText && o.data("resetText", o[s]()), setTimeout(t.proxy(function(){ - o[s](null == n[e] ? this.options[e] : n[e]), "loadingText" == e ? (this.isLoading = !0, o.addClass(i).attr(i, i)) : this.isLoading && (this.isLoading = !1, o.removeClass(i).removeAttr(i)) - }, this), 0) - }, i.prototype.toggle = function(){ - var t = !0, e = this.$element.closest('[data-toggle="buttons"]'); - if (e.length) { - var i = this.$element.find("input"); - "radio" == i.prop("type") && (i.prop("checked") && this.$element.hasClass("active") ? t = !1 : e.find(".active").removeClass("active")), t && i.prop("checked", !this.$element.hasClass("active")).trigger("change") - } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")); - t && this.$element.toggleClass("active") - }; - var o = t.fn.button; - t.fn.button = e, t.fn.button.Constructor = i, t.fn.button.noConflict = function(){ - return t.fn.button = o, this - }, t(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function(i){ - var o = t(i.target); - o.hasClass("btn") || (o = o.closest(".btn")), e.call(o, "toggle"), i.preventDefault() - }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function(e){ - t(e.target).closest(".btn").toggleClass("focus", "focus" == e.type) - }) -}(jQuery), +function(t){ - "use strict"; - function e(e){ - return this.each(function(){ - var o = t(this), s = o.data("bs.carousel"), n = t.extend({}, i.DEFAULTS, o.data(), "object" == typeof e && e), r = "string" == typeof e ? e : n.slide; - s || o.data("bs.carousel", s = new i(this, n)), "number" == typeof e ? s.to(e) : r ? s[r]() : n.interval && s.pause().cycle() - }) - } - - var i = function(e, i){ - this.$element = t(e), this.$indicators = this.$element.find(".carousel-indicators"), this.options = i, this.paused = this.sliding = this.interval = this.$active = this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", t.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart"in document.documentElement) && this.$element.on("mouseenter.bs.carousel", t.proxy(this.pause, this)).on("mouseleave.bs.carousel", t.proxy(this.cycle, this)) - }; - i.VERSION = "3.3.0", i.TRANSITION_DURATION = 600, i.DEFAULTS = { - interval: 5e3, - pause : "hover", - wrap : !0, - keyboard: !0 - }, i.prototype.keydown = function(t){ - switch (t.which) { - case 37: - this.prev(); - break; - case 39: - this.next(); - break; - default: - return - } - t.preventDefault() - }, i.prototype.cycle = function(e){ - return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(t.proxy(this.next, this), this.options.interval)), this - }, i.prototype.getItemIndex = function(t){ - return this.$items = t.parent().children(".item"), this.$items.index(t || this.$active) - }, i.prototype.getItemForDirection = function(t, e){ - var i = "prev" == t ? -1 : 1, o = this.getItemIndex(e), s = (o + i) % this.$items.length; - return this.$items.eq(s) - }, i.prototype.to = function(t){ - var e = this, i = this.getItemIndex(this.$active = this.$element.find(".item.active")); - return t > this.$items.length - 1 || 0 > t ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function(){ - e.to(t) - }) : i == t ? this.pause().cycle() : this.slide(t > i ? "next" : "prev", this.$items.eq(t)) - }, i.prototype.pause = function(e){ - return e || (this.paused = !0), this.$element.find(".next, .prev").length && t.support.transition && (this.$element.trigger(t.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this - }, i.prototype.next = function(){ - return this.sliding ? void 0 : this.slide("next") - }, i.prototype.prev = function(){ - return this.sliding ? void 0 : this.slide("prev") - }, i.prototype.slide = function(e, o){ - var s = this.$element.find(".item.active"), n = o || this.getItemForDirection(e, s), r = this.interval, a = "next" == e ? "left" : "right", l = "next" == e ? "first" : "last", h = this; - if (!n.length) { - if (!this.options.wrap)return; - n = this.$element.find(".item")[l]() - } - if (n.hasClass("active"))return this.sliding = !1; - var d = n[0], p = t.Event("slide.bs.carousel", {relatedTarget: d, direction: a}); - if (this.$element.trigger(p), !p.isDefaultPrevented()) { - if (this.sliding = !0, r && this.pause(), this.$indicators.length) { - this.$indicators.find(".active").removeClass("active"); - var c = t(this.$indicators.children()[this.getItemIndex(n)]); - c && c.addClass("active") - } - var f = t.Event("slid.bs.carousel", {relatedTarget: d, direction: a}); - return t.support.transition && this.$element.hasClass("slide") ? (n.addClass(e), n[0].offsetWidth, s.addClass(a), n.addClass(a), s.one("bsTransitionEnd", function(){ - n.removeClass([e, a].join(" ")).addClass("active"), s.removeClass(["active", a].join(" ")), h.sliding = !1, setTimeout(function(){ - h.$element.trigger(f) - }, 0) - }).emulateTransitionEnd(i.TRANSITION_DURATION)) : (s.removeClass("active"), n.addClass("active"), this.sliding = !1, this.$element.trigger(f)), r && this.cycle(), this - } - }; - var o = t.fn.carousel; - t.fn.carousel = e, t.fn.carousel.Constructor = i, t.fn.carousel.noConflict = function(){ - return t.fn.carousel = o, this - }; - var s = function(i){ - var o, s = t(this), n = t(s.attr("data-target") || (o = s.attr("href")) && o.replace(/.*(?=#[^\s]+$)/, "")); - if (n.hasClass("carousel")) { - var r = t.extend({}, n.data(), s.data()), a = s.attr("data-slide-to"); - a && (r.interval = !1), e.call(n, r), a && n.data("bs.carousel").to(a), i.preventDefault() - } - }; - t(document).on("click.bs.carousel.data-api", "[data-slide]", s).on("click.bs.carousel.data-api", "[data-slide-to]", s), t(window).on("load", function(){ - t('[data-ride="carousel"]').each(function(){ - var i = t(this); - e.call(i, i.data()) - }) - }) -}(jQuery), +function(t){ - "use strict"; - function e(e){ - e && 3 === e.which || (t(s).remove(), t(n).each(function(){ - var o = t(this), s = i(o), n = {relatedTarget: this}; - s.hasClass("open") && (s.trigger(e = t.Event("hide.bs.dropdown", n)), e.isDefaultPrevented() || (o.attr("aria-expanded", "false"), s.removeClass("open").trigger("hidden.bs.dropdown", n))) - })) - } - - function i(e){ - var i = e.attr("data-target"); - i || (i = e.attr("href"), i = i && /#[A-Za-z]/.test(i) && i.replace(/.*(?=#[^\s]*$)/, "")); - var o = i && t(i); - return o && o.length ? o : e.parent() - } - - function o(e){ - return this.each(function(){ - var i = t(this), o = i.data("bs.dropdown"); - o || i.data("bs.dropdown", o = new r(this)), "string" == typeof e && o[e].call(i) - }) - } - - var s = ".dropdown-backdrop", n = '[data-toggle="dropdown"]', r = function(e){ - t(e).on("click.bs.dropdown", this.toggle) - }; - r.VERSION = "3.3.0", r.prototype.toggle = function(o){ - var s = t(this); - if (!s.is(".disabled, :disabled")) { - var n = i(s), r = n.hasClass("open"); - if (e(), !r) { - "ontouchstart"in document.documentElement && !n.closest(".navbar-nav").length && t('