Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/bootstrap/js/bootstrap.min.js URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/bootstrap/js/bootstrap.min.js?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/bootstrap/js/bootstrap.min.js (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/bootstrap/js/bootstrap.min.js Fri Apr 7 13:45:48 2017 @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(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]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",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(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b .target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c ,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeCla ss("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"us e strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();b reak;case 39:this.next();break;default:return}a.preventDefault()}},c.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},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),thi s.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offs etWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this); b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning& &!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.b s.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 in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expande d",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}funct ion d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){v ar e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b? f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$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,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.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"]',a.proxy(this.hide,this)),this.$dial og.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(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.m odal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")}) },c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransiti onEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding -right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f))," string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.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}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.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 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":"focusin",i="hover"==g?"mouseleave":"focusout";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()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.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},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){v ar c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.option s.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0 ].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var 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),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewport AdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.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")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);if(this.$element.trigger(g),!g.isDefaultPrevented())return f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"s tring"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.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}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)ret urn e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(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},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){th is.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}v ar c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.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>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.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").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.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)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(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]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollH eight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this. clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){ +this.activeTarget=b,this.clear();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.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("ta rget");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e& &a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).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(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkP osition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e<c&&"top";if("bottom"==this.affixed)return null!=c?!(e+this.unpin<=f.top)&&"bottom":!(e+g<=a-d)&&"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&e<=c?"top":null!=d&&i+j>=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"o bject"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file
Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/css/htlblog.css URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/css/htlblog.css?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/css/htlblog.css (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/css/htlblog.css Fri Apr 7 13:45:48 2017 @@ -0,0 +1,70 @@ +/* + * 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. + */ +body { + margin-top: 50px; +} + +header { + margin: 30px 0; +} + +header .sling-logo { + max-width: 180px; +} + +.btn-anchor { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; +} + +.btn-anchor:hover { + text-decoration: none; +} + +.create-new { + display: block; + margin-bottom: 30px; +} + +.post-item form { + display: inline; +} + +article { + margin-bottom: 120px; +} + +.featured-image { + width: 100%; +} Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/img/sling-logo.svg URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/img/sling-logo.svg?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/img/sling-logo.svg (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/clientlibs/htlblog/img/sling-logo.svg Fri Apr 7 13:45:48 2017 @@ -0,0 +1,19 @@ +<!-- + 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. +--> +<svg id="Layer_1" data-name="Sling Logo" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 768 392"><defs><linearGradient id="linear-gradient" x1="-8576.57" y1="2068.26" x2="-8523.42" y2="2006.11" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f69923"/><stop offset="0.31" stop-color="#f79a23"/><stop offset="0.84" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-2" x1="-8969.97" y1="2075.12" x2="-8590.74" y2="2075.12" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0.32" stop-color="#9e2064"/><stop offset="0.63" stop-color="#c92037"/><stop offset="0.75" stop-color="#cd2335"/><stop offset="1" stop-color="#e97826"/></linearGradient><linearGradient id="linear-gradient-3" x1="-8924.2" y1="2037.09" x2="-8698.21" y2="2037.09" gradientTransform="matrix(-1, -0.01, -0.01, 1, -8384.13, -1821.1)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#282662"/><stop offset="0.1" stop-color="#662e8d"/><stop offset="0.79" stop-color="#9f2064"/><stop offset="0.95" stop-color="#cd2032"/></linearGradient><linearGradient id="linear-gradient-4" x1="-8948.67" y1="2078.65" x2="-8569.44" y2="2078.65" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-5" x1="-8921.02" y1="2073.54" x2="-8721.72" y2="2073.54" xlink:href="#linear-gradient-3"/><linearGradient id="linear-gradient-6" x1="-8948.67" y1="2039.41" x2="-8569.45" y2="2039.41" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-7" x1="-8972.2" y1="2041.35" x2="-8592.97" y2="2041.35" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-8" x1="-8948.67" y1="2027.74" x2="-8569.45" y2="2027.74" xlink:href="#linear-gradient-2"/><linearGradient id="linear-gradient-9" x1="-8948.67" y1="2029.08" x2="-8569.45" y2="2029.08" xlink:href="#linear-gradient-2"/><linearGradient id= "linear-gradient-10" x1="-8735.63" y1="2029.35" x2="-8692.34" y2="2029.35" xlink:href="#linear-gradient-2"/></defs><title>Sling Logo - Close Crop</title><path d="M223.41,235.88V63l-36.64-.32V251.7q0,33.89,24.93,33.89c13.7,0,18.88-5.26,24.53-15.93C224.68,266.15,223.41,254.84,223.41,235.88Z" style="fill:#00678c"/><polygon points="260.96 158.86 275.98 158.86 275.98 283.36 311.94 283.36 311.94 129.39 260.96 129.39 260.96 158.86" style="fill:#00678c"/><path d="M294.3,69.73a19.91,19.91,0,0,0-14.58,6.09,21,21,0,0,0,0,29.47,20.43,20.43,0,0,0,28.89.26l.26-.26a21,21,0,0,0,0-29.47A19.91,19.91,0,0,0,294.3,69.73Z" style="fill:#00678c"/><path d="M431.14,125.93q-28.59,0-43.25,17V128.75H355.27V281.09h35.84V171a39,39,0,0,1,14.14-11,38.47,38.47,0,0,1,16.89-4.42q17.08,0,24.65,9T454.31,193v88h35.84V187.66q0-29.15-15.93-45.44T431.14,125.93Z" style="fill:#00678c"/><path d="M154.85,385l-2.77-.73-.18,0-1.25-.34c-21.81-5.87-37-11.75-45.1-17.46a33.85,33.85,0,0,1-7-6.59h-67V311.43A170.49,170.49,0,0,1,.15,298. 89V392H185.77c-4.64-.92-9.31-1.89-14-2.92C165.58,387.68,160,386.35,154.85,385Z" style="fill:#00678c"/><path d="M129.72,354.16c5.61,4,18.63,8.84,36.46,13.64l14.09-18.15a264,264,0,0,1-35.69-9.1l-1.26-.43,1.26.43c3.54,1.14,14.73,4.43,35.49,7.65-5-9.83-14.05-24.37-21.89-36-22.71,5.71-29,17.47-29,17.47S118.18,346,129.72,354.16Z" style="fill:url(#linear-gradient)"/><path d="M242.78,323.18a1.49,1.49,0,0,0-.14-.19l.79,1.34.23.19C243.37,324.08,243.08,323.62,242.78,323.18Z" style="fill:none"/><path d="M280.45,318.26c.54.73,1,1.48,1.55,2.25C281.5,319.74,281,319,280.45,318.26Z" style="fill:none"/><path d="M385.47,352.77l-1,.06q-10,.61-19.52,1.08-10.69.52-20.78.89-10.65.38-20.62.59-10.49.22-20.27.28-8,0-15.48,0l-5-.05c-3.26,0-6.44-.09-9.57-.15-2.89-.06-5.71-.13-8.5-.21l-2.76-.09h-.44l.67,1.14-1.46,1.81.67,0q6.29.28,12.66.45l7.38.18q10.24.22,20.58.24t20.86-.13q10.24-.15,20.39-.45c6.76-.2,13.48-.43,20.12-.71,6.94-.29,13.82-.63,20.57-1l4.57-.25q8.19-.47,16.13-1l2.31-2.85-.76-1.28-.48,0Q395.4,352.16 ,385.47,352.77Z" style="fill:none"/><path d="M282.36,321.09h0l0,0Z" style="fill:none"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e"/><path d="M300,317.05c.78,1.15,1.6,2.34,2.42,3.56l0,0c-.39-.62-.8-1.24-1.2-1.83S300.42,317.63,300,317.05Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e"/><path d="M282.34,321.07h0l0,0c-.12-.2-.24-.38-.37-.58-.49-.78-1-1.54-1.55-2.25l1.9,2.81Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M241.13,357c-6.91-.48-13.72-1-20.39-1.7q-10.4-1-20.33-2.4l-1.17-.16c-6.5-.91-12.83-1.95-18.95-3.11L166.2,367.79l3.76,1c4.8,1.25,9.91,2.47,15.29,3.67,6.07,1.35,12.47,2.67,19.15,3.92,6.16,1.16,12.57,2.26,19.16,3.29q8.4,1.33,17.17,2.46l.65.08,19.46-24.12Q250.85,357.66,241.13,357Z" style="fill:url(#linear-gradient-2)"/><path d="M409.33 ,351.14q8.1-.6,16.48-1.31l.24,0,2.38-.2c3.77-.32,7.15-.64,14.85-1.36,0-4.53,3.17-9.58,7-14.74a22.55,22.55,0,0,0-11.14,13c-7.51-18.92-19.4-32.77-36.66-34.91a40.68,40.68,0,0,0-4.74-.31c6.45,1.61,10.56,5.34,14,14.33l0,0,0,0c-11.58-10.3-20-14.26-31.79-15.85-2.79-.37-5.76-.62-9-.78,16.66,6,25.83,17.64,29.54,32.52l5.78,9.81Z" style="fill:url(#linear-gradient-3)"/><path d="M384,356.74q-10.15.55-20.57,1-10,.41-20.12.71t-20.39.45q-10.41.15-20.86.13t-20.58-.24l-7.38-.18q-6.36-.19-12.66-.45l-.67,0-19.46,24.12,1.31.17c6.19.79,12.49,1.51,18.87,2.13s13,1.16,19.53,1.58q8.31.55,16.65.86l3.36.1q10.46.29,20,.1c7.19-.14,14-.47,20.31-.94q6.27-.47,12-1.1c3.25-.38,6.47-.83,9.68-1.29q11.31-1.66,22.19-4.11l19.53-24.22q-7.93.52-16.13,1C387.12,356.58,385.58,356.65,384,356.74Z" style="fill:url(#linear-gradient-4)"/><path d="M386.18,379.5a214.44,214.44,0,0,0,25.68-7.57l.87-.31c-4.61,6.89-6,20.43-6,20.38,7.66-12.68,16.08-23.48,26.53-29.23,2.69,3.73,4,9.91,4.55,17.48,3.17-9.58,2.6-15.45,2.17-17.64,3.19,6.05,10.3 9,10.61,18.27,14.93-8.2-7.81-13.23-14.82-14.46-20.92,28.78-2.42,60.13-6,93.19-10.28a8.39,8.39,0,0,0-7.4-2.92c-6,.81-45.23,6-98,10.16l-4.53.36-1.27.1c-5.54.42-11.21.83-17,1.22l-4,.26h-.08L385.2,379.73C385.53,379.64,385.86,379.58,386.18,379.5Z" style="fill:url(#linear-gradient-5)"/><path d="M262,355.16l2.76.09q4.16.12,8.5.21c3.13.06,6.31.12,9.57.15l5,.05q7.52.06,15.48,0,9.78-.05,20.27-.28,10-.21,20.62-.59,10.09-.36,20.78-.89,9.53-.47,19.52-1.08l1-.06q9.93-.6,20.34-1.37l.48,0-5.78-9.81c.06.23.13.43.17.67-7.1-11.64-23.7-23.9-39.86-29.37a107.71,107.71,0,0,0-24.72-5,176.41,176.41,0,0,0-21.88-.54c-6.86.22-14.14.75-21.92,1.6a40.76,40.76,0,0,1,7.7,8.16c.41.57.83,1.16,1.23,1.74s.81,1.21,1.2,1.83h0l0,0c-9.61-9.52-21.42-12.92-34.27-13.47a44.67,44.67,0,0,1,12.3,11.11c.54.73,1,1.48,1.55,2.25.13.19.25.38.37.58h0l0,0h0a51.59,51.59,0,0,0-10.38-7.7c-.76-.41-1.51-.81-2.29-1.16-1.17-.55-2.37-1-3.59-1.46-.78-.27-1.57-.53-2.37-.74a43.86,43.86,0,0,0-5.88-1.22l-1.9-.24-2.67-.13c-4-.15-7.41-.14-10.41,0-1.49 .05-2.87.14-4.13.25-.5,0-1,.08-1.45.14-1.4.14-2.63.3-3.69.46a36.5,36.5,0,0,0-3.71.76h0a12.78,12.78,0,0,1,1.51.93c3.64,2.54,8.22,7.65,11.27,12.05l-5.31-9,5.31,9a1.49,1.49,0,0,0,.14.19l.88,1.34-.23-.19,18.16,30.82A2,2,0,0,0,262,355.16Z" style="fill:url(#linear-gradient-6)"/><path d="M180.07,348.2c5.72.89,12.16,1.77,19.38,2.6l1.14.13Q210,352,221,352.9c6.39.52,13.2,1,20.47,1.38q9.51.51,20.07.86l-18.16-30.82c-8.59-7.49-14.43-9.94-22-11.47-2.05-.38-4.19-.74-6.37-1.06-6.7-1-13.9-1.68-20.89-2a186.88,186.88,0,0,0-19.1-.07,87.87,87.87,0,0,0-9.87,1c-2.52.42-4.86.93-7.06,1.48C166,323.83,175,338.37,180.07,348.2Z" style="fill:url(#linear-gradient-7)"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M301.23,318.8c.41.6.81,1.21,1.2,1.83h0C302,320,301.64,319.4,301.23,318.8Z" style="fill :url(#linear-gradient-8)"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.36,321.09c-.12-.2-.24-.38-.37-.58.13.19.25.38.37.58Z" style="fill:url(#linear-gradient-9)"/><path d="M282.35,321.08Z" style="fill:#be202e"/><path d="M282.35,321.08Z" style="fill:#be202e;opacity:0.349999994039536;isolation:isolate"/><path d="M282.35,321.08Z" style="fill:url(#linear-gradient-10)"/><path d="M600.39,249.82a39.59,39.59,0,0,0,31.86-13.62c7.49-9,11.47-25.25,11.47-39.83a45,45,0,0,0-12.39-31.86,40.7,40.7,0,0,0-30.94-13.18,43,43,0,0,0-32.74,13.18,44.64,44.64,0,0,0-12.39,32c0,14.06,4.22,30.19,12.19,39.43A41.62,41.62,0,0,0,600.39,249.82Z" style="fill:none"/><rect width="768" height="392" style="fill:none"/><path d="M623.13,292.79c-5.77.68-11.51,1.59-17.24,2.47-12.74,2-25.45,4.54-38.23,6.25-4,.52-9.24,1.08-11.95-2.59-3 .78-5.54,5.93-11.71,9.28-14.18,4-2.95,12.31-6.61,12.82-7.13a67.43,67.43,0,0,1,7.33.52,95.86,95.86,0,0,0,52.41-8.32,79.66,79.66,0,0,0,18-11.95A61.61,61.61,0,0,0,668.77,241a92.09,92.09,0,0,0,7.37-23.58,112.68,112.68,0,0,0,1.63-25.85,75.07,75.07,0,0,0-4.5-21.86,130.22,130.22,0,0,0-9.16-17.44l19.47-19.63V0H76.93Q43.72.68,22.29,20.47A67.42,67.42,0,0,0,.15,72.24,81.36,81.36,0,0,0,11.5,116.05q11.35,18.24,39.83,31.54l22.74,10.63q30.39,14.26,37.91,26.32a48.39,48.39,0,0,1,7.53,26.13,39.83,39.83,0,0,1-13.58,31,51.77,51.77,0,0,1-35.84,12.15,92.75,92.75,0,0,1-28.55-5.22A95.3,95.3,0,0,1,15,235.41L1,270.37a112.55,112.55,0,0,0,63.72,17.48q42.41,0,67.7-21.86a67.7,67.7,0,0,0,25.09-53.21q0-28.87-11.55-47.79t-40.22-32.18l-23.1-10.63a166.78,166.78,0,0,1-29.31-16.53A40.46,40.46,0,0,1,42.16,91a45.8,45.8,0,0,1-4-19.39A38,38,0,0,1,49.37,43.33a34.77,34.77,0,0,1,27.4-11.95H652.17v88.33l-11.71,11.95a28.32,28.32,0,0,0-5.5-2.87A96.14,96.14,0,0,0,602.15,122a93.39,93.39,0,0,0-33.29,4.38A77,77,0,0,0,542,144.21a80.9 3,80.93,0,0,0-15,21.7,87.14,87.14,0,0,0-6.85,26,85.11,85.11,0,0,0,1,26.68,75.39,75.39,0,0,0,8.64,22.9,78.86,78.86,0,0,0,14.34,16.29,99.57,99.57,0,0,0,10.31,8.72c-4,2.51-7.73,5.3-11.43,8-9.8,7.41-19.08,19.55-14.34,33.29s20.15,17.68,33.05,18.76a134.77,134.77,0,0,0,35.13-2.71c8.72-1.59,17.6-2.31,26.44-3.15,3.66-.36,7.25-1,11-1.08A21.11,21.11,0,0,1,651.33,326a13.32,13.32,0,0,1,1.13,2l0,.1c7.5,18.4-22.1,26.47-44.63,29.16-12.64,1.51-41,3.55-60.63,2.13-.68,13.23-6.45,24.89-15.74,32.55,15.74,0,38.51-.12,51.52-.91,11.1-.67,21.88-1,33.42-2.69,40-5.13,71.64-26.27,71.64-51C688,308.74,663.92,287.06,623.13,292.79ZM567.66,164.52a43,43,0,0,1,32.74-13.18,40.7,40.7,0,0,1,30.94,13.18,45,45,0,0,1,12.39,31.86c0,14.58-4,30.82-11.47,39.83a39.59,39.59,0,0,1-31.86,13.62A41.62,41.62,0,0,1,567.46,236c-8-9.24-12.19-25.37-12.19-39.43A44.64,44.64,0,0,1,567.66,164.52Z" style="fill:#00678c"/><path d="M728.16,3.74H716.93V34h-4V3.74H701.66V0h26.5Z" style="fill:#6d6e71"/><path d="M732.91,0h6l11.52,26.64h.1L762.14,0H7 68V34h-4V5.47h-.1L751.68,34h-2.45L737,5.47h-.09V34h-4Z" style="fill:#6d6e71"/></svg> \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list.json URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list.json?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list.json (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list.json Fri Apr 7 13:45:48 2017 @@ -0,0 +1,4 @@ +{ + "jcr:primaryType" : "nt:unstructured", + "sling:resourceSuperType" : "htlblog/public/page" +} \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list/body.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list/body.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list/body.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/list/body.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,41 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<body data-sly-use.list="org.apache.sling.samples.htlblog.models.List"> +<sly data-sly-include="nav.html"></sly> +<div class="container"> + <header> + <img class="sling-logo" src="/apps/htlblog/clientlibs/htlblog/img/sling-logo.svg"/> + </header> + <sly data-sly-repeat.child="${list.children}"> + <article> + <div class="row"> + <div class="col-md-6"> + <h1><a href="${child.url}">${child.title}</a></h1> + </div> + <div class="col-md-6 text-right"> + <h1>${child.created}</h1> + </div> + </div> + <img data-sly-test="${child.featuredImagePath}" src="${child.featuredImagePath}" alt="Featured Image" class="featured-image"/> + <div class="row"> + <div class="col-sm-12"> + ${child.body} + </div> + </div> + </article> + </sly> +</div> Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/body.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/body.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/body.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/body.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,22 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<body> +<sly data-sly-include="nav.html"></sly> +<div class="container"> + <h1>${properties.title}</h1> + <h1>${properties.body}</h1> +</div> \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/foot.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/foot.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/foot.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/foot.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,20 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> +<script src="/apps/htlblog/clientlibs/bootstrap/js/bootstrap.min.js"></script> +</body> +</html> \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/head.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/head.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/head.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/head.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,29 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<!DOCTYPE html> +<html lang="en"> +<head> + <head> + <meta charset="utf-8"> + <meta http-equiv="X-UA-Compatible" content="IE=edge"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <title>${properties.title}</title> + + <link href="/apps/htlblog/clientlibs/bootstrap/css/bootstrap.min.css" rel="stylesheet"> + <link href="/apps/htlblog/clientlibs/htlblog/css/htlblog.css" rel="stylesheet"> + </head> +</head> \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/nav.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/nav.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/nav.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/nav.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,39 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<nav class="navbar navbar-inverse navbar-fixed-top"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <a class="navbar-brand" href="/content/htlblog.html">HTL Blog</a> + </div> + <div id="navbar" class="collapse navbar-collapse"> + <ul class="nav navbar-nav"> + <li class="active"><a href="/content/htlblog/posts.html">Posts</a></li> + <li><a href="/content/htlblog/admin.html">Admin</a></li> + </ul> + <ul class="nav navbar-nav navbar-right" data-sly-use.author="org.apache.sling.samples.htlblog.models.Author"> + <li data-sly-test="${author.isLoggedIn}"><a href="/system/sling/logout">Logout ${author.userId}</a></li> + <li data-sly-test="${!author.isLoggedIn}"><a href="/system/sling/form/login">Login</a></li> + </ul> + </div> + </div> +</nav> Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/page.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/page.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/page.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/page/page.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,19 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<sly data-sly-include="head.html"></sly> +<sly data-sly-include="body.html"></sly> +<sly data-sly-include="foot.html"></sly> Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post.json URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post.json?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post.json (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post.json Fri Apr 7 13:45:48 2017 @@ -0,0 +1,4 @@ +{ + "jcr:primaryType" : "nt:unstructured", + "sling:resourceSuperType" : "htlblog/public/page" +} \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post/body.html URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post/body.html?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post/body.html (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/apps/htlblog/public/post/body.html Fri Apr 7 13:45:48 2017 @@ -0,0 +1,36 @@ +<!--/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + ~ 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. + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/--> +<body data-sly-use.post="org.apache.sling.samples.htlblog.models.Post"> +<sly data-sly-include="nav.html"></sly> +<div class="container"> + <article> + <div class="row"> + <div class="col-md-6"> + <h1>${post.title}</h1> + </div> + <div class="col-md-6 text-right"> + <h1>${post.created}</h1> + </div> + </div> + <img data-sly-test="${post.featuredImagePath}" src="${post.featuredImagePath}" alt="Featured Image" class="featured-image"/> + <div class="row"> + <div class="col-sm-12"> + ${post.body} + </div> + </div> + </article> +</div> \ No newline at end of file Added: sling/trunk/samples/htlblog/src/main/resources/initial-content/content/htlblog.json URL: http://svn.apache.org/viewvc/sling/trunk/samples/htlblog/src/main/resources/initial-content/content/htlblog.json?rev=1790555&view=auto ============================================================================== --- sling/trunk/samples/htlblog/src/main/resources/initial-content/content/htlblog.json (added) +++ sling/trunk/samples/htlblog/src/main/resources/initial-content/content/htlblog.json Fri Apr 7 13:45:48 2017 @@ -0,0 +1,39 @@ +{ + "jcr:primaryType": "nt:unstructured", + "sling:resourceType": "htlblog/public/list", + "title": "HTL Blog", + "description": "The blog homepage.", + "posts": { + "jcr:primaryType": "sling:OrderedFolder", + "sling:resourceType": "htlblog/public/list", + "title": "HTL Blog", + "description": "The blog homepage.", + "hello-world" : { + "jcr:primaryType": "nt:unstructured", + "sling:resourceType": "htlblog/public/post", + "title": "Hello World", + "jcr:createdBy": "admin", + "created": "2017-04-01T13:26:00.000+01:00", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + }, + "hola-mundo" : { + "jcr:primaryType": "nt:unstructured", + "sling:resourceType": "htlblog/public/post", + "title": "Hola Mundo", + "jcr:createdBy": "admin", + "created": "2017-04-01T13:26:00.000+01:00", + "body": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum." + } + }, + "admin": { + "jcr:primaryType": "nt:unstructured", + "sling:resourceType": "htlblog/admin/list", + "title": "HTL Blog Admin", + "description": "The blog admin.", + "edit": { + "jcr:primaryType": "nt:unstructured", + "sling:resourceType": "htlblog/admin/edit", + "title": "HTL Blog Edit" + } + } +} \ No newline at end of file