diff --git a/README.md b/README.md index 6111d12..1f027fc 100644 --- a/README.md +++ b/README.md @@ -17,11 +17,13 @@ $ cat bower.json ## Changelog -### v1.1.2 draft +### v1.2.0 +- **BC break:** při použití metody `setOptions` s parametrem `options` je nově nutné poslat jako druhý parametr `true` pro rozlišení mezi skutečným options a contextem - oprava autora v `package.json` - při použití metody `openHtml` opraveno probliknutí spinneru na pozadí - při použití metody `openUrl` je možno předat element, ze kterého se přeberou options (napr. odkaz, na který se kliklo) - oprava [#9](https://github.com/peckadesign/jquery.pdbox/issues/9) +- do callbacku `onLoad` se předává element, který otevřel pdbox, stejně jako do ostatních callbacků ### v1.1.1 - oprava [#8](https://github.com/peckadesign/jquery.pdbox/issues/8) diff --git a/bower.json b/bower.json index ff8a80c..331e762 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "jquery.pdbox", - "version": "1.1.2-draft", + "version": "1.2.0", "homepage": "https://github.com/peckadesign/jquery.pdbox", "authors": [ "PeckaDesign, s.r.o " diff --git a/dist/js/jquery.pdbox.js b/dist/js/jquery.pdbox.js index b673134..6ae7e5f 100644 --- a/dist/js/jquery.pdbox.js +++ b/dist/js/jquery.pdbox.js @@ -6,7 +6,7 @@ * @copyright Copyright (c) 2014-2018 PeckaDesign, s.r.o * @license MIT * - * @version 1.1.2-draft + * @version 1.2.0 */ $.pdBox = (function () { @@ -117,7 +117,7 @@ $.pdBox = (function () { "
" + "

" + "
" + - (box.isAjax ? "
" : "") + + (box.isAjax ? "
" : "") + "
" + "

" + " " + box.langs[box.options.lang]["prev"] + "" + @@ -127,7 +127,7 @@ $.pdBox = (function () { "

" + "

" + "
" + - box.spinnerHtml + + box.spinnerHtml + " " + box.langs[box.options.lang]["close"] + "" + "
" + ""; @@ -224,9 +224,10 @@ $.pdBox = (function () { * Nastaví vlastnosti pdboxu v pořadí defaults, nastavení z inicializace, nastavení z data atributů elementu, * který tb otevřel. Pokud je předán atribut options, použije se nsatavení z tohoto atributu. * - * @param options + * @param options předané options + * @param isOptions flag, zda jde opravdu o options a ne kontext předaný z onLoad callbacku */ - PdBox.prototype.setOptions = function (options) { + PdBox.prototype.setOptions = function (options, isOptions) { var e; var optName; var dataName; @@ -238,7 +239,7 @@ $.pdBox = (function () { // slouží k ad-hoc handlerům, proto můžeme smazat for (e in events) { - optName = getEventOptName(events[e]); + optName = getEventOptName(events[e]); this.options[optName] = null; } @@ -261,12 +262,13 @@ $.pdBox = (function () { $.extend(this.options, elOptions); } - if (options) { + // pokud byly předány options, ověříme, že jde skutečně o options a ne o context předaný v rámci onLoad callbacku + if (options && isOptions) { $.extend(this.options, options); } this.rootElem - // odstraníme všechny class krom "pdbox" a případné "pdbox--loading" + // odstraníme všechny class krom "pdbox" a případné "pdbox--loading" .removeClass(function(i, className) { var list = className.split(' '); return list.filter(function(val){ @@ -360,7 +362,7 @@ $.pdBox = (function () { this.window.title.hide(); } - this.dispatchEvent('load', {content: html}); + this.dispatchEvent('load', {element: $el, content: html}); }; PdBox.prototype.openUrl = function (href, $el) { @@ -371,7 +373,7 @@ $.pdBox = (function () { success: $.proxy(function (content) { this.window.descWrap.show(); this.window.desc.html(content); - this.dispatchEvent('load', {content: content}); + this.dispatchEvent('load', {element: $el, content: content}); }, this) }); }; @@ -562,7 +564,7 @@ $.pdBox = (function () { } if (e.type === 'load') { - box.dispatchEvent('load', {content: preloader}); + box.dispatchEvent('load', {element: $el, content: preloader}); } }); diff --git a/dist/js/jquery.pdbox.min.js b/dist/js/jquery.pdbox.min.js index 99953b6..9565fd3 100644 --- a/dist/js/jquery.pdbox.min.js +++ b/dist/js/jquery.pdbox.min.js @@ -1,3 +1,3 @@ -/*! jQuery pdBox 1.1.2-draft | MIT | PeckaDesign, s.r.o, https://github.com/peckadesign/jquery.pdbox */ +/*! jQuery pdBox 1.2.0 | MIT | PeckaDesign, s.r.o, https://github.com/peckadesign/jquery.pdbox */ -$.pdBox=function(){function a(a){a=a||{},this.defaults={},this.defaults.width=p.width,this.defaults.className=p.className,a.width&&(this.defaults.width=a.width),a.className&&(this.defaults.className+=" "+a.className),this.options=$.extend({},p,a),a.template&&(this.options.template=a.template.toString()),"object"==typeof a.langs?this.langs=$.extend({},q,a.langs):this.langs=q,this.options.lang in this.langs||(this.options.lang="en"),this.isOpen=!1,this.setOnOpenOptions=!1,this.isAjax=a.isAjax||!1,this.isInner=a.isInner||!1,this.events={},this.overlay=null,this.rootElem={},this.window={},this.$doc=$(document),this.$body=$("body"),this.$html=$("html"),this.spinnerHtml=a.spinnerHtml||"",this.html="function"==typeof a.template?a.template(this):b(this),this.$el=null;var c="";for(var d in r){if(c=v(r[d]),"object"==typeof a[c])for(fn in a[c])a[c].hasOwnProperty(fn)&&"function"==typeof a[c][fn]&&this.addEventListener(r[d],a[c][fn]);else"function"==typeof a[c]&&this.addEventListener(r[d],a[c]);this.options[c]=void 0}this.addEventListener("load",function(){this.rootElem.removeClass("pdbox--loading")}),this.addEventListener("afterOpen",i),this.addEventListener("load",i),l()}function b(a){return $content="
\t
\t\t

