Z verze
změnil(a) David Brazda
k 18.01.2021 17:37
Na verzi < 2.1 >
změnil(a) David Brazda
k 08.04.2021 10:16
< >
Popis verze: Imported from XAR

Přehled

Rozpis

Na stránce změněno:
Obsah
... ... @@ -1,17 +1,21 @@
1 -Tento JSX
1 +Tato stránka obsahuje JSX, které
2 2  
3 -1) aktivuje na celé wiki [[lightbox viewer>>https://lokeshdhakar.com/projects/lightbox2/]] pro zobrazení obrázků - pokud najde A hrefu s atributem data-lightbox="lightbox" pak zobrazí child element v lightboxu
3 +1) **enablují** na celé wiki [[lightbox viewer>>https://lokeshdhakar.com/projects/lightbox2/]] pro zobrazení obrázků - pokud najde A hrefu s atributem data-lightbox="lightbox" pak zobrazí child img element v lightboxu
4 4  
5 -2) zároveň je zde dodělaná funkcionalita, která u všech A elementů obklopených span xwikiattachement a obsahující child element IMG - nastaví u A dynamicky data-lightbox atribut.
5 +2) u všech příloh s obrázkem (tzn. A elementů obklopených span xwikiattachement a obsahující child element IMG) provede:
6 6  
7 -3) zachytaná dom-reloaded akce a na jejím základě provedeno totéž - nutné aby fungovalo po uložení editace.
7 +* **vytvoří caption** - tzn. obklopí img element do figure a figureCaption (do kterého zkopíruje alt) - pokud není alt stejné jako název souboru
8 +* **aktivuje lightbox** - tzn. nastaví u A dynamicky data-lightbox atribut
9 +* zároveň zkopíruje alt u image do lightbox-title do A elementu - pokud není alt stejné jako název souboru
8 8  
11 +3) tento update je triggerován na dom-reloaded akci - nutné aby zafungovalo i po uložení editace a nejenom reloadu stranky
9 9  
10 -Jinak je celý proces následující
11 11  
14 +Jinak je celý end to end proces následující
15 +
12 12  1. uživatel vloží paste obrázku do CKEditoru
13 13  1. zafunguje upraveny upload plugin a místo samotného image vrací image nalinkovaný na daný attachement, tzn. uploadovaná image je vždycky s linkem a validní v xwiki 2.1 syntax -  xwiki-upload (loaduje [[CKEditor plugin loader>>BackEnd.CKEditor plugin loader.WebHome]] a samotny kod je v /resources/mujupload.js xwiki-upload (loaduje [[CKEditor plugin loader>>BackEnd.CKEditor plugin loader.WebHome]] a samotny kod je v /resources/mujupload.js
14 14  1. standardní render z tohoto udělá IMG obalený A
15 -1. JSX v Lightbox supportu dynamicky přidá data-lightbox atribut pro všechyn A
19 +1. JSX v Lightbox supportu dynamicky přidá data-lightbox atribut pro všechyn A a vytvori fig a figcaption viz výše
16 16  
17 17  
XWiki.JavaScriptExtension[1]
Kód
... ... @@ -1,6 +1,31 @@
1 1  require(['jquery'], function($) {
2 2   //in case of important dom change - like CKEditor save, the lightbox must be re-added again
3 3   $(document).on('xwiki:dom:updated', function() {
4 - $(".wikiattachmentlink img").parent("a").attr("data-lightbox","lightbox");
5 - })
6 -});
4 + //puvodni kod
5 + //$(".wikiattachmentlink img").parents("a").attr("data-lightbox","lightbox");
6 +
7 + //novy kod - pro attachmenty obrazky nastavit lightbox + add img alt jako atribut lightboxu
8 + $('.wikiattachmentlink img').each(function() {
9 + //nastavime lightbox
10 + $(this).parents("a").attr("data-lightbox","lightbox");
11 + //pokud ma img alt, pak ho nastavime jako title lightboxu
12 + var img_src = $(this).attr('src');
13 + var img_alt = $(this).attr('alt');
14 + if (img_alt && !(img_src.includes(img_alt))) {
15 + $(this).parents("a").attr("data-title", img_alt);
16 + }
17 + //fig and figcaption handling
18 + if (!jQuery(this).parent().is('figure')) {
19 + jQuery(this).wrap($('<figure/>', {
20 + 'class': 'image'
21 + }));
22 +
23 + //pokud neni alt vyplneny a nebo je alt stejný jako název souboru - pak caption nezobrazuj
24 + if (img_alt && !(img_src.includes(img_alt))) {
25 + $(this).after($('<figcaption/>').append(img_alt));
26 + }
27 + }
28 + }); //each function
29 + }); //dom updated
30 +}); //require
31 +
Jméno
... ... @@ -1,1 +1,1 @@
1 -add lightbox again after save
1 +update lightbox when loaded and after save
XWiki.XWikiRights[4]
Skupiny
... ... @@ -1,1 +1,1 @@
1 -XWiki.Reader
1 +XWiki.Reader,