http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/assets/bootstrap/js/bootstrap.min.js ---------------------------------------------------------------------- diff --git a/assets/bootstrap/js/bootstrap.min.js b/assets/bootstrap/js/bootstrap.min.js new file mode 100755 index 0000000..2fac40d --- /dev/null +++ b/assets/bootstrap/js/bootstrap.min.js @@ -0,0 +1,12 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ + +/*! + * Generated using the Bootstrap Customizer (http://getbootstrap.com/customize/?id=797685887ce86a89f1b08a9b11f473a4) + * Config saved to config.json and https://gist.github.com/797685887ce86a89f1b08a9b11f473a4 + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),n=i.data("bs.alert");n||i.data("bs.alert",n=new o(this)),"string"==typeof e&&n[e].call(i)})}var i='[data-dismiss="alert"]',o=function(e){t(e).on("click",i,this.close)};o.VERSION="3.3.7",o.TRANSITION_DURATION=150,o.prototype.close=function(e){function i(){a.detach().trigger("closed.bs.alert").remove()}var n=t(this),s=n.attr("data-target");s||(s=n.attr("href"),s=s&&s.replace(/.*(?=#[^\s]*$)/,""));var a=t("#"===s?[]:s);e&&e.preventDefault(),a.length||(a=n.closest(".alert")),a.trigger(e=t.Event("close.bs.alert")),e.isDefaultPrevented()||(a.removeClass("in"),t.support.transition&&a.hasCl ass("fade")?a.one("bsTransitionEnd",i).emulateTransitionEnd(o.TRANSITION_DURATION):i())};var n=t.fn.alert;t.fn.alert=e,t.fn.alert.Constructor=o,t.fn.alert.noConflict=function(){return t.fn.alert=n,this},t(document).on("click.bs.alert.data-api",i,o.prototype.close)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.button"),s="object"==typeof e&&e;n||o.data("bs.button",n=new i(this,s)),"toggle"==e?n.toggle():e&&n.setState(e)})}var i=function(e,o){this.$element=t(e),this.options=t.extend({},i.DEFAULTS,o),this.isLoading=!1};i.VERSION="3.3.7",i.DEFAULTS={loadingText:"loading..."},i.prototype.setState=function(e){var i="disabled",o=this.$element,n=o.is("input")?"val":"html",s=o.data();e+="Text",null==s.resetText&&o.data("resetText",o[n]()),setTimeout(t.proxy(function(){o[n](null==s[e]?this.options[e]:s[e]),"loadingText"==e?(this.isLoading=!0,o.addClass(i).attr(i,i).prop(i,!0)):this.isLoading&&(this.isLoading=!1,o.removeClass(i).removeA ttr(i).prop(i,!1))},this),0)},i.prototype.toggle=function(){var t=!0,e=this.$element.closest('[data-toggle="buttons"]');if(e.length){var i=this.$element.find("input");"radio"==i.prop("type")?(i.prop("checked")&&(t=!1),e.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==i.prop("type")&&(i.prop("checked")!==this.$element.hasClass("active")&&(t=!1),this.$element.toggleClass("active")),i.prop("checked",this.$element.hasClass("active")),t&&i.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var o=t.fn.button;t.fn.button=e,t.fn.button.Constructor=i,t.fn.button.noConflict=function(){return t.fn.button=o,this},t(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(i){var o=t(i.target).closest(".btn");e.call(o,"toggle"),t(i.target).is('input[type="radio"], input[type="checkbox"]')||(i.preventDefault(),o.is("input,button")?o.trigger("focus"):o.find("input:visi ble,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(e){t(e.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(e.type))})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.carousel"),s=t.extend({},i.DEFAULTS,o.data(),"object"==typeof e&&e),a="string"==typeof e?e:s.slide;n||o.data("bs.carousel",n=new i(this,s)),"number"==typeof e?n.to(e):a?n[a]():s.interval&&n.pause().cycle()})}var i=function(e,i){this.$element=t(e),this.$indicators=this.$element.find(".carousel-indicators"),this.options=i,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",t.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",t.proxy(this.pause,this)).on("mouseleave.bs.carousel",t .proxy(this.cycle,this))};i.VERSION="3.3.7",i.TRANSITION_DURATION=600,i.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},i.prototype.keydown=function(t){if(!/input|textarea/i.test(t.target.tagName)){switch(t.which){case 37:this.prev();break;case 39:this.next();break;default:return}t.preventDefault()}},i.prototype.cycle=function(e){return e||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(t.proxy(this.next,this),this.options.interval)),this},i.prototype.getItemIndex=function(t){return this.$items=t.parent().children(".item"),this.$items.index(t||this.$active)},i.prototype.getItemForDirection=function(t,e){var i=this.getItemIndex(e),o="prev"==t&&0===i||"next"==t&&i==this.$items.length-1;if(o&&!this.options.wrap)return e;var n="prev"==t?-1:1,s=(i+n)%this.$items.length;return this.$items.eq(s)},i.prototype.to=function(t){var e=this,i=this.getItemIndex(this.$active=this.$element.find(".item.active"));re turn t>this.$items.length-1||0>t?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){e.to(t)}):i==t?this.pause().cycle():this.slide(t>i?"next":"prev",this.$items.eq(t))},i.prototype.pause=function(e){return e||(this.paused=!0),this.$element.find(".next, .prev").length&&t.support.transition&&(this.$element.trigger(t.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},i.prototype.next=function(){return this.sliding?void 0:this.slide("next")},i.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},i.prototype.slide=function(e,o){var n=this.$element.find(".item.active"),s=o||this.getItemForDirection(e,n),a=this.interval,r="next"==e?"left":"right",l=this;if(s.hasClass("active"))return this.sliding=!1;var h=s[0],d=t.Event("slide.bs.carousel",{relatedTarget:h,direction:r});if(this.$element.trigger(d),!d.isDefaultPrevented()){if(this.sliding=!0,a&&this.pause(),this.$indicators.length){this.$indicators.find(".active").re moveClass("active");var p=t(this.$indicators.children()[this.getItemIndex(s)]);p&&p.addClass("active")}var c=t.Event("slid.bs.carousel",{relatedTarget:h,direction:r});return t.support.transition&&this.$element.hasClass("slide")?(s.addClass(e),s[0].offsetWidth,n.addClass(r),s.addClass(r),n.one("bsTransitionEnd",function(){s.removeClass([e,r].join(" ")).addClass("active"),n.removeClass(["active",r].join(" ")),l.sliding=!1,setTimeout(function(){l.$element.trigger(c)},0)}).emulateTransitionEnd(i.TRANSITION_DURATION)):(n.removeClass("active"),s.addClass("active"),this.sliding=!1,this.$element.trigger(c)),a&&this.cycle(),this}};var o=t.fn.carousel;t.fn.carousel=e,t.fn.carousel.Constructor=i,t.fn.carousel.noConflict=function(){return t.fn.carousel=o,this};var n=function(i){var o,n=t(this),s=t(n.attr("data-target")||(o=n.attr("href"))&&o.replace(/.*(?=#[^\s]+$)/,""));if(s.hasClass("carousel")){var a=t.extend({},s.data(),n.data()),r=n.attr("data-slide-to");r&&(a.interval=!1),e.call(s,a),r&&s .data("bs.carousel").to(r),i.preventDefault()}};t(document).on("click.bs.carousel.data-api","[data-slide]",n).on("click.bs.carousel.data-api","[data-slide-to]",n),t(window).on("load",function(){t('[data-ride="carousel"]').each(function(){var i=t(this);e.call(i,i.data())})})}(jQuery),+function(t){"use strict";function e(e){var i=e.attr("data-target");i||(i=e.attr("href"),i=i&&/#[A-Za-z]/.test(i)&&i.replace(/.*(?=#[^\s]*$)/,""));var o=i&&t(i);return o&&o.length?o:e.parent()}function i(i){i&&3===i.which||(t(n).remove(),t(s).each(function(){var o=t(this),n=e(o),s={relatedTarget:this};n.hasClass("open")&&(i&&"click"==i.type&&/input|textarea/i.test(i.target.tagName)&&t.contains(n[0],i.target)||(n.trigger(i=t.Event("hide.bs.dropdown",s)),i.isDefaultPrevented()||(o.attr("aria-expanded","false"),n.removeClass("open").trigger(t.Event("hidden.bs.dropdown",s)))))}))}function o(e){return this.each(function(){var i=t(this),o=i.data("bs.dropdown");o||i.data("bs.dropdown",o=new a(this)),"string"==t ypeof e&&o[e].call(i)})}var n=".dropdown-backdrop",s='[data-toggle="dropdown"]',a=function(e){t(e).on("click.bs.dropdown",this.toggle)};a.VERSION="3.3.7",a.prototype.toggle=function(o){var n=t(this);if(!n.is(".disabled, :disabled")){var s=e(n),a=s.hasClass("open");if(i(),!a){"ontouchstart"in document.documentElement&&!s.closest(".navbar-nav").length&&t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click",i);var r={relatedTarget:this};if(s.trigger(o=t.Event("show.bs.dropdown",r)),o.isDefaultPrevented())return;n.trigger("focus").attr("aria-expanded","true"),s.toggleClass("open").trigger(t.Event("shown.bs.dropdown",r))}return!1}},a.prototype.keydown=function(i){if(/(38|40|27|32)/.test(i.which)&&!/input|textarea/i.test(i.target.tagName)){var o=t(this);if(i.preventDefault(),i.stopPropagation(),!o.is(".disabled, :disabled")){var n=e(o),a=n.hasClass("open");if(!a&&27!=i.which||a&&27==i.which)return 27==i.which&&n.find(s).trigger("focus"),o.trigger("c lick");var r=" li:not(.disabled):visible a",l=n.find(".dropdown-menu"+r);if(l.length){var h=l.index(i.target);38==i.which&&h>0&&h--,40==i.which&&h<l.length-1&&h++,~h||(h=0),l.eq(h).trigger("focus")}}}};var r=t.fn.dropdown;t.fn.dropdown=o,t.fn.dropdown.Constructor=a,t.fn.dropdown.noConflict=function(){return t.fn.dropdown=r,this},t(document).on("click.bs.dropdown.data-api",i).on("click.bs.dropdown.data-api",".dropdown form",function(t){t.stopPropagation()}).on("click.bs.dropdown.data-api",s,a.prototype.toggle).on("keydown.bs.dropdown.data-api",s,a.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",a.prototype.keydown)}(jQuery),+function(t){"use strict";function e(e,o){return this.each(function(){var n=t(this),s=n.data("bs.modal"),a=t.extend({},i.DEFAULTS,n.data(),"object"==typeof e&&e);s||n.data("bs.modal",s=new i(this,a)),"string"==typeof e?s[e](o):a.show&&s.show(o)})}var i=function(e,i){this.options=i,this.$body=t(document.body),this.$element=t(e),this.$dialog=th is.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,t.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};i.VERSION="3.3.7",i.TRANSITION_DURATION=300,i.BACKDROP_TRANSITION_DURATION=150,i.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},i.prototype.toggle=function(t){return this.isShown?this.hide():this.show(t)},i.prototype.show=function(e){var o=this,n=t.Event("show.bs.modal",{relatedTarget:e});this.$element.trigger(n),this.isShown||n.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',t.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){o.$element.one("mouseup.dismiss.bs.modal",function(e){t(e.target).is(o.$element )&&(o.ignoreBackdropClick=!0)})}),this.backdrop(function(){var n=t.support.transition&&o.$element.hasClass("fade");o.$element.parent().length||o.$element.appendTo(o.$body),o.$element.show().scrollTop(0),o.adjustDialog(),n&&o.$element[0].offsetWidth,o.$element.addClass("in"),o.enforceFocus();var s=t.Event("shown.bs.modal",{relatedTarget:e});n?o.$dialog.one("bsTransitionEnd",function(){o.$element.trigger("focus").trigger(s)}).emulateTransitionEnd(i.TRANSITION_DURATION):o.$element.trigger("focus").trigger(s)}))},i.prototype.hide=function(e){e&&e.preventDefault(),e=t.Event("hide.bs.modal"),this.$element.trigger(e),this.isShown&&!e.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),t(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),t.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",t.proxy(this.hideModal,this)) .emulateTransitionEnd(i.TRANSITION_DURATION):this.hideModal())},i.prototype.enforceFocus=function(){t(document).off("focusin.bs.modal").on("focusin.bs.modal",t.proxy(function(t){document===t.target||this.$element[0]===t.target||this.$element.has(t.target).length||this.$element.trigger("focus")},this))},i.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",t.proxy(function(t){27==t.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},i.prototype.resize=function(){this.isShown?t(window).on("resize.bs.modal",t.proxy(this.handleUpdate,this)):t(window).off("resize.bs.modal")},i.prototype.hideModal=function(){var t=this;this.$element.hide(),this.backdrop(function(){t.$body.removeClass("modal-open"),t.resetAdjustments(),t.resetScrollbar(),t.$element.trigger("hidden.bs.modal")})},i.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},i.prototype.backdrop=fun ction(e){var o=this,n=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var s=t.support.transition&&n;if(this.$backdrop=t(document.createElement("div")).addClass("modal-backdrop "+n).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",t.proxy(function(t){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(t.target===t.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),s&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!e)return;s?this.$backdrop.one("bsTransitionEnd",e).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):e()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var a=function(){o.removeBackdrop(),e&&e()};t.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",a).emulateTransitionEnd(i.BACKDROP_TRANSITION_DURATION):a()}else e&&e()},i.prototype.handleUpdate=function(){this.adjustDialog()},i.prototype.a djustDialog=function(){var t=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&t?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!t?this.scrollbarWidth:""})},i.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},i.prototype.checkScrollbar=function(){var t=window.innerWidth;if(!t){var e=document.documentElement.getBoundingClientRect();t=e.right-Math.abs(e.left)}this.bodyIsOverflowing=document.body.clientWidth<t,this.scrollbarWidth=this.measureScrollbar()},i.prototype.setScrollbar=function(){var t=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",t+this.scrollbarWidth)},i.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},i.prototype.measureScrollbar=function(){var t=document.createElement("div");t.className="modal -scrollbar-measure",this.$body.append(t);var e=t.offsetWidth-t.clientWidth;return this.$body[0].removeChild(t),e};var o=t.fn.modal;t.fn.modal=e,t.fn.modal.Constructor=i,t.fn.modal.noConflict=function(){return t.fn.modal=o,this},t(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(i){var o=t(this),n=o.attr("href"),s=t(o.attr("data-target")||n&&n.replace(/.*(?=#[^\s]+$)/,"")),a=s.data("bs.modal")?"toggle":t.extend({remote:!/#/.test(n)&&n},s.data(),o.data());o.is("a")&&i.preventDefault(),s.one("show.bs.modal",function(t){t.isDefaultPrevented()||s.one("hidden.bs.modal",function(){o.is(":visible")&&o.trigger("focus")})}),e.call(s,a,this)})}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tooltip"),s="object"==typeof e&&e;!n&&/destroy|hide/.test(e)||(n||o.data("bs.tooltip",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.ho verState=null,this.$element=null,this.inState=null,this.init("tooltip",t,e)};i.VERSION="3.3.7",i.TRANSITION_DURATION=150,i.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},i.prototype.init=function(e,i,o){if(this.enabled=!0,this.type=e,this.$element=t(i),this.options=this.getOptions(o),this.$viewport=this.options.viewport&&t(t.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var n=this.options.trigger.split(" "),s=n.length;s--;){var a=n[s];if("click" ==a)this.$element.on("click."+this.type,this.options.selector,t.proxy(this.toggle,this));else if("manual"!=a){var r="hover"==a?"mouseenter":"focusin",l="hover"==a?"mouseleave":"focusout";this.$element.on(r+"."+this.type,this.options.selector,t.proxy(this.enter,this)),this.$element.on(l+"."+this.type,this.options.selector,t.proxy(this.leave,this))}}this.options.selector?this._options=t.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.getOptions=function(e){return e=t.extend({},this.getDefaults(),this.$element.data(),e),e.delay&&"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),e},i.prototype.getDelegateOptions=function(){var e={},i=this.getDefaults();return this._options&&t.each(this._options,function(t,o){i[t]!=o&&(e[t]=o)}),e},i.prototype.enter=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarg et,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusin"==e.type?"focus":"hover"]=!0),i.tip().hasClass("in")||"in"==i.hoverState?void(i.hoverState="in"):(clearTimeout(i.timeout),i.hoverState="in",i.options.delay&&i.options.delay.show?void(i.timeout=setTimeout(function(){"in"==i.hoverState&&i.show()},i.options.delay.show)):i.show())},i.prototype.isInStateTrue=function(){for(var t in this.inState)if(this.inState[t])return!0;return!1},i.prototype.leave=function(e){var i=e instanceof this.constructor?e:t(e.currentTarget).data("bs."+this.type);return i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i)),e instanceof t.Event&&(i.inState["focusout"==e.type?"focus":"hover"]=!1),i.isInStateTrue()?void 0:(clearTimeout(i.timeout),i.hoverState="out",i.options.delay&&i.options.delay.hide?void(i.timeout=setTimeout(function(){"out"==i.hoverState&&i.hide()},i.options.delay.hide)): i.hide())},i.prototype.show=function(){var e=t.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var o=t.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!o)return;var n=this,s=this.tip(),a=this.getUID(this.type);this.setContent(),s.attr("id",a),this.$element.attr("aria-describedby",a),this.options.animation&&s.addClass("fade");var r="function"==typeof this.options.placement?this.options.placement.call(this,s[0],this.$element[0]):this.options.placement,l=/\s?auto?\s?/i,h=l.test(r);h&&(r=r.replace(l,"")||"top"),s.detach().css({top:0,left:0,display:"block"}).addClass(r).data("bs."+this.type,this),this.options.container?s.appendTo(this.options.container):s.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var d=this.getPosition(),p=s[0].offsetWidth,c=s[0].offsetHeight;if(h){var f=r,u=this.getPosition(this.$viewport);r="bottom"==r&&d.bottom+c>u.bottom?"top":"top"==r&&d.top -c<u.top?"bottom":"right"==r&&d.right+p>u.width?"left":"left"==r&&d.left-p<u.left?"right":r,s.removeClass(f).addClass(r)}var g=this.getCalculatedOffset(r,d,p,c);this.applyPlacement(g,r);var v=function(){var t=n.hoverState;n.$element.trigger("shown.bs."+n.type),n.hoverState=null,"out"==t&&n.leave(n)};t.support.transition&&this.$tip.hasClass("fade")?s.one("bsTransitionEnd",v).emulateTransitionEnd(i.TRANSITION_DURATION):v()}},i.prototype.applyPlacement=function(e,i){var o=this.tip(),n=o[0].offsetWidth,s=o[0].offsetHeight,a=parseInt(o.css("margin-top"),10),r=parseInt(o.css("margin-left"),10);isNaN(a)&&(a=0),isNaN(r)&&(r=0),e.top+=a,e.left+=r,t.offset.setOffset(o[0],t.extend({using:function(t){o.css({top:Math.round(t.top),left:Math.round(t.left)})}},e),0),o.addClass("in");var l=o[0].offsetWidth,h=o[0].offsetHeight;"top"==i&&h!=s&&(e.top=e.top+s-h);var d=this.getViewportAdjustedDelta(i,e,l,h);d.left?e.left+=d.left:e.top+=d.top;var p=/top|bottom/.test(i),c=p?2*d.left-n+l:2*d.top-s+h,f=p?"o ffsetWidth":"offsetHeight";o.offset(e),this.replaceArrow(c,o[0][f],p)},i.prototype.replaceArrow=function(t,e,i){this.arrow().css(i?"left":"top",50*(1-t/e)+"%").css(i?"top":"left","")},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle();t.find(".tooltip-inner")[this.options.html?"html":"text"](e),t.removeClass("fade in top bottom left right")},i.prototype.hide=function(e){function o(){"in"!=n.hoverState&&s.detach(),n.$element&&n.$element.removeAttr("aria-describedby").trigger("hidden.bs."+n.type),e&&e()}var n=this,s=t(this.$tip),a=t.Event("hide.bs."+this.type);return this.$element.trigger(a),a.isDefaultPrevented()?void 0:(s.removeClass("in"),t.support.transition&&s.hasClass("fade")?s.one("bsTransitionEnd",o).emulateTransitionEnd(i.TRANSITION_DURATION):o(),this.hoverState=null,this)},i.prototype.fixTitle=function(){var t=this.$element;(t.attr("title")||"string"!=typeof t.attr("data-original-title"))&&t.attr("data-original-title",t.attr("title")||"").attr("title","")}, i.prototype.hasContent=function(){return this.getTitle()},i.prototype.getPosition=function(e){e=e||this.$element;var i=e[0],o="BODY"==i.tagName,n=i.getBoundingClientRect();null==n.width&&(n=t.extend({},n,{width:n.right-n.left,height:n.bottom-n.top}));var s=window.SVGElement&&i instanceof window.SVGElement,a=o?{top:0,left:0}:s?null:e.offset(),r={scroll:o?document.documentElement.scrollTop||document.body.scrollTop:e.scrollTop()},l=o?{width:t(window).width(),height:t(window).height()}:null;return t.extend({},n,r,l,a)},i.prototype.getCalculatedOffset=function(t,e,i,o){return"bottom"==t?{top:e.top+e.height,left:e.left+e.width/2-i/2}:"top"==t?{top:e.top-o,left:e.left+e.width/2-i/2}:"left"==t?{top:e.top+e.height/2-o/2,left:e.left-i}:{top:e.top+e.height/2-o/2,left:e.left+e.width}},i.prototype.getViewportAdjustedDelta=function(t,e,i,o){var n={top:0,left:0};if(!this.$viewport)return n;var s=this.options.viewport&&this.options.viewport.padding||0,a=this.getPosition(this.$viewport);if(/right|le ft/.test(t)){var r=e.top-s-a.scroll,l=e.top+s-a.scroll+o;r<a.top?n.top=a.top-r:l>a.top+a.height&&(n.top=a.top+a.height-l)}else{var h=e.left-s,d=e.left+s+i;h<a.left?n.left=a.left-h:d>a.right&&(n.left=a.left+a.width-d)}return n},i.prototype.getTitle=function(){var t,e=this.$element,i=this.options;return t=e.attr("data-original-title")||("function"==typeof i.title?i.title.call(e[0]):i.title)},i.prototype.getUID=function(t){do t+=~~(1e6*Math.random());while(document.getElementById(t));return t},i.prototype.tip=function(){if(!this.$tip&&(this.$tip=t(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},i.prototype.enable=function(){this.enabled=!0},i.prototype.disable=function(){this.enabled=!1},i.prototype.toggleEnabled=function(){this.enabled=!this.enabled},i.prototype.toggle=function(e){var i=this;e&&(i=t(e.currentTarget).data("bs."+this.type),i||(i=new this.constructor(e.currentTarget,this.getDelegateOptions()),t(e.currentTarget).data("bs."+this.type,i))),e?(i.inState.click=!i.inState.click,i.isInStateTrue()?i.enter(i):i.leave(i)):i.tip().hasClass("in")?i.leave(i):i.enter(i)},i.prototype.destroy=function(){var t=this;clearTimeout(this.timeout),this.hide(function(){t.$element.off("."+t.type).removeData("bs."+t.type),t.$tip&&t.$tip.detach(),t.$tip=null,t.$arrow=null,t.$viewport=null,t.$element=null})};var o=t.fn.tooltip;t.fn.tooltip=e,t.fn.tooltip.Constructor=i,t.fn.tooltip.noConflict=function(){return t.fn.tooltip=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.popover"),s="object"==typeof e&&e;!n&&/destroy|hide/.test(e)||(n||o.data("bs.popover",n=new i(this,s)),"string"==typeof e&&n[e]())})}var i=function(t,e){this.init("popover",t,e)};if(!t.fn.tooltip)throw new Error("Popover requires tooltip.js");i.VERS ION="3.3.7",i.DEFAULTS=t.extend({},t.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),i.prototype=t.extend({},t.fn.tooltip.Constructor.prototype),i.prototype.constructor=i,i.prototype.getDefaults=function(){return i.DEFAULTS},i.prototype.setContent=function(){var t=this.tip(),e=this.getTitle(),i=this.getContent();t.find(".popover-title")[this.options.html?"html":"text"](e),t.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof i?"html":"append":"text"](i),t.removeClass("fade top bottom left right in"),t.find(".popover-title").html()||t.find(".popover-title").hide()},i.prototype.hasContent=function(){return this.getTitle()||this.getContent()},i.prototype.getContent=function(){var t=this.$element,e=this.options;return t.attr("data-content")||("function"==typeof e.content?e.conten t.call(t[0]):e.content)},i.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var o=t.fn.popover;t.fn.popover=e,t.fn.popover.Constructor=i,t.fn.popover.noConflict=function(){return t.fn.popover=o,this}}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.tab");n||o.data("bs.tab",n=new i(this)),"string"==typeof e&&n[e]()})}var i=function(e){this.element=t(e)};i.VERSION="3.3.7",i.TRANSITION_DURATION=150,i.prototype.show=function(){var e=this.element,i=e.closest("ul:not(.dropdown-menu)"),o=e.data("target");if(o||(o=e.attr("href"),o=o&&o.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var n=i.find(".active:last a"),s=t.Event("hide.bs.tab",{relatedTarget:e[0]}),a=t.Event("show.bs.tab",{relatedTarget:n[0]});if(n.trigger(s),e.trigger(a),!a.isDefaultPrevented()&&!s.isDefaultPrevented()){var r=t(o);this.activate(e.closest("li"),i),this.activate(r,r.parent(),function(){n.trigger({type:"hidd en.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:n[0]})})}}},i.prototype.activate=function(e,o,n){function s(){a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),r?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),n&&n()}var a=o.find("> .active"),r=n&&t.support.transition&&(a.length&&a.hasClass("fade")||!!o.find("> .fade").length);a.length&&r?a.one("bsTransitionEnd",s).emulateTransitionEnd(i.TRANSITION_DURATION):s(),a.removeClass("in")};var o=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=i,t.fn.tab.noConflict=function(){return t.fn.tab=o,this};var n=function(i){i.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle=" tab"]',n).on("click.bs.tab.data-api",'[data-toggle="pill"]',n)}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var o=t(this),n=o.data("bs.affix"),s="object"==typeof e&&e;n||o.data("bs.affix",n=new i(this,s)),"string"==typeof e&&n[e]()})}var i=function(e,o){this.options=t.extend({},i.DEFAULTS,o),this.$target=t(this.options.target).on("scroll.bs.affix.data-api",t.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",t.proxy(this.checkPositionWithEventLoop,this)),this.$element=t(e),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};i.VERSION="3.3.7",i.RESET="affix affix-top affix-bottom",i.DEFAULTS={offset:0,target:window},i.prototype.getState=function(t,e,i,o){var n=this.$target.scrollTop(),s=this.$element.offset(),a=this.$target.height();if(null!=i&&"top"==this.affixed)return i>n?"top":!1;if("bottom"==this.affixed)return null!=i?n+this.unpin<=s.top?!1:"bottom":t-o>=n+a?!1:"bottom";var r=null==this.affixed,l=r?n:s.top,h=r ?a:e;return null!=i&&i>=n?"top":null!=o&&l+h>=t-o?"bottom":!1},i.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(i.RESET).addClass("affix");var t=this.$target.scrollTop(),e=this.$element.offset();return this.pinnedOffset=e.top-t},i.prototype.checkPositionWithEventLoop=function(){setTimeout(t.proxy(this.checkPosition,this),1)},i.prototype.checkPosition=function(){if(this.$element.is(":visible")){var e=this.$element.height(),o=this.options.offset,n=o.top,s=o.bottom,a=Math.max(t(document).height(),t(document.body).height());"object"!=typeof o&&(s=n=o),"function"==typeof n&&(n=o.top(this.$element)),"function"==typeof s&&(s=o.bottom(this.$element));var r=this.getState(a,e,n,s);if(this.affixed!=r){null!=this.unpin&&this.$element.css("top","");var l="affix"+(r?"-"+r:""),h=t.Event(l+".bs.affix");if(this.$element.trigger(h),h.isDefaultPrevented())return;this.affixed=r,this.unpin="bottom"==r?this.getPinnedOffset():null,this.$element .removeClass(i.RESET).addClass(l).trigger(l.replace("affix","affixed")+".bs.affix")}"bottom"==r&&this.$element.offset({top:a-e-s})}};var o=t.fn.affix;t.fn.affix=e,t.fn.affix.Constructor=i,t.fn.affix.noConflict=function(){return t.fn.affix=o,this},t(window).on("load",function(){t('[data-spy="affix"]').each(function(){var i=t(this),o=i.data();o.offset=o.offset||{},null!=o.offsetBottom&&(o.offset.bottom=o.offsetBottom),null!=o.offsetTop&&(o.offset.top=o.offsetTop),e.call(i,o)})})}(jQuery),+function(t){"use strict";function e(e){var i,o=e.attr("data-target")||(i=e.attr("href"))&&i.replace(/.*(?=#[^\s]+$)/,"");return t(o)}function i(e){return this.each(function(){var i=t(this),n=i.data("bs.collapse"),s=t.extend({},o.DEFAULTS,i.data(),"object"==typeof e&&e);!n&&s.toggle&&/show|hide/.test(e)&&(s.toggle=!1),n||i.data("bs.collapse",n=new o(this,s)),"string"==typeof e&&n[e]()})}var o=function(e,i){this.$element=t(e),this.options=t.extend({},o.DEFAULTS,i),this.$trigger=t('[data-toggle="collaps e"][href="#'+e.id+'"],[data-toggle="collapse"][data-target="#'+e.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};o.VERSION="3.3.7",o.TRANSITION_DURATION=350,o.DEFAULTS={toggle:!0},o.prototype.dimension=function(){var t=this.$element.hasClass("width");return t?"width":"height"},o.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var e,n=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(n&&n.length&&(e=n.data("bs.collapse"),e&&e.transitioning))){var s=t.Event("show.bs.collapse");if(this.$element.trigger(s),!s.isDefaultPrevented()){n&&n.length&&(i.call(n,"hide"),e||n.data("bs.collapse",null));var a=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var r=fun ction(){this.$element.removeClass("collapsing").addClass("collapse in")[a](""),this.transitioning=0, +this.$element.trigger("shown.bs.collapse")};if(!t.support.transition)return r.call(this);var l=t.camelCase(["scroll",a].join("-"));this.$element.one("bsTransitionEnd",t.proxy(r,this)).emulateTransitionEnd(o.TRANSITION_DURATION)[a](this.$element[0][l])}}}},o.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var e=t.Event("hide.bs.collapse");if(this.$element.trigger(e),!e.isDefaultPrevented()){var i=this.dimension();this.$element[i](this.$element[i]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var n=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return t.support.transition?void this.$element[i](0).one("bsTransitionEnd",t.proxy(n,this)).emulateTransitionEnd(o.TRANSITION_DURATION):n.call(this)}}},o.prototype.toggle=function(){this[this.$el ement.hasClass("in")?"hide":"show"]()},o.prototype.getParent=function(){return t(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(t.proxy(function(i,o){var n=t(o);this.addAriaAndCollapsedClass(e(n),n)},this)).end()},o.prototype.addAriaAndCollapsedClass=function(t,e){var i=t.hasClass("in");t.attr("aria-expanded",i),e.toggleClass("collapsed",!i).attr("aria-expanded",i)};var n=t.fn.collapse;t.fn.collapse=i,t.fn.collapse.Constructor=o,t.fn.collapse.noConflict=function(){return t.fn.collapse=n,this},t(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(o){var n=t(this);n.attr("data-target")||o.preventDefault();var s=e(n),a=s.data("bs.collapse"),r=a?"toggle":n.data();i.call(s,r)})}(jQuery),+function(t){"use strict";function e(i,o){this.$body=t(document.body),this.$scrollElement=t(t(i).is(document.body)?window:i),this.options=t.extend({},e.DEFAULTS,o),this.selector=(this.options.target||"")+" .nav li > a",this.offse ts=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function i(i){return this.each(function(){var o=t(this),n=o.data("bs.scrollspy"),s="object"==typeof i&&i;n||o.data("bs.scrollspy",n=new e(this,s)),"string"==typeof i&&n[i]()})}e.VERSION="3.3.7",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,i="offset",o=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(i="position",o=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),n=e.data("target")||e.attr("href"),s=/^#./.test(n)&&t(n);return s&&s.length&&s.is(":visible")&&[[s[i]().top+o,n]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e. offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,i=this.getScrollHeight(),o=this.options.offset+i-this.$scrollElement.height(),n=this.offsets,s=this.targets,a=this.activeTarget;if(this.scrollHeight!=i&&this.refresh(),e>=o)return a!=(t=s[s.length-1])&&this.activate(t);if(a&&e<n[0])return this.activeTarget=null,this.clear();for(t=n.length;t--;)a!=s[t]&&e>=n[t]&&(void 0===n[t+1]||e<n[t+1])&&this.activate(s[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var i=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',o=t(i).parents("li").addClass("active");o.parent(".dropdown-menu").length&&(o=o.closest("li.dropdown").addClass("active")),o.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var o=t.fn.scrollspy;t.fn.scrollspy=i,t.fn.scrollspy.Constructor=e,t.fn.scrollsp y.noConflict=function(){return t.fn.scrollspy=o,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);i.call(e,e.data())})})}(jQuery),+function(t){"use strict";function e(){var t=document.createElement("bootstrap"),e={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var i in e)if(void 0!==t.style[i])return{end:e[i]};return!1}t.fn.emulateTransitionEnd=function(e){var i=!1,o=this;t(this).one("bsTransitionEnd",function(){i=!0});var n=function(){i||t(o).trigger(t.support.transition.end)};return setTimeout(n,e),this},t(function(){t.support.transition=e(),t.support.transition&&(t.event.special.bsTransitionEnd={bindType:t.support.transition.end,delegateType:t.support.transition.end,handle:function(e){return t(e.target).is(this)?e.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery); \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/assets/css/confluence.css ---------------------------------------------------------------------- diff --git a/assets/css/confluence.css b/assets/css/confluence.css deleted file mode 100644 index f72b1b8..0000000 --- a/assets/css/confluence.css +++ /dev/null @@ -1,195 +0,0 @@ -/* - - Licensed to the Apache Software Foundation (ASF) under one - - or more contributor license agreements. See the NOTICE file - - distributed with this work for additional information - - regarding copyright ownership. The ASF licenses this file - - to you under the Apache License, Version 2.0 (the - - "License"); you may not use this file except in compliance - - with the License. You may obtain a copy of the License at - - - - http://www.apache.org/licenses/LICENSE-2.0 - - - - Unless required by applicable law or agreed to in writing, - - software distributed under the License is distributed on an - - "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - - KIND, either express or implied. See the License for the - - specific language governing permissions and limitations - - under the License. -*/ - -/* This CSS is for customizing Confluence rendered HTML only. Shiro-specific - site elements are customized in style.css */ - -.nobr sup img { - display: none; -} - -.preformattedContent pre { - padding: 5px 10px; - border: 1px dashed #1a6c0b; - background-color: #f0f0f0; -} - -blockquote { - margin: 10px; - padding: 0 10px; - border-left: 1px solid #1a6c0b; -} - -table.confluenceTable { - margin: 5px; - border-collapse: collapse; -} - -/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */ - -table.confluenceTable td.confluenceTd { - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; -} - -/* Added as a temporary fix for CONF-4223. The table elements appear to be inheriting the border: none attribute from the sectionMacro class */ - -table.confluenceTable th.confluenceTh { - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; - background-color: #f0f0f0; - text-align: center; -} - -td.confluenceTd { - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; -} - -th.confluenceTh { - border-width: 1px; - border-style: solid; - border-color: #ccc; - padding: 3px 4px 3px 4px; - background-color: #f0f0f0; - text-align: center; -} - -.panelMacro { - width: 100%; - margin: 10px 0 10px 0; -} - -.panelMacro * td { - padding: 1em 0 0 1em; -} - -.panelMacro * td:last-child { - padding: 0.8em 1em 1em 0.6em; -} - -.panelMacro * b:first-child { - display: block; - margin: 0 0 -0.5em 0; -} - -.tipMacro { - width: 100%; - border: 1px solid #090; - background-color: #dfd; -} -.infoMacro { - width: 100%; - border: 1px solid #3c78b5; - background-color: #D8E4F1; -} -.noteMacro { - width: 100%; - border: 1px solid #f0c000; - background-color: #ffffce; -} -.warningMacro { - width: 100%; - border: 1px solid #c00; - background-color: #fcc; -} - -.code { - border: 1px dashed #1a6c0b; - font-size: 1em; - font-family: 'courier new', Courier, serif; - margin: 1em 0; - line-height: 1em; -} - -.codeHeader { - background-color: #f0f0f0; - border-bottom: 1px dashed #1a6c0b; - padding: 3px; - text-align: center; -} - -.codeContent { - text-align: left; - background-color: #f0f0f0; - padding: 3px; -} - -.code-keyword { - color: #000091; - background-color: inherit; -} - -.code-object { - color: #910091; - background-color: inherit; -} - -.code-quote { - color: #009100; - background-color: inherit; -} - -.code-comment { - color: #808080; - background-color: inherit; -} - -.code-xml .code-keyword { - color: inherit; - font-weight: bold; -} - -.code-tag { - color: #000091; - background-color: inherit; -} - -/* ===================== Blog Posts ==================== */ - -/* The Confluence user images in the news feeds are not showing properly (the href needs to be fixed). - So, hide them until we can address this: */ - -.blog-post-listing { - margin: 1.8em 0 0 0; - padding: 0 0 0.8em 0; - border-bottom: 1px solid #d2d2d2; -} -.blog-post-listing .logoBlock { - display: none; -} - -.blog-post-listing span.blogHeading .page-metadata { - font-size: 0.8em; -} - -.blog-post-listing .endsection { - display: none; -} - -.blog-post-listing a.blogHeading { - font-size: 2em; - font-weight: bold; -} http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/assets/css/normalize.css ---------------------------------------------------------------------- diff --git a/assets/css/normalize.css b/assets/css/normalize.css deleted file mode 100644 index 73abb76..0000000 --- a/assets/css/normalize.css +++ /dev/null @@ -1,375 +0,0 @@ -/*! normalize.css v2.0.1 | MIT License | git.io/normalize */ - -/* ========================================================================== - HTML5 display definitions - ========================================================================== */ - -/* - * Corrects `block` display not defined in IE 8/9. - */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section, -summary { - display: block; -} - -/* - * Corrects `inline-block` display not defined in IE 8/9. - */ - -audio, -canvas, -video { - display: inline-block; -} - -/* - * Prevents modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ - -audio:not([controls]) { - display: none; - height: 0; -} - -/* - * Addresses styling for `hidden` attribute not present in IE 8/9. - */ - -[hidden] { - display: none; -} - -/* ========================================================================== - Base - ========================================================================== */ - -/* - * 1. Sets default font family to sans-serif. - * 2. Prevents iOS text size adjust after orientation change, without disabling - * user zoom. - */ - -html { - font-family: sans-serif; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ - -ms-text-size-adjust: 100%; /* 2 */ -} - -/* - * Removes default margin. - */ - -body { - margin: 0; -} - -/* ========================================================================== - Links - ========================================================================== */ - -/* - * Addresses `outline` inconsistency between Chrome and other browsers. - */ - -a:focus { - outline: thin dotted; -} - -/* - * Improves readability when focused and also mouse hovered in all browsers. - */ - -a:active, -a:hover { - outline: 0; -} - -/* ========================================================================== - Typography - ========================================================================== */ - -/* - * Addresses `h1` font sizes within `section` and `article` in Firefox 4+, - * Safari 5, and Chrome. - */ - -h1 { - font-size: 2em; -} - -/* - * Addresses styling not present in IE 8/9, Safari 5, and Chrome. - */ - -abbr[title] { - border-bottom: 1px dotted; -} - -/* - * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome. - */ - -b, -strong { - font-weight: bold; -} - -/* - * Addresses styling not present in Safari 5 and Chrome. - */ - -dfn { - font-style: italic; -} - -/* - * Addresses styling not present in IE 8/9. - */ - -mark { - background: #ff0; - color: #000; -} - - -/* - * Corrects font family set oddly in Safari 5 and Chrome. - */ - -code, -kbd, -pre, -samp { - font-family: monospace, serif; - font-size: 1em; -} - -/* - * Improves readability of pre-formatted text in all browsers. - */ - -pre { - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; -} - -/* - * Sets consistent quote types. - */ - -q { - quotes: "\201C" "\201D" "\2018" "\2019"; -} - -/* - * Addresses inconsistent and variable font size in all browsers. - */ - -small { - font-size: 80%; -} - -/* - * Prevents `sub` and `sup` affecting `line-height` in all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sup { - top: -0.5em; -} - -sub { - bottom: -0.25em; -} - -/* ========================================================================== - Embedded content - ========================================================================== */ - -/* - * Removes border when inside `a` element in IE 8/9. - */ - -img { - border: 0; -} - -/* - * Corrects overflow displayed oddly in IE 9. - */ - -svg:not(:root) { - overflow: hidden; -} - -/* ========================================================================== - Figures - ========================================================================== */ - -/* - * Addresses margin not present in IE 8/9 and Safari 5. - */ - -figure { - margin: 0; -} - -/* ========================================================================== - Forms - ========================================================================== */ - -/* - * Define consistent border, margin, and padding. - */ - -fieldset { - border: 1px solid #c0c0c0; - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; -} - -/* - * 1. Corrects color not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ - -legend { - border: 0; /* 1 */ - padding: 0; /* 2 */ -} - -/* - * 1. Corrects font family not being inherited in all browsers. - * 2. Corrects font size not being inherited in all browsers. - * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome - */ - -button, -input, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 2 */ - margin: 0; /* 3 */ -} - -/* - * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in - * the UA stylesheet. - */ - -button, -input { - line-height: normal; -} - -/* - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Corrects inability to style clickable `input` types in iOS. - * 3. Improves usability and consistency of cursor style between image-type - * `input` and others. - */ - -button, -html input[type="button"], /* 1 */ -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; /* 2 */ - cursor: pointer; /* 3 */ -} - -/* - * Re-set default cursor for disabled elements. - */ - -button[disabled], -input[disabled] { - cursor: default; -} - -/* - * 1. Addresses box sizing set to `content-box` in IE 8/9. - * 2. Removes excess padding in IE 8/9. - */ - -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/* - * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). - */ - -input[type="search"] { - -webkit-appearance: textfield; /* 1 */ - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; /* 2 */ - box-sizing: content-box; -} - -/* - * Removes inner padding and search cancel button in Safari 5 and Chrome - * on OS X. - */ - -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/* - * Removes inner padding and border in Firefox 4+. - */ - -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0; -} - -/* - * 1. Removes default vertical scrollbar in IE 8/9. - * 2. Improves readability and alignment in all browsers. - */ - -textarea { - overflow: auto; /* 1 */ - vertical-align: top; /* 2 */ -} - -/* ========================================================================== - Tables - ========================================================================== */ - -/* - * Remove most spacing between table cells. - */ - -table { - border-collapse: collapse; - border-spacing: 0; -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/assets/css/style.css ---------------------------------------------------------------------- diff --git a/assets/css/style.css b/assets/css/style.css index d289831..3504d70 100644 --- a/assets/css/style.css +++ b/assets/css/style.css @@ -18,57 +18,6 @@ - under the License. */ -/* ======================================================== - * Global Styling - * ======================================================== */ - -a:link {color:#3254a0; text-decoration:none;} -a:visited {color:#3254a0; text-decoration:none;} -a:hover {color: #4068c3; text-decoration:underline;} -a:active {color: #4377d7; text-decoration:none;} - -body { - background:url(../images/back.jpg); - font-family:"Helvetica Neue", Helvetica, Arial, sans-serif; - text-shadow: 1px 1px 0 #fff; - filter: dropshadow(color=#fff, offx=1, offy=1); -} - -.wrapper { - position:relative; - width:960px; - margin:auto; - padding:0 10px 0 10px; -} - -.clearfix { - clear:both; -} - -h1 { - color:#3254a0; -} - -h2 { - color:#3254a0; -} - -menu, ol, ul { - padding: 0 0 0 2em; -} - -dl, menu, ol, ul, li { - margin: 1em 0; -} - -/* Table of Contents chunks: */ -.toc ol {margin: 0.5em 0;} -.toc ul {margin: 0.5em 0;} -.toc li {margin: 0.5em 0;} - -/* ======================================================== - * Header Styling - * ======================================================== */ #top-bar { background:url(../images/topbar.jpg); @@ -76,304 +25,133 @@ dl, menu, ol, ul, li { width:100%; } -#header { - height:85px; - border-bottom:#dfdfdf 1px solid; -} - -#logo { - background:url(../images/apache-shiro-logo.png); - width:239px; - height:85px; - float:left; - margin:10px 0 0 0; -} -ul.navigation { - float: right; - margin: 4px 10px 0 0; - padding: 25px 0 0 0; -} -ul.navigation ul { - margin: 0; -} -ul.navigation li { - list-style-type: none; - float: left; - padding: 0 0 0 27px; -} -ul.navigation a { - font-size: 1.1em; - font-weight: bold; -} +/** ======================================================= */ +/** Github Ribbon */ +/** ======================================================= **/ -#content { - position:relative; - clear:both; - margin:25px 0 0 0; -} - -/* ======================================================== - * 2-Column Page Styling (e.g. index.html) - * ======================================================== */ - -/* ============ 2-Column Main Content ===================== */ - -#main-content { - float:left; - width:640px; -} - -#main-content > h1 { - margin: 0.5em 0 0.5em 0; -} - -/* Home page intro paragraph: */ -#main-content > p { - font-size: 0.9em; - margin: 0 0 2em 0; -} - -#main-content table {margin:20px 0 20px 0;} -#main-content td {padding:2px;} - -/* ============ 2-Column Right Column ===================== */ - -#right-column { - float:right; - width:240px; -} - -/* Download button: */ -.download { - background:url(../images/download.png) 0px 0px; - width:243px; - height:42px; - clear:both; - margin:20px 0 20px 0; -} - -.download:hover { - background:url(../images/download.png) 0px -42px; +.github-fork-ribbon.right-top:before { + background-color: #3254a0; } -/* Email (announce@) signup: */ -.email {margin:20px 0 0 0;} - -.email-form { - width:165px; - height:26px; - border:#333 1px solid; - float:left; - padding:0 0 0 3px; -} -.join-email { - background:url(../images/join-email.png) 0px 0px; - width:68px; - height:28px; - float:right; -} +/** ======================================================= */ +/** Yellow smiles! */ +/** ======================================================= **/ -.join-email:hover { - background:url(../images/join-email.png) 0px -28px; -} -/* NEWS */ -#right-column h2 { - background:#3254a0; - color:#FFF; - font-size:16px; - font-weight:bold; - width:234px; - padding:3px 0 3px 3px; - text-shadow:none; - display:block; - margin:20px 0 5px 0; - clear:both; +/* Yellow smiles! */ +.fa-smile-o { + position: relative; } - -#right-column h3 { - font-size: 0.95em; - margin: 12px 0 0 0; +.fa-smile-o:before { + content: "\f111"; + color: #f1c40f; } - -#right-column p { - font-size: 0.87em; - margin: 0.85em 0; +.fa-smile-o:after { + left: 0; + position: absolute; + content: "\f118"; } -#right-column .more { - position:relative; - color:#3254a0; - font-size:11px; - margin:0 0 0 0; - display:block; - text-align:right; -} -/* Communities */ -.communities { - width:100%; - text-align:center; - margin:20px 0 0 0; -} +/** ======================================================= */ +/** Footer Styling*/ +/** ======================================================= **/ -/* HOME */ -.service-tabs { - -webkit-border-radius:10px; - border-radius:10px; - width:265px; - height:78px; - margin:5px 5px 5px 5px; - float:left; - color:#464646; - font-size:12px; +.wrapper { position:relative; - padding:5px 5px 0 40px; - -webkit-box-shadow: 1px 1px 0px 0px #fff; - box-shadow: 1px 1px 0px 0px #fff; - line-height:14px; + width:960px; + margin:auto; + padding:0 10px 0 10px; } -.service-tabs:hover { - background-color:#e8e8e8; +.footer-shield { + position: absolute; + width: 103px; + height: 113px; + right: -100px; + top: -80px; + background:url(../images/footer-shield.png); } -.service-tabs h2 { - padding: 0; - margin: 0; - color:#3254a0; +html { + position: relative; + min-height: 100%; } - -.more { - position:absolute; - bottom:5px; - right:5px; - color:#3254a0; - font-size:11px; +body { + /* Margin bottom by footer height + image */ + margin-bottom: 160px; } -.authentication {background:url(../images/authentication.png) no-repeat #f2f2f2;} -.authorization {background:url(../images/authorization.png) no-repeat #f2f2f2;} -.cryptography {background:url(../images/crypt.png) no-repeat #f2f2f2;} -.session-management {background:url(../images/session.png) no-repeat #f2f2f2;} -.web-integration {background:url(../images/web-integration.png) no-repeat #f2f2f2;} -.integrations {background:url(../images/integration.png) no-repeat #f2f2f2;} - -.video-box { - margin:50px 0 0 0; +.footer-padding { + height: 160px; } -.video-box td { - vertical-align: top; +.custom-footer { + position: absolute; + bottom: 0; + width: 100%; + /* Set the fixed height of the footer here */ + height: 60px; + background: #e8e8e8; + padding-top: 10px; } -.video-box h1 { - margin: 0; - padding: 0; +.editThisPage { + position:absolute; bottom:2%; right:2%; + font-size:16px; } -/* ======================================================== - * Single Column (Normal) Page Styling - * ======================================================== */ +/** ======================================================= */ +/** Main page tiles */ +/** ======================================================= **/ -.breadcrumbs { - font-size:11px; +.authentication { + background:url(../images/authentication.png) no-repeat #f2f2f2 right 10px top 5px; } - -.number { - list-style:decimal; - margin:0 0 0 20px; - font-weight:normal; +.authorization { + background:url(../images/authorization.png) no-repeat #f2f2f2 right 10px top 5px; } - -.roman { - list-style:upper-roman; - margin:0 0 0 20px; - font-weight:bold; +.cryptography { + background:url(../images/crypt.png) no-repeat #f2f2f2 right 10px top 5px; } - -.bullet { - list-style:inside; +.session-management { + background:url(../images/session.png) no-repeat #f2f2f2 right 10px top 5px; } - -.table-header { - background-color:#f0f0f0; - text-align:center; - font-weight:bold; +.web-integration { + background:url(../images/web-integration.png) no-repeat #f2f2f2 right 10px top 5px; } - -.code { - border:#333 dashed 1px; - background:#f0f0f0; - padding:3px; +.integrations { + background:url(../images/integration.png) no-repeat #f2f2f2 right 10px top 5px; } -/* ======================================================== - * Footer Styling - * ======================================================== */ -#footer { - width:100%; - background:#e8e8e8; - height:50px; - margin:60px 0 0 0; - padding:10px 0 0 0; - font-size:12px; +/** ======================================================= */ +/** News posts */ +/** ======================================================= **/ +.blog-post-listing { + margin: 1.8em 0 0 0; + padding: 0 0 0.8em 0; + border-bottom: 1px solid #d2d2d2; } - -.footer-shield { - background:url(../images/footer-shield.png); - width:103px; - height:113px; - position:absolute; - right:-100px; - top:-80px; -} - -.github-fork-ribbon.right-top:before { - background-color: #3254a0; +.blog-post-listing .logoBlock { + display: none; } -.info, .warning { - border: 1px solid; - margin: 10px 0px; - padding: 15px 10px 15px 50px; - background-repeat: no-repeat; - background-position: 10px center; -} -.info > span, .warning >span { - font-weight: bold; +.blog-post-listing span.blogHeading .page-metadata { + font-size: 0.8em; } -.info { - color: #00529B; - background-color: #BDE5F8; -} -.info:before, .warning:before { - content: '\0026a0'; -} -.warning { - color: #9F6000; - background-color: #FEEFB3; +.blog-post-listing .endsection { + display: none; } -.editThisPage { - position:absolute; bottom:2%; right:2%; - font-size:16px; +.blog-post-listing a.blogHeading { + font-size: 2em; + font-weight: bold; } -/* Yello smiles! */ -.fa-smile-o { - position: relative; -} -.fa-smile-o:before { - content: "\f111"; - color: #f1c40f; -} -.fa-smile-o:after { - left: 0; - position: absolute; - content: "\f118"; +.news-content { + padding-top: 1em; } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/assets/js/jquery_googleanalytics/jquery.google-analytics.js ---------------------------------------------------------------------- diff --git a/assets/js/jquery_googleanalytics/jquery.google-analytics.js b/assets/js/jquery_googleanalytics/jquery.google-analytics.js deleted file mode 100644 index 69ea0ea..0000000 --- a/assets/js/jquery_googleanalytics/jquery.google-analytics.js +++ /dev/null @@ -1,241 +0,0 @@ -/* -* jquery-google-analytics plugin -* -* A jQuery plugin that makes it easier to implement Google Analytics tracking, -* including event and link tracking. -* -* Adds the following methods to jQuery: -* - $.trackPage() - Adds Google Analytics tracking on the page from which -* it's called. -* - $.trackPageview() - Tracks a pageview using the given uri. Can be used for tracking Ajax requests: http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=55519 -* - $.trackEvent() - Tracks an event using the given parameters. -* - $('a').track() - Adds event tracking to element(s). -* - $.timePageLoad() - Measures the time it takes an event using the given parameters. -* -* Features: -* - Improves page load time by loading Google Analytics code without blocking. -* - Easy and extensible event and link tracking plugin for jQuery and Google Analytics -* - Automatic internal/external link detection. Default behavior is to skip -* tracking of internal links. -* - Enforces that tracking event handler is added to an element only once. -* - Configurable: custom event tracking, skip internal links, metadata -* extraction using callbacks. -* -* Copyright (c) 2008-09 Christian Hellsten -* -* Plugin homepage: -* http://aktagon.com/projects/jquery/google-analytics/ -* http://github.com/christianhellsten/jquery-google-analytics/ -* -* Examples: -* http://aktagon.com/projects/jquery/google-analytics/examples/ -* http://code.google.com/apis/analytics/docs/eventTrackerGuide.html -* -* Repository: -* git://github.com/christianhellsten/jquery-google-analytics.git -* -* Version 1.1.3 -* -* Tested with: -* - Mac: Firefox 3, Safari 3 -* - Linux: Firefox 3 -* - Windows: Firefox 3, Internet Explorer 6 -* -* Licensed under the MIT license: -* http://www.opensource.org/licenses/mit-license.php -* -* Credits: -* - http://google.com/analytics -* - http://lyncd.com: -* Idea for trackPage method came from this blog post: http://lyncd.com/2009/03/better-google-analytics-javascript/ -*/ -(function($) { - - var pageTracker; - - /** - * Enables Google Analytics tracking on the page from which it's called. - * - * Usage: - * <script type="text/javascript"> - * $.trackPage('UA-xxx-xxx', options); - * </script> - * - * Parameters: - * account_id - Your Google Analytics account ID. - * options - An object containing one or more optional parameters: - * - onload - boolean - If false, the Google Analytics code is loaded - * when this method is called instead of on window.onload. - * - status_code - The HTTP status code of the current server response. - * If this is set to something other than 200 then the page is tracked - * as an error page. For more details: http://www.google.com/support/analytics/bin/answer.py?hl=en&answer=86927 - * - callback - function to be executed after the Google Analytics code is laoded and initialized - * - */ - $.trackPage = function(account_id, options) { - var host = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); - var script; - - // Use default options, if necessary - var settings = $.extend({}, {onload: true, status_code: 200}, options); - var src = host + 'google-analytics.com/ga.js'; - - function init_analytics() { - if (typeof _gat != undefined) { - debug('Google Analytics loaded'); - - pageTracker = _gat._getTracker(account_id); - - if(settings.status_code == null || settings.status_code == 200) { - pageTracker._trackPageview(); - } else { - debug('Tracking error ' + settings.status_code); - pageTracker._trackPageview("/" + settings.status_code + ".html?page=" + document.location.pathname + document.location.search + "&from=" + document.referrer); - } - if($.isFunction(settings.callback)){ - settings.callback(); - } - } - else { - throw "_gat is undefined"; // setInterval loading? - } - } - - load_script = function() { - $.ajax({ - type: "GET", - url: src, - success: function() { - init_analytics(); - }, - dataType: "script", - cache: true // We want the cached version - }); - } - - // Enable tracking when called or on page load? - if(settings.onload == true || settings.onload == null) { - $(window).load(load_script); - } else { - load_script(); - } - } - - /** - * Tracks an event using the given parameters. - * - * The trackEvent method takes four arguments: - * - * category - required string used to group events - * action - required string used to define event type, eg. click, download - * label - optional label to attach to event, eg. buy - * value - optional numerical value to attach to event, eg. price - * skip_internal - optional boolean value. If true then internal links are not tracked. - * - */ - $.trackEvent = function(category, action, label, value) { - if(typeof pageTracker == 'undefined') { - debug('FATAL: pageTracker is not defined'); // blocked by whatever - } else { - pageTracker._trackEvent(category, action, label, value); - } - }; - - /** - * Tracks a pageview using the given uri. - * - */ - $.trackPageview = function(uri) { - if(typeof pageTracker == 'undefined') { - debug('FATAL: pageTracker is not defined'); - } else { - pageTracker._trackPageview(uri); - } - } - - /** - * Adds click tracking to elements. Usage: - * - * $('a').track() - * - */ - $.fn.track = function(options) { - // Add event handler to all matching elements - return this.each(function() { - var element = $(this); - - // Prevent an element from being tracked multiple times. - if (element.hasClass('tracked')) { - return false; - } else { - element.addClass('tracked'); - } - - // Use default options, if necessary - var settings = $.extend({}, $.fn.track.defaults, options); - - // Merge custom options with defaults. - var category = evaluate(element, settings.category); - var action = evaluate(element, settings.action); - var label = evaluate(element, settings.label); - var value = evaluate(element, settings.value); - var event_name = evaluate(element, settings.event_name); - - var message = "category:'" + category + "' action:'" + action + "' label:'" + label + "' value:'" + value + "'"; - - debug('Tracking ' + event_name + ' ' + message); - - // Bind the event to this element. - // TODO Use .live since jQuery 1.4 now supports it better. - element.bind(event_name + '.track', function() { - // Should we skip internal links? REFACTOR - var skip = settings.skip_internal && (element[0].hostname == location.hostname); - - if(!skip) { - $.trackEvent(category, action, label, value); - debug('Tracked ' + message); - } else { - debug('Skipped ' + message); - } - - return true; - }); - }); - - /** - * Checks whether a setting value is a string or a function. - * - * If second parameter is a string: returns the value of the second parameter. - * If the second parameter is a function: passes the element to the function and returns function's return value. - */ - function evaluate(element, text_or_function) { - if(typeof text_or_function == 'function') { - text_or_function = text_or_function(element); - } - return text_or_function; - }; - }; - - /** - * Prints to Firebug console, if available. To enable: - * $.fn.track.defaults.debug = true; - */ - function debug(message) { - if (typeof console != 'undefined' && typeof console.debug != 'undefined' && $.fn.track.defaults.debug) { - console.debug(message); - } - }; - - /** - * Default (overridable) settings. - */ - $.fn.track.defaults = { - category : function(element) { return (element[0].hostname == location.hostname) ? 'internal':'external'; }, - action : 'click', - label : function(element) { return element.attr('href'); }, - value : null, - skip_internal : true, - event_name : 'click', - debug : false - }; -})(jQuery); http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/download.html.vtl ---------------------------------------------------------------------- diff --git a/download.html.vtl b/download.html.vtl index a54e670..fbe8746 100644 --- a/download.html.vtl +++ b/download.html.vtl @@ -3,12 +3,12 @@ #macro(artifactTable, $versionObject) -<table> +<table style="width: 100%" class="table"> <thead> <tr> - <th>Artifact</th> - <th>Maven Usage</th> - <th>Notes</th> + <th class="col-md-1">Artifact</th> + <th class="col-md-3">Maven Usage</th> + <th class="col-md-3">Notes</th> </tr> </thead> <tbody> @@ -30,8 +30,7 @@ #if($artifact.gavAlt) $artifact.gavAlt #else -<pre><code class="xml"> -<dependency> +<pre><code class="xml"><dependency> <groupId>$artifact.g</groupId> <artifactId>$artifact.a</artifactId> <version>$version</version> @@ -125,14 +124,10 @@ <h3><a name="latestGit"></a>${latestRelease} Git Source repository</h3> <p>The source can be cloned anonymously from Git with this command:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> -<pre class="code-java"> -git clone https:<span class="code-comment">//github.com/apache/shiro.git</span> +<pre><code style="bash">git clone https://github.com/apache/shiro.git git checkout shiro-root-${latestRelease} -b shiro-root-${latestRelease} +</code> </pre> - </div> -</div> <h2><a name="previous"></a>Previous Releases</h2> @@ -165,14 +160,9 @@ git checkout shiro-root-${latestRelease} -b shiro-root-${latestRelease} <h3><a name="1.2.xGit"></a>${shiro12x.version} Git Source repository</h3> <p>The source can be cloned anonymously from Git with this command:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> -<pre class="code-java"> -git clone https:<span class="code-comment">//github.com/apache/shiro.git</span> +<pre><code class="bash">git clone https://github.com/apache/shiro.git git checkout shiro-root-${shiro12x.version} -b shiro-root-${shiro12x.version} -</pre> - </div> -</div> +</code></pre> <h3><a name="1.1.0"></a>${shiro11x.version}</h3> @@ -203,14 +193,9 @@ git checkout shiro-root-${shiro12x.version} -b shiro-root-${shiro12x.version} <h4><a name="1.1.0Git"></a>${shiro11x.version} Git Source repository</h4> <p>The source can be cloned anonymously from Git with this command:</p> -<div class="code panel" style="border-width: 1px;"> - <div class="codeContent panelContent"> -<pre class="code-java"> -git clone https:<span class="code-comment">//github.com/apache/shiro.git</span> +<pre><code class="bash">git clone https://github.com/apache/shiro.git git checkout shiro-root-${shiro11x.version} -b shiro-root-${shiro11x.version} -</pre> - </div> -</div> +</code></pre> <input type="hidden" id="ghEditPage" value="download.html.vtl"></input> http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/index.html ---------------------------------------------------------------------- diff --git a/index.html b/index.html index 6c0b73f..01eb687 100644 --- a/index.html +++ b/index.html @@ -1,110 +1,163 @@ -<div id="main-content"> - <h1>Welcome to Apache Shiro</h1> +<div class="row"> + + <div class="col-md-3 col-md-push-9"> + <!--<div class="news" style="margin-bottom: 20px;">--> + <!--<h5>Latest News</h5>--> + <!--<ul class="list-unstyled">--> + <!--{% for post in site.categories.news limit:4 %}--> + <!--<li><a href="{{ post.url }}">{{ post.title }}</a>--> + <!--<span class="small">({{post.date| date:"%b %d, %Y"}})</span></li>--> + <!--{% endfor %}--> + <!--</ul>--> + <!--<p class="small" style="text-align: right;"><a href="news.html">Archive</a></p>--> + <!--</div>--> + + <div class="hidden-xs hidden-sm"> + <a href="download.html" class="btn btn-success btn-lg btn-block" style="margin-bottom: 30px;"> + Download + </a> + + <div class="panel panel-primary"> + <div class=" panel-heading" style="text-align: center;"> + Popular Guides: + </div> + + <div class="panel-body"> + <div> + <a href="java-authentication-guide.html">Java Authentication Guide</a> + <p><small>Learn how Shiro securely verifies identities.</small></p> + </div> + <div> + <a href="java-authorization-guide.html">Java Authorization Guide</a></h3> + <p>Learn how Shiro handles permissions, roles and users.</p> + </div> + <div> + <a href="webapp-tutorial.html">Web App Tutorial</a></h3> + <p>Step-by-step tutorial for securing a web application with Apache Shiro.</p> + </div> + </div> + </div> + + <div class="panel panel-primary"> + <div class=" panel-heading" style="text-align: center;"> + Communities Using Shiro: + </div> + + <div class="panel-body communities"> + <img src="assets/images/logos.png" class="img-responsive center-block"> + </div> + </div> - <p>Apache Shiro is a powerful and easy-to-use Java security framework that performs authentication, - authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can - quickly and easily secure any application – from the smallest mobile applications to the largest web - and enterprise applications.</p> - - <a href="authentication-features.html"> - <div class="service-tabs authentication"> - <h2>Authentication</h2> - - <p>Support logins across one or more pluggable data soucres (LDAP, JDBC, Active Directory...</p> - <span class="more">Read More >>></span> </div> - </a> + </div> - <a href="authorization-features.html"> - <div class="service-tabs authorization"> - <h2>Authorization</h2> + <div class="col-md-9 col-md-pull-3"> - <p>Perform access control based on roles or fine grained permissions, also using plug...</p> - <span class="more">Read More >>></span> - </div> - </a> - <a href="cryptography-features.html"> - <div class="service-tabs cryptography"> - <h2>Cryptography</h2> - <p>Secure data with the easiest possible Cryptography API’s available, giving you...</p> - <span class="more">Read More >>></span> + + <div class="jumbotron"> + <b>Apache Shiro™</b> is a powerful and easy-to-use Java security framework that performs authentication, + authorization, cryptography, and session management. With Shiro’s easy-to-understand API, you can + quickly and easily secure any application – from the smallest mobile applications to the largest web + and enterprise applications. </div> - </a> - <a href="session-management-features.html"> - <div class="service-tabs session-management"> - <h2>Session Management</h2> + <div class="row row-padded"> + <div class="col-md-6 col-sm-6"> + <h1>Getting Started</h1> - <p>Use sessions in any environment, even outside web or EJB containers. Easily...</p> - <span class="more">Read More >>></span> + <ul> + <li><a href="https://www.infoq.com/articles/apache-shiro">What is Apache Shiro?</a></li> + <li><a href="10-minute-tutorial.html">10 Minute Tutorial</a></li> + <li><a href="articles.html">More articles...</a></li> + </ul> + </div> + + <div class="col-md-6 col-sm-6 col-padded-top col-center"> + <div style="width: 100%; max-width: 272px; display: inline-block; text-align: center; margin-left: 50px; padding-bottom: 15px;"> + <iframe frameborder="0" scrolling="auto" width="310" height="233" + src="http://www.youtube.com/embed/YJByiDvOhsc?rel=0" allowfullscreen="true"></iframe> + </div> + </div> </div> - </a> - <a href="web-features.html"> - <div class="service-tabs web-integration"> - <h2>Web Integration</h2> - - <p>Save development time with innovative approaches that easily handle web specific...</p> - <span class="more">Read More >>></span> + <div class="row row-padded"> + <div class="col-md-6 col-sm-6 panel "> + <div class="panel-heading authentication"> + <h2 class="panel-title"> Authentication </h2> + </div> + <div class="panel-body"> + <p>Support logins across one or more pluggable data soucres (LDAP, JDBC, Active Directory...</p> + <a href="authentication-features.html"><span class="more">Read More >>></span></a> + </div> + </div> + + <div class="col-md-6 col-sm-6 panel"> + <div class="panel-heading authorization"> + <h2 class="panel-title"> Authorization</h2> + </div> + <div class="panel-body"> + <p>Perform access control based on roles or fine grained permissions, also using plug...</p> + <a href="authorization-features.html"><span class="more">Read More >>></span></a> + </div> + </div> </div> - </a> - <a href="integration.html"> - <div class="service-tabs integrations"> - <h2>Integrations</h2> + <div class="row row-padded"> + <div class="col-md-6 col-sm-6 panel"> + <div class="panel-heading cryptography"> + <h2 class="panel-title"> Cryptography</h2> + </div> + <div class="panel-body"> + <p>Secure data with the easiest possible Cryptography API’s available, giving you...</p> + <a href="cryptography-features.html"><span class="more">Read More >>></span></a> + </div> + </div> + + <div class="col-md-6 col-sm-6 panel"> + <div class="panel-heading session-management"> + <h2 class="panel-title"> Session Management</h2> + </div> + <div class="panel-body"> + <p>Use sessions in any environment, even outside web or EJB containers. Easily...</p> + <a href="session-management-features.html"><span class="more">Read More >>></span></a> + </div> + </div> + </div> - <p>API’s giving you power and simplicty beyond what Java provides by default...</p> - <span class="more">Read More >>></span> + <div class="row row-padded"> + <div class="col-md-6 col-sm-6 panel"> + <div class="panel-heading web-integration"> + <h2 class="panel-title"> Web Integration</h2> + </div> + <div class="panel-body"> + <p>Save development time with innovative approaches that easily handle web specific...</p> + <a href="web-features.html"><span class="more">Read More >>></span></a> + </div> + </div> + + <div class="col-md-6 col-sm-6 panel"> + <div class="panel-heading integrations"> + <h2 class="panel-title"> Integrations</h2> + </div> + <div class="panel-body"> + <p>API’s giving you power and simplicty beyond what Java provides by default...</p> + <a href="integration.html"><span class="more">Read More >>></span></a> + </div> + </div> </div> - </a> - <div class="clearfix"></div> - <table class="video-box" width="640" cellspacing="0" cellpadding="0"> - <tr> - <td colspan="1" rowspan="1"> - <iframe frameborder="0" scrolling="auto" width="310" height="233" - src="http://www.youtube.com/embed/YJByiDvOhsc?rel=0" allowfullscreen="true"></iframe> - </td> - <td colspan="1" rowspan="1"> - <h1>Getting Started</h1> - <ul> - <li><a href="https://www.infoq.com/articles/apache-shiro">What is Apache Shiro?</a></li> - <li><a href="10-minute-tutorial.html">10 Minute Tutorial</a></li> - <li><a href="articles.html">More articles...</a></li> - </ul> - </td> - </tr> - </table> + </div> </div> -<div id="right-column"> - <a href="download.html"><div class="download"></div></a> - <h2>Popular Guides</h2> - <h3><a href="java-authentication-guide.html">Java Authentication Guide</a></h3> - <p>Learn how Shiro securely verifies identities.</p> - <a href="java-authentication-guide.html"><span class="more">Read More >>></span></a> - <h3><a href="java-authorization-guide.html">Java Authorization Guide</a></h3> - <p>Learn how Shiro handles permissions, roles and users.</p> - <a href="java-authorization-guide.html"><span class="more">Read More >>></span></a> - - <h3><a href="webapp-tutorial.html">Web App Tutorial</a></h3> - <p>Step-by-step tutorial for securing a web application with Apache Shiro.</p> - <a href="webapp-tutorial.html"><span class="more">Read More >>></span></a> - - <h2>Communities Using Shiro</h2> - <div class="communities"><img src="assets/images/logos.png"></div> - -</div> -<div class="clearfix"></div> http://git-wip-us.apache.org/repos/asf/shiro-site/blob/38f7c6ce/session-management.md.vtl ---------------------------------------------------------------------- diff --git a/session-management.md.vtl b/session-management.md.vtl index 1594dbe..0dacbc3 100644 --- a/session-management.md.vtl +++ b/session-management.md.vtl @@ -192,18 +192,15 @@ However, as you might expect, Shiro already has some good `SessionDAO` implement #warning('Web Applications', 'The above <code>securityManager.sessionManager.sessionDAO = $sessionDAO</code> assignment only works when using a Shiro native session manager. Web applications by default do not use a native session manager and instead retain the Servlet Container''s default session manager which does not support a SessionDAO. If you would like to enable a SessionDAO in a web-based application for custom session storage or session clustering, you will have to first configure a native web session manager. For example: -<div><pre><code class="ini"> -[main] +<div><pre><code class="ini">[main] ... sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager securityManager.sessionManager = $sessionManager -; Configure a SessionDAO and then set it: +# Configure a SessionDAO and then set it: securityManager.sessionManager.sessionDAO = $sessionDAO - -') </code></pre></div> - +') #danger('Configure a SessionDAO!', 'Shiro''s default configuration native SessionManagers use <strong>in-memory-only</strong> Session storage. This is unsuitable for most production applications. Most production applications will want to either configure the provided EHCache support (see below) or provide their own <code>SessionDAO</code> implementation. Note that web applications use a servlet-container-based SessionManager by default and do not have this issue. This is only an issue when using a Shiro native SessionManager.')