\t\t
"+(a.isAjax?"
":"")+"\t\t
\t\t

\t\t\t"+a.langs[a.options.lang].prev+"\t\t\t\t\t\t"+a.langs[a.options.lang].of+"\t\t\t"+a.langs[a.options.lang].next+"\t\t

\t\t

\t\t
"+a.spinnerHtml+"\t\t "+a.langs[a.options.lang].close+"\t
",$content}function c(a){a.rootElem=$('
'),a.rootElem.html(a.html).prependTo(a.$body),a.window.elem=a.rootElem.find(".pdbox__window"),a.window.close=a.window.elem.find(".pdbox__close"),a.window.title=a.window.elem.find(".pdbox__title"),a.window.content=a.window.elem.find(".pdbox__content"),a.window.descWrap=a.window.elem.find(".pdbox__desc"),a.window.desc=a.window.elem.find(".pdbox__snippet"),a.window.desc.length||(a.window.desc=a.window.descWrap),a.window.pager={elem:a.window.elem.find(".pdbox__pager"),pages:a.window.elem.find(".pdbox__pages"),pagesSummary:a.window.elem.find(".pdbox__pages-summary"),activePage:a.window.elem.find(".pdbox__active-page"),pagesCount:a.window.elem.find(".pdbox__pages-count"),prev:a.window.elem.find(".pdbox__page--prev"),next:a.window.elem.find(".pdbox__page--next"),thumbnails:a.window.elem.find(".pdbox__pager--thumbnails")},a.window.image=a.window.elem.find(".pdbox__image"),$(document).on("click.pdbox",".pdbox__close, .pdbox__close--alternative",$.proxy(o,a)),a.$doc.on("keyup.pdbox",$.proxy(g,a)),a.window.image.on("click.pdbox",$.proxy(function(a){this.close(),a.preventDefault()},a))}function d(a){a.window.close.off(),a.window.pager.next.off(),a.window.pager.prev.off(),a.window.pager.pages.find("a").off(),a.window.pager.thumbnails.off(),a.window.image.off(),a.overlay.off(),a.$doc.off("keyup.pdbox"),a.rootElem.remove()}function e(a,b,c){var d=b.data("rel");if(d){var e=$(c),g=$([]),i=e.filter('[data-rel="'+d+'"]'),j="";if(i.each(function(a){j+=" "+(a+1)+" "}),a.window.pager.pages.empty().append(j),a.options.imageThumbnails){var k="";i.each(function(a){k+="
  • "}),a.window.pager.thumbnails.append($('