branding/css/spacewalk.less |
30
java/code/src/com/redhat/rhn/frontend/html/BaseTag.java |
19
java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java |
299 ++++-----
java/code/src/com/redhat/rhn/frontend/taglibs/list/AlphaBarHelper.java |
24
java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java |
7
java/code/src/com/redhat/rhn/frontend/taglibs/list/DataSetManipulator.java |
51 -
java/code/src/com/redhat/rhn/frontend/taglibs/list/ListCommand.java |
4
java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java |
332 +++++-----
java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java |
69 +-
java/code/src/com/redhat/rhn/frontend/taglibs/list/SpanTag.java |
2
java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/AddToSsmDecorator.java |
18
java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/PageSizeDecorator.java |
5
java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/SelectableDecorator.java |
12
java/code/src/com/redhat/rhn/frontend/taglibs/list/test/ListTagTest.java |
4
java/code/webapp/WEB-INF/decorators/layout_head.jsp |
5
java/code/webapp/WEB-INF/includes/footer.jsp |
2
java/code/webapp/WEB-INF/pages/common/fragments/yourrhn/inactiveSystems.jsp |
46 -
java/code/webapp/WEB-INF/pages/systems/details/virtualization/images/images.jsp |
1
java/code/webapp/WEB-INF/pages/yourrhn.jsp |
1
web/html/javascript/bootstrap.js |
6
web/html/javascript/jquery.js |
6
web/html/javascript/render.js |
10
web/html/javascript/spacewalk-essentials.js |
50 +
23 files changed, 548 insertions(+), 455 deletions(-)
New commits:
commit 5b3e0cdb65484bbc525feebe7d3ca03b52a68362
Author: Johannes Renner <jrenner(a)suse.de>
Date: Tue Oct 15 11:50:53 2013 +0200
This is loaded in the footer, loading it once should be enough
diff --git a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
index ce894e2..272e535 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
@@ -38,5 +38,4 @@
<script src="/rhn/dwr/interface/DWRItemSelector.js"></script>
<script src="/javascript/bootstrap.js"></script>
- <script src="/javascript/check_all.js"></script>
<script src="/javascript/spacewalk-essentials.js"></script>
commit 83b11e6221a56c6d0c176bb4e4c7e0334eee70af
Author: Johannes Renner <jrenner(a)suse.de>
Date: Tue Oct 15 11:35:57 2013 +0200
Move content of render.js into spacewalk-essentials.js
makeAjaxCallback() now depends on columnHeight(), so it would make sense
to put them in the same file. Makes the render.js file obsolete as well.
diff --git
a/java/code/webapp/WEB-INF/pages/systems/details/virtualization/images/images.jsp
b/java/code/webapp/WEB-INF/pages/systems/details/virtualization/images/images.jsp
index bbd179d..ca0377e 100644
--- a/java/code/webapp/WEB-INF/pages/systems/details/virtualization/images/images.jsp
+++ b/java/code/webapp/WEB-INF/pages/systems/details/virtualization/images/images.jsp
@@ -8,7 +8,6 @@
<head>
<script type="text/javascript"
src="/rhn/dwr/interface/ImagesRenderer.js"></script>
<script type="text/javascript"
src="/rhn/dwr/engine.js"></script>
- <script type="text/javascript"
src="/javascript/render.js"></script>
<script type="text/javascript"
src="/javascript/images.js"></script>
</head>
<body>
diff --git a/java/code/webapp/WEB-INF/pages/yourrhn.jsp
b/java/code/webapp/WEB-INF/pages/yourrhn.jsp
index aaa5557..2a689cb 100644
--- a/java/code/webapp/WEB-INF/pages/yourrhn.jsp
+++ b/java/code/webapp/WEB-INF/pages/yourrhn.jsp
@@ -32,7 +32,6 @@
<c:if test="${requestScope.systemGroupsWidget == 'y'}">
<script type="text/javascript"
src="/rhn/dwr/interface/SystemGroupsRenderer.js"></script>
</c:if>
-<script type="text/javascript"
src="/javascript/render.js"></script>
</head>
<body>
<rhn:toolbar base="h1" img="/img/rhn-icon-your_rhn.gif"
imgAlt="yourrhn.jsp.toolbar.img.alt"
diff --git a/web/html/javascript/render.js b/web/html/javascript/render.js
deleted file mode 100644
index 8083377..0000000
--- a/web/html/javascript/render.js
+++ /dev/null
@@ -1,11 +0,0 @@
-function makeAjaxCallback(divId, debug) {
- cb = function(text) {
- if (debug) {
- alert(text);
- }
- $('#' + divId).html(text);
- $('#' + divId).fadeIn();
- columnHeight();
- };
- return cb;
-}
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index bd8bc9e..e693ab0 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -47,3 +47,17 @@ function columnHeight() {
200);
//};
};
+
+// Render page fragments loaded via DWR
+function makeAjaxCallback(divId, debug) {
+ cb = function(text) {
+ if (debug) {
+ alert(text);
+ }
+ $('#' + divId).html(text);
+ $('#' + divId).fadeIn();
+ columnHeight();
+ };
+ return cb;
+}
+
commit 86c8a384621780868b4da487b7efd2e0eba1a9e1
Author: Johannes Renner <jrenner(a)suse.de>
Date: Tue Oct 15 11:09:03 2013 +0200
Move reference to spacewalk-essentials.js back to the head
diff --git a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
index 7d32c87..ce894e2 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
@@ -39,3 +39,4 @@
<script src="/javascript/bootstrap.js"></script>
<script src="/javascript/check_all.js"></script>
+ <script src="/javascript/spacewalk-essentials.js"></script>
diff --git a/java/code/webapp/WEB-INF/includes/footer.jsp
b/java/code/webapp/WEB-INF/includes/footer.jsp
index 4f3e9e1..e740d86 100644
--- a/java/code/webapp/WEB-INF/includes/footer.jsp
+++ b/java/code/webapp/WEB-INF/includes/footer.jsp
@@ -26,4 +26,3 @@
--%>
<!-- Javascript -->
<script src="/javascript/check_all.js"></script>
-<script src="/javascript/spacewalk-essentials.js"></script>
commit bb77794c0ee9b1fde7b377a4baf4967875ae735e
Author: Johannes Renner <jrenner(a)suse.de>
Date: Tue Oct 15 11:08:03 2013 +0200
Call columnHeight() whenever a fragment is rendered with DWR
diff --git a/web/html/javascript/render.js b/web/html/javascript/render.js
index e2502f7..8083377 100644
--- a/web/html/javascript/render.js
+++ b/web/html/javascript/render.js
@@ -5,6 +5,7 @@ function makeAjaxCallback(divId, debug) {
}
$('#' + divId).html(text);
$('#' + divId).fadeIn();
+ columnHeight();
};
return cb;
}
commit e1f14e83145c94bfe78ad5771e5fc447248822c4
Author: Johannes Renner <jrenner(a)suse.de>
Date: Tue Oct 15 11:01:20 2013 +0200
Call columnHeight() on the window load event instead of using timeout
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index fccf88d..bd8bc9e 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -22,12 +22,10 @@ $(document).on("ready", function(){
}
});
-setTimeout(function(){
- // taking the screen size and resizing the columns to keep the footer fixed to the
bottom
- // On page load
- $("section.col-md-10").css("padding-bottom", "");
- columnHeight();
-}, 700);
+// On window load
+$(window).load(function () {
+ columnHeight();
+});
// On window resize
$(window).resize( function () {
@@ -44,9 +42,8 @@ function columnHeight() {
var heightDoc = $(document).height();
// Column heights should equal the document height minus the header height and
footer height
var newHeight = heightDoc - 160 - sectionHeight + "px";
- console.log(sectionHeight + " " + newHeight + " " +
heightDoc);
$("section.col-md-10").animate({
"padding-bottom": newHeight},
200);
//};
-};
\ No newline at end of file
+};
commit 04a4eff3701b08cdec7b6a7ef8d2080f8397e9e6
Author: Cynthia Sanchez <csanchez(a)suse.com>
Date: Mon Oct 14 17:55:17 2013 +0200
timeout added to wait for all the elements to be loaded and detect the correct screen
size
diff --git a/branding/css/spacewalk.less b/branding/css/spacewalk.less
index 5dae3fe..a4f797b 100644
--- a/branding/css/spacewalk.less
+++ b/branding/css/spacewalk.less
@@ -34,10 +34,10 @@ footer{
}
aside.col-md-2{
background: #eeeeee;
-
border-right: 1px solid #d5d5d5;
height: auto;
min-height: 100%;
+ /* 100% height */
margin-bottom: -9999px;
padding-bottom: 9999px;
/* errasing the predefined paddings in the columns */
@@ -189,6 +189,9 @@ section.col-md-10{
padding-left:2em;
padding-right: 2em;
padding-bottom: 3em;
+ /* some animation */
+ transition: width 2s, height 2s, transform 2s;
+ -webkit-transition: width 2s, height 2s, -webkit-transform 2s;
}
section [class*=col-md]:first-child{
padding-left:0;
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index 157bb09..fccf88d 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -22,12 +22,12 @@ $(document).on("ready", function(){
}
});
-$(window).load(function(){
+setTimeout(function(){
// taking the screen size and resizing the columns to keep the footer fixed to the
bottom
// On page load
$("section.col-md-10").css("padding-bottom", "");
columnHeight();
-});
+}, 700);
// On window resize
$(window).resize( function () {
@@ -45,6 +45,8 @@ function columnHeight() {
// Column heights should equal the document height minus the header height and
footer height
var newHeight = heightDoc - 160 - sectionHeight + "px";
console.log(sectionHeight + " " + newHeight + " " +
heightDoc);
- $("section.col-md-10").css("padding-bottom", newHeight);
+ $("section.col-md-10").animate({
+ "padding-bottom": newHeight},
+ 200);
//};
};
\ No newline at end of file
commit ab6419fa6fde12921d8fcaf72739af154a96f1ce
Author: Johannes Renner <jrenner(a)suse.de>
Date: Mon Oct 14 17:29:20 2013 +0200
Include a static version of bootstrap.js (v3.0.0)
diff --git a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
index 2f5b52e..7d32c87 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
@@ -37,5 +37,5 @@
<script src="/rhn/dwr/util.js"></script>
<script src="/rhn/dwr/interface/DWRItemSelector.js"></script>
- <script
src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js&q...
+ <script src="/javascript/bootstrap.js"></script>
<script src="/javascript/check_all.js"></script>
diff --git a/web/html/javascript/bootstrap.js b/web/html/javascript/bootstrap.js
new file mode 100644
index 0000000..1765631
--- /dev/null
+++ b/web/html/javascript/bootstrap.js
@@ -0,0 +1,6 @@
+/**
+* bootstrap.js v3.0.0 by @fat and @mdo
+* Copyright 2013 Twitter Inc.
+*
http://www.apache.org/licenses/LICENSE-2.0
+*/
+if(!jQuery)throw new Error("Bootstrap requires jQuery");+function(a){"use
strict";function b(){var
a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd
otransitionend",transition:"transitionend"};for(var c in b)if(void
0!==a.style[c])return{end:b[c]}}a.fn.emulateTransitionEnd=function(b){var
c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var
e=function(){c||a(d).trigger(a.support.transition.end)};return
setTimeout(e,b),this},a(function(){a.support.transition=b()})}(window.jQuery),+function(a){"use
strict";var
b='[data-dismiss="alert"]',c=function(c){a(c).on("click",b,this.close)};c.prototype.close=function(b){function
c(){f.trigger("closed.bs.alert").remove()}var
d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var
f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b
.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one(a.support.transition.end,c).emulateTransitionEnd(150):c())};var
d=a.fn.alert;a.fn.alert=function(b){return this.each(function(){var
d=a(this),e=d.data("bs.alert");e||d.data("bs.alert",e=new
c(this)),"string"==typeof
b&&e[b].call(d)})},a.fn.alert.Constructor=c,a.fn.alert.noConflict=function(){return
a.fn.alert=d,this},a(document).on("click.bs.alert.data-api",b,c.prototype.close)}(window.jQuery),+function(a){"use
strict";var
b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d)};b.DEFAULTS={loadingText:"loading..."},b.prototype.setState=function(a){var
b="disabled",c=this.$element,d=c.is("input")?"val":"html",e=c.data();a+="Text",e.resetText||c.data("resetText",c[d]()),c[d](e[a]||this.options[a]),setTimeout(function(){"loadingText"==a?c.addClass(b).attr(b,b):c.removeClass(b).removeAttr(b)},0)},b.prototype.toggle=function(){var
a=this.$element.closest('[data-toggle="bu
ttons"]');if(a.length){var
b=this.$element.find("input").prop("checked",!this.$element.hasClass("active")).trigger("change");"radio"===b.prop("type")&&a.find(".active").removeClass("active")}this.$element.toggleClass("active")};var
c=a.fn.button;a.fn.button=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.button"),f="object"==typeof
c&&c;e||d.data("bs.button",e=new
b(this,f)),"toggle"==c?e.toggle():c&&e.setState(c)})},a.fn.button.Constructor=b,a.fn.button.noConflict=function(){return
a.fn.button=c,this},a(document).on("click.bs.button.data-api","[data-toggle^=button]",function(b){var
c=a(b.target);c.hasClass("btn")||(c=c.closest(".btn")),c.button("toggle"),b.preventDefault()})}(window.jQuery),+function(a){"use
strict";var
b=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter",a
.proxy(this.pause,this)).on("mouseleave",a.proxy(this.cycle,this))};b.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},b.prototype.cycle=function(b){return
b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},b.prototype.getActiveIndex=function(){return
this.$active=this.$element.find(".item.active"),this.$items=this.$active.parent().children(),this.$items.index(this.$active)},b.prototype.to=function(b){var
c=this,d=this.getActiveIndex();return b>this.$items.length-1||0>b?void
0:this.sliding?this.$element.one("slid",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},b.prototype.pause=function(b){return
b||(this.paused=!0),this.$element.find(".next,
.prev").length&&a.support.transition.end&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},b.pro
totype.next=function(){return this.sliding?void
0:this.slide("next")},b.prototype.prev=function(){return this.sliding?void
0:this.slide("prev")},b.prototype.slide=function(b,c){var
d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}this.sliding=!0,f&&this.pause();var
j=a.Event("slide.bs.carousel",{relatedTarget:e[0],direction:g});if(!e.hasClass("active")){if(this.$indicators.length&&(this.$indicators.find(".active").removeClass("active"),this.$element.one("slid",function(){var
b=a(i.$indicators.children()[i.getActiveIndex()]);b&&b.addClass("active")})),a.support.transition&&this.$element.hasClass("slide")){if(this.$element.trigger(j),j.isDefaultPrevented())return;e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one(a.support.transition.end,function(){e.removeClass([b,g].join("
")).addClass("active"),d.removeClass
(["active",g].join("
")),i.sliding=!1,setTimeout(function(){i.$element.trigger("slid")},0)}).emulateTransitionEnd(600)}else{if(this.$element.trigger(j),j.isDefaultPrevented())return;d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger("slid")}return
f&&this.cycle(),this}};var c=a.fn.carousel;a.fn.carousel=function(c){return
this.each(function(){var
d=a(this),e=d.data("bs.carousel"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof
c&&c),g="string"==typeof
c?c:f.slide;e||d.data("bs.carousel",e=new b(this,f)),"number"==typeof
c?e.to(c):g?e[g]():f.interval&&e.pause().cycle()})},a.fn.carousel.Constructor=b,a.fn.carousel.noConflict=function(){return
a.fn.carousel=c,this},a(document).on("click.bs.carousel.data-api","[data-slide],
[data-slide-to]",function(b){var
c,d=a(this),e=a(d.attr("data-target")||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"")),f=a.extend({},e.data(),d.data()),g=d.attr("data-slide-to");g&&(f.interval=!1),e.carousel(f),(g=d.att
r("data-slide-to"))&&e.data("bs.carousel").to(g),b.preventDefault()}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var
b=a(this);b.carousel(b.data())})})}(window.jQuery),+function(a){"use strict";var
b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};b.DEFAULTS={toggle:!0},b.prototype.dimension=function(){var
a=this.$element.hasClass("width");return
a?"width":"height"},b.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var
b=a.Event("show.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var
c=this.$parent&&this.$parent.find("> .panel >
.in");if(c&&c.length){var
d=c.data("bs.collapse");if(d&&d.transitioning)return;c.collapse("hide"),d||c.data("bs.collapse",null)}var
e=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[e](0),this.tr
ansitioning=1;var
f=function(){this.$element.removeClass("collapsing").addClass("in")[e]("auto"),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return
f.call(this);var
g=a.camelCase(["scroll",e].join("-"));this.$element.one(a.support.transition.end,a.proxy(f,this)).emulateTransitionEnd(350)[e](this.$element[0][g])}}},b.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var
b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var
c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var
d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return
a.support.transition?(this.$element[c](0).one(a.support.transition.end,a.proxy(d,this)).emulateTransitionEnd(350),void
0):d.call(this)}}},b.proto
type.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var
c=a.fn.collapse;a.fn.collapse=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.collapse"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof
c&&c);e||d.data("bs.collapse",e=new
b(this,f)),"string"==typeof
c&&e[c]()})},a.fn.collapse.Constructor=b,a.fn.collapse.noConflict=function(){return
a.fn.collapse=c,this},a(document).on("click.bs.collapse.data-api","[data-toggle=collapse]",function(b){var
c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.collapse"),h=g?"toggle":d.data(),i=d.attr("data-parent"),j=i&&a(i);g&&g.transitioning||(j&&j.find('[data-toggle=collapse][data-parent="'+i+'"]').not(d).addClass("collapsed"),d[f.hasClass("in")?"addClass":"removeClass"]("collapsed")),f.collapse(h)})}(window.jQuery),+function(a){"use
strict";function b(){a(d).remove(),a(e).each(function(b){var
d=c(a(this));d.hasClass(
"open")&&(d.trigger(b=a.Event("hide.bs.dropdown")),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown"))})}function
c(b){var
c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var
d=c&&a(c);return d&&d.length?d:b.parent()}var
d=".dropdown-backdrop",e="[data-toggle=dropdown]",f=function(b){a(b).on("click.bs.dropdown",this.toggle)};f.prototype.toggle=function(d){var
e=a(this);if(!e.is(".disabled, :disabled")){var
f=c(e),g=f.hasClass("open");if(b(),!g){if("ontouchstart"in
document.documentElement&&!f.closest(".navbar-nav").length&&a('<div
class="dropdown-backdrop"/>').insertAfter(a(this)).on("click",b),f.trigger(d=a.Event("show.bs.dropdown")),d.isDefaultPrevented())return;f.toggleClass("open").trigger("shown.bs.dropdown"),e.focus()}return!1}},f.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var
d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled,
:disabled")){var f=c(d),g=f.hasCl
ass("open");if(!g||g&&27==b.keyCode)return
27==b.which&&f.find(e).focus(),d.click();var h=a("[role=menu]
li:not(.divider):visible a",f);if(h.length){var
i=h.index(h.filter(":focus"));38==b.keyCode&&i>0&&i--,40==b.keyCode&&i<h.length-1&&i++,~i||(i=0),h.eq(i).focus()}}}};var
g=a.fn.dropdown;a.fn.dropdown=function(b){return this.each(function(){var
c=a(this),d=c.data("dropdown");d||c.data("dropdown",d=new
f(this)),"string"==typeof
b&&d[b].call(c)})},a.fn.dropdown.Constructor=f,a.fn.dropdown.noConflict=function(){return
a.fn.dropdown=g,this},a(document).on("click.bs.dropdown.data-api",b).on("click.bs.dropdown.data-api",".dropdown
form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",e,f.prototype.toggle).on("keydown.bs.dropdown.data-api",e+",
[role=menu]",f.prototype.keydown)}(window.jQuery),+function(a){"use
strict";var
b=function(b,c){this.options=c,this.$element=a(b),this.$backdrop=this.isShown=null,this.options.remote&&this.$element.load(this.options.remote
)};b.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},b.prototype.toggle=function(a){return
this[this.isShown?"hide":"show"](a)},b.prototype.show=function(b){var
c=this,d=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(d),this.isShown||d.isDefaultPrevented()||(this.isShown=!0,this.escape(),this.$element.on("click.dismiss.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.backdrop(function(){var
d=a.support.transition&&c.$element.hasClass("fade");c.$element.parent().length||c.$element.appendTo(document.body),c.$element.show(),d&&c.$element[0].offsetWidth,c.$element.addClass("in").attr("aria-hidden",!1),c.enforceFocus();var
e=a.Event("shown.bs.modal",{relatedTarget:b});d?c.$element.find(".modal-dialog").one(a.support.transition.end,function(){c.$element.focus().trigger(e)}).emulateTransitionEnd(300):c.$element.focus().trigger(e)}))},b.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDe
faultPrevented()&&(this.isShown=!1,this.escape(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").attr("aria-hidden",!0).off("click.dismiss.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one(a.support.transition.end,a.proxy(this.hideModal,this)).emulateTransitionEnd(300):this.hideModal())},b.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.focus()},this))},b.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keyup.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keyup.dismiss.bs.modal")},b.prototype.hideModal=function(){var
a=this;this.$element.hide(),this.backdrop(function(){a.removeBackdrop(),a.$element.trigger("hidden.bs.modal")})},b.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.re
move(),this.$backdrop=null},b.prototype.backdrop=function(b){var
c=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var
d=a.support.transition&&c;if(this.$backdrop=a('<div
class="modal-backdrop '+c+'"
/>').appendTo(document.body),this.$element.on("click.dismiss.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),d&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;d?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()}else!this.isShown&&this.$backdrop?(this.$backdrop.removeClass("in"),a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one(a.support.transition.end,b).emulateTransitionEnd(150):b()):b&&b()};var
c=a.fn.modal;a.fn.modal=function(c,d){return this.each(function(){var
e=a(this),f=e.data("bs.modal"),g=a.extend({},b.DEFAULTS,e.data(),"object"==typeof
c&&c);f||e.data(
"bs.modal",f=new b(this,g)),"string"==typeof
c?f[c](d):g.show&&f.show(d)})},a.fn.modal.Constructor=b,a.fn.modal.noConflict=function(){return
a.fn.modal=c,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(b){var
c=a(this),d=c.attr("href"),e=a(c.attr("data-target")||d&&d.replace(/.*(?=#[^\s]+$)/,"")),f=e.data("modal")?"toggle":a.extend({remote:!/#/.test(d)&&d},e.data(),c.data());b.preventDefault(),e.modal(f,this).one("hide",function(){c.is(":visible")&&c.focus()})}),a(document).on("show.bs.modal",".modal",function(){a(document.body).addClass("modal-open")}).on("hidden.bs.modal",".modal",function(){a(document.body).removeClass("modal-open")})}(window.jQuery),+function(a){"use
strict";var
b=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};b.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div
class="tooltip"><div
class="tooltip-arrow"></div><div class="tooltip-in
ner"></div></div>',trigger:"hover
focus",title:"",delay:0,html:!1,container:!1},b.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d);for(var
e=this.options.trigger.split(" "),f=e.length;f--;){var
g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else
if("manual"!=g){var
h="hover"==g?"mouseenter":"focus",i="hover"==g?"mouseleave":"blur";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},b.prototype.getDefaults=function(){return
b.DEFAULTS},b.prototype.getOptions=function(b){return
b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof
b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},b.prototype.getDelegateOptions=fun
ction(){var b={},c=this.getDefaults();return
this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},b.prototype.enter=function(b){var
c=b instanceof
this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return
clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show),void
0):c.show()},b.prototype.leave=function(b){var c=b instanceof
this.constructor?b:a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type);return
clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide),void
0):c.hide()},b.prototype.show=function(){var
b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){if(this.$element.trigger(b),b.isDefaultPrevented())return;var
c=this.tip();this.setContent(),th
is.options.animation&&c.addClass("fade");var
d="function"==typeof
this.options.placement?this.options.placement.call(this,c[0],this.$element[0]):this.options.placement,e=/\s?auto?\s?/i,f=e.test(d);f&&(d=d.replace(e,"")||"top"),c.detach().css({top:0,left:0,display:"block"}).addClass(d),this.options.container?c.appendTo(this.options.container):c.insertAfter(this.$element);var
g=this.getPosition(),h=c[0].offsetWidth,i=c[0].offsetHeight;if(f){var
j=this.$element.parent(),k=d,l=document.documentElement.scrollTop||document.body.scrollTop,m="body"==this.options.container?window.innerWidth:j.outerWidth(),n="body"==this.options.container?window.innerHeight:j.outerHeight(),o="body"==this.options.container?0:j.offset().left;d="bottom"==d&&g.top+g.height+i-l>n?"top":"top"==d&&g.top-l-i<0?"bottom":"right"==d&&g.right+h>m?"left":"left"==d&&g.left-h<o?"right":d,c.removeClass(k).addClass(d)}var
p=this.getCalculatedOffset(d,g,h,i);this.applyPlacement(p,d),this.$element.trigger("shown.bs."+th
is.type)}},b.prototype.applyPlacement=function(a,b){var
c,d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),a.top=a.top+g,a.left=a.left+h,d.offset(a).addClass("in");var
i=d[0].offsetWidth,j=d[0].offsetHeight;if("top"==b&&j!=f&&(c=!0,a.top=a.top+f-j),/bottom|top/.test(b)){var
k=0;a.left<0&&(k=-2*a.left,a.left=0,d.offset(a),i=d[0].offsetWidth,j=d[0].offsetHeight),this.replaceArrow(k-e+i,i,"left")}else
this.replaceArrow(j-f,j,"top");c&&d.offset(a)},b.prototype.replaceArrow=function(a,b,c){this.arrow().css(c,a?50*(1-a/b)+"%":"")},b.prototype.setContent=function(){var
a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade
in top bottom left right")},b.prototype.hide=function(){function
b(){"in"!=c.hoverState&&d.detach()}var
c=this,d=this.tip(),e=a.Event("hide.bs."+this.type);return
this.$element.trigger(e),e.isDefaultPre
vented()?void
0:(d.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d.one(a.support.transition.end,b).emulateTransitionEnd(150):b(),this.$element.trigger("hidden.bs."+this.type),this)},b.prototype.fixTitle=function(){var
a=this.$element;(a.attr("title")||"string"!=typeof
a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},b.prototype.hasContent=function(){return
this.getTitle()},b.prototype.getPosition=function(){var b=this.$element[0];return
a.extend({},"function"==typeof
b.getBoundingClientRect?b.getBoundingClientRect():{width:b.offsetWidth,height:b.offsetHeight},this.$element.offset())},b.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},b.prototype.getTitle=function(){var
a,b=this.$element,c=this.op
tions;return a=b.attr("data-original-title")||("function"==typeof
c.title?c.title.call(b[0]):c.title)},b.prototype.tip=function(){return
this.$tip=this.$tip||a(this.options.template)},b.prototype.arrow=function(){return
this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},b.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},b.prototype.enable=function(){this.enabled=!0},b.prototype.disable=function(){this.enabled=!1},b.prototype.toggleEnabled=function(){this.enabled=!this.enabled},b.prototype.toggle=function(b){var
c=b?a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs."+this.type):this;c.tip().hasClass("in")?c.leave(c):c.enter(c)},b.prototype.destroy=function(){this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var
c=a.fn.tooltip;a.fn.tooltip=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.tooltip"),f="object"==typeof
c&&c;e||d.data("bs.tooltip",e=new b(thi
s,f)),"string"==typeof
c&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.noConflict=function(){return
a.fn.tooltip=c,this}}(window.jQuery),+function(a){"use strict";var
b=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new
Error("Popover requires
tooltip.js");b.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div
class="popover"><div class="arrow"></div><h3
class="popover-title"></h3><div
class="popover-content"></div></div>'}),b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),b.prototype.constructor=b,b.prototype.getDefaults=function(){return
b.DEFAULTS},b.prototype.setContent=function(){var
a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content")[this.options.html?"html":"text"](c),a.removeClass("fade
top bottom left right
in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},b.prototyp
e.hasContent=function(){return
this.getTitle()||this.getContent()},b.prototype.getContent=function(){var
a=this.$element,b=this.options;return
a.attr("data-content")||("function"==typeof
b.content?b.content.call(a[0]):b.content)},b.prototype.arrow=function(){return
this.$arrow=this.$arrow||this.tip().find(".arrow")},b.prototype.tip=function(){return
this.$tip||(this.$tip=a(this.options.template)),this.$tip};var
c=a.fn.popover;a.fn.popover=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.popover"),f="object"==typeof
c&&c;e||d.data("bs.popover",e=new b(this,f)),"string"==typeof
c&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.noConflict=function(){return
a.fn.popover=c,this}}(window.jQuery),+function(a){"use strict";function
b(c,d){var
e,f=a.proxy(this.process,this);this.$element=a(c).is("body")?a(window):a(c),this.$body=a("body"),this.$scrollElement=this.$element.on("scroll.bs.scroll-spy.data-api",f),this.options=a.extend({},b.DEFAULTS,d),this.selector=(
this.options.target||(e=a(c).attr("href"))&&e.replace(/.*(?=#[^\s]+$)/,"")||"")+"
.nav li >
a",this.offsets=a([]),this.targets=a([]),this.activeTarget=null,this.refresh(),this.process()}b.DEFAULTS={offset:10},b.prototype.refresh=function(){var
b=this.$element[0]==window?"offset":"position";this.offsets=a([]),this.targets=a([]);var
c=this;this.$body.find(this.selector).map(function(){var
d=a(this),e=d.data("target")||d.attr("href"),f=/^#\w/.test(e)&&a(e);return
f&&f.length&&[[f[b]().top+(!a.isWindow(c.$scrollElement.get(0))&&c.$scrollElement.scrollTop()),e]]||null}).sort(function(a,b){return
a[0]-b[0]}).each(function(){c.offsets.push(this[0]),c.targets.push(this[1])})},b.prototype.process=function(){var
a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.$scrollElement[0].scrollHeight||this.$body[0].scrollHeight,d=c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(b>=d)return
g!=(a=f.last()[0])&&this.activate(a);for(a=e.length;a--;)
g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parents(".active").removeClass("active");var
c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate")};var
c=a.fn.scrollspy;a.fn.scrollspy=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof
c&&c;e||d.data("bs.scrollspy",e=new
b(this,f)),"string"==typeof
c&&e[c]()})},a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return
a.fn.scrollspy=c,this},a(window).on("load",function(){a('[data-spy="scroll"]').each(function(){var
b=a(this);b.scrollspy(b.data())})})}(window.jQuery),+function(a){"use
strict";var b=function(b){this.element=a(b)};b.prototype.show=function(){var
b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.attr("da
ta-target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var
e=c.find(".active:last
a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var
g=a(d);this.activate(b.parent("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},b.prototype.activate=function(b,c,d){function
e(){f.removeClass("active").find("> .dropdown-menu >
.active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var
f=c.find(">
.active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one(a.support.transition.end,e).emulateTransitionEnd(150):e(),f.removeClass("in")};var
c=a.fn.tab;a.fn.tab=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new
b(this)),"string"==typeof c&&e[c]()})},a.fn.tab.Constru
ctor=b,a.fn.tab.noConflict=function(){return
a.fn.tab=c,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"],
[data-toggle="pill"]',function(b){b.preventDefault(),a(this).tab("show")})}(window.jQuery),+function(a){"use
strict";var
b=function(c,d){this.options=a.extend({},b.DEFAULTS,d),this.$window=a(window).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(c),this.affixed=this.unpin=null,this.checkPosition()};b.RESET="affix
affix-top
affix-bottom",b.DEFAULTS={offset:0},b.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},b.prototype.checkPosition=function(){if(this.$element.is(":visible")){var
c=a(document).height(),d=this.$window.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof
f&&(h=g=f),"function"==typeof
g&&(g=f.top()),"function"==typeof h&&(h=f.bottom());var i=nul
l!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=c-h?"bottom":null!=g&&g>=d?"top":!1;this.affixed!==i&&(this.unpin&&this.$element.css("top",""),this.affixed=i,this.unpin="bottom"==i?e.top-d:null,this.$element.removeClass(b.RESET).addClass("affix"+(i?"-"+i:"")),"bottom"==i&&this.$element.offset({top:document.body.offsetHeight-h-this.$element.height()}))}};var
c=a.fn.affix;a.fn.affix=function(c){return this.each(function(){var
d=a(this),e=d.data("bs.affix"),f="object"==typeof
c&&c;e||d.data("bs.affix",e=new b(this,f)),"string"==typeof
c&&e[c]()})},a.fn.affix.Constructor=b,a.fn.affix.noConflict=function(){return
a.fn.affix=c,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var
b=a(this),c=b.data();c.offset=c.offset||{},c.offsetBottom&&(c.offset.bottom=c.offsetBottom),c.offsetTop&&(c.offset.top=c.offsetTop),b.affix(c)})})}(window.jQuery);
\ No newline at end of file
commit 9f581f2325e63e803e4d4f75c785578af38f2bec
Author: Johannes Renner <jrenner(a)suse.de>
Date: Mon Oct 14 17:21:23 2013 +0200
Remove obsolete type="text/javascript"
diff --git a/java/code/webapp/WEB-INF/includes/footer.jsp
b/java/code/webapp/WEB-INF/includes/footer.jsp
index 45e9ec0..4f3e9e1 100644
--- a/java/code/webapp/WEB-INF/includes/footer.jsp
+++ b/java/code/webapp/WEB-INF/includes/footer.jsp
@@ -25,5 +25,5 @@
the form elements we may need have been rendered.
--%>
<!-- Javascript -->
-<script src="/javascript/check_all.js"
type="text/javascript"></script>
+<script src="/javascript/check_all.js"></script>
<script src="/javascript/spacewalk-essentials.js"></script>
commit 7595a2914ba5621bb08e5c3a3f8d0715549f6adf
Author: Cynthia Sanchez <csanchez(a)suse.com>
Date: Mon Oct 14 17:20:03 2013 +0200
changes to fix aside section 100% height
diff --git a/branding/css/spacewalk.less b/branding/css/spacewalk.less
index a7008e5..5dae3fe 100644
--- a/branding/css/spacewalk.less
+++ b/branding/css/spacewalk.less
@@ -34,14 +34,15 @@ footer{
}
aside.col-md-2{
background: #eeeeee;
- /* errasing the predefined paddings in the columns */
- padding-right: 0;
- padding-left: 0;
+
border-right: 1px solid #d5d5d5;
height: auto;
min-height: 100%;
margin-bottom: -9999px;
padding-bottom: 9999px;
+ /* errasing the predefined paddings in the columns */
+ padding-right: 0;
+ padding-left: 0;
}
section{
/* for the body div to make both columns the same size*/
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index 82d0078..157bb09 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -1,4 +1,5 @@
$(document).on("ready", function(){
+
/* Menu in the left column - actions to hide submenu and create animation when a
menu only has submenues and doesnt have a URL */
$("#sidenav ul>ul").hide();
@@ -19,4 +20,31 @@ $(document).on("ready", function(){
$(this).hide();
});
}
-});
\ No newline at end of file
+});
+
+$(window).load(function(){
+ // taking the screen size and resizing the columns to keep the footer fixed to the
bottom
+ // On page load
+ $("section.col-md-10").css("padding-bottom", "");
+ columnHeight();
+});
+
+// On window resize
+$(window).resize( function () {
+ $("section.col-md-10").css("padding-bottom", "");
+ columnHeight();
+});
+
+// Make columns 100% in height
+function columnHeight() {
+ //Only if the screen size is higher than the max-width set up in the Variables.less
under the definition @screen-md:
+ //PLEASE: update this if you change the content of @screen-md
+ //if ($(document).width()>992) {
+ var sectionHeight = $("section.col-md-10").outerHeight();
+ var heightDoc = $(document).height();
+ // Column heights should equal the document height minus the header height and
footer height
+ var newHeight = heightDoc - 160 - sectionHeight + "px";
+ console.log(sectionHeight + " " + newHeight + " " +
heightDoc);
+ $("section.col-md-10").css("padding-bottom", newHeight);
+ //};
+};
\ No newline at end of file
commit 29c8424a3e4eab4670541aec22adf1fe4709306c
Author: Johannes Renner <jrenner(a)suse.de>
Date: Mon Oct 14 17:14:29 2013 +0200
Load spacewalk-essentials in the footer
diff --git a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
index 4ab2139..2f5b52e 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
@@ -39,4 +39,3 @@
<script
src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js&q...
<script src="/javascript/check_all.js"></script>
- <script src="/javascript/spacewalk-essentials.js"></script>
diff --git a/java/code/webapp/WEB-INF/includes/footer.jsp
b/java/code/webapp/WEB-INF/includes/footer.jsp
index f8f308a..45e9ec0 100644
--- a/java/code/webapp/WEB-INF/includes/footer.jsp
+++ b/java/code/webapp/WEB-INF/includes/footer.jsp
@@ -26,3 +26,4 @@
--%>
<!-- Javascript -->
<script src="/javascript/check_all.js"
type="text/javascript"></script>
+<script src="/javascript/spacewalk-essentials.js"></script>
commit 2ffc551a0843a02e0aace904ac60c02f919df9dc
Author: Johannes Renner <jrenner(a)suse.de>
Date: Mon Oct 14 17:09:55 2013 +0200
Serve jquery locally instead of fetching it from a CDN
This is version 1.10.2, so the original filename was jquery-1.10.2.min.js.
diff --git a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
index 414e5a6..4ab2139 100644
--- a/java/code/webapp/WEB-INF/decorators/layout_head.jsp
+++ b/java/code/webapp/WEB-INF/decorators/layout_head.jsp
@@ -30,7 +30,7 @@
<link rel="stylesheet"
href="/fonts/font-spacewalk/css/spacewalk-font.css" />
<link rel="stylesheet/less" type="text/css"
href="/css/spacewalk.less" />
- <script
src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js&quo...
+ <script src="/javascript/jquery.js"></script>
<script
src="//cdnjs.cloudflare.com/ajax/libs/less.js/1.4.1/less.min.js"...
<script src="/rhn/dwr/engine.js"></script>
diff --git a/web/html/javascript/jquery.js b/web/html/javascript/jquery.js
new file mode 100644
index 0000000..da41706
--- /dev/null
+++ b/web/html/javascript/jquery.js
@@ -0,0 +1,6 @@
+/*! jQuery v1.10.2 | (c) 2005, 2013 jQuery Foundation, Inc. |
jquery.org/license
+//@ sourceMappingURL=jquery-1.10.2.min.map
+*/
+(function(e,t){var n,r,i=typeof
t,o=e.location,a=e.document,s=a.documentElement,l=e.jQuery,u=e.$,c={},p=[],f="1.10.2",d=p.concat,h=p.push,g=p.slice,m=p.indexOf,y=c.toString,v=c.hasOwnProperty,b=f.trim,x=function(e,t){return
new
x.fn.init(e,t,r)},w=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,T=/\S+/g,C=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,N=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,k=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,E=/^[\],:{}\s]*$/,S=/(?:^|:|,)(?:\s*\[)+/g,A=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,j=/"[^"\\\r\n]*"|true|false|null|-?(?:\d+\.|)\d+(?:[eE][+-]?\d+|)/g,D=/^-ms-/,L=/-([\da-z])/gi,H=function(e,t){return
t.toUpperCase()},q=function(e){(a.addEventListener||"load"===e.type||"complete"===a.readyState)&&(_(),x.ready())},_=function(){a.addEventListener?(a.removeEventListener("DOMContentLoaded",q,!1),e.removeEventListener("load",q,!1)):(a.detachEvent("onreadystatechange",q),e.detachEvent("onload",q))};x.fn=x.prototype={jquery:f,constructor:x,init:function(e,n,r){var
i,o;if(!e)retu
rn this;if("string"==typeof
e){if(i="<"===e.charAt(0)&&">"===e.charAt(e.length-1)&&e.length>=3?[null,e,null]:N.exec(e),!i||!i[1]&&n)return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e);if(i[1]){if(n=n
instanceof
x?n[0]:n,x.merge(this,x.parseHTML(i[1],n&&n.nodeType?n.ownerDocument||n:a,!0)),k.test(i[1])&&x.isPlainObject(n))for(i
in n)x.isFunction(this[i])?this[i](n[i]):this.attr(i,n[i]);return
this}if(o=a.getElementById(i[2]),o&&o.parentNode){if(o.id!==i[2])return
r.find(e);this.length=1,this[0]=o}return this.context=a,this.selector=e,this}return
e.nodeType?(this.context=this[0]=e,this.length=1,this):x.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),x.makeArray(e,this))},selector:"",length:0,toArray:function(){return
g.call(this)},get:function(e){return
null==e?this.toArray():0>e?this[this.length+e]:this[e]},pushStack:function(e){var
t=x.merge(this.constructor(),e);return
t.prevObject=this,t.context=this.context,t},each:fun
ction(e,t){return x.each(this,e,t)},ready:function(e){return
x.ready.promise().done(e),this},slice:function(){return
this.pushStack(g.apply(this,arguments))},first:function(){return
this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var
t=this.length,n=+e+(0>e?t:0);return
this.pushStack(n>=0&&t>n?[this[n]]:[])},map:function(e){return
this.pushStack(x.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return
this.prevObject||this.constructor(null)},push:h,sort:[].sort,splice:[].splice},x.fn.init.prototype=x.fn,x.extend=x.fn.extend=function(){var
e,n,r,i,o,a,s=arguments[0]||{},l=1,u=arguments.length,c=!1;for("boolean"==typeof
s&&(c=s,s=arguments[1]||{},l=2),"object"==typeof
s||x.isFunction(s)||(s={}),u===l&&(s=this,--l);u>l;l++)if(null!=(o=arguments[l]))for(i
in
o)e=s[i],r=o[i],s!==r&&(c&&r&&(x.isPlainObject(r)||(n=x.isArray(r)))?(n?(n=!1,a=e&&x.isArray(e)?e:[]):a=e&&x.isPlainObject(e)?e:{},s[i]=x.extend(c,a,r)):r!==t&&(s[i]=r));return
s},x.extend({expa
ndo:"jQuery"+(f+Math.random()).replace(/\D/g,""),noConflict:function(t){return
e.$===x&&(e.$=u),t&&e.jQuery===x&&(e.jQuery=l),x},isReady:!1,readyWait:1,holdReady:function(e){e?x.readyWait++:x.ready(!0)},ready:function(e){if(e===!0?!--x.readyWait:!x.isReady){if(!a.body)return
setTimeout(x.ready);x.isReady=!0,e!==!0&&--x.readyWait>0||(n.resolveWith(a,[x]),x.fn.trigger&&x(a).trigger("ready").off("ready"))}},isFunction:function(e){return"function"===x.type(e)},isArray:Array.isArray||function(e){return"array"===x.type(e)},isWindow:function(e){return
null!=e&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return
null==e?e+"":"object"==typeof e||"function"==typeof
e?c[y.call(e)]||"object":typeof e},isPlainObject:function(e){var
n;if(!e||"object"!==x.type(e)||e.nodeType||x.isWindow(e))return!1;try{if(e.constructor&&!v.call(e,"constructor")&&!v.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(r){return!1}if(x.support.ownLast)
for(n in e)return v.call(e,n);for(n in e);return
n===t||v.call(e,n)},isEmptyObject:function(e){var t;for(t in
e)return!1;return!0},error:function(e){throw
Error(e)},parseHTML:function(e,t,n){if(!e||"string"!=typeof e)return
null;"boolean"==typeof t&&(n=t,t=!1),t=t||a;var
r=k.exec(e),i=!n&&[];return
r?[t.createElement(r[1])]:(r=x.buildFragment([e],t,i),i&&x(i).remove(),x.merge([],r.childNodes))},parseJSON:function(n){return
e.JSON&&e.JSON.parse?e.JSON.parse(n):null===n?n:"string"==typeof
n&&(n=x.trim(n),n&&E.test(n.replace(A,"(a)").replace(j,"]").replace(S,"")))?Function("return
"+n)():(x.error("Invalid JSON: "+n),t)},parseXML:function(n){var
r,i;if(!n||"string"!=typeof n)return null;try{e.DOMParser?(i=new
DOMParser,r=i.parseFromString(n,"text/xml")):(r=new
ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(o){r=t}return
r&&r.documentElement&&!r.getElementsByTagName("parsererror").length||x.error("Invalid
XML: "+n),r},noop:function(){},globalEval:function(t){
t&&x.trim(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return
e.replace(D,"ms-").replace(L,H)},nodeName:function(e,t){return
e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,n){var
r,i=0,o=e.length,a=M(e);if(n){if(a){for(;o>i;i++)if(r=t.apply(e[i],n),r===!1)break}else
for(i in e)if(r=t.apply(e[i],n),r===!1)break}else
if(a){for(;o>i;i++)if(r=t.call(e[i],i,e[i]),r===!1)break}else for(i in
e)if(r=t.call(e[i],i,e[i]),r===!1)break;return
e},trim:b&&!b.call("\ufeff\u00a0")?function(e){return
null==e?"":b.call(e)}:function(e){return
null==e?"":(e+"").replace(C,"")},makeArray:function(e,t){var
n=t||[];return null!=e&&(M(Object(e))?x.merge(n,"string"==typeof
e?[e]:e):h.call(n,e)),n},inArray:function(e,t,n){var r;if(t){if(m)return
m.call(t,e,n);for(r=t.length,n=n?0>n?Math.max(0,r+n):n:0;r>n;n++)if(n in
t&&t[n]===e)return n}return-1},merge:function(e,n){var
r=n.length,i=e.length,o=0;if("number"==typeof r)for(;r>o;o++)e[i++]=n[o];e
lse while(n[o]!==t)e[i++]=n[o++];return e.length=i,e},grep:function(e,t,n){var
r,i=[],o=0,a=e.length;for(n=!!n;a>o;o++)r=!!t(e[o],o),n!==r&&i.push(e[o]);return
i},map:function(e,t,n){var
r,i=0,o=e.length,a=M(e),s=[];if(a)for(;o>i;i++)r=t(e[i],i,n),null!=r&&(s[s.length]=r);else
for(i in e)r=t(e[i],i,n),null!=r&&(s[s.length]=r);return
d.apply([],s)},guid:1,proxy:function(e,n){var r,i,o;return"string"==typeof
n&&(o=e[n],n=e,e=o),x.isFunction(e)?(r=g.call(arguments,2),i=function(){return
e.apply(n||this,r.concat(g.call(arguments)))},i.guid=e.guid=e.guid||x.guid++,i):t},access:function(e,n,r,i,o,a,s){var
l=0,u=e.length,c=null==r;if("object"===x.type(r)){o=!0;for(l in
r)x.access(e,n,l,r[l],!0,a,s)}else
if(i!==t&&(o=!0,x.isFunction(i)||(s=!0),c&&(s?(n.call(e,i),n=null):(c=n,n=function(e,t,n){return
c.call(x(e),n)})),n))for(;u>l;l++)n(e[l],r,s?i:i.call(e[l],l,n(e[l],r)));return
o?e:c?n.call(e):u?n(e[0],r):a},now:function(){return(new
Date).getTime()},swap:function(e,t,n,r){var i,o,a
={};for(o in t)a[o]=e.style[o],e.style[o]=t[o];i=n.apply(e,r||[]);for(o in
t)e.style[o]=a[o];return
i}}),x.ready.promise=function(t){if(!n)if(n=x.Deferred(),"complete"===a.readyState)setTimeout(x.ready);else
if(a.addEventListener)a.addEventListener("DOMContentLoaded",q,!1),e.addEventListener("load",q,!1);else{a.attachEvent("onreadystatechange",q),e.attachEvent("onload",q);var
r=!1;try{r=null==e.frameElement&&a.documentElement}catch(i){}r&&r.doScroll&&function
o(){if(!x.isReady){try{r.doScroll("left")}catch(e){return
setTimeout(o,50)}_(),x.ready()}}()}return n.promise(t)},x.each("Boolean Number String
Function Array Date RegExp Object Error".split("
"),function(e,t){c["[object "+t+"]"]=t.toLowerCase()});function
M(e){var t=e.length,n=x.type(e);return
x.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||"function"!==n&&(0===t||"number"==typeof
t&&t>0&&t-1 in e)}r=x(a),function(e,t){var
n,r,i,o,a,s,l,u,c,p,f,d,h,g,m,y,v,b="sizzle"+-new
Date,w=e.document,T=0,C=0,N=st(),k=st(),E=st
(),S=!1,A=function(e,t){return e===t?(S=!0,0):0},j=typeof
t,D=1<<31,L={}.hasOwnProperty,H=[],q=H.pop,_=H.push,M=H.push,O=H.slice,F=H.indexOf||function(e){var
t=0,n=this.length;for(;n>t;t++)if(this[t]===e)return
t;return-1},B="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",P="[\\x20\\t\\r\\n\\f]",R="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",W=R.replace("w","w#"),$="\\["+P+"*("+R+")"+P+"*(?:([*^$|!~]?=)"+P+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+W+")|)|)"+P+"*\\]",I=":("+R+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+$.replace(3,8)+")*)|.*)\\)|)",z=RegExp("^"+P+"+|((?:^|[^\\\\])(?:\\\\.)*)"+P+"+$","g"),X=RegExp("^"+P+"*,"+P+"*"),U=RegExp("^"+P+"*([>+~]|"+P+")"+P+"*"),V=RegExp(P+"*[+~]"),Y=RegExp("="+P+"*([^\\]'\"]*)"+P+"*\\]","g"),J=RegExp(I),G=RegExp("^"+W+"$"),Q={ID:RegExp("^#("+R+")"),CLASS:RegExp("^\\.("+R+")"),TAG:RegExp("^("+R.replace("w","w*")+")"),ATTR:RegExp("^"+$),PSEUDO:RegExp
("^"+I),CHILD:RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+P+"*(even|odd|(([+-]|)(\\d*)n|)"+P+"*(?:([+-]|)"+P+"*(\\d+)|))"+P+"*\\)|)","i"),bool:RegExp("^(?:"+B+")$","i"),needsContext:RegExp("^"+P+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+P+"*((?:-\\d)?\\d*)"+P+"*\\)|)(?=[^-]|$)","i")},K=/^[^{]+\{\s*\[native
\w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,et=/^(?:input|select|textarea|button)$/i,tt=/^h\d$/i,nt=/'|\\/g,rt=RegExp("\\\\([\\da-f]{1,6}"+P+"?|("+P+")|.)","ig"),it=function(e,t,n){var
r="0x"+t-65536;return
r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(55296|r>>10,56320|1023&r)};try{M.apply(H=O.call(w.childNodes),w.childNodes),H[w.childNodes.length].nodeType}catch(ot){M={apply:H.length?function(e,t){_.apply(e,O.call(t))}:function(e,t){var
n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function at(e,t,n,i){var
o,a,s,l,u,c,d,m,y,x;if((t?t.ownerDocument||t:w)!==f&&p(t),t=t||f,n=n||[],!e||"string"!=typeof
e)return n;if(1!==(l=t.n
odeType)&&9!==l)return[];if(h&&!i){if(o=Z.exec(e))if(s=o[1]){if(9===l){if(a=t.getElementById(s),!a||!a.parentNode)return
n;if(a.id===s)return n.push(a),n}else
if(t.ownerDocument&&(a=t.ownerDocument.getElementById(s))&&v(t,a)&&a.id===s)return
n.push(a),n}else{if(o[2])return
M.apply(n,t.getElementsByTagName(e)),n;if((s=o[3])&&r.getElementsByClassName&&t.getElementsByClassName)return
M.apply(n,t.getElementsByClassName(s)),n}if(r.qsa&&(!g||!g.test(e))){if(m=d=b,y=t,x=9===l&&e,1===l&&"object"!==t.nodeName.toLowerCase()){c=mt(e),(d=t.getAttribute("id"))?m=d.replace(nt,"\\$&"):t.setAttribute("id",m),m="[id='"+m+"']
",u=c.length;while(u--)c[u]=m+yt(c[u]);y=V.test(e)&&t.parentNode||t,x=c.join(",")}if(x)try{return
M.apply(n,y.querySelectorAll(x)),n}catch(T){}finally{d||t.removeAttribute("id")}}}return
kt(e.replace(z,"$1"),t,n,i)}function st(){var e=[];function t(n,r){return
e.push(n+=" ")>o.cacheLength&&delete t[e.shift()],t[n]=r}return
t}function lt(e){return e[b]=!0,e}function ut(e)
{var
t=f.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function
ct(e,t){var n=e.split("|"),r=e.length;while(r--)o.attrHandle[n[r]]=t}function
pt(e,t){var
n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||D)-(~e.sourceIndex||D);if(r)return
r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function ft(e){return
function(t){var
n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function
dt(e){return function(t){var
n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function
ht(e){return lt(function(t){return t=+t,lt(function(n,r){var
i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}s=at.isXML=function(e){var
t=e&&(e.ownerDocument||e).documentElement;return
t?"HTML"!==t.nodeName:!1},r=at.support={},p=at.setDocument=function(e){var
n=e?e.ownerDocument||e:w,i=n.defaultView;return
n!==f&&9===n.nodeType&&n.documentElement?(f=n,d=n.docume
ntElement,h=!s(n),i&&i.attachEvent&&i!==i.top&&i.attachEvent("onbeforeunload",function(){p()}),r.attributes=ut(function(e){return
e.className="i",!e.getAttribute("className")}),r.getElementsByTagName=ut(function(e){return
e.appendChild(n.createComment("")),!e.getElementsByTagName("*").length}),r.getElementsByClassName=ut(function(e){return
e.innerHTML="<div class='a'></div><div class='a
i'></div>",e.firstChild.className="i",2===e.getElementsByClassName("i").length}),r.getById=ut(function(e){return
d.appendChild(e).id=b,!n.getElementsByName||!n.getElementsByName(b).length}),r.getById?(o.find.ID=function(e,t){if(typeof
t.getElementById!==j&&h){var n=t.getElementById(e);return
n&&n.parentNode?[n]:[]}},o.filter.ID=function(e){var t=e.replace(rt,it);return
function(e){return e.getAttribute("id")===t}}):(delete
o.find.ID,o.filter.ID=function(e){var t=e.replace(rt,it);return function(e){var n=typeof
e.getAttributeNode!==j&&e.getAttributeNode("id");return
n&&n.value===t}}),o.find.TA
G=r.getElementsByTagName?function(e,n){return typeof
n.getElementsByTagName!==j?n.getElementsByTagName(e):t}:function(e,t){var
n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return
r}return o},o.find.CLASS=r.getElementsByClassName&&function(e,n){return typeof
n.getElementsByClassName!==j&&h?n.getElementsByClassName(e):t},m=[],g=[],(r.qsa=K.test(n.querySelectorAll))&&(ut(function(e){e.innerHTML="<select><option
selected=''></option></select>",e.querySelectorAll("[selected]").length||g.push("\\["+P+"*(?:value|"+B+")"),e.querySelectorAll(":checked").length||g.push(":checked")}),ut(function(e){var
t=n.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("t",""),e.querySelectorAll("[t^='']").length&&g.push("[*^$]="+P+"*(?:''|\"\")"),e.querySelectorAll(":enabled").length||g.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),g.push(",.*:")})),(r.matchesSelector=K.test(y=d.webkitMatchesSelector||d.mozM
atchesSelector||d.oMatchesSelector||d.msMatchesSelector))&&ut(function(e){r.disconnectedMatch=y.call(e,"div"),y.call(e,"[s!='']:x"),m.push("!=",I)}),g=g.length&&RegExp(g.join("|")),m=m.length&&RegExp(m.join("|")),v=K.test(d.contains)||d.compareDocumentPosition?function(e,t){var
n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return
e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},A=d.compareDocumentPosition?function(e,t){if(e===t)return
S=!0,0;var
i=t.compareDocumentPosition&&e.compareDocumentPosition&&e.compareDocumentPosition(t);return
i?1&i||!r.sortDetached&&t.compareDocumentPosition(e)===i?e===n||v(w,e)?-1:t===n||v(w,t)?1:c?F.call(c,e)-F.call(c,t):0:4&i?-1:1:e.compareDocumentPosition?-1:1}:function(e,t){var
r,i=0,o=e.parentNode,a=t.parentNode,s=[e],l=[t];if(e===t)return S=!0,0;if(!o||!a)return
e===n?-1:t===n?1:o?-1:a?1:c?F.call(c
,e)-F.call(c,t):0;if(o===a)return
pt(e,t);r=e;while(r=r.parentNode)s.unshift(r);r=t;while(r=r.parentNode)l.unshift(r);while(s[i]===l[i])i++;return
i?pt(s[i],l[i]):s[i]===w?-1:l[i]===w?1:0},n):f},at.matches=function(e,t){return
at(e,null,null,t)},at.matchesSelector=function(e,t){if((e.ownerDocument||e)!==f&&p(e),t=t.replace(Y,"='$1']"),!(!r.matchesSelector||!h||m&&m.test(t)||g&&g.test(t)))try{var
n=y.call(e,t);if(n||r.disconnectedMatch||e.document&&11!==e.document.nodeType)return
n}catch(i){}return
at(t,f,null,[e]).length>0},at.contains=function(e,t){return(e.ownerDocument||e)!==f&&p(e),v(e,t)},at.attr=function(e,n){(e.ownerDocument||e)!==f&&p(e);var
i=o.attrHandle[n.toLowerCase()],a=i&&L.call(o.attrHandle,n.toLowerCase())?i(e,n,!h):t;return
a===t?r.attributes||!h?e.getAttribute(n):(a=e.getAttributeNode(n))&&a.specified?a.value:null:a},at.error=function(e){throw
Error("Syntax error, unrecognized expression:
"+e)},at.uniqueSort=function(e){var t,n=[],i=0,o=0;if(S=!r.detectDupl
icates,c=!r.sortStable&&e.slice(0),e.sort(A),S){while(t=e[o++])t===e[o]&&(i=n.push(o));while(i--)e.splice(n[i],1)}return
e},a=at.getText=function(e){var
t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof
e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=a(e)}else
if(3===i||4===i)return e.nodeValue}else for(;t=e[r];r++)n+=a(t);return
n},o=at.selectors={cacheLength:50,createPseudo:lt,match:Q,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0},"
":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return
e[1]=e[1].replace(rt,it),e[3]=(e[4]||e[5]||"").replace(rt,it),"~="===e[2]&&(e[3]="
"+e[3]+" "),e.slice(0,4)},CHILD:function(e){return
e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||at.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&at.error(e[0]),e},PSEUDO:function(e){var
n,r=!e[5]&&e[2]
;return
Q.CHILD.test(e[0])?null:(e[3]&&e[4]!==t?e[2]=e[4]:r&&J.test(r)&&(n=mt(r,!0))&&(n=r.indexOf(")",r.length-n)-r.length)&&(e[0]=e[0].slice(0,n),e[2]=r.slice(0,n)),e.slice(0,3))}},filter:{TAG:function(e){var
t=e.replace(rt,it).toLowerCase();return"*"===e?function(){return!0}:function(e){return
e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=N[e+"
"];return
t||(t=RegExp("(^|"+P+")"+e+"("+P+"|$)"))&&N(e,function(e){return
t.test("string"==typeof e.className&&e.className||typeof
e.getAttribute!==j&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return
function(r){var i=at.attr(r,e);return
null==i?"!="===t:t?(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?("
"+i+"
").indexOf(n)>-1:"|="===t?i===n||i.slice(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r,i){var
o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return
1===r&&0===i?function(e){return!
!e.parentNode}:function(t,n,l){var
u,c,p,f,d,h,g=o!==a?"nextSibling":"previousSibling",m=t.parentNode,y=s&&t.nodeName.toLowerCase(),v=!l&&!s;if(m){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===y:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?m.firstChild:m.lastChild],a&&v){c=m[b]||(m[b]={}),u=c[e]||[],d=u[0]===T&&u[1],f=u[0]===T&&u[2],p=d&&m.childNodes[d];while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if(1===p.nodeType&&++f&&p===t){c[e]=[T,d,f];break}}else
if(v&&(u=(t[b]||(t[b]={}))[e])&&u[0]===T)f=u[1];else
while(p=++d&&p&&p[g]||(f=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===y:1===p.nodeType)&&++f&&(v&&((p[b]||(p[b]={}))[e]=[T,f]),p===t))break;return
f-=i,f===r||0===f%r&&f/r>=0}}},PSEUDO:function(e,t){var
n,r=o.pseudos[e]||o.setFilters[e.toLowerCase()]||at.error("unsupported pseudo:
"+e);return
r[b]?r(t):r.length>1?(n=[e,e,"",t],o.setFilters.hasOwnProperty(e.toLowerCase())?lt(function(e,n){var
i,o=r(e,t),a=o.length;while(a--)i=F.call
(e,o[a]),e[i]=!(n[i]=o[a])}):function(e){return
r(e,0,n)}):r}},pseudos:{not:lt(function(e){var
t=[],n=[],r=l(e.replace(z,"$1"));return r[b]?lt(function(e,t,n,i){var
o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return
t[0]=e,r(t,null,o,n),!n.pop()}}),has:lt(function(e){return function(t){return
at(e,t).length>0}}),contains:lt(function(e){return
function(t){return(t.textContent||t.innerText||a(t)).indexOf(e)>-1}}),lang:lt(function(e){return
G.test(e||"")||at.error("unsupported lang:
"+e),e=e.replace(rt,it).toLowerCase(),function(t){var n;do
if(n=h?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return
n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var
n=e.location&&e.location.hash;return
n&&n.slice(1)===t.id},root:function(e){return e===d},focus:function(e){return
e===f.activeElement&&(!f.hasFocus||f.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:funct
ion(e){return e.disabled===!1},disabled:function(e){return
e.disabled===!0},checked:function(e){var
t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return
e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeName>"@"||3===e.nodeType||4===e.nodeType)return!1;return!0},parent:function(e){return!o.pseudos.empty(e)},header:function(e){return
tt.test(e.nodeName)},input:function(e){return et.test(e.nodeName)},button:function(e){var
t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var
t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||t.toLowerCase()===e.type)},first:ht(function(){return[0]}),last:ht(function(e,t){return[t-1]}),eq:ht(function(e,t,n){return[0>n?n+t:n]}),even:ht(function(e,t){var
n=0;for(;t>n;n+=2)e.push(n);return e}),odd:ht(function(e,t){var n=1;for
(;t>n;n+=2)e.push(n);return e}),lt:ht(function(e,t,n){var
r=0>n?n+t:n;for(;--r>=0;)e.push(r);return e}),gt:ht(function(e,t,n){var
r=0>n?n+t:n;for(;t>++r;)e.push(r);return e})}},o.pseudos.nth=o.pseudos.eq;for(n
in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})o.pseudos[n]=ft(n);for(n
in{submit:!0,reset:!0})o.pseudos[n]=dt(n);function
gt(){}gt.prototype=o.filters=o.pseudos,o.setFilters=new gt;function mt(e,t){var
n,r,i,a,s,l,u,c=k[e+" "];if(c)return
t?0:c.slice(0);s=e,l=[],u=o.preFilter;while(s){(!n||(r=X.exec(s)))&&(r&&(s=s.slice(r[0].length)||s),l.push(i=[])),n=!1,(r=U.exec(s))&&(n=r.shift(),i.push({value:n,type:r[0].replace(z,"
")}),s=s.slice(n.length));for(a in
o.filter)!(r=Q[a].exec(s))||u[a]&&!(r=u[a](r))||(n=r.shift(),i.push({value:n,type:a,matches:r}),s=s.slice(n.length));if(!n)break}return
t?s.length:s?at.error(e):k(e,l).slice(0)}function yt(e){var
t=0,n=e.length,r="";for(;n>t;t++)r+=e[t].value;return r}function
vt(e,t,n){var r=t.dir,o=n&&"parentNode"===r,a=C++;r
eturn t.first?function(t,n,i){while(t=t[r])if(1===t.nodeType||o)return
e(t,n,i)}:function(t,n,s){var l,u,c,p=T+"
"+a;if(s){while(t=t[r])if((1===t.nodeType||o)&&e(t,n,s))return!0}else
while(t=t[r])if(1===t.nodeType||o)if(c=t[b]||(t[b]={}),(u=c[r])&&u[0]===p){if((l=u[1])===!0||l===i)return
l===!0}else if(u=c[r]=[p],u[1]=e(t,n,s)||i,u[1]===!0)return!0}}function bt(e){return
e.length>1?function(t,n,r){var
i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function xt(e,t,n,r,i){var
o,a=[],s=0,l=e.length,u=null!=t;for(;l>s;s++)(o=e[s])&&(!n||n(o,r,i))&&(a.push(o),u&&t.push(s));return
a}function wt(e,t,n,r,i,o){return
r&&!r[b]&&(r=wt(r)),i&&!i[b]&&(i=wt(i,o)),lt(function(o,a,s,l){var
u,c,p,f=[],d=[],h=a.length,g=o||Nt(t||"*",s.nodeType?[s]:s,[]),m=!e||!o&&t?g:xt(g,f,e,s,l),y=n?i||(o?e:h||r)?[]:a:m;if(n&&n(m,y,s,l),r){u=xt(y,d),r(u,[],s,l),c=u.length;while(c--)(p=u[c])&&(y[d[c]]=!(m[d[c]]=p))}if(o){if(i||e){if(i){u=[],c=y.length;while(c--)(p=y[c])&&u.push(m[c]=p);i(null,y
=[],u,l)}c=y.length;while(c--)(p=y[c])&&(u=i?F.call(o,p):f[c])>-1&&(o[u]=!(a[u]=p))}}else
y=xt(y===a?y.splice(h,y.length):y),i?i(null,a,y,l):M.apply(a,y)})}function Tt(e){var
t,n,r,i=e.length,a=o.relative[e[0].type],s=a||o.relative["
"],l=a?1:0,c=vt(function(e){return e===t},s,!0),p=vt(function(e){return
F.call(t,e)>-1},s,!0),f=[function(e,n,r){return!a&&(r||n!==u)||((t=n).nodeType?c(e,n,r):p(e,n,r))}];for(;i>l;l++)if(n=o.relative[e[l].type])f=[vt(bt(f),n)];else{if(n=o.filter[e[l].type].apply(null,e[l].matches),n[b]){for(r=++l;i>r;r++)if(o.relative[e[r].type])break;return
wt(l>1&&bt(f),l>1&&yt(e.slice(0,l-1).concat({value:"
"===e[l-2].type?"*":""})).replace(z,"$1"),n,r>l&&Tt(e.slice(l,r)),i>r&&Tt(e=e.slice(r)),i>r&&yt(e))}f.push(n)}return
bt(f)}function Ct(e,t){var n=0,r=t.length>0,a=e.length>0,s=function(s,l,c,p,d){var
h,g,m,y=[],v=0,b="0",x=s&&[],w=null!=d,C=u,N=s||a&&o.find.TAG("*",d&&l.parentNode||l),k=T+=null==C?1:Math.random()||.1;for(w&&(u=l!==f&&l,i=n);null!=(h=N[b])
;b++){if(a&&h){g=0;while(m=e[g++])if(m(h,l,c)){p.push(h);break}w&&(T=k,i=++n)}r&&((h=!m&&h)&&v--,s&&x.push(h))}if(v+=b,r&&b!==v){g=0;while(m=t[g++])m(x,y,l,c);if(s){if(v>0)while(b--)x[b]||y[b]||(y[b]=q.call(p));y=xt(y)}M.apply(p,y),w&&!s&&y.length>0&&v+t.length>1&&at.uniqueSort(p)}return
w&&(T=k,u=C),x};return r?lt(s):s}l=at.compile=function(e,t){var
n,r=[],i=[],o=E[e+"
"];if(!o){t||(t=mt(e)),n=t.length;while(n--)o=Tt(t[n]),o[b]?r.push(o):i.push(o);o=E(e,Ct(i,r))}return
o};function Nt(e,t,n){var r=0,i=t.length;for(;i>r;r++)at(e,t[r],n);return n}function
kt(e,t,n,i){var
a,s,u,c,p,f=mt(e);if(!i&&1===f.length){if(s=f[0]=f[0].slice(0),s.length>2&&"ID"===(u=s[0]).type&&r.getById&&9===t.nodeType&&h&&o.relative[s[1].type]){if(t=(o.find.ID(u.matches[0].replace(rt,it),t)||[])[0],!t)return
n;e=e.slice(s.shift().value.length)}a=Q.needsContext.test(e)?0:s.length;while(a--){if(u=s[a],o.relative[c=u.type])break;if((p=o.find[c])&&(i=p(u.matches[0].replace(rt,it),V.test(s[0].type)&&t.parent
Node||t))){if(s.splice(a,1),e=i.length&&yt(s),!e)return
M.apply(n,i),n;break}}}return
l(e,f)(i,t,!h,n,V.test(e)),n}r.sortStable=b.split("").sort(A).join("")===b,r.detectDuplicates=S,p(),r.sortDetached=ut(function(e){return
1&e.compareDocumentPosition(f.createElement("div"))}),ut(function(e){return
e.innerHTML="<a
href='#'></a>","#"===e.firstChild.getAttribute("href")})||ct("type|href|height|width",function(e,n,r){return
r?t:e.getAttribute(n,"type"===n.toLowerCase()?1:2)}),r.attributes&&ut(function(e){return
e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||ct("value",function(e,n,r){return
r||"input"!==e.nodeName.toLowerCase()?t:e.defaultValue}),ut(function(e){return
null==e.getAttribute("disabled")})||ct(B,function(e,n,r){var i;return
r?t:(i=e.getAttributeNode(n))&&i.specified?i.value:e[n]===!0?n.toLowerCase():null}),x.find=at,x.expr=at.selectors,x.expr[":"]=x.expr.pseudos,x.unique=at.uniqueSort,x.text=at.getText,x.isXML
Doc=at.isXML,x.contains=at.contains}(e);var O={};function F(e){var t=O[e]={};return
x.each(e.match(T)||[],function(e,n){t[n]=!0}),t}x.Callbacks=function(e){e="string"==typeof
e?O[e]||F(e):x.extend({},e);var
n,r,i,o,a,s,l=[],u=!e.once&&[],c=function(t){for(r=e.memory&&t,i=!0,a=s||0,s=0,o=l.length,n=!0;l&&o>a;a++)if(l[a].apply(t[0],t[1])===!1&&e.stopOnFalse){r=!1;break}n=!1,l&&(u?u.length&&c(u.shift()):r?l=[]:p.disable())},p={add:function(){if(l){var
t=l.length;(function i(t){x.each(t,function(t,n){var
r=x.type(n);"function"===r?e.unique&&p.has(n)||l.push(n):n&&n.length&&"string"!==r&&i(n)})})(arguments),n?o=l.length:r&&(s=t,c(r))}return
this},remove:function(){return l&&x.each(arguments,function(e,t){var
r;while((r=x.inArray(t,l,r))>-1)l.splice(r,1),n&&(o>=r&&o--,a>=r&&a--)}),this},has:function(e){return
e?x.inArray(e,l)>-1:!(!l||!l.length)},empty:function(){return
l=[],o=0,this},disable:function(){return
l=u=r=t,this},disabled:function(){return!l},lock:function(){return u=t,
r||p.disable(),this},locked:function(){return!u},fireWith:function(e,t){return!l||i&&!u||(t=t||[],t=[e,t.slice?t.slice():t],n?u.push(t):c(t)),this},fire:function(){return
p.fireWith(this,arguments),this},fired:function(){return!!i}};return
p},x.extend({Deferred:function(e){var
t=[["resolve","done",x.Callbacks("once
memory"),"resolved"],["reject","fail",x.Callbacks("once
memory"),"rejected"],["notify","progress",x.Callbacks("memory")]],n="pending",r={state:function(){return
n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var
e=arguments;return x.Deferred(function(n){x.each(t,function(t,o){var
a=o[0],s=x.isFunction(e[t])&&e[t];i[o[1]](function(){var
e=s&&s.apply(this,arguments);e&&x.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[a+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return
null!=e?x.extend(e,r):r}},i={};return r.pipe=r.then,x.each(t,function(e,o
){var
a=o[2],s=o[3];r[o[1]]=a.add,s&&a.add(function(){n=s},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return
i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=a.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var
t=0,n=g.call(arguments),r=n.length,i=1!==r||e&&x.isFunction(e.promise)?r:0,o=1===i?e:x.Deferred(),a=function(e,t,n){return
function(r){t[e]=this,n[e]=arguments.length>1?g.call(arguments):r,n===s?o.notifyWith(t,n):--i||o.resolveWith(t,n)}},s,l,u;if(r>1)for(s=Array(r),l=Array(r),u=Array(r);r>t;t++)n[t]&&x.isFunction(n[t].promise)?n[t].promise().done(a(t,u,n)).fail(o.reject).progress(a(t,l,s)):--i;return
i||o.resolveWith(u,n),o.promise()}}),x.support=function(t){var
n,r,o,s,l,u,c,p,f,d=a.createElement("div");if(d.setAttribute("className","t"),d.innerHTML="
<link/><table></table><a href='/a'>a</a><input
type='checkbox'/>",n=d.getElementsByTagName("*")||[],r=d.getElementsByTagName("a")[0],!r||!r.style||!n.length)return
t;s=a.createElement
("select"),u=s.appendChild(a.createElement("option")),o=d.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t.getSetAttribute="t"!==d.className,t.leadingWhitespace=3===d.firstChild.nodeType,t.tbody=!d.getElementsByTagName("tbody").length,t.htmlSerialize=!!d.getElementsByTagName("link").length,t.style=/top/.test(r.getAttribute("style")),t.hrefNormalized="/a"===r.getAttribute("href"),t.opacity=/^0.5/.test(r.style.opacity),t.cssFloat=!!r.style.cssFloat,t.checkOn=!!o.value,t.optSelected=u.selected,t.enctype=!!a.createElement("form").enctype,t.html5Clone="<:nav></:nav>"!==a.createElement("nav").cloneNode(!0).outerHTML,t.inlineBlockNeedsLayout=!1,t.shrinkWrapBlocks=!1,t.pixelPosition=!1,t.deleteExpando=!0,t.noCloneEvent=!0,t.reliableMarginRight=!0,t.boxSizingReliable=!0,o.checked=!0,t.noCloneChecked=o.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!u.disabled;try{delete
d.test}catch(h){t.deleteExpando=!1}o=a.createElement("input"),o.setAttribute("
value",""),t.input=""===o.getAttribute("value"),o.value="t",o.setAttribute("type","radio"),t.radioValue="t"===o.value,o.setAttribute("checked","t"),o.setAttribute("name","t"),l=a.createDocumentFragment(),l.appendChild(o),t.appendChecked=o.checked,t.checkClone=l.cloneNode(!0).cloneNode(!0).lastChild.checked,d.attachEvent&&(d.attachEvent("onclick",function(){t.noCloneEvent=!1}),d.cloneNode(!0).click());for(f
in{submit:!0,change:!0,focusin:!0})d.setAttribute(c="on"+f,"t"),t[f+"Bubbles"]=c
in
e||d.attributes[c].expando===!1;d.style.backgroundClip="content-box",d.cloneNode(!0).style.backgroundClip="",t.clearCloneStyle="content-box"===d.style.backgroundClip;for(f
in x(t))break;return t.ownLast="0"!==f,x(function(){var
n,r,o,s="padding:0;margin:0;border:0;display:block;box-sizing:content-box;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;",l=a.getElementsByTagName("body")[0];l&&(n=a.createElement("div"),n.style.cssText="border:0;width:0;height:0;position:absolute;top:0;
left:-9999px;margin-top:1px",l.appendChild(n).appendChild(d),d.innerHTML="<table><tr><td></td><td>t</td></tr></table>",o=d.getElementsByTagName("td"),o[0].style.cssText="padding:0;margin:0;border:0;display:none",p=0===o[0].offsetHeight,o[0].style.display="",o[1].style.display="none",t.reliableHiddenOffsets=p&&0===o[0].offsetHeight,d.innerHTML="",d.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",x.swap(l,null!=l.style.zoom?{zoom:1}:{},function(){t.boxSizing=4===d.offsetWidth}),e.getComputedStyle&&(t.pixelPosition="1%"!==(e.getComputedStyle(d,null)||{}).top,t.boxSizingReliable="4px"===(e.getComputedStyle(d,null)||{width:"4px"}).width,r=d.appendChild(a.createElement("div")),r.style.cssText=d.style.cssText=s,r.style.marginRight=r.style.width="0",d.style.width="1px",t.reliableMarginRight=!parseFloat((e.getComputedStyle(r,null)||{}).marginRight)),ty
peof
d.style.zoom!==i&&(d.innerHTML="",d.style.cssText=s+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=3===d.offsetWidth,d.style.display="block",d.innerHTML="<div></div>",d.firstChild.style.width="5px",t.shrinkWrapBlocks=3!==d.offsetWidth,t.inlineBlockNeedsLayout&&(l.style.zoom=1)),l.removeChild(n),n=d=o=r=null)}),n=s=l=u=r=o=null,t
+}({});var B=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;function
R(e,n,r,i){if(x.acceptData(e)){var
o,a,s=x.expando,l=e.nodeType,u=l?x.cache:e,c=l?e[s]:e[s]&&s;if(c&&u[c]&&(i||u[c].data)||r!==t||"string"!=typeof
n)return
c||(c=l?e[s]=p.pop()||x.guid++:s),u[c]||(u[c]=l?{}:{toJSON:x.noop}),("object"==typeof
n||"function"==typeof
n)&&(i?u[c]=x.extend(u[c],n):u[c].data=x.extend(u[c].data,n)),a=u[c],i||(a.data||(a.data={}),a=a.data),r!==t&&(a[x.camelCase(n)]=r),"string"==typeof
n?(o=a[n],null==o&&(o=a[x.camelCase(n)])):o=a,o}}function
W(e,t,n){if(x.acceptData(e)){var
r,i,o=e.nodeType,a=o?x.cache:e,s=o?e[x.expando]:x.expando;if(a[s]){if(t&&(r=n?a[s]:a[s].data)){x.isArray(t)?t=t.concat(x.map(t,x.camelCase)):t
in r?t=[t]:(t=x.camelCase(t),t=t in r?[t]:t.split("
")),i=t.length;while(i--)delete
r[t[i]];if(n?!I(r):!x.isEmptyObject(r))return}(n||(delete
a[s].data,I(a[s])))&&(o?x.cleanData([e],!0):x.support.deleteExpando||a!=a.window?delete
a[s]:a[s]=null)}}}x.extend({cache:{},noData:{ap
plet:!0,embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(e){return
e=e.nodeType?x.cache[e[x.expando]]:e[x.expando],!!e&&!I(e)},data:function(e,t,n){return
R(e,t,n)},removeData:function(e,t){return W(e,t)},_data:function(e,t,n){return
R(e,t,n,!0)},_removeData:function(e,t){return
W(e,t,!0)},acceptData:function(e){if(e.nodeType&&1!==e.nodeType&&9!==e.nodeType)return!1;var
t=e.nodeName&&x.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),x.fn.extend({data:function(e,n){var
r,i,o=null,a=0,s=this[0];if(e===t){if(this.length&&(o=x.data(s),1===s.nodeType&&!x._data(s,"parsedAttrs"))){for(r=s.attributes;r.length>a;a++)i=r[a].name,0===i.indexOf("data-")&&(i=x.camelCase(i.slice(5)),$(s,i,o[i]));x._data(s,"parsedAttrs",!0)}return
o}return"object"==typeof
e?this.each(function(){x.data(this,e)}):arguments.length>1?this.each(function(){x.data(this,e,n)}):s?$(s,e,x.data(s,e)):null},removeData:function(e){return
this.each(functi
on(){x.removeData(this,e)})}});function $(e,n,r){if(r===t&&1===e.nodeType){var
i="data-"+n.replace(P,"-$1").toLowerCase();if(r=e.getAttribute(i),"string"==typeof
r){try{r="true"===r?!0:"false"===r?!1:"null"===r?null:+r+""===r?+r:B.test(r)?x.parseJSON(r):r}catch(o){}x.data(e,n,r)}else
r=t}return r}function I(e){var t;for(t in
e)if(("data"!==t||!x.isEmptyObject(e[t]))&&"toJSON"!==t)return!1;return!0}x.extend({queue:function(e,n,r){var
i;return
e?(n=(n||"fx")+"queue",i=x._data(e,n),r&&(!i||x.isArray(r)?i=x._data(e,n,x.makeArray(r)):i.push(r)),i||[]):t},dequeue:function(e,t){t=t||"fx";var
n=x.queue(e,t),r=n.length,i=n.shift(),o=x._queueHooks(e,t),a=function(){x.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete
o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var
n=t+"queueHooks";return x._data(e,n)||x._data(e,n,{empty:x.Callbacks("once
memory").add(function(){x._removeData(e,t+"queue"),x._removeData(e,n)})})}}),x
.fn.extend({queue:function(e,n){var r=2;return"string"!=typeof
e&&(n=e,e="fx",r--),r>arguments.length?x.queue(this[0],e):n===t?this:this.each(function(){var
t=x.queue(this,e,n);x._queueHooks(this,e),"fx"===e&&"inprogress"!==t[0]&&x.dequeue(this,e)})},dequeue:function(e){return
this.each(function(){x.dequeue(this,e)})},delay:function(e,t){return
e=x.fx?x.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var
r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return
this.queue(e||"fx",[])},promise:function(e,n){var
r,i=1,o=x.Deferred(),a=this,s=this.length,l=function(){--i||o.resolveWith(a,[a])};"string"!=typeof
e&&(n=e,e=t),e=e||"fx";while(s--)r=x._data(a[s],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(l));return
l(),o.promise(n)}});var
z,X,U=/[\t\r\n\f]/g,V=/\r/g,Y=/^(?:input|select|textarea|button|object)$/i,J=/^(?:a|area)$/i,G=/^(?:checked|selected)$/i,Q=x.support.getSetAttribute,K=x.support.input;x.fn.extend({attr:function(e,t){return
x.acc
ess(this,x.attr,e,t,arguments.length>1)},removeAttr:function(e){return
this.each(function(){x.removeAttr(this,e)})},prop:function(e,t){return
x.access(this,x.prop,e,t,arguments.length>1)},removeProp:function(e){return
e=x.propFix[e]||e,this.each(function(){try{this[e]=t,delete
this[e]}catch(n){}})},addClass:function(e){var
t,n,r,i,o,a=0,s=this.length,l="string"==typeof
e&&e;if(x.isFunction(e))return
this.each(function(t){x(this).addClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?("
"+n.className+" ").replace(U," "):"
")){o=0;while(i=t[o++])0>r.indexOf(" "+i+"
")&&(r+=i+" ");n.className=x.trim(r)}return
this},removeClass:function(e){var
t,n,r,i,o,a=0,s=this.length,l=0===arguments.length||"string"==typeof
e&&e;if(x.isFunction(e))return
this.each(function(t){x(this).removeClass(e.call(this,t,this.className))});if(l)for(t=(e||"").match(T)||[];s>a;a++)if(n=this[a],r=1===n.nodeType&&(n.className?("
"+n.clas
sName+" ").replace(U,"
"):"")){o=0;while(i=t[o++])while(r.indexOf(" "+i+"
")>=0)r=r.replace(" "+i+" ","
");n.className=e?x.trim(r):""}return this},toggleClass:function(e,t){var
n=typeof e;return"boolean"==typeof
t&&"string"===n?t?this.addClass(e):this.removeClass(e):x.isFunction(e)?this.each(function(n){x(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if("string"===n){var
t,r=0,o=x(this),a=e.match(T)||[];while(t=a[r++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else(n===i||"boolean"===n)&&(this.className&&x._data(this,"__className__",this.className),this.className=this.className||e===!1?"":x._data(this,"__className__")||"")})},hasClass:function(e){var
t=" "+e+"
",n=0,r=this.length;for(;r>n;n++)if(1===this[n].nodeType&&("
"+this[n].className+" ").replace(U,"
").indexOf(t)>=0)return!0;return!1},val:function(e){var
n,r,i,o=this[0];{if(arguments.length)return i=x.isFunction(e),this.each(function(n){var
o;1===this.nodeType&&(o=i?e.call(this,n,x(this
).val()):e,null==o?o="":"number"==typeof
o?o+="":x.isArray(o)&&(o=x.map(o,function(e){return
null==e?"":e+""})),r=x.valHooks[this.type]||x.valHooks[this.nodeName.toLowerCase()],r&&"set"in
r&&r.set(this,o,"value")!==t||(this.value=o))});if(o)return
r=x.valHooks[o.type]||x.valHooks[o.nodeName.toLowerCase()],r&&"get"in
r&&(n=r.get(o,"value"))!==t?n:(n=o.value,"string"==typeof
n?n.replace(V,""):null==n?"":n)}}}),x.extend({valHooks:{option:{get:function(e){var
t=x.find.attr(e,"value");return null!=t?t:e.text}},select:{get:function(e){var
t,n,r=e.options,i=e.selectedIndex,o="select-one"===e.type||0>i,a=o?null:[],s=o?i+1:r.length,l=0>i?s:o?i:0;for(;s>l;l++)if(n=r[l],!(!n.selected&&l!==i||(x.support.optDisabled?n.disabled:null!==n.getAttribute("disabled"))||n.parentNode.disabled&&x.nodeName(n.parentNode,"optgroup"))){if(t=x(n).val(),o)return
t;a.push(t)}return a},set:function(e,t){var
n,r,i=e.options,o=x.makeArray(t),a=i.length;while(a--)r=i[a],(r.selected=x.inArray(x(r).val(),o)>=0
)&&(n=!0);return n||(e.selectedIndex=-1),o}}},attr:function(e,n,r){var
o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return typeof
e.getAttribute===i?x.prop(e,n,r):(1===s&&x.isXMLDoc(e)||(n=n.toLowerCase(),o=x.attrHooks[n]||(x.expr.match.bool.test(n)?X:z)),r===t?o&&"get"in
o&&null!==(a=o.get(e,n))?a:(a=x.find.attr(e,n),null==a?t:a):null!==r?o&&"set"in
o&&(a=o.set(e,r,n))!==t?a:(e.setAttribute(n,r+""),r):(x.removeAttr(e,n),t))},removeAttr:function(e,t){var
n,r,i=0,o=t&&t.match(T);if(o&&1===e.nodeType)while(n=o[i++])r=x.propFix[n]||n,x.expr.match.bool.test(n)?K&&Q||!G.test(n)?e[r]=!1:e[x.camelCase("default-"+n)]=e[r]=!1:x.attr(e,n,""),e.removeAttribute(Q?n:r)},attrHooks:{type:{set:function(e,t){if(!x.support.radioValue&&"radio"===t&&x.nodeName(e,"input")){var
n=e.value;return
e.setAttribute("type",t),n&&(e.value=n),t}}}},propFix:{"for":"htmlFor","class":"className"},prop:function(e,n,r){var
i,o,a,s=e.nodeType;if(e&&3!==s&&8!==s&&2!==s)return
a=1!==s||!x.isXMLDoc(e),a&&(n=x.propFi
x[n]||n,o=x.propHooks[n]),r!==t?o&&"set"in
o&&(i=o.set(e,r,n))!==t?i:e[n]=r:o&&"get"in
o&&null!==(i=o.get(e,n))?i:e[n]},propHooks:{tabIndex:{get:function(e){var
t=x.find.attr(e,"tabindex");return
t?parseInt(t,10):Y.test(e.nodeName)||J.test(e.nodeName)&&e.href?0:-1}}}}),X={set:function(e,t,n){return
t===!1?x.removeAttr(e,n):K&&Q||!G.test(n)?e.setAttribute(!Q&&x.propFix[n]||n,n):e[x.camelCase("default-"+n)]=e[n]=!0,n}},x.each(x.expr.match.bool.source.match(/\w+/g),function(e,n){var
r=x.expr.attrHandle[n]||x.find.attr;x.expr.attrHandle[n]=K&&Q||!G.test(n)?function(e,n,i){var
o=x.expr.attrHandle[n],a=i?t:(x.expr.attrHandle[n]=t)!=r(e,n,i)?n.toLowerCase():null;return
x.expr.attrHandle[n]=o,a}:function(e,n,r){return
r?t:e[x.camelCase("default-"+n)]?n.toLowerCase():null}}),K&&Q||(x.attrHooks.value={set:function(e,n,r){return
x.nodeName(e,"input")?(e.defaultValue=n,t):z&&z.set(e,n,r)}}),Q||(z={set:function(e,n,r){var
i=e.getAttributeNode(r);return i||e.setAttributeNode(i=e.ownerDocu
ment.createAttribute(r)),i.value=n+="","value"===r||n===e.getAttribute(r)?n:t}},x.expr.attrHandle.id=x.expr.attrHandle.name=x.expr.attrHandle.coords=function(e,n,r){var
i;return
r?t:(i=e.getAttributeNode(n))&&""!==i.value?i.value:null},x.valHooks.button={get:function(e,n){var
r=e.getAttributeNode(n);return
r&&r.specified?r.value:t},set:z.set},x.attrHooks.contenteditable={set:function(e,t,n){z.set(e,""===t?!1:t,n)}},x.each(["width","height"],function(e,n){x.attrHooks[n]={set:function(e,r){return""===r?(e.setAttribute(n,"auto"),r):t}}})),x.support.hrefNormalized||x.each(["href","src"],function(e,t){x.propHooks[t]={get:function(e){return
e.getAttribute(t,4)}}}),x.support.style||(x.attrHooks.style={get:function(e){return
e.style.cssText||t},set:function(e,t){return
e.style.cssText=t+""}}),x.support.optSelected||(x.propHooks.selected={get:function(e){var
t=e.parentNode;return
t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}}),x.each(["tabIndex","readOnly","maxL
ength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){x.propFix[this.toLowerCase()]=this}),x.support.enctype||(x.propFix.enctype="encoding"),x.each(["radio","checkbox"],function(){x.valHooks[this]={set:function(e,n){return
x.isArray(n)?e.checked=x.inArray(x(e).val(),n)>=0:t}},x.support.checkOn||(x.valHooks[this].get=function(e){return
null===e.getAttribute("value")?"on":e.value})});var
Z=/^(?:input|select|textarea)$/i,et=/^key/,tt=/^(?:mouse|contextmenu)|click/,nt=/^(?:focusinfocus|focusoutblur)$/,rt=/^([^.]*)(?:\.(.+)|)$/;function
it(){return!0}function ot(){return!1}function at(){try{return
a.activeElement}catch(e){}}x.event={global:{},add:function(e,n,r,o,a){var
s,l,u,c,p,f,d,h,g,m,y,v=x._data(e);if(v){r.handler&&(c=r,r=c.handler,a=c.selector),r.guid||(r.guid=x.guid++),(l=v.events)||(l=v.events={}),(f=v.handle)||(f=v.handle=function(e){return
typeof x===i||e&&x.event.triggered===e.type?t:x.event.dispatch.apply(f.elem,a
rguments)},f.elem=e),n=(n||"").match(T)||[""],u=n.length;while(u--)s=rt.exec(n[u])||[],g=y=s[1],m=(s[2]||"").split(".").sort(),g&&(p=x.event.special[g]||{},g=(a?p.delegateType:p.bindType)||g,p=x.event.special[g]||{},d=x.extend({type:g,origType:y,data:o,handler:r,guid:r.guid,selector:a,needsContext:a&&x.expr.match.needsContext.test(a),namespace:m.join(".")},c),(h=l[g])||(h=l[g]=[],h.delegateCount=0,p.setup&&p.setup.call(e,o,m,f)!==!1||(e.addEventListener?e.addEventListener(g,f,!1):e.attachEvent&&e.attachEvent("on"+g,f))),p.add&&(p.add.call(e,d),d.handler.guid||(d.handler.guid=r.guid)),a?h.splice(h.delegateCount++,0,d):h.push(d),x.event.global[g]=!0);e=null}},remove:function(e,t,n,r,i){var
o,a,s,l,u,c,p,f,d,h,g,m=x.hasData(e)&&x._data(e);if(m&&(c=m.events)){t=(t||"").match(T)||[""],u=t.length;while(u--)if(s=rt.exec(t[u])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){p=x.event.special[d]||{},d=(r?p.delegateType:p.bindType)||d,f=c[d]||[],s=s[2]&&RegExp("(^|\\.)"+h.join("\\.(?:.
*\\.|)")+"(\\.|$)"),l=o=f.length;while(o--)a=f[o],!i&&g!==a.origType||n&&n.guid!==a.guid||s&&!s.test(a.namespace)||r&&r!==a.selector&&("**"!==r||!a.selector)||(f.splice(o,1),a.selector&&f.delegateCount--,p.remove&&p.remove.call(e,a));l&&!f.length&&(p.teardown&&p.teardown.call(e,h,m.handle)!==!1||x.removeEvent(e,d,m.handle),delete
c[d])}else for(d in c)x.event.remove(e,d+t[u],n,r,!0);x.isEmptyObject(c)&&(delete
m.handle,x._removeData(e,"events"))}},trigger:function(n,r,i,o){var
s,l,u,c,p,f,d,h=[i||a],g=v.call(n,"type")?n.type:n,m=v.call(n,"namespace")?n.namespace.split("."):[];if(u=f=i=i||a,3!==i.nodeType&&8!==i.nodeType&&!nt.test(g+x.event.triggered)&&(g.indexOf(".")>=0&&(m=g.split("."),g=m.shift(),m.sort()),l=0>g.indexOf(":")&&"on"+g,n=n[x.expando]?n:new
x.Event(g,"object"==typeof
n&&n),n.isTrigger=o?2:3,n.namespace=m.join("."),n.namespace_re=n.namespace?RegExp("(^|\\.)"+m.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,n.result=t,n.target||(n.target=i),r=null==r?[n]:x.makeArray(r,[n
]),p=x.event.special[g]||{},o||!p.trigger||p.trigger.apply(i,r)!==!1)){if(!o&&!p.noBubble&&!x.isWindow(i)){for(c=p.delegateType||g,nt.test(c+g)||(u=u.parentNode);u;u=u.parentNode)h.push(u),f=u;f===(i.ownerDocument||a)&&h.push(f.defaultView||f.parentWindow||e)}d=0;while((u=h[d++])&&!n.isPropagationStopped())n.type=d>1?c:p.bindType||g,s=(x._data(u,"events")||{})[n.type]&&x._data(u,"handle"),s&&s.apply(u,r),s=l&&u[l],s&&x.acceptData(u)&&s.apply&&s.apply(u,r)===!1&&n.preventDefault();if(n.type=g,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(h.pop(),r)===!1)&&x.acceptData(i)&&l&&i[g]&&!x.isWindow(i)){f=i[l],f&&(i[l]=null),x.event.triggered=g;try{i[g]()}catch(y){}x.event.triggered=t,f&&(i[l]=f)}return
n.result}},dispatch:function(e){e=x.event.fix(e);var
n,r,i,o,a,s=[],l=g.call(arguments),u=(x._data(this,"events")||{})[e.type]||[],c=x.event.special[e.type]||{};if(l[0]=e,e.delegateTarget=this,!c.preDispatch||c.preDispatch.call(this,e)!==!1){s=x.event.handlers.call(this
,e,u),n=0;while((o=s[n++])&&!e.isPropagationStopped()){e.currentTarget=o.elem,a=0;while((i=o.handlers[a++])&&!e.isImmediatePropagationStopped())(!e.namespace_re||e.namespace_re.test(i.namespace))&&(e.handleObj=i,e.data=i.data,r=((x.event.special[i.origType]||{}).handle||i.handler).apply(o.elem,l),r!==t&&(e.result=r)===!1&&(e.preventDefault(),e.stopPropagation()))}return
c.postDispatch&&c.postDispatch.call(this,e),e.result}},handlers:function(e,n){var
r,i,o,a,s=[],l=n.delegateCount,u=e.target;if(l&&u.nodeType&&(!e.button||"click"!==e.type))for(;u!=this;u=u.parentNode||this)if(1===u.nodeType&&(u.disabled!==!0||"click"!==e.type)){for(o=[],a=0;l>a;a++)i=n[a],r=i.selector+"
",o[r]===t&&(o[r]=i.needsContext?x(r,this).index(u)>=0:x.find(r,this,null,[u]).length),o[r]&&o.push(i);o.length&&s.push({elem:u,handlers:o})}return
n.length>l&&s.push({elem:this,handlers:n.slice(l)}),s},fix:function(e){if(e[x.expando])return
e;var t,n,r,i=e.type,o=e,s=this.fixHooks[i];s||(this.fixHooks[i]=s=tt
.test(i)?this.mouseHooks:et.test(i)?this.keyHooks:{}),r=s.props?this.props.concat(s.props):this.props,e=new
x.Event(o),t=r.length;while(t--)n=r[t],e[n]=o[n];return
e.target||(e.target=o.srcElement||a),3===e.target.nodeType&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,o):e},props:"altKey
bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target
timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char
charCode key keyCode".split(" "),filter:function(e,t){return
null==e.which&&(e.which=null!=t.charCode?t.charCode:t.keyCode),e}},mouseHooks:{props:"button
buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY
toElement".split(" "),filter:function(e,n){var
r,i,o,s=n.button,l=n.fromElement;return
null==e.pageX&&null!=n.clientX&&(i=e.target.ownerDocument||a,o=i.documentElement,r=i.body,e.pageX=n.clientX+(o&&o.scrollLeft||r&&r.scrollLeft||0)-(o&&o.clientLeft||r&&r.clientLeft||0),e.pageY=n.
clientY+(o&&o.scrollTop||r&&r.scrollTop||0)-(o&&o.clientTop||r&&r.clientTop||0)),!e.relatedTarget&&l&&(e.relatedTarget=l===e.target?n.toElement:l),e.which||s===t||(e.which=1&s?1:2&s?3:4&s?2:0),e}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==at()&&this.focus)try{return
this.focus(),!1}catch(e){}},delegateType:"focusin"},blur:{trigger:function(){return
this===at()&&this.blur?(this.blur(),!1):t},delegateType:"focusout"},click:{trigger:function(){return
x.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):t},_default:function(e){return
x.nodeName(e.target,"a")}},beforeunload:{postDispatch:function(e){e.result!==t&&(e.originalEvent.returnValue=e.result)}}},simulate:function(e,t,n,r){var
i=x.extend(new
x.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?x.event.trigger(i,null,t):x.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},x.removeEvent=a.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEv
entListener(t,n,!1)}:function(e,t,n){var
r="on"+t;e.detachEvent&&(typeof
e[r]===i&&(e[r]=null),e.detachEvent(r,n))},x.Event=function(e,n){return this
instanceof
x.Event?(e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?it:ot):this.type=e,n&&x.extend(this,n),this.timeStamp=e&&e.timeStamp||x.now(),this[x.expando]=!0,t):new
x.Event(e,n)},x.Event.prototype={isDefaultPrevented:ot,isPropagationStopped:ot,isImmediatePropagationStopped:ot,preventDefault:function(){var
e=this.originalEvent;this.isDefaultPrevented=it,e&&(e.preventDefault?e.preventDefault():e.returnValue=!1)},stopPropagation:function(){var
e=this.originalEvent;this.isPropagationStopped=it,e&&(e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=it,this.stopPropagation()}},x.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t)
{x.event.special[e]={delegateType:t,bindType:t,handle:function(e){var
n,r=this,i=e.relatedTarget,o=e.handleObj;return(!i||i!==r&&!x.contains(r,i))&&(e.type=o.origType,n=o.handler.apply(this,arguments),e.type=t),n}}}),x.support.submitBubbles||(x.event.special.submit={setup:function(){return
x.nodeName(this,"form")?!1:(x.event.add(this,"click._submit
keypress._submit",function(e){var
n=e.target,r=x.nodeName(n,"input")||x.nodeName(n,"button")?n.form:t;r&&!x._data(r,"submitBubbles")&&(x.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),x._data(r,"submitBubbles",!0))}),t)},postDispatch:function(e){e._submit_bubble&&(delete
e._submit_bubble,this.parentNode&&!e.isTrigger&&x.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){return
x.nodeName(this,"form")?!1:(x.event.remove(this,"._submit"),t)}}),x.support.changeBubbles||(x.event.special.change={setup:function(){return
Z.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(x.event.add(th
is,"propertychange._change",function(e){"checked"===e.originalEvent.propertyName&&(this._just_changed=!0)}),x.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),x.event.simulate("change",this,e,!0)})),!1):(x.event.add(this,"beforeactivate._change",function(e){var
t=e.target;Z.test(t.nodeName)&&!x._data(t,"changeBubbles")&&(x.event.add(t,"change._change",function(e){!this.parentNode||e.isSimulated||e.isTrigger||x.event.simulate("change",this.parentNode,e,!0)}),x._data(t,"changeBubbles",!0))}),t)},handle:function(e){var
n=e.target;return
this!==n||e.isSimulated||e.isTrigger||"radio"!==n.type&&"checkbox"!==n.type?e.handleObj.handler.apply(this,arguments):t},teardown:function(){return
x.event.remove(this,"._change"),!Z.test(this.nodeName)}}),x.support.focusinBubbles||x.each({focus:"focusin",blur:"focusout"},function(e,t){var
n=0,r=function(e){x.event.simulate(t,e.target,x.event.fix(e),!0)};x.event.special[t]={setup:function(){0==
=n++&&a.addEventListener(e,r,!0)},teardown:function(){0===--n&&a.removeEventListener(e,r,!0)}}}),x.fn.extend({on:function(e,n,r,i,o){var
a,s;if("object"==typeof e){"string"!=typeof
n&&(r=r||n,n=t);for(a in e)this.on(a,n,r,e[a],o);return
this}if(null==r&&null==i?(i=n,r=n=t):null==i&&("string"==typeof
n?(i=r,r=t):(i=r,r=n,n=t)),i===!1)i=ot;else if(!i)return this;return
1===o&&(s=i,i=function(e){return
x().off(e),s.apply(this,arguments)},i.guid=s.guid||(s.guid=x.guid++)),this.each(function(){x.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return
this.on(e,t,n,r,1)},off:function(e,n,r){var
i,o;if(e&&e.preventDefault&&e.handleObj)return
i=e.handleObj,x(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if("object"==typeof
e){for(o in e)this.off(o,n,e[o]);return this}return(n===!1||"function"==typeof
n)&&(r=n,n=t),r===!1&&(r=ot),this.each(function(){x.event.remove(this,e,r,n)})},trigger:function(e,t){return
this.each(function(){x.
event.trigger(e,t,this)})},triggerHandler:function(e,n){var r=this[0];return
r?x.event.trigger(e,n,r,!0):t}});var
st=/^.[^:#\[\.,]*$/,lt=/^(?:parents|prev(?:Until|All))/,ut=x.expr.match.needsContext,ct={children:!0,contents:!0,next:!0,prev:!0};x.fn.extend({find:function(e){var
t,n=[],r=this,i=r.length;if("string"!=typeof e)return
this.pushStack(x(e).filter(function(){for(t=0;i>t;t++)if(x.contains(r[t],this))return!0}));for(t=0;i>t;t++)x.find(e,r[t],n);return
n=this.pushStack(i>1?x.unique(n):n),n.selector=this.selector?this.selector+"
"+e:e,n},has:function(e){var t,n=x(e,this),r=n.length;return
this.filter(function(){for(t=0;r>t;t++)if(x.contains(this,n[t]))return!0})},not:function(e){return
this.pushStack(ft(this,e||[],!0))},filter:function(e){return
this.pushStack(ft(this,e||[],!1))},is:function(e){return!!ft(this,"string"==typeof
e&&ut.test(e)?x(e):e||[],!1).length},closest:function(e,t){var
n,r=0,i=this.length,o=[],a=ut.test(e)||"string"!=typeof
e?x(e,t||this.context):0;f
or(;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(11>n.nodeType&&(a?a.index(n)>-1:1===n.nodeType&&x.find.matchesSelector(n,e))){n=o.push(n);break}return
this.pushStack(o.length>1?x.unique(o):o)},index:function(e){return
e?"string"==typeof
e?x.inArray(this[0],x(e)):x.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){var
n="string"==typeof
e?x(e,t):x.makeArray(e&&e.nodeType?[e]:e),r=x.merge(this.get(),n);return
this.pushStack(x.unique(r))},addBack:function(e){return
this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function pt(e,t){do
e=e[t];while(e&&1!==e.nodeType);return e}x.each({parent:function(e){var
t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return
x.dir(e,"parentNode")},parentsUntil:function(e,t,n){return
x.dir(e,"parentNode",n)},next:function(e){return
pt(e,"nextSibling")},prev:function(e){return
pt(e,"previousSibling")},nextAll:function(e){return
x.dir(e,"nextSibling"
)},prevAll:function(e){return
x.dir(e,"previousSibling")},nextUntil:function(e,t,n){return
x.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return
x.dir(e,"previousSibling",n)},siblings:function(e){return
x.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return
x.sibling(e.firstChild)},contents:function(e){return
x.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:x.merge([],e.childNodes)}},function(e,t){x.fn[e]=function(n,r){var
i=x.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof
r&&(i=x.filter(r,i)),this.length>1&&(ct[e]||(i=x.unique(i)),lt.test(e)&&(i=i.reverse())),this.pushStack(i)}}),x.extend({filter:function(e,t,n){var
r=t[0];return
n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?x.find.matchesSelector(r,e)?[r]:[]:x.find.matches(e,x.grep(t,function(e){return
1===e.nodeType}))},dir:function(e,n,r){var
i=[],o=e[n];while(o&&9!==o.nodeType&&(r===t||1!==o.nodeType||!x(o).is(r)))1===o.nodeType&&i.push(o),o=o[n];return
i
},sibling:function(e,t){var
n=[];for(;e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return
n}});function ft(e,t,n){if(x.isFunction(t))return
x.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return
x.grep(e,function(e){return e===t!==n});if("string"==typeof
t){if(st.test(t))return x.filter(t,e,n);t=x.filter(t,e)}return x.grep(e,function(e){return
x.inArray(e,t)>=0!==n})}function dt(e){var
t=ht.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return
n}var
ht="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gt=/
jQuery\d+="(?:null|\d+)"/g,mt=RegExp("<(?:"+ht+")[\\s/>]","i"),yt=/^\s+/,vt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,bt=/<([\w:]+)/,xt=/<tbody/i,wt=/<|&#?\w+;/,Tt=/<(?:script|style|link)/i,Ct=/^(?:checkbox|radio)$/i,Nt=/checked\s*(?:[^=]|=\s*.checked.)/i,kt=/^$|
\/(?:java|ecma)script/i,Et=/^true\/(.*)/,St=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,At={option:[1,"<select
multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:x.support.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},jt=dt(a),Dt=jt.appendChild(a.createElement("div"));At.optgroup=At.option,At.tbody=At.tfoot=At.colgroup=At.caption=At.thead,At.th=At.td,x.fn.extend({text:function(e){return
x.access(this,function(e){return
e===t?x.text(this):this.empty().append((this[0]&&this[0].ownerDocument||a).createTextNode(e))},null,e,arguments.length)},append:function(){return
this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var
t=Lt(this,e);t.appendChild(e)}})},prep
end:function(){return
this.domManip(arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var
t=Lt(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return
this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return
this.domManip(arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},remove:function(e,t){var
n,r=e?x.filter(e,this):this,i=0;for(;null!=(n=r[i]);i++)t||1!==n.nodeType||x.cleanData(Ft(n)),n.parentNode&&(t&&x.contains(n.ownerDocument,n)&&_t(Ft(n,"script")),n.parentNode.removeChild(n));return
this},empty:function(){var
e,t=0;for(;null!=(e=this[t]);t++){1===e.nodeType&&x.cleanData(Ft(e,!1));while(e.firstChild)e.removeChild(e.firstChild);e.options&&x.nodeName(e,"select")&&(e.options.length=0)}return
this},clone:function(e,t){return e=null==e?!1:e,t=null==t?e:t,this.map(function(){return
x.clone(this,e,t)})},html:function(e){return x.acc
ess(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return
1===n.nodeType?n.innerHTML.replace(gt,""):t;if(!("string"!=typeof
e||Tt.test(e)||!x.support.htmlSerialize&&mt.test(e)||!x.support.leadingWhitespace&&yt.test(e)||At[(bt.exec(e)||["",""])[1].toLowerCase()])){e=e.replace(vt,"<$1></$2>");try{for(;i>r;r++)n=this[r]||{},1===n.nodeType&&(x.cleanData(Ft(n,!1)),n.innerHTML=e);n=0}catch(o){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var
e=x.map(this,function(e){return[e.nextSibling,e.parentNode]}),t=0;return
this.domManip(arguments,function(n){var
r=e[t++],i=e[t++];i&&(r&&r.parentNode!==i&&(r=this.nextSibling),x(this).remove(),i.insertBefore(n,r))},!0),t?this:this.remove()},detach:function(e){return
this.remove(e,!0)},domManip:function(e,t,n){e=d.apply([],e);var
r,i,o,a,s,l,u=0,c=this.length,p=this,f=c-1,h=e[0],g=x.isFunction(h);if(g||!(1>=c||"string"!=typeof
h||x.support.checkClone)&&Nt.test(h))return this.each(function(r){var i
=p.eq(r);g&&(e[0]=h.call(this,r,i.html())),i.domManip(e,t,n)});if(c&&(l=x.buildFragment(e,this[0].ownerDocument,!1,!n&&this),r=l.firstChild,1===l.childNodes.length&&(l=r),r)){for(a=x.map(Ft(l,"script"),Ht),o=a.length;c>u;u++)i=l,u!==f&&(i=x.clone(i,!0,!0),o&&x.merge(a,Ft(i,"script"))),t.call(this[u],i,u);if(o)for(s=a[a.length-1].ownerDocument,x.map(a,qt),u=0;o>u;u++)i=a[u],kt.test(i.type||"")&&!x._data(i,"globalEval")&&x.contains(s,i)&&(i.src?x._evalUrl(i.src):x.globalEval((i.text||i.textContent||i.innerHTML||"").replace(St,"")));l=r=null}return
this}});function Lt(e,t){return
x.nodeName(e,"table")&&x.nodeName(1===t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function
Ht(e){return
e.type=(null!==x.find.attr(e,"type"))+"/"+e.type,e}function qt(e){var
t=Et.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function
_t(e,t){var n,r=0;for(;null!=(n=e[r]);r++)x._data(n,"globalEval",!t||x._dat
a(t[r],"globalEval"))}function
Mt(e,t){if(1===t.nodeType&&x.hasData(e)){var
n,r,i,o=x._data(e),a=x._data(t,o),s=o.events;if(s){delete a.handle,a.events={};for(n in
s)for(r=0,i=s[n].length;i>r;r++)x.event.add(t,n,s[n][r])}a.data&&(a.data=x.extend({},a.data))}}function
Ot(e,t){var
n,r,i;if(1===t.nodeType){if(n=t.nodeName.toLowerCase(),!x.support.noCloneEvent&&t[x.expando]){i=x._data(t);for(r
in
i.events)x.removeEvent(t,r,i.handle);t.removeAttribute(x.expando)}"script"===n&&t.text!==e.text?(Ht(t).text=e.text,qt(t)):"object"===n?(t.parentNode&&(t.outerHTML=e.outerHTML),x.support.html5Clone&&e.innerHTML&&!x.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):"input"===n&&Ct.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):"option"===n?t.defaultSelected=t.selected=e.defaultSelected:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}}x.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"repl
aceWith"},function(e,t){x.fn[e]=function(e){var
n,r=0,i=[],o=x(e),a=o.length-1;for(;a>=r;r++)n=r===a?this:this.clone(!0),x(o[r])[t](n),h.apply(i,n.get());return
this.pushStack(i)}});function Ft(e,n){var r,o,a=0,s=typeof
e.getElementsByTagName!==i?e.getElementsByTagName(n||"*"):typeof
e.querySelectorAll!==i?e.querySelectorAll(n||"*"):t;if(!s)for(s=[],r=e.childNodes||e;null!=(o=r[a]);a++)!n||x.nodeName(o,n)?s.push(o):x.merge(s,Ft(o,n));return
n===t||n&&x.nodeName(e,n)?x.merge([e],s):s}function
Bt(e){Ct.test(e.type)&&(e.defaultChecked=e.checked)}x.extend({clone:function(e,t,n){var
r,i,o,a,s,l=x.contains(e.ownerDocument,e);if(x.support.html5Clone||x.isXMLDoc(e)||!mt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(Dt.innerHTML=e.outerHTML,Dt.removeChild(o=Dt.firstChild)),!(x.support.noCloneEvent&&x.support.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||x.isXMLDoc(e)))for(r=Ft(o),s=Ft(e),a=0;null!=(i=s[a]);++a)r[a]&&Ot(i,r[a]);if(t)if(n)for(s=s||Ft(e),r=r||Ft(o),a=0;null!=(i=s[a]);a
++)Mt(i,r[a]);else Mt(e,o);return
r=Ft(o,"script"),r.length>0&&_t(r,!l&&Ft(e,"script")),r=s=i=null,o},buildFragment:function(e,t,n,r){var
i,o,a,s,l,u,c,p=e.length,f=dt(t),d=[],h=0;for(;p>h;h++)if(o=e[h],o||0===o)if("object"===x.type(o))x.merge(d,o.nodeType?[o]:o);else
if(wt.test(o)){s=s||f.appendChild(t.createElement("div")),l=(bt.exec(o)||["",""])[1].toLowerCase(),c=At[l]||At._default,s.innerHTML=c[1]+o.replace(vt,"<$1></$2>")+c[2],i=c[0];while(i--)s=s.lastChild;if(!x.support.leadingWhitespace&&yt.test(o)&&d.push(t.createTextNode(yt.exec(o)[0])),!x.support.tbody){o="table"!==l||xt.test(o)?"<table>"!==c[1]||xt.test(o)?0:s:s.firstChild,i=o&&o.childNodes.length;while(i--)x.nodeName(u=o.childNodes[i],"tbody")&&!u.childNodes.length&&o.removeChild(u)}x.merge(d,s.childNodes),s.textContent="";while(s.firstChild)s.removeChild(s.firstChild);s=f.lastChild}else
d.push(t.createTextNode(o));s&&f.removeChild(s),x.support.appendChecked||x.grep(Ft(d,"input"),Bt),h=0;while(o=d[h++])if((!r||-
1===x.inArray(o,r))&&(a=x.contains(o.ownerDocument,o),s=Ft(f.appendChild(o),"script"),a&&_t(s),n)){i=0;while(o=s[i++])kt.test(o.type||"")&&n.push(o)}return
s=null,f},cleanData:function(e,t){var
n,r,o,a,s=0,l=x.expando,u=x.cache,c=x.support.deleteExpando,f=x.event.special;for(;null!=(n=e[s]);s++)if((t||x.acceptData(n))&&(o=n[l],a=o&&u[o])){if(a.events)for(r
in a.events)f[r]?x.event.remove(n,r):x.removeEvent(n,r,a.handle);
+u[o]&&(delete u[o],c?delete n[l]:typeof
n.removeAttribute!==i?n.removeAttribute(l):n[l]=null,p.push(o))}},_evalUrl:function(e){return
x.ajax({url:e,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})}}),x.fn.extend({wrapAll:function(e){if(x.isFunction(e))return
this.each(function(t){x(this).wrapAll(e.call(this,t))});if(this[0]){var
t=x(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var
e=this;while(e.firstChild&&1===e.firstChild.nodeType)e=e.firstChild;return
e}).append(this)}return this},wrapInner:function(e){return
x.isFunction(e)?this.each(function(t){x(this).wrapInner(e.call(this,t))}):this.each(function(){var
t=x(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var
t=x.isFunction(e);return
this.each(function(n){x(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return
this.parent().each(function(){x.nodeName(this,"body")||x(this).replaceWith(this.childNodes)}).end()}});var
P
t,Rt,Wt,$t=/alpha\([^)]*\)/i,It=/opacity\s*=\s*([^)]*)/,zt=/^(top|right|bottom|left)$/,Xt=/^(none|table(?!-c[ea]).+)/,Ut=/^margin/,Vt=RegExp("^("+w+")(.*)$","i"),Yt=RegExp("^("+w+")(?!px)[a-z%]+$","i"),Jt=RegExp("^([+-])=("+w+")","i"),Gt={BODY:"block"},Qt={position:"absolute",visibility:"hidden",display:"block"},Kt={letterSpacing:0,fontWeight:400},Zt=["Top","Right","Bottom","Left"],en=["Webkit","O","Moz","ms"];function
tn(e,t){if(t in e)return t;var
n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=en.length;while(i--)if(t=en[i]+n,t in
e)return t;return r}function nn(e,t){return
e=t||e,"none"===x.css(e,"display")||!x.contains(e.ownerDocument,e)}function
rn(e,t){var
n,r,i,o=[],a=0,s=e.length;for(;s>a;a++)r=e[a],r.style&&(o[a]=x._data(r,"olddisplay"),n=r.style.display,t?(o[a]||"none"!==n||(r.style.display=""),""===r.style.display&&nn(r)&&(o[a]=x._data(r,"olddisplay",ln(r.nodeName)))):o[a]||(i=nn(r),(n&&"none"!==n||!i)&&x._data(r,"olddisplay",i?n:x.css(r,"display"))));for(a=0;s>a;a+
+)r=e[a],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[a]||"":"none"));return
e}x.fn.extend({css:function(e,n){return x.access(this,function(e,n,r){var
i,o,a={},s=0;if(x.isArray(n)){for(o=Rt(e),i=n.length;i>s;s++)a[n[s]]=x.css(e,n[s],!1,o);return
a}return
r!==t?x.style(e,n,r):x.css(e,n)},e,n,arguments.length>1)},show:function(){return
rn(this,!0)},hide:function(){return
rn(this)},toggle:function(e){return"boolean"==typeof
e?e?this.show():this.hide():this.each(function(){nn(this)?x(this).show():x(this).hide()})}}),x.extend({cssHooks:{opacity:{get:function(e,t){if(t){var
n=Wt(e,"opacity");return""===n?"1":n}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":x.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var
o,a,s,l=x.camelCase(n),u=e.style;if(n=x.cssProps[l]||(x.cssProps[l]=tn
(u,l)),s=x.cssHooks[n]||x.cssHooks[l],r===t)return s&&"get"in
s&&(o=s.get(e,!1,i))!==t?o:u[n];if(a=typeof
r,"string"===a&&(o=Jt.exec(r))&&(r=(o[1]+1)*o[2]+parseFloat(x.css(e,n)),a="number"),!(null==r||"number"===a&&isNaN(r)||("number"!==a||x.cssNumber[l]||(r+="px"),x.support.clearCloneStyle||""!==r||0!==n.indexOf("background")||(u[n]="inherit"),s&&"set"in
s&&(r=s.set(e,r,i))===t)))try{u[n]=r}catch(c){}}},css:function(e,n,r,i){var
o,a,s,l=x.camelCase(n);return
n=x.cssProps[l]||(x.cssProps[l]=tn(e.style,l)),s=x.cssHooks[n]||x.cssHooks[l],s&&"get"in
s&&(a=s.get(e,!0,r)),a===t&&(a=Wt(e,n,i)),"normal"===a&&n
in
Kt&&(a=Kt[n]),""===r||r?(o=parseFloat(a),r===!0||x.isNumeric(o)?o||0:a):a}}),e.getComputedStyle?(Rt=function(t){return
e.getComputedStyle(t,null)},Wt=function(e,n,r){var
i,o,a,s=r||Rt(e),l=s?s.getPropertyValue(n)||s[n]:t,u=e.style;return
s&&(""!==l||x.contains(e.ownerDocument,e)||(l=x.style(e,n)),Yt.test(l)&&Ut.test(n)&&(i=u.width,o=u.minWidth,a=u.maxWidth,u.minWidth=u.max
Width=u.width=l,l=s.width,u.width=i,u.minWidth=o,u.maxWidth=a)),l}):a.documentElement.currentStyle&&(Rt=function(e){return
e.currentStyle},Wt=function(e,n,r){var i,o,a,s=r||Rt(e),l=s?s[n]:t,u=e.style;return
null==l&&u&&u[n]&&(l=u[n]),Yt.test(l)&&!zt.test(n)&&(i=u.left,o=e.runtimeStyle,a=o&&o.left,a&&(o.left=e.currentStyle.left),u.left="fontSize"===n?"1em":l,l=u.pixelLeft+"px",u.left=i,a&&(o.left=a)),""===l?"auto":l});function
on(e,t,n){var r=Vt.exec(t);return
r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function an(e,t,n,r,i){var
o=n===(r?"border":"content")?4:"width"===t?1:0,a=0;for(;4>o;o+=2)"margin"===n&&(a+=x.css(e,n+Zt[o],!0,i)),r?("content"===n&&(a-=x.css(e,"padding"+Zt[o],!0,i)),"margin"!==n&&(a-=x.css(e,"border"+Zt[o]+"Width",!0,i))):(a+=x.css(e,"padding"+Zt[o],!0,i),"padding"!==n&&(a+=x.css(e,"border"+Zt[o]+"Width",!0,i)));return
a}function sn(e,t,n){var
r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=Rt(e),a=x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,
o);if(0>=i||null==i){if(i=Wt(e,t,o),(0>i||null==i)&&(i=e.style[t]),Yt.test(i))return
i;r=a&&(x.support.boxSizingReliable||i===e.style[t]),i=parseFloat(i)||0}return
i+an(e,t,n||(a?"border":"content"),r,o)+"px"}function
ln(e){var t=a,n=Gt[e];return
n||(n=un(e,t),"none"!==n&&n||(Pt=(Pt||x("<iframe
frameborder='0' width='0'
height='0'/>").css("cssText","display:block
!important")).appendTo(t.documentElement),t=(Pt[0].contentWindow||Pt[0].contentDocument).document,t.write("<!doctype
html><html><body>"),t.close(),n=un(e,t),Pt.detach()),Gt[e]=n),n}function
un(e,t){var
n=x(t.createElement(e)).appendTo(t.body),r=x.css(n[0],"display");return
n.remove(),r}x.each(["height","width"],function(e,n){x.cssHooks[n]={get:function(e,r,i){return
r?0===e.offsetWidth&&Xt.test(x.css(e,"display"))?x.swap(e,Qt,function(){return
sn(e,n,i)}):sn(e,n,i):t},set:function(e,t,r){var i=r&&Rt(e);return
on(e,t,r?an(e,n,r,x.support.boxSizing&&"border-box"===x.css(e,"boxSizing",!1,i),i):0)}}}),x.support.opacity|
|(x.cssHooks.opacity={get:function(e,t){return
It.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var
n=e.style,r=e.currentStyle,i=x.isNumeric(t)?"alpha(opacity="+100*t+")":"",o=r&&r.filter||n.filter||"";n.zoom=1,(t>=1||""===t)&&""===x.trim(o.replace($t,""))&&n.removeAttribute&&(n.removeAttribute("filter"),""===t||r&&!r.filter)||(n.filter=$t.test(o)?o.replace($t,i):o+"
"+i)}}),x(function(){x.support.reliableMarginRight||(x.cssHooks.marginRight={get:function(e,n){return
n?x.swap(e,{display:"inline-block"},Wt,[e,"marginRight"]):t}}),!x.support.pixelPosition&&x.fn.position&&x.each(["top","left"],function(e,n){x.cssHooks[n]={get:function(e,r){return
r?(r=Wt(e,n),Yt.test(r)?x(e).position()[n]+"px":r):t}}})}),x.expr&&x.expr.filters&&(x.expr.filters.hidden=function(e){return
0>=e.offsetWidth&&0>=e.offsetHeight||!x.support.reliableHiddenOffsets&&"none"===(e.style&&e.style.display||x.css(e,"display"))},x.expr
.filters.visible=function(e){return!x.expr.filters.hidden(e)}),x.each({margin:"",padding:"",border:"Width"},function(e,t){x.cssHooks[e+t]={expand:function(n){var
r=0,i={},o="string"==typeof n?n.split("
"):[n];for(;4>r;r++)i[e+Zt[r]+t]=o[r]||o[r-2]||o[0];return
i}},Ut.test(e)||(x.cssHooks[e+t].set=on)});var
cn=/%20/g,pn=/\[\]$/,fn=/\r?\n/g,dn=/^(?:submit|button|image|reset|file)$/i,hn=/^(?:input|select|textarea|keygen)/i;x.fn.extend({serialize:function(){return
x.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var
e=x.prop(this,"elements");return e?x.makeArray(e):this}).filter(function(){var
e=this.type;return
this.name&&!x(this).is(":disabled")&&hn.test(this.nodeName)&&!dn.test(e)&&(this.checked||!Ct.test(e))}).map(function(e,t){var
n=x(this).val();return
null==n?null:x.isArray(n)?x.map(n,function(e){return{name:t.name,value:e.replace(fn,"\r\n")}}):{name:t.name,value:n.replace(fn,"\r\n")}}).get()}}),x.param=function(e,n){var
r,i=[],o=functi
on(e,t){t=x.isFunction(t)?t():null==t?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(n===t&&(n=x.ajaxSettings&&x.ajaxSettings.traditional),x.isArray(e)||e.jquery&&!x.isPlainObject(e))x.each(e,function(){o(this.name,this.value)});else
for(r in e)gn(r,e[r],n,o);return
i.join("&").replace(cn,"+")};function gn(e,t,n,r){var
i;if(x.isArray(t))x.each(t,function(t,i){n||pn.test(e)?r(e,i):gn(e+"["+("object"==typeof
i?t:"")+"]",i,n,r)});else
if(n||"object"!==x.type(t))r(e,t);else for(i in
t)gn(e+"["+i+"]",t[i],n,r)}x.each("blur focus focusin focusout
load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout
mouseenter mouseleave change select submit keydown keypress keyup error
contextmenu".split(" "),function(e,t){x.fn[t]=function(e,n){return
arguments.length>0?this.on(t,null,e,n):this.trigger(t)}}),x.fn.extend({hover:function(e,t){return
this.mouseenter(e).mouseleave(t||e)},bind:function(e,t,n){return
this.on(e,null,t,n)},unbind:fu
nction(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return
this.on(t,e,n,r)},undelegate:function(e,t,n){return
1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)}});var
mn,yn,vn=x.now(),bn=/\?/,xn=/#.*$/,wn=/([?&])_=[^&]*/,Tn=/^(.*?):[
\t]*([^\r\n]*)\r?$/gm,Cn=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Nn=/^(?:GET|HEAD)$/,kn=/^\/\//,En=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,Sn=x.fn.load,An={},jn={},Dn="*/".concat("*");try{yn=o.href}catch(Ln){yn=a.createElement("a"),yn.href="",yn=yn.href}mn=En.exec(yn.toLowerCase())||[];function
Hn(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var
r,i=0,o=t.toLowerCase().match(T)||[];if(x.isFunction(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function
qn(e,n,r,i){var o={},a=e===jn;function s(l){var u;return
o[l]=!0,x.each(e[l]||[],function(e,l){var c=l(n,r,i);return"string"!=typeof
c||a||o[c]?a?!(u=c):t:(n.dataTypes.unshift(c),s(c
),!1)}),u}return s(n.dataTypes[0])||!o["*"]&&s("*")}function
_n(e,n){var r,i,o=x.ajaxSettings.flatOptions||{};for(i in
n)n[i]!==t&&((o[i]?e:r||(r={}))[i]=n[i]);return
r&&x.extend(!0,e,r),e}x.fn.load=function(e,n,r){if("string"!=typeof
e&&Sn)return Sn.apply(this,arguments);var i,o,a,s=this,l=e.indexOf("
");return
l>=0&&(i=e.slice(l,e.length),e=e.slice(0,l)),x.isFunction(n)?(r=n,n=t):n&&"object"==typeof
n&&(a="POST"),s.length>0&&x.ajax({url:e,type:a,dataType:"html",data:n}).done(function(e){o=arguments,s.html(i?x("<div>").append(x.parseHTML(e)).find(i):e)}).complete(r&&function(e,t){s.each(r,o||[e.responseText,t,e])}),this},x.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){x.fn[t]=function(e){return
this.on(t,e)}}),x.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:yn,type:"GET",isLocal:Cn.test(mn[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded;
charset=UTF-8",accepts:{"*":Dn,text:"t
ext/plain",html:"text/html",xml:"application/xml,
text/xml",json:"application/json,
text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"*
text":String,"text html":!0,"text json":x.parseJSON,"text
xml":x.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return
t?_n(_n(e,x.ajaxSettings),t):_n(x.ajaxSettings,e)},ajaxPrefilter:Hn(An),ajaxTransport:Hn(jn),ajax:function(e,n){"object"==typeof
e&&(n=e,e=t),n=n||{};var
r,i,o,a,s,l,u,c,p=x.ajaxSetup({},n),f=p.context||p,d=p.context&&(f.nodeType||f.jquery)?x(f):x.event,h=x.Deferred(),g=x.Callbacks("once
memory"),m=p.statusCode||{},y={},v={},b=0,w="canceled",C={readyState:0,getResponseHeader:function(e){var
t;if(2===b){if(!c){c={};while(t=Tn.exec(a))c[t[1].toLowerCase()]=t[2]}t=c[e.toLowerCase()]}return
null==t?null:t},getAllResponseHeaders:function(){return
2===b?a:null},setRequestHeader:function(e,t){var n=e.toLowerCase(
);return b||(e=v[n]=v[n]||e,y[e]=t),this},overrideMimeType:function(e){return
b||(p.mimeType=e),this},statusCode:function(e){var t;if(e)if(2>b)for(t in
e)m[t]=[m[t],e[t]];else C.always(e[C.status]);return this},abort:function(e){var
t=e||w;return
u&&u.abort(t),k(0,t),this}};if(h.promise(C).complete=g.add,C.success=C.done,C.error=C.fail,p.url=((e||p.url||yn)+"").replace(xn,"").replace(kn,mn[1]+"//"),p.type=n.method||n.type||p.method||p.type,p.dataTypes=x.trim(p.dataType||"*").toLowerCase().match(T)||[""],null==p.crossDomain&&(r=En.exec(p.url.toLowerCase()),p.crossDomain=!(!r||r[1]===mn[1]&&r[2]===mn[2]&&(r[3]||("http:"===r[1]?"80":"443"))===(mn[3]||("http:"===mn[1]?"80":"443")))),p.data&&p.processData&&"string"!=typeof
p.data&&(p.data=x.param(p.data,p.traditional)),qn(An,p,n,C),2===b)return
C;l=p.global,l&&0===x.active++&&x.event.trigger("ajaxStart"),p.type=p.type.toUpperCase(),p.hasContent=!Nn.test(p.type),o=p.url,p.hasContent||(p.data&&(o=p.url+=(bn.test(o)?"&":"?")+p.data,
delete
p.data),p.cache===!1&&(p.url=wn.test(o)?o.replace(wn,"$1_="+vn++):o+(bn.test(o)?"&":"?")+"_="+vn++)),p.ifModified&&(x.lastModified[o]&&C.setRequestHeader("If-Modified-Since",x.lastModified[o]),x.etag[o]&&C.setRequestHeader("If-None-Match",x.etag[o])),(p.data&&p.hasContent&&p.contentType!==!1||n.contentType)&&C.setRequestHeader("Content-Type",p.contentType),C.setRequestHeader("Accept",p.dataTypes[0]&&p.accepts[p.dataTypes[0]]?p.accepts[p.dataTypes[0]]+("*"!==p.dataTypes[0]?",
"+Dn+"; q=0.01":""):p.accepts["*"]);for(i in
p.headers)C.setRequestHeader(i,p.headers[i]);if(p.beforeSend&&(p.beforeSend.call(f,C,p)===!1||2===b))return
C.abort();w="abort";for(i
in{success:1,error:1,complete:1})C[i](p[i]);if(u=qn(jn,p,n,C)){C.readyState=1,l&&d.trigger("ajaxSend",[C,p]),p.async&&p.timeout>0&&(s=setTimeout(function(){C.abort("timeout")},p.timeout));try{b=1,u.send(y,k)}catch(N){if(!(2>b))throw
N;k(-1,N)}}else k(-1,"No Transport");function k(e,n,r,i){var
c,y,v,w,T,N=n;2!==b&&(b=2,s&&
clearTimeout(s),u=t,a=i||"",C.readyState=e>0?4:0,c=e>=200&&300>e||304===e,r&&(w=Mn(p,C,r)),w=On(p,w,C,c),c?(p.ifModified&&(T=C.getResponseHeader("Last-Modified"),T&&(x.lastModified[o]=T),T=C.getResponseHeader("etag"),T&&(x.etag[o]=T)),204===e||"HEAD"===p.type?N="nocontent":304===e?N="notmodified":(N=w.state,y=w.data,v=w.error,c=!v)):(v=N,(e||!N)&&(N="error",0>e&&(e=0))),C.status=e,C.statusText=(n||N)+"",c?h.resolveWith(f,[y,N,C]):h.rejectWith(f,[C,N,v]),C.statusCode(m),m=t,l&&d.trigger(c?"ajaxSuccess":"ajaxError",[C,p,c?y:v]),g.fireWith(f,[C,N]),l&&(d.trigger("ajaxComplete",[C,p]),--x.active||x.event.trigger("ajaxStop")))}return
C},getJSON:function(e,t,n){return
x.get(e,t,n,"json")},getScript:function(e,n){return
x.get(e,t,n,"script")}}),x.each(["get","post"],function(e,n){x[n]=function(e,r,i,o){return
x.isFunction(r)&&(o=o||i,i=r,r=t),x.ajax({url:e,type:n,dataType:o,data:r,success:i})}});function
Mn(e,n,r){var i,o,a,s,l=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),o=
==t&&(o=e.mimeType||n.getResponseHeader("Content-Type"));if(o)for(s in
l)if(l[s]&&l[s].test(o)){u.unshift(s);break}if(u[0]in r)a=u[0];else{for(s in
r){if(!u[0]||e.converters[s+" "+u[0]]){a=s;break}i||(i=s)}a=a||i}return
a?(a!==u[0]&&u.unshift(a),r[a]):t}function On(e,t,n,r){var
i,o,a,s,l,u={},c=e.dataTypes.slice();if(c[1])for(a in
e.converters)u[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!l&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),l=o,o=c.shift())if("*"===o)o=l;else
if("*"!==l&&l!==o){if(a=u[l+" "+o]||u["*
"+o],!a)for(i in u)if(s=i.split(" "),s[1]===o&&(a=u[l+"
"+s[0]]||u["*
"+s[0]])){a===!0?a=u[i]:u[i]!==!0&&(o=s[0],c.unshift(s[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else
try{t=a(t)}catch(p){return{state:"parsererror",error:a?p:"No conversion
from "+l+" to
"+o}}}return{state:"success",data:t}}x.ajaxSetup({accepts:{script:"text/javascript,
application/javascript, application/ecmascript, application/x-
ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text
script":function(e){return
x.globalEval(e),e}}}),x.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),x.ajaxTransport("script",function(e){if(e.crossDomain){var
n,r=a.head||x("head")[0]||a.documentElement;return{send:function(t,i){n=a.createElement("script"),n.async=!0,e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,t){(t||!n.readyState||/loaded|complete/.test(n.readyState))&&(n.onload=n.onreadystatechange=null,n.parentNode&&n.parentNode.removeChild(n),n=null,t||i(200,"success"))},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(t,!0)}}}});var
Fn=[],Bn=/(=)\?(?=&|$)|\?\?/;x.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var
e=Fn.pop()||x.expando+"_"+vn++;return this[e]=!0,e}}),x.ajaxPrefilter("json
jsonp",function(n,r,i){var
o,a,s,l=n.jsonp!==!1&&(Bn.test(n.url)?"url":"string"==typeof
n.data&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Bn.test(n.data)&&"data");return
l||"jsonp"===n.dataTypes[0]?(o=n.jsonpCallback=x.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,l?n[l]=n[l].replace(Bn,"$1"+o):n.jsonp!==!1&&(n.url+=(bn.test(n.url)?"&":"?")+n.jsonp+"="+o),n.converters["script
json"]=function(){return s||x.error(o+" was not
called"),s[0]},n.dataTypes[0]="json",a=e[o],e[o]=function(){s=arguments},i.always(function(){e[o]=a,n[o]&&(n.jsonpCallback=r.jsonpCallback,Fn.push(o)),s&&x.isFunction(a)&&a(s[0]),s=a=t}),"script"):t});var
Pn,Rn,Wn=0,$n=e.ActiveXObject&&function(){var e;for(e in Pn)Pn[e](t,!0)};function
In(){try{return new e.XMLHttpRequest}catch(t){}}function zn(){try{return new
e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}x.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&In()||zn()}:In,Rn=x.ajaxSettings.xhr(),x.support.cors=!!Rn&&"withCredentials"in
Rn,Rn=x.support.ajax=!!Rn,Rn&&x.ajaxTransport(func
tion(n){if(!n.crossDomain||x.support.cors){var r;return{send:function(i,o){var
a,s,l=n.xhr();if(n.username?l.open(n.type,n.url,n.async,n.username,n.password):l.open(n.type,n.url,n.async),n.xhrFields)for(s
in
n.xhrFields)l[s]=n.xhrFields[s];n.mimeType&&l.overrideMimeType&&l.overrideMimeType(n.mimeType),n.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");try{for(s
in
i)l.setRequestHeader(s,i[s])}catch(u){}l.send(n.hasContent&&n.data||null),r=function(e,i){var
s,u,c,p;try{if(r&&(i||4===l.readyState))if(r=t,a&&(l.onreadystatechange=x.noop,$n&&delete
Pn[a]),i)4!==l.readyState&&l.abort();else{p={},s=l.status,u=l.getAllResponseHeaders(),"string"==typeof
l.responseText&&(p.text=l.responseText);try{c=l.statusText}catch(f){c=""}s||!n.isLocal||n.crossDomain?1223===s&&(s=204):s=p.text?200:404}}catch(d){i||o(-1,d)}p&&o(s,c,p,u)},n.async?4===l.readyState?setTimeout(r):(a=++Wn,$n&&(Pn||(Pn={},x(e).unload($n)),Pn[a]=r),l.onreadystatechange=r):r()},abort:function()
{r&&r(t,!0)}}}});var
Xn,Un,Vn=/^(?:toggle|show|hide)$/,Yn=RegExp("^(?:([+-])=|)("+w+")([a-z%]*)$","i"),Jn=/queueHooks$/,Gn=[nr],Qn={"*":[function(e,t){var
n=this.createTween(e,t),r=n.cur(),i=Yn.exec(t),o=i&&i[3]||(x.cssNumber[e]?"":"px"),a=(x.cssNumber[e]||"px"!==o&&+r)&&Yn.exec(x.css(n.elem,e)),s=1,l=20;if(a&&a[3]!==o){o=o||a[3],i=i||[],a=+r||1;do
s=s||".5",a/=s,x.style(n.elem,e,a+o);while(s!==(s=n.cur()/r)&&1!==s&&--l)}return
i&&(a=n.start=+a||+r||0,n.unit=o,n.end=i[1]?a+(i[1]+1)*i[2]:+i[2]),n}]};function
Kn(){return setTimeout(function(){Xn=t}),Xn=x.now()}function Zn(e,t,n){var
r,i=(Qn[t]||[]).concat(Qn["*"]),o=0,a=i.length;for(;a>o;o++)if(r=i[o].call(n,t,e))return
r}function er(e,t,n){var r,i,o=0,a=Gn.length,s=x.Deferred().always(function(){delete
l.elem}),l=function(){if(i)return!1;var
t=Xn||Kn(),n=Math.max(0,u.startTime+u.duration-t),r=n/u.duration||0,o=1-r,a=0,l=u.tweens.length;for(;l>a;a++)u.tweens[a].run(o);return
s.notifyWith(e,[u,o,n]),1>o&&l?n:(s.resolveWith(e,[u
]),!1)},u=s.promise({elem:e,props:x.extend({},t),opts:x.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Xn||Kn(),duration:n.duration,tweens:[],createTween:function(t,n){var
r=x.Tween(e,u.opts,t,n,u.opts.specialEasing[t]||u.opts.easing);return
u.tweens.push(r),r},stop:function(t){var n=0,r=t?u.tweens.length:0;if(i)return
this;for(i=!0;r>n;n++)u.tweens[n].run(1);return
t?s.resolveWith(e,[u,t]):s.rejectWith(e,[u,t]),this}}),c=u.props;for(tr(c,u.opts.specialEasing);a>o;o++)if(r=Gn[o].call(u,e,c,u.opts))return
r;return
x.map(c,Zn,u),x.isFunction(u.opts.start)&&u.opts.start.call(e,u),x.fx.timer(x.extend(l,{elem:e,anim:u,queue:u.opts.queue})),u.progress(u.opts.progress).done(u.opts.done,u.opts.complete).fail(u.opts.fail).always(u.opts.always)}function
tr(e,t){var n,r,i,o,a;for(n in
e)if(r=x.camelCase(n),i=t[r],o=e[n],x.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete
e[n]),a=x.cssHooks[r],a&&"expand"in a){o=a.expand(o),delete e[r];for(n
in o)n
in e||(e[n]=o[n],t[n]=i)}else
t[r]=i}x.Animation=x.extend(er,{tweener:function(e,t){x.isFunction(e)?(t=e,e=["*"]):e=e.split("
");var
n,r=0,i=e.length;for(;i>r;r++)n=e[r],Qn[n]=Qn[n]||[],Qn[n].unshift(t)},prefilter:function(e,t){t?Gn.unshift(e):Gn.push(e)}});function
nr(e,t,n){var
r,i,o,a,s,l,u=this,c={},p=e.style,f=e.nodeType&&nn(e),d=x._data(e,"fxshow");n.queue||(s=x._queueHooks(e,"fx"),null==s.unqueued&&(s.unqueued=0,l=s.empty.fire,s.empty.fire=function(){s.unqueued||l()}),s.unqueued++,u.always(function(){u.always(function(){s.unqueued--,x.queue(e,"fx").length||s.empty.fire()})})),1===e.nodeType&&("height"in
t||"width"in
t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],"inline"===x.css(e,"display")&&"none"===x.css(e,"float")&&(x.support.inlineBlockNeedsLayout&&"inline"!==ln(e.nodeName)?p.zoom=1:p.display="inline-block")),n.overflow&&(p.overflow="hidden",x.support.shrinkWrapBlocks||u.always(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.ove
rflow[2]}));for(r in t)if(i=t[r],Vn.exec(i)){if(delete
t[r],o=o||"toggle"===i,i===(f?"hide":"show"))continue;c[r]=d&&d[r]||x.style(e,r)}if(!x.isEmptyObject(c)){d?"hidden"in
d&&(f=d.hidden):d=x._data(e,"fxshow",{}),o&&(d.hidden=!f),f?x(e).show():u.done(function(){x(e).hide()}),u.done(function(){var
t;x._removeData(e,"fxshow");for(t in c)x.style(e,t,c[t])});for(r in
c)a=Zn(f?d[r]:0,r,u),r in
d||(d[r]=a.start,f&&(a.end=a.start,a.start="width"===r||"height"===r?1:0))}}function
rr(e,t,n,r,i){return new
rr.prototype.init(e,t,n,r,i)}x.Tween=rr,rr.prototype={constructor:rr,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(x.cssNumber[n]?"":"px")},cur:function(){var
e=rr.propHooks[this.prop];return
e&&e.get?e.get(this):rr.propHooks._default.get(this)},run:function(e){var
t,n=rr.propHooks[this.prop];return
this.pos=t=this.options.duration?x.easing[this.easing](e,this.options.duration*e,0,1,t
his.options.duration):e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):rr.propHooks._default.set(this),this}},rr.prototype.init.prototype=rr.prototype,rr.propHooks={_default:{get:function(e){var
t;return
null==e.elem[e.prop]||e.elem.style&&null!=e.elem.style[e.prop]?(t=x.css(e.elem,e.prop,""),t&&"auto"!==t?t:0):e.elem[e.prop]},set:function(e){x.fx.step[e.prop]?x.fx.step[e.prop](e):e.elem.style&&(null!=e.elem.style[x.cssProps[e.prop]]||x.cssHooks[e.prop])?x.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},rr.propHooks.scrollTop=rr.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},x.each(["toggle","show","hide"],function(e,t){var
n=x.fn[t];x.fn[t]=function(e,r,i){return null==e||"boolean"==typeof
e?n.apply(this,arguments):this.animate(ir(t,!0),e,r,i)}}),x.fn.extend({fadeTo:function(e,t,n,r){return
this.filter(nn).css("opacity",0).show()
.end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var
i=x.isEmptyObject(e),o=x.speed(t,n,r),a=function(){var
t=er(this,x.extend({},e),o);(i||x._data(this,"finish"))&&t.stop(!0)};return
a.finish=a,i||o.queue===!1?this.each(a):this.queue(o.queue,a)},stop:function(e,n,r){var
i=function(e){var t=e.stop;delete e.stop,t(r)};return"string"!=typeof
e&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var
t=!0,n=null!=e&&e+"queueHooks",o=x.timers,a=x._data(this);if(n)a[n]&&a[n].stop&&i(a[n]);else
for(n in
a)a[n]&&a[n].stop&&Jn.test(n)&&i(a[n]);for(n=o.length;n--;)o[n].elem!==this||null!=e&&o[n].queue!==e||(o[n].anim.stop(r),t=!1,o.splice(n,1));(t||!r)&&x.dequeue(this,e)})},finish:function(e){return
e!==!1&&(e=e||"fx"),this.each(function(){var
t,n=x._data(this),r=n[e+"queue"],i=n[e+"queueHooks"],o=x.timers,a=r?r.length:0;for(n.finish=!0,x.queue(this,e,[]),i&&i.stop&&i.stop.call(this,!0),t=o.length;t--;)o[t].elem===this&&o[t].queue===e&&(o[t].anim.stop(!0)
,o.splice(t,1));for(t=0;a>t;t++)r[t]&&r[t].finish&&r[t].finish.call(this);delete
n.finish})}});function ir(e,t){var
n,r={height:e},i=0;for(t=t?1:0;4>i;i+=2-t)n=Zt[i],r["margin"+n]=r["padding"+n]=e;return
t&&(r.opacity=r.width=e),r}x.each({slideDown:ir("show"),slideUp:ir("hide"),slideToggle:ir("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){x.fn[e]=function(e,n,r){return
this.animate(t,e,n,r)}}),x.speed=function(e,t,n){var
r=e&&"object"==typeof
e?x.extend({},e):{complete:n||!n&&t||x.isFunction(e)&&e,duration:e,easing:n&&t||t&&!x.isFunction(t)&&t};return
r.duration=x.fx.off?0:"number"==typeof r.duration?r.duration:r.duration in
x.fx.speeds?x.fx.speeds[r.duration]:x.fx.speeds._default,(null==r.queue||r.queue===!0)&&(r.queue="fx"),r.old=r.complete,r.complete=function(){x.isFunction(r.old)&&r.old.call(this),r.queue&&x.dequeue(this,r.queue)},r},x.easing={linear:function(e){return
e},swing:function(e){return.5-Math.cos(e*Math.
PI)/2}},x.timers=[],x.fx=rr.prototype.init,x.fx.tick=function(){var
e,n=x.timers,r=0;for(Xn=x.now();n.length>r;r++)e=n[r],e()||n[r]!==e||n.splice(r--,1);n.length||x.fx.stop(),Xn=t},x.fx.timer=function(e){e()&&x.timers.push(e)&&x.fx.start()},x.fx.interval=13,x.fx.start=function(){Un||(Un=setInterval(x.fx.tick,x.fx.interval))},x.fx.stop=function(){clearInterval(Un),Un=null},x.fx.speeds={slow:600,fast:200,_default:400},x.fx.step={},x.expr&&x.expr.filters&&(x.expr.filters.animated=function(e){return
x.grep(x.timers,function(t){return
e===t.elem}).length}),x.fn.offset=function(e){if(arguments.length)return
e===t?this:this.each(function(t){x.offset.setOffset(this,e,t)});var
n,r,o={top:0,left:0},a=this[0],s=a&&a.ownerDocument;if(s)return
n=s.documentElement,x.contains(n,a)?(typeof
a.getBoundingClientRect!==i&&(o=a.getBoundingClientRect()),r=or(s),{top:o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),left:o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0)}):o},x.offset={setOf
fset:function(e,t,n){var
r=x.css(e,"position");"static"===r&&(e.style.position="relative");var
i=x(e),o=i.offset(),a=x.css(e,"top"),s=x.css(e,"left"),l=("absolute"===r||"fixed"===r)&&x.inArray("auto",[a,s])>-1,u={},c={},p,f;l?(c=i.position(),p=c.top,f=c.left):(p=parseFloat(a)||0,f=parseFloat(s)||0),x.isFunction(t)&&(t=t.call(e,n,o)),null!=t.top&&(u.top=t.top-o.top+p),null!=t.left&&(u.left=t.left-o.left+f),"using"in
t?t.using.call(e,u):i.css(u)}},x.fn.extend({position:function(){if(this[0]){var
e,t,n={top:0,left:0},r=this[0];return"fixed"===x.css(r,"position")?t=r.getBoundingClientRect():(e=this.offsetParent(),t=this.offset(),x.nodeName(e[0],"html")||(n=e.offset()),n.top+=x.css(e[0],"borderTopWidth",!0),n.left+=x.css(e[0],"borderLeftWidth",!0)),{top:t.top-n.top-x.css(r,"marginTop",!0),left:t.left-n.left-x.css(r,"marginLeft",!0)}}},offsetParent:function(){return
this.map(function(){var
e=this.offsetParent||s;while(e&&!x.nodeName(e,"html")&&"static"===x.css(e,"position"))e=e.of
fsetParent;return
e||s})}}),x.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var
r=/Y/.test(n);x.fn[e]=function(i){return x.access(this,function(e,i,o){var a=or(e);return
o===t?a?n in
a?a[n]:a.document.documentElement[i]:e[i]:(a?a.scrollTo(r?x(a).scrollLeft():o,r?o:x(a).scrollTop()):e[i]=o,t)},e,i,arguments.length,null)}});function
or(e){return
x.isWindow(e)?e:9===e.nodeType?e.defaultView||e.parentWindow:!1}x.each({Height:"height",Width:"width"},function(e,n){x.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){x.fn[i]=function(i,o){var
a=arguments.length&&(r||"boolean"!=typeof
i),s=r||(i===!0||o===!0?"margin":"border");return
x.access(this,function(n,r,i){var o;return
x.isWindow(n)?n.document.documentElement["client"+e]:9===n.nodeType?(o=n.documentElement,Math.max(n.body["scroll"+e],o["scroll"+e],n.body["offset"+e],o["offset"+e],o["client"+e])):i===t?x.css(n,r,s):x.style(n,r,i,s)},n,a?i:t,a,null)}})}),x.fn.size=function(){return
this.length
},x.fn.andSelf=x.fn.addBack,"object"==typeof
module&&module&&"object"==typeof
module.exports?module.exports=x:(e.jQuery=e.$=x,"function"==typeof
define&&define.amd&&define("jquery",[],function(){return
x}))})(window);
commit c4f5e6b60750dc9632548dad896527bc8ecfc83c
Author: Cynthia Sanchez <csanchez(a)suse.com>
Date: Mon Oct 14 14:35:01 2013 +0200
footer and margin in Section tag fixed
diff --git a/branding/css/spacewalk.less b/branding/css/spacewalk.less
index aab71bf..a7008e5 100644
--- a/branding/css/spacewalk.less
+++ b/branding/css/spacewalk.less
@@ -29,7 +29,8 @@ footer{
color: #fff;
font-weight: normal;
font-size: 0.9em;
- height: 80px
+ height: 80px;
+ clear: both
}
aside.col-md-2{
background: #eeeeee;
@@ -39,6 +40,8 @@ aside.col-md-2{
border-right: 1px solid #d5d5d5;
height: auto;
min-height: 100%;
+ margin-bottom: -9999px;
+ padding-bottom: 9999px;
}
section{
/* for the body div to make both columns the same size*/
@@ -75,7 +78,7 @@ h2{
overflow: hidden;
margin-bottom: -80px;
padding-bottom: 80px;
- height: auto;
+ height: auto !important;
min-height: 100%
}
/* style for the login page */
@@ -183,7 +186,8 @@ header .btn.btn-info.input-sm{
/* fixing margins in the 1st and last columns */
section.col-md-10{
padding-left:2em;
- padding-right: 2em
+ padding-right: 2em;
+ padding-bottom: 3em;
}
section [class*=col-md]:first-child{
padding-left:0;
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index 9e9f0ea..82d0078 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -19,29 +19,4 @@ $(document).on("ready", function(){
$(this).hide();
});
}
-});
-
-// taking the screen size and resizing the columns to keep the footer fixed to the
bottom
-// On page load
-$(window).load(columnHeight);
-
-// On window resize
-$(window).resize( function () {
- // Clear all forced column heights before recalculating them after window resize
- $("aside").css("height", "");
- $("section").css("height", "");
- columnHeight();
-});
-
-// Make columns 100% in height
-function columnHeight() {
- //Only if the screen size is higher than the max-width set up in the Variables.less
under the definition @screen-md:
- //PLEASE: update this if you change the content of @screen-md
- if ($(document).width()>992) {
- // Column heights should equal the document height minus the header height and
footer height
- var newHeight = $(document).height() - 200 + "px";
- console.log(newHeight);
- $("aside").css("height", newHeight);
- $("section").css("height", newHeight);
- };
-}
+});
\ No newline at end of file
commit aaed2f0b465d913d6e3b5d1d82d51bd4760d866a
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Mon Oct 14 13:34:15 2013 +0200
fix empty lists closing tags
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index dcd31d3..1b796f5 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -535,6 +535,7 @@ public class ListTag extends BodyTagSupport {
if (manip.isListEmpty()) {
renderEmptyList();
+ ListTagUtil.write(pageContext, "</table>");
return BodyTagSupport.SKIP_BODY;
}
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
@@ -773,6 +774,7 @@ public class ListTag extends BodyTagSupport {
}
private void renderEmptyList() throws JspException {
+ ListTagUtil.write(pageContext, "<tbody>");
ListTagUtil.write(pageContext, "<tr><td ");
ListTagUtil.write(pageContext, "colspan=\"");
ListTagUtil.write(pageContext, String.valueOf(columnCount));
@@ -784,10 +786,11 @@ public class ListTag extends BodyTagSupport {
ListTagUtil
.write(pageContext, "<div
class=\"list-empty-message\">");
ListTagUtil.write(pageContext, msg);
- ListTagUtil.write(pageContext, "<br /></div>");
+ ListTagUtil.write(pageContext, "</div>");
}
ListTagUtil.write(pageContext, "</td></tr>");
+ ListTagUtil.write(pageContext, "</tbody>");
}
private void renderRowClassAndId() throws JspException {
commit d38d6a60e045b184e586c22791a085faf05ed0d2
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Mon Oct 14 12:20:23 2013 +0200
fix the ul.active selector for the opening of the selected left menu
item
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index 5aaa0ad..9e9f0ea 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -2,9 +2,11 @@ $(document).on("ready", function(){
/* Menu in the left column - actions to hide submenu and create animation when a
menu only has submenues and doesnt have a URL */
$("#sidenav ul>ul").hide();
- if ($("#sidenav li").attr("class", "active")){
+
+ $("#sidenav li.active").each(function() {
$(this).next("ul").show(300);
- };
+ });
+
/* Systems Selected Toolbar - actions to hide the toolbar when th Clear button is
pressed or when
no system is selected */
$("#clearbtn").click(hidesystemtool);
commit b8b9d89dd4ff5aae35da5e4a12a5082e9144a913
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Mon Oct 14 09:19:35 2013 +0200
The table heading of inactive systems is really the title.
diff --git a/java/code/webapp/WEB-INF/pages/common/fragments/yourrhn/inactiveSystems.jsp
b/java/code/webapp/WEB-INF/pages/common/fragments/yourrhn/inactiveSystems.jsp
index 2f3a07b..c48acf4 100644
--- a/java/code/webapp/WEB-INF/pages/common/fragments/yourrhn/inactiveSystems.jsp
+++ b/java/code/webapp/WEB-INF/pages/common/fragments/yourrhn/inactiveSystems.jsp
@@ -2,30 +2,32 @@
<%@ taglib
uri="http://struts.apache.org/tags-bean" prefix="bean"
%>
<%@ taglib
uri="http://rhn.redhat.com/rhn" prefix="rhn" %>
<%@ taglib prefix="c"
uri="http://java.sun.com/jsp/jstl/core"
%>
+
<div class="${requestScope.inactiveSystemsClass}">
<form method="post" name="rhn_list"
action="/YourRhn.do">
+
<rhn:list pageList="${requestScope.inactiveSystemList}"
- noDataText="${requestScope.inactiveSystemsEmpty}"
- formatMessage="false">
- <rhn:listdisplay set="${requestScope.set}"
- paging="false"
- type="half-table"
- reflink="/rhn/systems/Inactive.do"
- reflinkkey="yourrhn.jsp.allinactivesystems"
- reflinkkeyarg0="${pageList.size}">
-
+ noDataText="${requestScope.inactiveSystemsEmpty}"
+ formatMessage="false">
+ <rhn:listdisplay set="${requestScope.set}"
+ title="inactivelist.jsp.header"
+ paging="false"
+ reflink="/rhn/systems/Inactive.do"
+ reflinkkey="yourrhn.jsp.allinactivesystems"
+ reflinkkeyarg0="${pageList.size}"
+ domainClass="systems">
+ <rhn:column header="probesuitesystemsedit.jsp.systemname"
+ url="/rhn/systems/details/Overview.do?sid=${current.id}">
+ <i class="icon-question-sign"></i>
+ <c:out value="${current.name}" escapeXml="true" />
+ </rhn:column>
+
+ <rhn:column header="emptyspace.jsp">
+ ${current.lastCheckinString}
+ </rhn:column>
- <rhn:column header="inactivelist.jsp.header"
- url="/rhn/systems/details/Overview.do?sid=${current.id}">
- <img src="/img/icon_checkin.gif" alt="<bean:message
key="system-legend.jsp.notcheckingin"/>" />
- <c:out value="${current.name}" escapeXml="true" />
- </rhn:column>
+ </rhn:listdisplay>
+ </rhn:list>
- <rhn:column header="emptyspace.jsp">
- ${current.lastCheckinString}
- </rhn:column>
-
- </rhn:listdisplay>
- </rhn:list>
- </form>
- </div>
+ </form>
+ </div>
commit 4764aa250a097135ff1dc7ee50bca56ee0e96ca7
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Mon Oct 14 09:18:14 2013 +0200
rl:list re-arrangement
title goes into the panel heading but filter/addons stay as a thead
links go into a footer but pagination/etc go into a tfoot
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
index 3e66cb8..b0d1638 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
@@ -28,6 +28,7 @@ import com.redhat.rhn.frontend.html.HtmlTag;
import com.redhat.rhn.frontend.listview.AlphaBar;
import com.redhat.rhn.frontend.listview.PaginationUtil;
import com.redhat.rhn.frontend.struts.RequestContext;
+import com.redhat.rhn.frontend.taglibs.list.ListTagUtil;
import com.redhat.rhn.manager.acl.AclManager;
import com.redhat.rhn.manager.rhnset.RhnSetDecl;
@@ -592,7 +593,7 @@ public class ListDisplayTag extends BodyTagSupport {
if (request.getQueryString() != null) {
page.append("&" + request.getQueryString());
}
- out.println("<div class=\"spacewalk-csv-download\"><a
href=\"" + page +
+ out.println("<div class=\"spacewalk-csv-download
text-right\"><a href=\"" + page +
"\"><i
class=\"icon-download-alt\"></i>" +
LocalizationService.getInstance().getMessage("listdisplay.csv")
+
"</a></div>");
@@ -605,9 +606,13 @@ public class ListDisplayTag extends BodyTagSupport {
*/
private void renderTitle(JspWriter out) throws IOException {
if (!StringUtils.isEmpty(title)) {
- HtmlTag caption = new HtmlTag("caption");
- caption.addBody(LocalizationService.getInstance().getMessage(title));
- out.println(caption.render());
+ HtmlTag heading = new HtmlTag("div");
+ heading.setAttribute("class", "panel-heading");
+ HtmlTag h3 = new HtmlTag("h3");
+ h3.setAttribute("class", "panel-title");
+ h3.addBody(LocalizationService.getInstance().getMessage(title));
+ heading.addBody(h3);
+ out.println(heading.render());
}
}
@@ -744,10 +749,6 @@ public class ListDisplayTag extends BodyTagSupport {
out.print("</span>");
}
}
- if (!top && exportColumns != null) {
- renderExport(out);
- }
-
out.println("</div>");
@@ -1074,30 +1075,16 @@ public class ListDisplayTag extends BodyTagSupport {
doSort(sortedColumn);
}
- /* If pageList contains an index and pageList.size() (what we are
- * displaying on the page) is less than pageList.getTotalSize()
- * (the total number of items in the data result), render alphabar.
- * This prevents the alphabar from showing up on pages that show
- * all of the entries on a single page and is similar to how the
- * perl code behaves.
- */
- if (pageList.getIndex().size() > 0 &&
- pageList.size() < pageList.getTotalSize()) {
-
- renderViewAllLink(out);
- renderAlphabar(out);
- }
+ out.print("<div
class=\"spacewalk-list-container\">");
+ out.print("<div class=\"spacewalk-list panel
panel-default\">");
- if (isPaging()) {
- renderPagination(out, true);
- renderBoundsVariables(out);
- }
+ renderTitle(out);
/* If the type is list, we must set the width explicitly. Otherwise,
* it shouldn't matter
*/
if (type.equals("list")) {
- out.print("<table class=\"table table-striped
spacewalk-list\"");
+ out.print("<table class=\"table
table-striped\"");
}
else {
out.print("<table class=\"" + type +
"\"");
@@ -1113,8 +1100,33 @@ public class ListDisplayTag extends BodyTagSupport {
out.println(">");
- renderTitle(out);
+ // we render the pagination controls as an additional head
+ out.println("<thead>");
+ out.println("<tr>");
+ out.println("<td colspan=\"" + getNumberOfColumns() +
"\">");
+ /* If pageList contains an index and pageList.size() (what we are
+ * displaying on the page) is less than pageList.getTotalSize()
+ * (the total number of items in the data result), render alphabar.
+ * This prevents the alphabar from showing up on pages that show
+ * all of the entries on a single page and is similar to how the
+ * perl code behaves.
+ */
+ if (pageList.getIndex().size() > 0 &&
+ pageList.size() < pageList.getTotalSize()) {
+
+ renderViewAllLink(out);
+ renderAlphabar(out);
+ }
+
+ if (isPaging()) {
+ renderPagination(out, true);
+ renderBoundsVariables(out);
+ }
+ out.println("</td>");
+ out.println("</tr>");
+
+ // Now print the column headings
out.println("<thead>");
out.println("\n<tr>");
@@ -1179,36 +1191,9 @@ public class ListDisplayTag extends BodyTagSupport {
/* If the type is a half-table, we must draw an extra row on the
* end of the table if the reflink has been set
*/
- if (reflink != null) {
- columnCount = 0;
-
- out.println("<tfoot>");
-
- out.println("<a href=\"" + reflink + "\"
>");
-
- /* Here we render the reflink and its key. If the key hasn't been
set
- * we just display the link address itself.
- */
- if (reflinkkey != null) {
- Object[] args = new Object[2];
-
- args[0] = new Integer(pageList.getTotalSize());
- args[1] = reflinkkeyarg0;
-
- String message = LocalizationService.getInstance().
- getMessage(reflinkkey, args);
- out.println(message);
- }
- else {
- out.println(reflink);
- }
-
- out.println("</a>");
- out.println("</tfoot>");
- }
-
-
- out.println("</table>\n");
+ out.println("<tfoot>");
+ out.println("<tr>");
+ out.println("<td colspan=\"" + getNumberOfColumns() +
"\">");
/* If paging is on, we render the pagination */
if (isPaging()) {
@@ -1237,6 +1222,48 @@ public class ListDisplayTag extends BodyTagSupport {
.getMessage("message.range.withtypedescription",
args));
out.println("</span>");
}
+ out.println("</tr>");
+ out.println("</td>");
+ out.println("</tfoot>\n");
+
+ out.println("</table>\n");
+
+ if (reflink != null) {
+ columnCount = 0;
+
+ out.println("<div class=\"panel-footer\">");
+
+ out.println("<a href=\"" + reflink + "\"
>");
+
+ /* Here we render the reflink and its key. If the key hasn't been
set
+ * we just display the link address itself.
+ */
+ if (reflinkkey != null) {
+ Object[] args = new Object[2];
+
+ args[0] = new Integer(pageList.getTotalSize());
+ args[1] = reflinkkeyarg0;
+
+ String message = LocalizationService.getInstance().
+ getMessage(reflinkkey, args);
+ out.println(message);
+ }
+ else {
+ out.println(reflink);
+ }
+
+ out.println("</a>");
+ out.println("</div>");
+ }
+
+
+ out.println("</div>\n");
+ // export button goes outside of the panel
+ if (exportColumns != null) {
+ renderExport(out);
+ }
+ out.println("</div>\n");
+
setColumnCount(0);
numberOfColumns = 0;
}
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index 15244c4..dcd31d3 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -441,20 +441,26 @@ public class ListTag extends BodyTagSupport {
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.TBL_HEADING);
- ListTagUtil.write(pageContext, "<div
class=\"panel-heading\">");
-
+ // only if there is a title, add a panel-heading
if (!StringUtils.isBlank(title)) {
+ ListTagUtil.write(pageContext, "<div
class=\"panel-heading\">");
HtmlTag h3 = new HtmlTag("h3");
h3.setAttribute("class", "panel-title");
h3.addBody(title);
-
ListTagUtil.write(pageContext, h3.render());
+ ListTagUtil.write(pageContext, "</div>");
}
- ListTagUtil.write(pageContext, "<!-- END heading (panel-heading)
-->");
- ListTagUtil.write(pageContext, "</div>");
}
else if (haveColsEnumerated && !haveTblAddonsRendered) {
- ListTagUtil.write(pageContext, "<div
class=\"panel-body\">");
+
+ startTable();
+
+ ListTagUtil.write(pageContext, "<thead>");
+
+ // render the navigation and filters as a row of the header
+ ListTagUtil.write(pageContext, "<tr>");
+ ListTagUtil.write(pageContext, "<td colspan=\"" +
getColumnCount() + "\">");
+
setupManipulator();
manip.sort();
pageData = manip.getPage();
@@ -475,67 +481,58 @@ public class ListTag extends BodyTagSupport {
ListTagUtil.write(pageContext, String.format(HIDDEN_TEXT,
ListTagUtil.makeParentIsAnElementLabel(uniqueName),
parentIsElement));
- ListTagUtil.write(pageContext, "<div
class=\"filter-input\">");
- ListTagUtil.write(pageContext, "<div
class=\"row\">");
-
- // column with the filter
- ListTagUtil.write(pageContext, "<div class=\"col-lg-6
text-left\">");
+ ListTagUtil.write(pageContext, "<div class=\"filter-input
row\">");
+ // column with the filter
+ ListTagUtil.write(pageContext, "<div class=\"col-md-4
text-left\">");
if (filter != null && manip.getUnfilteredDataSize() != 0) {
ListTagUtil.renderFilterUI(pageContext, filter,
getUniqueName(), width, columnCount,
searchParent, searchChild);
}
- if (isSortable()) {
- renderSortableHiddenFields();
- }
-
- if (!isEmpty()) {
+ ListTagUtil.write(pageContext, "</div>");
+ ListTagUtil.write(pageContext, "<div class=\"col-md-8
text-right\">");
+ if (!isEmpty()) {
for (ListDecorator dec : getDecorators()) {
dec.beforeTopPagination();
}
- }
- ListTagUtil.write(pageContext, "</div>");
-
- // column with the pagination controls
- ListTagUtil.write(pageContext, "<div class=\"col-lg-6 text-right
list-infotext\">");
- renderTopPaginationControls();
- ListTagUtil.write(pageContext, "</div>");
-
- // end of the row
- ListTagUtil.write(pageContext, "</div>");
+ }
- // end of the filter-input div
- ListTagUtil.write(pageContext, "</div>");
+ // column with the pagination controls
+ renderTopPaginationControls();
+ ListTagUtil.write(pageContext, "</div>");
- ListTagUtil.write(pageContext, "<!-- END addons (panel-boddy)
-->");
- ListTagUtil.write(pageContext, "</div>");
+ ListTagUtil.write(pageContext, "</div>");
+ ListTagUtil.write(pageContext, "</td>");
+ ListTagUtil.write(pageContext, "</tr>");
- startTable();
- HttpServletRequest request = (HttpServletRequest) pageContext
+ HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
- manip.bindPaginationInfo();
- request.setAttribute("dataSize", String
+ manip.bindPaginationInfo();
+ request.setAttribute("dataSize", String
.valueOf(pageData.size() + 1));
- ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
- ListCommand.TBL_ADDONS);
- if (pageData != null && pageData.size() > 0) {
- iterator = pageData.iterator();
- }
- else {
- iterator = null;
- }
+ ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
+ ListCommand.TBL_ADDONS);
+ if (pageData != null && pageData.size() > 0) {
+ iterator = pageData.iterator();
+ }
+ else {
+ iterator = null;
+ }
}
if (haveColsEnumerated && haveTblAddonsRendered &&
!haveColHeadersRendered) {
- // Nothing to do when rendering the col headers
- // those are done by the column tag
+ // open the row tag for the column header th's
+ ListTagUtil.write(pageContext, "<tr>");
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.COL_HEADER);
}
if (haveColHeadersRendered && !haveTblFootersRendered) {
+ ListTagUtil.write(pageContext, "</tr>");
+ ListTagUtil.write(pageContext, "</thead>");
+
if (manip.isListEmpty()) {
renderEmptyList();
return BodyTagSupport.SKIP_BODY;
@@ -554,7 +551,6 @@ public class ListTag extends BodyTagSupport {
}
if (currentObject == null) {
ListTagUtil.write(pageContext, "</tbody>");
- ListTagUtil.write(pageContext, "</table>");
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.TBL_FOOTER);
}
@@ -569,9 +565,20 @@ public class ListTag extends BodyTagSupport {
else if (haveTblFootersRendered) {
retval = BodyTagSupport.SKIP_BODY;
- ListTagUtil.write(pageContext, "<div
class=\"panel-footer\">");
+ // render the pagination controls as the footer of the table
+ ListTagUtil.write(pageContext, "<tfoot>");
+ ListTagUtil.write(pageContext, "<tr>");
+ ListTagUtil.write(pageContext, "<td colspan=\"" +
getColumnCount() + "\">");
+ renderFooterPaginationControls();
+ ListTagUtil.write(pageContext, "</td>");
+ ListTagUtil.write(pageContext, "</tr>");
+ ListTagUtil.write(pageContext, "</tfoot>");
+ ListTagUtil.write(pageContext, "</table>");
+ // if there is reference links, put them as a panel footer
if ((refLink != null) && (!isEmpty())) {
+ ListTagUtil.write(pageContext, "<div
class=\"panel-footer\">");
+
ListTagUtil.write(pageContext, "<a href=\"" + refLink +
"\" >");
/* Here we render the reflink and its key. If the key hasn't been
set
* we just display the link address itself.
@@ -590,11 +597,14 @@ public class ListTag extends BodyTagSupport {
}
ListTagUtil.write(pageContext, "</a>");
+ // closes the panel footer
+ ListTagUtil.write(pageContext, "</div>");
}
- renderFooterPaginationControls();
- // closes the panel footer
- ListTagUtil.write(pageContext, "</div>");
+ // we render the hidden fields outside of the table
+ if (isSortable()) {
+ renderSortableHiddenFields();
+ }
}
return retval;
}
@@ -848,21 +858,14 @@ public class ListTag extends BodyTagSupport {
return;
}
- ListTagUtil.write(pageContext, "<div>");
- ListTagUtil.write(pageContext, "<table ");
- ListTagUtil.write(pageContext, " cellspacing=\"0\" ");
- ListTagUtil.write(pageContext, "cellpadding=\"0\"
width=\"100%\">");
- ListTagUtil.write(pageContext, "<tr>");
- ListTagUtil.write(pageContext, "<td align=\"left\">");
-
+ ListTagUtil.write(pageContext, "<div
class=\"pull-left\">");
for (ListDecorator dec : getDecorators()) {
dec.setCurrentList(this);
dec.afterList();
}
- ListTagUtil.write(pageContext, "</td>");
+ ListTagUtil.write(pageContext, "</div>");
- ListTagUtil.write(pageContext,
- "<td valign=\"middle\"
class=\"list-infotext\">");
+ ListTagUtil.write(pageContext, "<div
class=\"pull-right\">");
if (!isEmpty() && !hidePageNums) {
ListTagUtil.write(pageContext, manip.getPaginationMessage());
}
@@ -877,9 +880,8 @@ public class ListTag extends BodyTagSupport {
ListTagUtil.write(pageContext, " ");
ListTagUtil.renderPaginationLinks(pageContext, PAGINATION_NAMES,
manip.getPaginationLinks());
- ListTagUtil.write(pageContext, "</td>");
- ListTagUtil.write(pageContext, "</tr>");
- ListTagUtil.write(pageContext, "</table></div>");
+
+ ListTagUtil.write(pageContext, "</div>");
}
diff --git
a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/PageSizeDecorator.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/PageSizeDecorator.java
index bfe8cf0..8028be1 100644
---
a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/PageSizeDecorator.java
+++
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/PageSizeDecorator.java
@@ -106,11 +106,12 @@ public class PageSizeDecorator extends BaseListDecorator {
/**
* {@inheritDoc}
*/
+ @Override
public void beforeTopPagination() throws JspException {
if (!getCurrentList().isEmpty()) {
StringBuilder stringBuild = new StringBuilder();
- stringBuild.append("<td
class=\"list-sizeselector\">");
+ stringBuild.append("<div
class=\"list-sizeselector\">");
HtmlTag select = new HtmlTag("Select");
select.setAttribute("name", makePageSizeLabel(listName));
select.setAttribute("onChange", makeOnChangeScript());
@@ -128,7 +129,7 @@ public class PageSizeDecorator extends BaseListDecorator {
LocalizationService ls = LocalizationService.getInstance();
stringBuild.append(ls.getMessage("message.items.per.page",
select.render()));
- stringBuild.append("</td>");
+ stringBuild.append("</div>");
HtmlTag input = new HtmlTag("input");
input.setAttribute("type", "hidden");
input.setAttribute("id", makeSelectionId(listName));
commit fa13d1e2d80a1de58a4ebf46955bf5d96187ebbf
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Fri Oct 11 17:23:04 2013 +0200
Refactor the List code so that code is not split inconsistently across
methods leaving tags open and having boolean state everywhere. Some
repeated writing of html is not bad if one can read the code without
jumping from method to method remembering the state of a open tag.
Make the navigation icons to use font awesome
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/DataSetManipulator.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/DataSetManipulator.java
index c563f8f..8db7fba 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/DataSetManipulator.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/DataSetManipulator.java
@@ -46,41 +46,29 @@ import javax.servlet.jsp.PageContext;
public class DataSetManipulator {
private static final String[] LINK_PREFIXES = {"_first", "_prev",
"_next", "_last"};
- private int pageSize;
+ private final int pageSize;
private List dataset;
private ListFilter filter;
private String filterBy;
private String filterValue;
private int totalDataSetSize;
- private HttpServletRequest request;
- private String uniqueName;
+ private final HttpServletRequest request;
+ private final String uniqueName;
private int pageNumber = -1;
private String alphaCol;
private int alphaPosition = -1;
private boolean ascending = true;
- private int unfilteredDataSize;
- private boolean parentIsAnElement;
+ private final int unfilteredDataSize;
+ private final boolean parentIsAnElement;
- private boolean searchParent;
- private boolean searchChild;
+ private final boolean searchParent;
+ private final boolean searchChild;
private String defaultSortAttribute;
- private static final String IMG_FIRST = "/img/list-allbackward.gif";
- private static final String IMG_FIRST_UNFOCUSED =
- "/img/list-allbackward-unfocused.gif";
-
- private static final String IMG_PREV = "/img/list-backward.gif";
- private static final String IMG_PREV_UNFOCUSED =
- "/img/list-backward-unfocused.gif";
-
- private static final String IMG_NEXT = "/img/list-forward.gif";
- private static final String IMG_NEXT_UNFOCUSED =
- "/img/list-forward-unfocused.gif";
-
-
- private static final String IMG_LAST = "/img/list-allforward.gif";
- private static final String IMG_LAST_UNFOCUSED =
- "/img/list-allforward-unfocused.gif";
+ private static final String ICON_FIRST = "icon-fast-backward";
+ private static final String ICON_PREV = "icon-backward";
+ private static final String ICON_NEXT = "icon-forward";
+ private static final String ICON_LAST = "icon-fast-forward";
/**
@@ -419,14 +407,13 @@ public class DataSetManipulator {
String pageLinkName = "list_" + uniqueName + "_page";
String[] data = new String[4];
if (!isFirstPage()) {
- data[0] = IMG_FIRST;
+ data[0] = ICON_FIRST;
data[1] = pageLinkName + "_first";
data[2] = "first";
data[3] = "First Page";
-
}
else {
- data[0] = IMG_FIRST_UNFOCUSED;
+ data[0] = ICON_FIRST;
data[1] = null;
data[2] = null;
data[3] = null;
@@ -434,13 +421,13 @@ public class DataSetManipulator {
links.put("allBackward", data);
data = new String[4];
if (getPrevPageNumber() > -1) {
- data[0] = IMG_PREV;
+ data[0] = ICON_PREV;
data[1] = pageLinkName + "_prev";
data[2] = String.valueOf(getPrevPageNumber());
data[3] = "Previous Page";
}
else {
- data[0] = IMG_PREV_UNFOCUSED;
+ data[0] = ICON_PREV;
data[1] = null;
data[2] = null;
data[3] = null;
@@ -448,13 +435,13 @@ public class DataSetManipulator {
links.put("backward", data);
data = new String[4];
if (getNextPageNumber() > -1) {
- data[0] = IMG_NEXT;
+ data[0] = ICON_NEXT;
data[1] = pageLinkName + "_next";
data[2] = String.valueOf(getNextPageNumber());
data[3] = "Next Page";
}
else {
- data[0] = IMG_NEXT_UNFOCUSED;
+ data[0] = ICON_NEXT;
data[1] = null;
data[2] = null;
data[3] = null;
@@ -462,13 +449,13 @@ public class DataSetManipulator {
links.put("forward", data);
data = new String[4];
if (!isLastPage()) {
- data[0] = IMG_LAST;
+ data[0] = ICON_LAST;
data[1] = pageLinkName + "_last";
data[2] = "last";
data[3] = "Last Page";
}
else {
- data[0] = IMG_LAST_UNFOCUSED;
+ data[0] = ICON_LAST;
}
links.put("allForward", data);
}
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListCommand.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListCommand.java
index 46cf520..8942173 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListCommand.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListCommand.java
@@ -22,7 +22,8 @@ package com.redhat.rhn.frontend.taglibs.list;
public enum ListCommand {
RENDER ("__render__"),
- TBL_HEADER ("__tbl_header__"),
+ TBL_HEADING ("__tbl_heading__"),
+ TBL_ADDONS ("__tbl_addons__"),
TBL_FOOTER ("__tbl__footer__"),
COL_HEADER ("__col_header__"),
ENUMERATE ("__enum__");
@@ -36,6 +37,7 @@ public enum ListCommand {
/**
* ${@inheritDoc}
*/
+ @Override
public String toString() {
return _cmd;
}
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index b1eae8e..15244c4 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -43,6 +43,15 @@ import javax.servlet.jsp.tagext.BodyTagSupport;
/**
* Renders a list of data bean in a page
*
+ * The list is rendered as a bootstrap 3.x panel
+ *
+ * The title of the list is put in the panel-heading
+ * Pagination, alphabars and addons go into the panel-body
+ * Bottom pagination and reflinks g into the panel-footer
+ * The table goes as is, for seamless display into the panel
+ *
+ * @see
http://getbootstrap.com/components/#panels
+ *
* @version $Rev $
*/
public class ListTag extends BodyTagSupport {
@@ -53,7 +62,8 @@ public class ListTag extends BodyTagSupport {
private static final String HIDDEN_TEXT = "<input type=\"hidden\"
" +
"name=\"%s\"
value=\"%s\"/>";
private boolean haveColsEnumerated = false;
- private boolean haveTblHeadersRendered = false;
+ private boolean haveTblHeadingRendered = false;
+ private boolean haveTblAddonsRendered = false;
private boolean haveTblFootersRendered = false;
private boolean haveColHeadersRendered = false;
private int columnCount;
@@ -394,40 +404,6 @@ public class ListTag extends BodyTagSupport {
*/
@Override
public int doEndTag() throws JspException {
-
- /* If a reference link was provided, it needs to be rendered on a separate
- * row within the table.
- */
- if ((refLink != null) && (!isEmpty())) {
- ListTagUtil.write(pageContext, "<tfoot>");
- ListTagUtil.write(pageContext, "<tr>");
- ListTagUtil.write(pageContext, "<td colspan=\"" +
String.valueOf(getColumnCount()) + "\">");
- ListTagUtil.write(pageContext, "<a href=\"" + refLink +
"\" >");
- /* Here we render the reflink and its key. If the key hasn't been set
- * we just display the link address itself.
- */
- if (refLinkKey != null) {
- Object[] args = new Object[2];
- args[0] = new Integer(getPageRowCount());
- args[1] = refLinkKeyArg0;
- String message = LocalizationService.getInstance().
- getMessage(refLinkKey, args);
-
- ListTagUtil.write(pageContext, message);
- }
- else {
- ListTagUtil.write(pageContext, refLink);
- }
-
- ListTagUtil.write(pageContext, "</a>");
- ListTagUtil.write(pageContext, "</td>");
- ListTagUtil.write(pageContext, "</tr>");
- ListTagUtil.write(pageContext, "</tfoot>");
- }
-
-
- ListTagUtil.write(pageContext, "</table>");
- renderPaginationControls(true);
ListTagUtil.write(pageContext, "</div>");
ListTagUtil.write(pageContext, "<!-- END " + getUniqueName() +
" -->");
release();
@@ -442,14 +418,43 @@ public class ListTag extends BodyTagSupport {
int retval = BodyTagSupport.EVAL_BODY_AGAIN;
ListCommand cmd = ListTagUtil.getCurrentCommand(this, pageContext);
- boolean haveRenderedColumnHeaderEndTag = false;
+
+ // close the panel-heading div
+ if (cmd.equals(ListCommand.TBL_HEADING)) {
+ //ListTagUtil.write(pageContext, "<!-- END heading (panel-heading)
-->");
+ //ListTagUtil.write(pageContext, "</div>");
+ }
+
+ // close the panel-body div
+ if (cmd.equals(ListCommand.TBL_ADDONS)) {
+ //ListTagUtil.write(pageContext, "<!-- END addons (panel-body)
-->");
+ //ListTagUtil.write(pageContext, "</div>");
+ }
+
if (cmd.equals(ListCommand.COL_HEADER)) {
- ListTagUtil.write(pageContext,
"</tr></thead><tbody>");
- haveRenderedColumnHeaderEndTag = true;
+ ListTagUtil.write(pageContext, "</tr>");
}
setState();
- if (haveColsEnumerated && !haveTblHeadersRendered) {
+
+ if (haveColsEnumerated && !haveTblHeadingRendered) {
+ ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
+ ListCommand.TBL_HEADING);
+
+ ListTagUtil.write(pageContext, "<div
class=\"panel-heading\">");
+
+ if (!StringUtils.isBlank(title)) {
+ HtmlTag h3 = new HtmlTag("h3");
+ h3.setAttribute("class", "panel-title");
+ h3.addBody(title);
+
+ ListTagUtil.write(pageContext, h3.render());
+ }
+ ListTagUtil.write(pageContext, "<!-- END heading (panel-heading)
-->");
+ ListTagUtil.write(pageContext, "</div>");
+ }
+ else if (haveColsEnumerated && !haveTblAddonsRendered) {
+ ListTagUtil.write(pageContext, "<div
class=\"panel-body\">");
setupManipulator();
manip.sort();
pageData = manip.getPage();
@@ -469,82 +474,67 @@ public class ListTag extends BodyTagSupport {
ListTagUtil.makeFilterSearchChildLabel(uniqueName), searchChild));
ListTagUtil.write(pageContext, String.format(HIDDEN_TEXT,
ListTagUtil.makeParentIsAnElementLabel(uniqueName),
parentIsElement));
- setupFilterUI();
+
+ ListTagUtil.write(pageContext, "<div
class=\"filter-input\">");
+ ListTagUtil.write(pageContext, "<div
class=\"row\">");
+
+ // column with the filter
+ ListTagUtil.write(pageContext, "<div class=\"col-lg-6
text-left\">");
if (filter != null && manip.getUnfilteredDataSize() != 0) {
ListTagUtil.renderFilterUI(pageContext, filter,
getUniqueName(), width, columnCount,
searchParent, searchChild);
}
if (isSortable()) {
- String sortByLabel = ListTagUtil.makeSortByLabel(getUniqueName());
- String sortDirLabel = ListTagUtil.makeSortDirLabel(getUniqueName());
-
- HtmlTag sortByInputTag = new HtmlTag("input");
- sortByInputTag.setAttribute("type", "hidden");
- sortByInputTag.setAttribute("name", sortByLabel);
- sortByInputTag.setAttribute("id",
- ListTagUtil.makeSortById(getUniqueName()));
- sortByInputTag.setAttribute("value",
StringUtils.defaultString(
- pageContext.getRequest().getParameter(sortByLabel)));
-
- HtmlTag sortByDirTag = new HtmlTag("input");
- sortByDirTag.setAttribute("type", "hidden");
- sortByDirTag.setAttribute("name", sortDirLabel);
- sortByDirTag.setAttribute("id", ListTagUtil.
- makeSortDirId(getUniqueName()));
- sortByDirTag.setAttribute("value", StringUtils.defaultString(
- pageContext.getRequest().getParameter(sortDirLabel)));
-
- ListTagUtil.write(pageContext, sortByInputTag.render());
- ListTagUtil.write(pageContext, sortByDirTag.render());
+ renderSortableHiddenFields();
}
-
if (!isEmpty()) {
for (ListDecorator dec : getDecorators()) {
dec.beforeTopPagination();
}
}
- renderPaginationControls(false);
- startTable();
- HttpServletRequest request = (HttpServletRequest) pageContext
+ ListTagUtil.write(pageContext, "</div>");
+
+ // column with the pagination controls
+ ListTagUtil.write(pageContext, "<div class=\"col-lg-6 text-right
list-infotext\">");
+ renderTopPaginationControls();
+ ListTagUtil.write(pageContext, "</div>");
+
+ // end of the row
+ ListTagUtil.write(pageContext, "</div>");
+
+ // end of the filter-input div
+ ListTagUtil.write(pageContext, "</div>");
+
+ ListTagUtil.write(pageContext, "<!-- END addons (panel-boddy)
-->");
+ ListTagUtil.write(pageContext, "</div>");
+
+ startTable();
+ HttpServletRequest request = (HttpServletRequest) pageContext
.getRequest();
- manip.bindPaginationInfo();
- request.setAttribute("dataSize", String
- .valueOf(pageData.size() + 1));
- ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
- ListCommand.TBL_HEADER);
- if (pageData != null && pageData.size() > 0) {
- iterator = pageData.iterator();
- }
- else {
- iterator = null;
- }
+ manip.bindPaginationInfo();
+ request.setAttribute("dataSize", String
+ .valueOf(pageData.size() + 1));
+ ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
+ ListCommand.TBL_ADDONS);
+ if (pageData != null && pageData.size() > 0) {
+ iterator = pageData.iterator();
+ }
+ else {
+ iterator = null;
+ }
}
- if (haveColsEnumerated && haveTblHeadersRendered &&
+ if (haveColsEnumerated && haveTblAddonsRendered &&
!haveColHeadersRendered) {
+
+ // Nothing to do when rendering the col headers
+ // those are done by the column tag
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.COL_HEADER);
- ListTagUtil.write(pageContext, "<thead><tr>");
-
- if (!StringUtils.isBlank(title)) {
- HtmlTag th = new HtmlTag("th");
- th.setAttribute("colspan", String.valueOf(getColumnCount()));
- HtmlTag strong = new HtmlTag("strong");
- strong.addBody(title);
- th.addBody(strong.render());
-
- ListTagUtil.write(pageContext, th.render());
-
- ListTagUtil.write(pageContext, "</tr>\n<tr>");
- }
-
}
if (haveColHeadersRendered && !haveTblFootersRendered) {
- if (!haveRenderedColumnHeaderEndTag) {
- ListTagUtil.write(pageContext, "</tr>");
- }
if (manip.isListEmpty()) {
renderEmptyList();
@@ -564,6 +554,7 @@ public class ListTag extends BodyTagSupport {
}
if (currentObject == null) {
ListTagUtil.write(pageContext, "</tbody>");
+ ListTagUtil.write(pageContext, "</table>");
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.TBL_FOOTER);
}
@@ -577,10 +568,61 @@ public class ListTag extends BodyTagSupport {
}
else if (haveTblFootersRendered) {
retval = BodyTagSupport.SKIP_BODY;
+
+ ListTagUtil.write(pageContext, "<div
class=\"panel-footer\">");
+
+ if ((refLink != null) && (!isEmpty())) {
+ ListTagUtil.write(pageContext, "<a href=\"" + refLink +
"\" >");
+ /* Here we render the reflink and its key. If the key hasn't been
set
+ * we just display the link address itself.
+ */
+ if (refLinkKey != null) {
+ Object[] args = new Object[2];
+ args[0] = new Integer(getPageRowCount());
+ args[1] = refLinkKeyArg0;
+ String message = LocalizationService.getInstance().
+ getMessage(refLinkKey, args);
+
+ ListTagUtil.write(pageContext, message);
+ }
+ else {
+ ListTagUtil.write(pageContext, refLink);
+ }
+
+ ListTagUtil.write(pageContext, "</a>");
+ }
+
+ renderFooterPaginationControls();
+ // closes the panel footer
+ ListTagUtil.write(pageContext, "</div>");
}
return retval;
}
+ private void renderSortableHiddenFields() throws JspException {
+ String sortByLabel = ListTagUtil.makeSortByLabel(getUniqueName());
+ String sortDirLabel = ListTagUtil.makeSortDirLabel(getUniqueName());
+
+ HtmlTag sortByInputTag = new HtmlTag("input");
+ sortByInputTag.setAttribute("type", "hidden");
+ sortByInputTag.setAttribute("name", sortByLabel);
+ sortByInputTag.setAttribute("id",
+ ListTagUtil.makeSortById(getUniqueName()));
+ sortByInputTag.setAttribute("value", StringUtils.defaultString(
+ pageContext.getRequest().getParameter(sortByLabel)));
+
+ HtmlTag sortByDirTag = new HtmlTag("input");
+ sortByDirTag.setAttribute("type", "hidden");
+ sortByDirTag.setAttribute("name", sortDirLabel);
+ sortByDirTag.setAttribute("id", ListTagUtil.
+ makeSortDirId(getUniqueName()));
+ sortByDirTag.setAttribute("value", StringUtils.defaultString(
+ pageContext.getRequest().getParameter(sortDirLabel)));
+
+ ListTagUtil.write(pageContext, sortByInputTag.render());
+ ListTagUtil.write(pageContext, sortByDirTag.render());
+ }
+
private void setupPageData() throws JspException {
Object d = pageContext.getAttribute(dataSetName);
if (d == null) {
@@ -617,14 +659,13 @@ public class ListTag extends BodyTagSupport {
manip = new DataSetManipulator(pageSize, pageData,
(HttpServletRequest) pageContext.getRequest(),
getUniqueName(), isParentAnElement(), searchParent, searchChild);
- int retval = BodyTagSupport.EVAL_BODY_INCLUDE;
ListTagUtil.write(pageContext, "<!-- START LIST " + getUniqueName()
+ " -->");
- ListTagUtil.write(pageContext, "<div class=\"spacewalk-list\"
id=\"" + getUniqueName() + "\">");
+ ListTagUtil.write(pageContext, "<div class=\"spacewalk-list panel
panel-default\" id=\"" + getUniqueName() + "\">");
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.ENUMERATE);
- return retval;
+ return BodyTagSupport.EVAL_BODY_INCLUDE;
}
private void setupManipulator() throws JspException {
@@ -708,7 +749,7 @@ public class ListTag extends BodyTagSupport {
filter = null;
haveColsEnumerated = false;
haveColHeadersRendered = false;
- haveTblHeadersRendered = false;
+ haveTblAddonsRendered = false;
haveTblFootersRendered = false;
getDecorators().clear();
decorators = null;
@@ -787,8 +828,11 @@ public class ListTag extends BodyTagSupport {
if (cmd.equals(ListCommand.ENUMERATE)) {
haveColsEnumerated = true;
}
- else if (cmd.equals(ListCommand.TBL_HEADER)) {
- haveTblHeadersRendered = true;
+ else if (cmd.equals(ListCommand.TBL_HEADING)) {
+ haveTblHeadingRendered = true;
+ }
+ else if (cmd.equals(ListCommand.TBL_ADDONS)) {
+ haveTblAddonsRendered = true;
}
else if (cmd.equals(ListCommand.COL_HEADER)) {
haveColHeadersRendered = true;
@@ -798,25 +842,24 @@ public class ListTag extends BodyTagSupport {
}
}
- private void renderPaginationControls(boolean isFooter) throws JspException {
+ private void renderFooterPaginationControls() throws JspException {
- if (isFooter && (isEmpty() || hidePageNums)) {
+ if (isEmpty() || hidePageNums) {
return;
}
- if (isFooter) {
- ListTagUtil.write(pageContext, "<div>");
- ListTagUtil.write(pageContext, "<table ");
- ListTagUtil.write(pageContext, " cellspacing=\"0\" ");
- ListTagUtil.write(pageContext, "cellpadding=\"0\"
width=\"100%\">");
- ListTagUtil.write(pageContext, "<tr>");
- ListTagUtil.write(pageContext, "<td
align=\"left\">");
+ ListTagUtil.write(pageContext, "<div>");
+ ListTagUtil.write(pageContext, "<table ");
+ ListTagUtil.write(pageContext, " cellspacing=\"0\" ");
+ ListTagUtil.write(pageContext, "cellpadding=\"0\"
width=\"100%\">");
+ ListTagUtil.write(pageContext, "<tr>");
+ ListTagUtil.write(pageContext, "<td align=\"left\">");
- for (ListDecorator dec : getDecorators()) {
- dec.afterList();
- }
- ListTagUtil.write(pageContext, "</td>");
+ for (ListDecorator dec : getDecorators()) {
+ dec.setCurrentList(this);
+ dec.afterList();
}
+ ListTagUtil.write(pageContext, "</td>");
ListTagUtil.write(pageContext,
"<td valign=\"middle\"
class=\"list-infotext\">");
@@ -826,13 +869,8 @@ public class ListTag extends BodyTagSupport {
if (!manip.isListEmpty()) {
for (ListDecorator dec : getDecorators()) {
- if (isFooter) {
- dec.afterBottomPagination();
- dec.setCurrentList(null);
- }
- else {
- dec.afterTopPagination();
- }
+ dec.afterBottomPagination();
+ dec.setCurrentList(null);
}
}
@@ -845,20 +883,21 @@ public class ListTag extends BodyTagSupport {
}
- private void setupFilterUI() throws JspException {
- ListTagUtil.write(pageContext, "<div
class=\"filter-input\"><table");
- ListTagUtil.write(pageContext, " cellspacing=\"0\"");
- ListTagUtil.write(pageContext, " cellpadding=\"0\"");
- if (width != null) {
- ListTagUtil.write(pageContext, " width=\"");
- ListTagUtil.write(pageContext, width);
- ListTagUtil.write(pageContext, "\"");
+ private void renderTopPaginationControls() throws JspException {
+
+ if (!isEmpty() && !hidePageNums) {
+ ListTagUtil.write(pageContext, manip.getPaginationMessage());
}
- else {
- ListTagUtil.write(pageContext, " width=\"100%\"");
+
+ if (!manip.isListEmpty()) {
+ for (ListDecorator dec : getDecorators()) {
+ dec.afterTopPagination();
+ }
}
- ListTagUtil.write(pageContext, ">");
- ListTagUtil.write(pageContext, "<tr>");
+
+ ListTagUtil.write(pageContext, " ");
+ ListTagUtil.renderPaginationLinks(pageContext, PAGINATION_NAMES,
+ manip.getPaginationLinks());
}
private void setPageSize() {
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
index d06764a..dfd31ee 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
@@ -569,35 +569,35 @@ public class ListTagUtil {
if (links.size() == 0) {
return;
}
+ ListTagUtil.write(pageContext, "<div
class=\"btn-group\">");
for (int x = 0; x < linkNames.length; x++) {
String[] linkData = (String[]) links.get(linkNames[x]);
- if (linkData[1] != null) {
- ListTagUtil.write(pageContext, "<input align=\"top\"
type=\"image\" ");
- ListTagUtil.write(pageContext, "src=\"");
- ListTagUtil.write(pageContext, linkData[0]);
- ListTagUtil.write(pageContext, "\" name=\"");
- ListTagUtil.write(pageContext, linkData[1]);
- ListTagUtil.write(pageContext, "\" value=\"");
- ListTagUtil.write(pageContext, linkData[2]);
- ListTagUtil.write(pageContext, "\" alt=\"");
- ListTagUtil.write(pageContext, linkData[3]);
- ListTagUtil.write(pageContext, "\" />");
+ ListTagUtil.write(pageContext, "<button ");
+ ListTagUtil.write(pageContext, "class=\"btn btn-default ");
+ ListTagUtil.write(pageContext, linkData[0]);
- ListTagUtil.write(pageContext, "<input type=\"hidden\"
name=\"");
+ // if the link is disabled...
+ if (linkData[1] == null) {
+ ListTagUtil.write(pageContext, " disabled");
+ }
+ else {
+ ListTagUtil.write(pageContext, "\" name=\"");
ListTagUtil.write(pageContext, linkData[1]);
ListTagUtil.write(pageContext, "\" value=\"");
ListTagUtil.write(pageContext, linkData[2]);
- ListTagUtil.write(pageContext, "\" />");
- }
- else {
- ListTagUtil.write(pageContext, "<img align=\"top\"
src=\"");
- ListTagUtil.write(pageContext, linkData[0]);
- ListTagUtil.write(pageContext, "\">");
- if (linkData[1] != null) {
- ListTagUtil.write(pageContext, "</a>");
- }
}
+ ListTagUtil.write(pageContext, "\" />");
+
+ /*
+ if (linkData[1] = null) {
+ ListTagUtil.write(pageContext, "<input type=\"hidden\"
name=\"");
+ ListTagUtil.write(pageContext, linkData[1]);
+ ListTagUtil.write(pageContext, "\" value=\"");
+ ListTagUtil.write(pageContext, linkData[2]);
+ ListTagUtil.write(pageContext, "\" />");
+ */
}
+ ListTagUtil.write(pageContext, "</div>");
}
/**
@@ -641,8 +641,6 @@ public class ListTagUtil {
StringEscapeUtils.escapeHtml(filterValue)));
- ListTagUtil.write(pageContext, "<td");
- ListTagUtil.write(pageContext, " align=\"left\">");
List fields = filter.getFieldNames();
if (fields == null || fields.size() == 0) {
throw new JspException(
@@ -678,7 +676,7 @@ public class ListTagUtil {
filterValue = StringUtil.nullOrValue(filterValue);
StringBuilder sb = new StringBuilder();
- sb.append("<div class=\"col-lg-6\">");
+ // create a new row
sb.append("<div class=\"input-group
input-group-sm\">");
String placeHolder =
StringUtils.defaultString(ls.getMessage("message.filterby",
@@ -698,11 +696,11 @@ public class ListTagUtil {
filterName));
sb.append("</button>");
sb.append("</span>");
- sb.append("</div>");
+
sb.append("</div>");
ListTagUtil.write(pageContext, sb.toString());
- ListTagUtil.write(pageContext, "</td>");
+
}
private static String makePageLink(HttpServletRequest request,
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/SpanTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/SpanTag.java
index 62aa889..5659ffc 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/SpanTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/SpanTag.java
@@ -87,7 +87,7 @@ public class SpanTag extends TagSupport {
public int doEndTag() throws JspException {
ListCommand cmd = ListTagUtil.getCurrentCommand(this, pageContext);
ListTag parent = (ListTag) TagSupport.findAncestorWithClass(this,
ListTag.class);
- if (cmd.equals(ListCommand.TBL_HEADER) &&
role.equals("header")) {
+ if (cmd.equals(ListCommand.TBL_ADDONS) &&
role.equals("header")) {
renderHeader(parent);
}
else if (cmd.equals(ListCommand.TBL_FOOTER) &&
role.equals("footer")) {
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/test/ListTagTest.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/test/ListTagTest.java
index 9408ae1..dff15b3 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/test/ListTagTest.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/test/ListTagTest.java
@@ -108,8 +108,8 @@ public class ListTagTest extends MockObjectTestCase {
Stub[] cmdValues = {
returnValue(ListCommand.ENUMERATE), // listtag asking
returnValue(ListCommand.ENUMERATE), // columntag asking
- returnValue(ListCommand.TBL_HEADER), // listtag asking
- returnValue(ListCommand.TBL_HEADER), // columntag asking
+ returnValue(ListCommand.TBL_ADDONS), // listtag asking
+ returnValue(ListCommand.TBL_ADDONS), // columntag asking
returnValue(ListCommand.COL_HEADER), // listtag asking
returnValue(ListCommand.COL_HEADER), // columntag asking
returnValue(ListCommand.RENDER), // listtag asking
commit bec5fba62be32cb9fbd877a1d6ed7c57ece45e33
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Fri Oct 11 17:22:21 2013 +0200
align the csv link to the right. May be we make it a button?
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
index d950e9d..f5f9378 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
@@ -196,7 +196,7 @@ public class CSVTag extends BodyTagSupport {
private void renderExport() throws JspException {
StringBuffer page = new StringBuffer(CSV_DOWNLOAD_URI);
page.append("?" + makeCSVRequestParams());
- String exportLink = new String("<div
class=\"spacewalk-csv-download\"><a href=\"" +
+ String exportLink = new String("<div class=\"spacewalk-csv-download
text-right\"><a href=\"" +
page + "\"><i
class=\"icon-download-alt\"></i>" +
LocalizationService.getInstance().getMessage(
"listdisplay.csv") +
"</a></div>");
commit ef761326e0f435ba0d0b0a81f6f05f14eaa9b8bc
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Fri Oct 11 16:53:38 2013 +0200
make some space between the badge with the system count and the text in
the top bar.
diff --git a/branding/css/spacewalk.less b/branding/css/spacewalk.less
index 580f89c..aab71bf 100644
--- a/branding/css/spacewalk.less
+++ b/branding/css/spacewalk.less
@@ -218,7 +218,7 @@ header #bar .spacewalk-bar{
text-align: right;
}
header #bar .spacewalk-bar .badge{
- padding-right: .5em
+ margin-right: .5em
}
/* systems selector */
commit 4ba1f9d1017e2a5c13d99c6a3c9058cf0f50e15e
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Fri Oct 11 16:52:25 2013 +0200
add margin only to icons in a <i> tag otherwise we deform button groups
diff --git a/branding/css/spacewalk.less b/branding/css/spacewalk.less
index 9ec12f8..580f89c 100644
--- a/branding/css/spacewalk.less
+++ b/branding/css/spacewalk.less
@@ -87,10 +87,10 @@ h2{
overflow: hidden;
}
/* adding margin to the icons in fontawesome */
-[class^="icon-"],
-[class*=" icon-"],
-[class*="spacewalk-icon"],
-[class^="spacewalk-icon"] {
+i[class^="icon-"],
+i[class*=" icon-"],
+i[class*="spacewalk-icon"],
+i[class^="spacewalk-icon"] {
margin-right: .5em;
}
commit 79f9b1065e764228c2888d84e3988da5c3f4a306
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Fri Oct 11 16:52:16 2013 +0200
syntax error in js
diff --git a/web/html/javascript/spacewalk-essentials.js
b/web/html/javascript/spacewalk-essentials.js
index 71d338e..5aaa0ad 100644
--- a/web/html/javascript/spacewalk-essentials.js
+++ b/web/html/javascript/spacewalk-essentials.js
@@ -4,7 +4,7 @@ $(document).on("ready", function(){
$("#sidenav ul>ul").hide();
if ($("#sidenav li").attr("class", "active")){
$(this).next("ul").show(300);
- });
+ };
/* Systems Selected Toolbar - actions to hide the toolbar when th Clear button is
pressed or when
no system is selected */
$("#clearbtn").click(hidesystemtool);
commit 1c36762c62c3b9a4f7f5f464c60b9ce76fb84152
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Thu Oct 10 12:49:45 2013 +0200
Port most of the list widgets to output html that can be better styled
with bootstrap.
rl:list is now rendered inside a div. Most tables that are not data for
layout are removed, and caption/tfoot are used.
diff --git a/java/code/src/com/redhat/rhn/frontend/html/BaseTag.java
b/java/code/src/com/redhat/rhn/frontend/html/BaseTag.java
index ddbbce1..90dc302 100644
--- a/java/code/src/com/redhat/rhn/frontend/html/BaseTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/html/BaseTag.java
@@ -27,10 +27,10 @@ import java.util.Map;
* @version $Rev: 60021 $
*/
public abstract class BaseTag {
- private String tag;
- private Map<String, String> attribs;
- private List body;
- private boolean spaceBeforeEndTag;
+ private final String tag;
+ private final Map<String, String> attribs;
+ private final List body;
+ private final boolean spaceBeforeEndTag;
/**
* Public constructor
@@ -66,7 +66,16 @@ public abstract class BaseTag {
}
/**
- * set the body of the tag
+ * sets the body of the tag
+ * @param bodyIn the new body
+ */
+ public void setBody(String bodyIn) {
+ body.clear();
+ body.add(bodyIn);
+ }
+
+ /**
+ * adds to the body of the tag
* @param bodyIn the new body
*/
public void addBody(String bodyIn) {
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
index 911004d..3e66cb8 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/ListDisplayTag.java
@@ -31,6 +31,7 @@ import com.redhat.rhn.frontend.struts.RequestContext;
import com.redhat.rhn.manager.acl.AclManager;
import com.redhat.rhn.manager.rhnset.RhnSetDecl;
+import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import java.io.IOException;
@@ -55,7 +56,6 @@ import javax.servlet.jsp.tagext.BodyTagSupport;
* The ListDisplayTag defines the structure of the ListView. This tag iterates
* through the {@link com.redhat.rhn.common.db.datasource.DataResult DataResult}
* contained in its parent tag,
- * {@link com.redhat.rhn.frontend.taglibs.ListTag ListTag}. In the first
* iteration the {@link com.redhat.rhn.frontend.taglibs.ColumnTag ColumnTags}
* render the headers of the ListView, while subsequent iterations render the
* data contained within the
@@ -592,8 +592,8 @@ public class ListDisplayTag extends BodyTagSupport {
if (request.getQueryString() != null) {
page.append("&" + request.getQueryString());
}
- out.println("<div class=\"csv-download\"><a
href=\"" + page +
- "\"><img src=\"/img/csv-16.png\"/
alt=\"\">" +
+ out.println("<div class=\"spacewalk-csv-download\"><a
href=\"" + page +
+ "\"><i
class=\"icon-download-alt\"></i>" +
LocalizationService.getInstance().getMessage("listdisplay.csv")
+
"</a></div>");
}
@@ -605,11 +605,9 @@ public class ListDisplayTag extends BodyTagSupport {
*/
private void renderTitle(JspWriter out) throws IOException {
if (!StringUtils.isEmpty(title)) {
- HtmlTag tr = new HtmlTag("tr");
- HtmlTag th = new HtmlTag("th");
- th.addBody(LocalizationService.getInstance().getMessage(title));
- tr.addBody(th);
- out.println(tr.render());
+ HtmlTag caption = new HtmlTag("caption");
+ caption.addBody(LocalizationService.getInstance().getMessage(title));
+ out.println(caption.render());
}
}
@@ -633,15 +631,21 @@ public class ListDisplayTag extends BodyTagSupport {
private void renderFilterBox(JspWriter out) throws IOException {
LocalizationService ls = LocalizationService.getInstance();
+
HtmlTag tag = new HtmlTag("div");
- tag.setAttribute("class", "filter-input");
+ tag.setAttribute("class", "spacewalk-filter-input
input-group");
StringBuffer buf = new StringBuffer();
+
HtmlTag input = new HtmlTag("input");
input.setAttribute("type", "text");
- input.setAttribute("size", "12");
+ input.setAttribute("class", "form-control");
input.setAttribute("name", RequestContext.FILTER_STRING);
input.setAttribute("value", pageList.getFilterData());
+ String placeHolder = StringEscapeUtils.escapeHtml(
+ ls.getMessage("message.filterby", ls.getMessage(filterBy)));
+ input.setAttribute("placeholder", placeHolder);
+
buf.append(input.render());
input = new HtmlTag("input");
@@ -650,15 +654,20 @@ public class ListDisplayTag extends BodyTagSupport {
input.setAttribute("value", pageList.getFilterData());
buf.append(input.render());
- input = new HtmlTag("input");
- input.setAttribute("type", "submit");
- input.setAttribute("name", FILTER_DISPATCH);
- input.setAttribute("value", ls.getMessage(RequestContext.FILTER_KEY));
- buf.append(input.render());
+ HtmlTag btnSpan = new HtmlTag("span");
+ btnSpan.setAttribute("class", "input-group-btn");
+ HtmlTag btn = new HtmlTag("button");
+ btn.setAttribute("class", "btn btn-default icon-filter");
+ btn.setAttribute("type", "submit");
+ btn.setAttribute("name", FILTER_DISPATCH);
+ //input.setAttribute("value",
ls.getMessage(RequestContext.FILTER_KEY));
- tag.addBody(ls.getMessage("message.filterby", ls.getMessage(filterBy))
+
- buf.toString());
+ btnSpan.addBody(btn);
+
+ buf.append(btnSpan.render());
+
+ tag.addBody(buf.toString());
out.println(tag.render());
}
@@ -683,11 +692,12 @@ public class ListDisplayTag extends BodyTagSupport {
LocalizationService ls = LocalizationService.getInstance();
- HtmlTag input = new HtmlTag("input");
- input.setAttribute("type", "submit");
- input.setAttribute("name", name);
- input.setAttribute("value", ls.getMessage(label));
- return input;
+ HtmlTag btn = new HtmlTag("button");
+ btn.setAttribute("class", "btn btn-default");
+ btn.setAttribute("type", "submit");
+ btn.setAttribute("name", name);
+ btn.addBody(ls.getMessage(label));
+ return btn;
}
@@ -704,10 +714,10 @@ public class ListDisplayTag extends BodyTagSupport {
throws IOException {
if (type.equals("list")) {
- out.println("<table width=\"100%\"
class=\"list-pagination\"");
+ out.println("<div
class=\"spacewalk-list-pagination\"");
}
else {
- out.println("<table class=\"list-pagination\"");
+ out.println("<div
class=\"spacewalk-list-pagination\"");
}
if (tableId != null) {
@@ -715,9 +725,10 @@ public class ListDisplayTag extends BodyTagSupport {
}
out.println(">");
- out.println("<tr>");
+
+ out.println("<div class=\"row\">");
// if (!showSetButtons) {
- out.println("<td valign=\"middle\"
width=\"90%\">");
+ out.println("<div class=\"col-md-10\">");
//}
//else {
// out.println("<td valign=\"middle\">");
@@ -728,7 +739,7 @@ public class ListDisplayTag extends BodyTagSupport {
}
if (!top && set != null) {
if (showSetButtons) {
- out.print("<span
class=\"list-selection-buttons\">");
+ out.print("<span
class=\"spacewalk-list-selection-btns\">");
renderSetButtons(out);
out.print("</span>");
}
@@ -738,8 +749,9 @@ public class ListDisplayTag extends BodyTagSupport {
}
- out.println("</td>");
- out.print("<td valign=\"middle\"
class=\"list-infotext\">");
+ out.println("</div>");
+
+ out.print("<div class=\"col-md-2\"
class=\"list-infotext\">");
int finalResult = pageList.getEnd();
if (finalResult > pageList.getTotalSize()) {
finalResult = pageList.getTotalSize();
@@ -773,47 +785,42 @@ public class ListDisplayTag extends BodyTagSupport {
out.print("</span></strong>\n");
}
- out.println("</td>");
+ out.println("</div>");
appendButtons(out);
- out.println(" </tr>\n");
- out.println("</table>");
+ out.println(" </div>\n");
+ out.println("</div>");
}
private void appendButtons(JspWriter out) throws IOException {
- out.println("<td valign=\"middle\"
class=\"list-navbuttons\">");
+ out.println("<div class=\"list-navbuttons\">");
boolean canGoForward = pageList.getEnd() < pageList.getTotalSize();
boolean canGoBack = pageList.getStart() > 1;
if (canGoForward || canGoBack) {
out.println(renderPaginationButton(FIRST,
- "/img/list-allbackward", " |< ",
canGoBack));
- out.println(renderPaginationButton(PREV, "/img/list-backward",
+ "icon-fast-backward", " |< ",
canGoBack));
+ out.println(renderPaginationButton(PREV, "icon-backward",
" < ", canGoBack));
- out.println(renderPaginationButton(NEXT, "/img/list-forward",
+ out.println(renderPaginationButton(NEXT, "icon-forward",
" > ", canGoForward));
out.println(renderPaginationButton(LAST,
- "/img/list-allforward", " >| ",
canGoForward));
+ "icon-fast-forward", " >| ",
canGoForward));
}
- out.println("</td>\n");
+ out.println("</div>\n");
}
- private String renderPaginationButton(String name, String imgPrefix,
+ private String renderPaginationButton(String name, String icon,
String text, boolean active) {
- HtmlTag ret = new HtmlTag("input");
- ret.setAttribute("type", "image");
+ HtmlTag ret = new HtmlTag("button");
ret.setAttribute("name", name);
- ret.setAttribute("value", text);
+ String styleClass = String.format("btn btn-default %s", icon);
- if (active) {
- ret.setAttribute("class", "list-nextprev-active");
- ret.setAttribute("src", imgPrefix + ".gif");
- }
- else {
- ret.setAttribute("class", "list-nextprev-inactive");
- ret.setAttribute("src", imgPrefix + "-unfocused.gif");
+ if (!active) {
+ styleClass += " disabled";
}
+ ret.addBody(String.format("<span
class=\"sr-only\">%s</span>", text));
return ret.render();
}
@@ -827,22 +834,21 @@ public class ListDisplayTag extends BodyTagSupport {
}
- out.println("<div align=\"right\">");
- out.println(" <hr />");
+ out.println("<div class=\"text-right\">");
if (getButton() != null && AclManager.hasAcl(getButtonAcl(),
(HttpServletRequest) pageContext.getRequest(), getMixins())) {
- out.println("<input type=\"submit\"
name=\"dispatch\" value=\"" +
+ out.println("<button class=\"btn btn-default\"
type=\"submit\" name=\"dispatch\">" +
LocalizationService.getInstance().getMessage(getButton()) +
- "\" />");
+ "</button>");
}
if (getButton2() != null && AclManager.hasAcl(getButton2Acl(),
(HttpServletRequest) pageContext.getRequest(), getMixins())) {
- out.println("<input type=\"submit\"
name=\"dispatch\" value=\"" +
+ out.println("<button class=\"btn btn-default\"
type=\"submit\" name=\"dispatch\">" +
LocalizationService.getInstance().getMessage(getButton2()) +
- "\" />");
+ "</button>");
}
out.println("</div>");
@@ -926,17 +932,10 @@ public class ListDisplayTag extends BodyTagSupport {
private void renderAlphabar(JspWriter out) throws IOException {
StringBuffer target = new StringBuffer();
- if (type.equals("list")) {
- target.append("<table width=\"100%\"
cellspacing=\"0\"" +
- " cellpadding=\"1\">");
- }
- else {
- target.append("<table cellspacing=\"0\" " + "
cellpadding=\"1\">");
- }
+ target.append("<div class=\"spacewalk-alphabar\">");
- target.append("<tr valign=\"top\">");
- target.append("<td class=\"list-alphabar\"><div
align=\"center\"><strong>");
- StringBuffer enabled = new StringBuffer("<a href=\"");
+ target.append("<ul class=\"pagination
pagination-sm\">");
+ StringBuffer enabled = new StringBuffer("<li><a
href=\"");
enabled.append("?lower={1}");
/**
@@ -975,15 +974,12 @@ public class ListDisplayTag extends BodyTagSupport {
}
}
- enabled.append("\"
class=\"list-alphabar-enabled\">{0}</a>");
+ enabled.append("\">{0}</a><li>");
AlphaBar ab = new AlphaBar(enabled.toString(),
- "<span
class=\"list-alphabar-disabled\">{0}</span>");
+ "<li
class=\"disabled\"><span>{0}</span></li>");
target.append(ab.getAlphaList(pageList.getIndex()));
- target.append("</strong></div>");
- target.append("<br />");
- target.append("</td>");
- target.append(" </tr>");
- target.append("</table>");
+ target.append("</ul>");
+ target.append("</div>");
out.println(target.toString());
}
@@ -1054,6 +1050,7 @@ public class ListDisplayTag extends BodyTagSupport {
//////////////////////////////////////////////////////////////////////////
/** {@inheritDoc} */
+ @Override
public int doStartTag() throws JspException {
rowCnt = 0;
numItemsChecked = 0;
@@ -1099,17 +1096,11 @@ public class ListDisplayTag extends BodyTagSupport {
/* If the type is list, we must set the width explicitly. Otherwise,
* it shouldn't matter
*/
- if (type.equals("list") && title == null) {
- out.print("<table width=\"100%\"
cellspacing=\"0\"" +
- " cellpadding=\"0\" " +
"class=\"list\"");
- }
- else if (type.equals("list") && title != null) {
- out.print("<table width=\"100%\"
cellspacing=\"0\"" +
- " cellpadding=\"0\" " +
"class=\"list list-doubleheader\"");
+ if (type.equals("list")) {
+ out.print("<table class=\"table table-striped
spacewalk-list\"");
}
else {
- out.print("<table cellspacing=\"0\" " + "
cellpadding=\"0\" " +
- "class=\"" + type + "\"");
+ out.print("<table class=\"" + type +
"\"");
}
/*if (isTransparent()) {
@@ -1122,10 +1113,10 @@ public class ListDisplayTag extends BodyTagSupport {
out.println(">");
- out.println("<thead>");
-
renderTitle(out);
+ out.println("<thead>");
+
out.println("\n<tr>");
if (iterator != null && iterator.hasNext()) {
@@ -1142,6 +1133,7 @@ public class ListDisplayTag extends BodyTagSupport {
}
/** {@inheritDoc} */
+ @Override
public int doEndTag() throws JspException {
JspWriter out = null;
try {
@@ -1182,6 +1174,7 @@ public class ListDisplayTag extends BodyTagSupport {
}
out.println(bodyString);
}
+ out.println("</tbody>");
/* If the type is a half-table, we must draw an extra row on the
* end of the table if the reflink has been set
@@ -1189,17 +1182,7 @@ public class ListDisplayTag extends BodyTagSupport {
if (reflink != null) {
columnCount = 0;
- out.println(getTrElement(null));
-
- out.print("<td style=\"text-align: center;\" "
+
- "class=\"first-column last-column\"
");
-
-
- /* TODO: Make this colspan setting dynamic so that
- * the reflink row display correctly for lists of
- * with n columns instead of just 2
- */
- out.println("colspan=\"2\">");
+ out.println("<tfoot>");
out.println("<a href=\"" + reflink + "\"
>");
@@ -1221,11 +1204,10 @@ public class ListDisplayTag extends BodyTagSupport {
}
out.println("</a>");
- out.println("</td>");
- out.println("</tr>");
+ out.println("</tfoot>");
}
- out.println("</tbody>");
+
out.println("</table>\n");
/* If paging is on, we render the pagination */
@@ -1250,7 +1232,7 @@ public class ListDisplayTag extends BodyTagSupport {
args[2] = new Integer(pageList.getTotalSize());
args[3] = LocalizationService.getInstance().getMessage(description);
- out.print("<span
class=\"full-width-note-left\">\n");
+ out.print("<span class=\"text-left\">\n");
out.print(LocalizationService.getInstance()
.getMessage("message.range.withtypedescription",
args));
out.println("</span>");
@@ -1269,6 +1251,7 @@ public class ListDisplayTag extends BodyTagSupport {
}
/** {@inheritDoc} */
+ @Override
public int doAfterBody() throws JspException {
JspWriter out = null;
try {
@@ -1301,6 +1284,7 @@ public class ListDisplayTag extends BodyTagSupport {
}
/** {@inheritDoc} */
+ @Override
public void release() {
// reset the state of the tag
iterator = null;
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
index 019b1f2..d950e9d 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/CSVTag.java
@@ -153,6 +153,7 @@ public class CSVTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public int doEndTag() throws JspException {
setupPageData();
if ((null != exportColumns) && (null != pageData)) {
@@ -165,6 +166,7 @@ public class CSVTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public int doStartTag() throws JspException {
verifyEnvironment();
@@ -174,6 +176,7 @@ public class CSVTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public void release() {
name = ListHelper.LIST;
dataSetName = ListHelper.DATA_SET;
@@ -193,8 +196,8 @@ public class CSVTag extends BodyTagSupport {
private void renderExport() throws JspException {
StringBuffer page = new StringBuffer(CSV_DOWNLOAD_URI);
page.append("?" + makeCSVRequestParams());
- String exportLink = new String("<div
class=\"csv-download\"><a href=\"" +
- page + "\"><img src=\"/img/csv-16.png\"
alt=\"\"/>" +
+ String exportLink = new String("<div
class=\"spacewalk-csv-download\"><a href=\"" +
+ page + "\"><i
class=\"icon-download-alt\"></i>" +
LocalizationService.getInstance().getMessage(
"listdisplay.csv") +
"</a></div>");
ListTagUtil.write(pageContext, exportLink);
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
index dcdba55..b1eae8e 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTag.java
@@ -392,23 +392,17 @@ public class ListTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public int doEndTag() throws JspException {
/* If a reference link was provided, it needs to be rendered on a separate
* row within the table.
*/
if ((refLink != null) && (!isEmpty())) {
- ListTagUtil.write(pageContext, "<tr");
- renderRowClassAndId();
- ListTagUtil.write(pageContext, ">");
-
- ListTagUtil.write(pageContext, "<td style=\"text-align:
center;\" " +
- "class=\"first-column last-column\" ");
-
- ListTagUtil.write(pageContext,
- "colspan=" + String.valueOf(getColumnCount()) +
">");
+ ListTagUtil.write(pageContext, "<tfoot>");
+ ListTagUtil.write(pageContext, "<tr>");
+ ListTagUtil.write(pageContext, "<td colspan=\"" +
String.valueOf(getColumnCount()) + "\">");
ListTagUtil.write(pageContext, "<a href=\"" + refLink +
"\" >");
-
/* Here we render the reflink and its key. If the key hasn't been set
* we just display the link address itself.
*/
@@ -428,10 +422,13 @@ public class ListTag extends BodyTagSupport {
ListTagUtil.write(pageContext, "</a>");
ListTagUtil.write(pageContext, "</td>");
ListTagUtil.write(pageContext, "</tr>");
+ ListTagUtil.write(pageContext, "</tfoot>");
}
+
ListTagUtil.write(pageContext, "</table>");
renderPaginationControls(true);
+ ListTagUtil.write(pageContext, "</div>");
ListTagUtil.write(pageContext, "<!-- END " + getUniqueName() +
" -->");
release();
return BodyTagSupport.EVAL_PAGE;
@@ -440,6 +437,7 @@ public class ListTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public int doAfterBody() throws JspException {
int retval = BodyTagSupport.EVAL_BODY_AGAIN;
@@ -610,6 +608,7 @@ public class ListTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public int doStartTag() throws JspException {
verifyEnvironment();
addDecorator(decoratorName);
@@ -619,7 +618,9 @@ public class ListTag extends BodyTagSupport {
(HttpServletRequest) pageContext.getRequest(),
getUniqueName(), isParentAnElement(), searchParent, searchChild);
int retval = BodyTagSupport.EVAL_BODY_INCLUDE;
- emitId();
+
+ ListTagUtil.write(pageContext, "<!-- START LIST " + getUniqueName()
+ " -->");
+ ListTagUtil.write(pageContext, "<div class=\"spacewalk-list\"
id=\"" + getUniqueName() + "\">");
ListTagUtil.setCurrentCommand(pageContext, getUniqueName(),
ListCommand.ENUMERATE);
@@ -684,6 +685,7 @@ public class ListTag extends BodyTagSupport {
/**
* ${@inheritDoc}
*/
+ @Override
public void release() {
if (pageContext.getAttribute("current") != null) {
pageContext.removeAttribute("current");
@@ -760,14 +762,8 @@ public class ListTag extends BodyTagSupport {
}
}
- private void emitId() throws JspException {
- ListTagUtil.write(pageContext, "<!-- List id ");
- ListTagUtil.write(pageContext, getUniqueName());
- ListTagUtil.write(pageContext, " -->\n");
- }
-
private void startTable() throws JspException {
- ListTagUtil.write(pageContext, "<table class=\"table
table-stripped\"");
+ ListTagUtil.write(pageContext, "<table class=\"table
table-striped\"");
if (styleClass != null) {
ListTagUtil.write(pageContext, " class=\"");
ListTagUtil.write(pageContext, styleClass);
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
index 1f52275..d06764a 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/ListTagUtil.java
@@ -679,22 +679,23 @@ public class ListTagUtil {
StringBuilder sb = new StringBuilder();
sb.append("<div class=\"col-lg-6\">");
- sb.append("<div class=\"input-group\">");
- sb.append(String.format("<span
class=\"input-group-addon\">%s</span>",
- ls.getMessage("message.filterby",
- fields.get(0).toString())));
+ sb.append("<div class=\"input-group
input-group-sm\">");
+
+ String placeHolder =
StringUtils.defaultString(ls.getMessage("message.filterby",
+ fields.get(0).toString()));
sb.append(String.format("<input autofocus=\"autofocus\"
type=\"text\" " +
- " name=\"%s\" value=\"%s\"
class=\"form-control\"/>",
+ " name=\"%s\" value=\"%s\"
class=\"form-control\" placeholder=\"%s\"/>",
filterValueKey,
(filterValue != null ?
StringEscapeUtils.escapeHtml(filterValue) :
- "")));
+ ""),
+ StringEscapeUtils.escapeHtml(placeHolder)
+ ));
sb.append("<span class=\"input-group-btn\">");
sb.append(String.format("<button value=\"%s\"
type=\"submit\" name=\"%s\" " +
- " class=\"btn btn-default\">%s",
+ " class=\"btn btn-default\"><i
class=\"icon-filter\"></i>",
ls.getMessage(RequestContext.FILTER_KEY),
- filterName,
- ls.getMessage(RequestContext.FILTER_KEY)));
+ filterName));
sb.append("</button>");
sb.append("</span>");
sb.append("</div>");
diff --git
a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/AddToSsmDecorator.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/AddToSsmDecorator.java
index 9ea6fe8..66e1e04 100644
---
a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/AddToSsmDecorator.java
+++
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/AddToSsmDecorator.java
@@ -18,6 +18,7 @@ import com.redhat.rhn.common.localization.LocalizationService;
import com.redhat.rhn.frontend.html.HtmlTag;
import com.redhat.rhn.frontend.taglibs.ListDisplayTag;
import com.redhat.rhn.frontend.taglibs.list.ListTagUtil;
+import com.redhat.rhn.frontend.taglibs.list.TagHelper;
import javax.servlet.jsp.JspException;
@@ -38,6 +39,7 @@ public class AddToSsmDecorator extends BaseListDecorator {
public static final String PARAM_CLEAR_SSM = "clear-ssm-first";
/** {@inheritDoc} */
+ @Override
public void afterList() throws JspException {
if (!currentList.isEmpty()) {
@@ -51,20 +53,30 @@ public class AddToSsmDecorator extends BaseListDecorator {
// Generate the HTML to output
StringBuffer buf = new StringBuffer();
- buf.append("<span
class=\"list-selection-buttons\">");
+ buf.append("<span
class=\"spacewalk-list-selection-btns\">");
// Add to SSM button
- HtmlTag tag = new HtmlTag("input");
+ HtmlTag tag = new HtmlTag("button");
+ tag.setAttribute("class", "btn btn-default");
tag.setAttribute("type", "submit");
tag.setAttribute("name", buttonName);
tag.setAttribute("value", value);
+ tag.setBody(value);
buf.append(tag.render()).append(" ");
// Checkbox for whether or not to clear the existing SSM servers
tag = new HtmlTag("input");
+ String uId = TagHelper.generateUniqueName("chkbox-clear-ssm");
+ tag.setAttribute("id", uId);
tag.setAttribute("type", "checkbox");
tag.setAttribute("name", PARAM_CLEAR_SSM);
- buf.append(tag.render()).append(clearText).append(" ");
+
+ HtmlTag lbl = new HtmlTag("label");
+ lbl.setAttribute("for", uId);
+ lbl.setBody(clearText);
+
+ buf.append(tag.render());
+ buf.append(lbl.render());
buf.append("</span>");
ListTagUtil.write(pageContext, buf.toString());
diff --git
a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/SelectableDecorator.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/SelectableDecorator.java
index de651bd..24276b4 100644
---
a/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/SelectableDecorator.java
+++
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/decorators/SelectableDecorator.java
@@ -39,6 +39,7 @@ public class SelectableDecorator extends BaseListDecorator {
/**
* {@inheritDoc}
*/
+ @Override
public void beforeList() throws JspException {
ListTagUtil.write(pageContext, "<input type=\"hidden\"
name=\"list_" +
listName + "_all\" value=\"false\" id=\"" +
"list_" + listName +
@@ -51,6 +52,7 @@ public class SelectableDecorator extends BaseListDecorator {
/**
* {@inheritDoc}
*/
+ @Override
public void afterTopPagination() throws JspException {
renderSelectedCaption(true);
}
@@ -58,6 +60,7 @@ public class SelectableDecorator extends BaseListDecorator {
/**
* {@inheritDoc}
*/
+ @Override
public void afterBottomPagination() throws JspException {
renderSelectedCaption(false);
}
@@ -65,6 +68,7 @@ public class SelectableDecorator extends BaseListDecorator {
/**
* {@inheritDoc}
*/
+ @Override
public void afterList() throws JspException {
renderSelectButtons();
String script = SelectableColumnTag.
@@ -107,19 +111,22 @@ public class SelectableDecorator extends BaseListDecorator {
private void renderSelectButtons() throws JspException {
if (!currentList.isEmpty()) {
StringBuffer buf = new StringBuffer();
- buf.append("<span
class=\"list-selection-buttons\">");
+ buf.append("<span
class=\"spacewalk-list-selection-btns\">");
String buttonName = ListTagUtil.makeSelectActionName(listName);
LocalizationService ls = LocalizationService.getInstance();
- HtmlTag tag = new HtmlTag("input");
+ HtmlTag tag = new HtmlTag("button");
+ tag.setAttribute("class", "btn btn-default");
tag.setAttribute("type", "submit");
tag.setAttribute("name", buttonName);
tag.setAttribute("value",
ls.getMessage(ListDisplayTag.UPDATE_LIST_KEY));
tag.setAttribute("id", "update_list_key_id");
+ tag.setBody(ls.getMessage(ListDisplayTag.UPDATE_LIST_KEY));
buf.append(tag.render()).append(" ");
tag.setAttribute("value",
ls.getMessage(ListDisplayTag.SELECT_ALL_KEY));
+ tag.setBody(ls.getMessage(ListDisplayTag.SELECT_ALL_KEY));
buf.append(tag.render()).append(" ");
String selectedName = ListTagUtil.makeSelectedAmountName(listName);
@@ -127,6 +134,7 @@ public class SelectableDecorator extends BaseListDecorator {
if (!NULL_SELECTION.equals(selected) && selected != null) {
tag.setAttribute("value",
ls.getMessage(ListDisplayTag.UNSELECT_ALL_KEY));
+ tag.setBody(ls.getMessage(ListDisplayTag.UNSELECT_ALL_KEY));
buf.append(tag.render()).append("\n");
}
buf.append("</span>");
commit cc12a6be0f3058c26709ce419b5e49e0c37f4620
Author: Duncan Mac-Vicar P <dmacvicar(a)suse.de>
Date: Mon Oct 7 15:29:58 2013 +0200
port the alphabar to twitter bootstrap
diff --git a/java/code/src/com/redhat/rhn/frontend/taglibs/list/AlphaBarHelper.java
b/java/code/src/com/redhat/rhn/frontend/taglibs/list/AlphaBarHelper.java
index 1071971..6606059 100644
--- a/java/code/src/com/redhat/rhn/frontend/taglibs/list/AlphaBarHelper.java
+++ b/java/code/src/com/redhat/rhn/frontend/taglibs/list/AlphaBarHelper.java
@@ -84,13 +84,10 @@ public class AlphaBarHelper {
public void writeAlphaBar(PageContext pageContext,
Set<Character> activeChars, String listName) throws JspException {
- ListTagUtil.write(pageContext, "<br />");
ListTagUtil.write(pageContext,
- "<table width=\"100%\"
cellspacing=\"0\"" +
- " cellpadding=\"1\">");
- ListTagUtil.write(pageContext, "<tr valign=\"top\">");
- ListTagUtil.write(pageContext, "<td
class=\"list-alphabar\">" +
- "<div
align=\"center\"><strong>");
+ "<div
class=\"spacewalk-alphabar\">");
+ ListTagUtil.write(pageContext,
+ "<ul class=\"pagination pagination-sm\">");
List<String> alphabet = LocalizationService.getInstance().getAlphabet();
List<String> numbers = LocalizationService.getInstance().getDigits();
@@ -117,11 +114,8 @@ public class AlphaBarHelper {
}
}
- ListTagUtil.write(pageContext, "</strong></div>");
- ListTagUtil.write(pageContext, "<br />");
- ListTagUtil.write(pageContext, "</td>");
- ListTagUtil.write(pageContext, " </tr>");
- ListTagUtil.write(pageContext, "</table>");
+ ListTagUtil.write(pageContext, "</ul>");
+ ListTagUtil.write(pageContext, "</div>");
}
private String renderEnabledAlpha(char alpha,
@@ -130,18 +124,18 @@ public class AlphaBarHelper {
Map <String, String> params = new HashMap<String, String>();
params.put(makeAlphaKey(listName), String.valueOf(alpha));
- StringBuilder enabled = new StringBuilder("<a href=\"");
+ StringBuilder enabled = new StringBuilder("<li><a
href=\"");
List ignoreList = new ArrayList();
ignoreList.add("submitted");
enabled.append(ListTagUtil.makeParamsLink(request, listName, params,
ignoreList));
- enabled.append("\"");
- enabled.append(" class=\"list-alphabar-enabled\">" + alpha
+ "</a>");
+ enabled.append("\">");
+ enabled.append(alpha + "</a></li>");
return enabled.toString();
}
private String renderDisabledAlph(char alpha) {
- return "<span class=\"list-alphabar-disabled\">" +
alpha + "</span>";
+ return "<li class=\"disabled\"><a
href=\"#\">" + alpha + "</a></li>";
}
}