From 410ca05205c6cc33175978a5dd8d7066294a680e Mon Sep 17 00:00:00 2001 From: Vincent Calame Date: Thu, 6 Jul 2023 16:56:15 +0200 Subject: [PATCH] Nouvelle version du client Scrutari --- squelettes/content/scrutarijs.html | 199 +- squelettes/head_js/scrutarijs.html | 12 +- squelettes/javascript/lity/lity.css | 200 ++ squelettes/javascript/lity/lity.js | 638 ++++++ .../javascript/scrutarijs/Scrutari.Lav.js | 246 ++ .../scrutarijs/frameworks/_default.js | 52 + squelettes/javascript/scrutarijs/perso.css | 180 +- .../javascript/scrutarijs/scrutarijs.css | 8 +- .../javascript/scrutarijs/scrutarijs.js | 1978 +++++++++-------- 9 files changed, 2458 insertions(+), 1055 deletions(-) create mode 100644 squelettes/javascript/lity/lity.css create mode 100644 squelettes/javascript/lity/lity.js create mode 100644 squelettes/javascript/scrutarijs/Scrutari.Lav.js create mode 100644 squelettes/javascript/scrutarijs/frameworks/_default.js diff --git a/squelettes/content/scrutarijs.html b/squelettes/content/scrutarijs.html index 137f910..e8a8921 100644 --- a/squelettes/content/scrutarijs.html +++ b/squelettes/content/scrutarijs.html @@ -1,46 +1,8 @@ -[===============================================================(#REM) -Configuration du client Scrutari -] - - - [===============================================================(#REM) Déclaration du bloc destiné à recevoir le client ]
- +
[

#(#SURTITRE)

]

#TITRE[ @@ -52,7 +14,109 @@ Déclaration du bloc destiné à recevoir le client [
(#TEXTE|adaptive_images{#CONST{_CONTENT_WIDTH},0})
] + +[===============================================================(#REM) +Structure du client +]
+ + + +
+ +
+ + +
+ + +
+ Option de recherche avancée +
+

+ + ? + + Relations : + + + +

+

+ + Priorité : + + +

+

+ + Période : + +

+

+ + Élargir : + + +

+
+
+ +
+ + +
+
+

Votre recherche

+

+
+
+

Filtrer les résultats : + + () + + () + + () +

+
+ +
+ Votre historique : +
+
+ + + +
+ + + + +
+

Vos résultats

+
+
+ +
+ + + +

@@ -61,32 +125,6 @@ Déclaration du bloc destiné à recevoir le client Partie consacrée à la réécriture des gabarits voir https://framagit.org/Scrutari/scrutarijs/-/wikis/adaptation#reformuler-un-%C3%A9lement-de-structure-et-de-gabarit ] - - - - - - + + + + diff --git a/squelettes/head_js/scrutarijs.html b/squelettes/head_js/scrutarijs.html index b986d31..0109bd8 100644 --- a/squelettes/head_js/scrutarijs.html +++ b/squelettes/head_js/scrutarijs.html @@ -1,3 +1,6 @@ +[(#REM) Version 2.4.2 de Lity (à supprimer à la migration vers Spip 4.1)] +[] + [(#REM) Version 1.0.7 de JsRender] [] @@ -8,9 +11,12 @@ [(#REM) Version française] [] -[(#REM) Structure et gabarits correspondant à l'absence de framework] -[] +[(#REM) Client spécial LAV, c'est lui qui doit recevoir les modifications et adaptations] +[] +[(#REM) Structure et gabarits par défaut] +[] + +[] [] -[] [] diff --git a/squelettes/javascript/lity/lity.css b/squelettes/javascript/lity/lity.css new file mode 100644 index 0000000..c2ef965 --- /dev/null +++ b/squelettes/javascript/lity/lity.css @@ -0,0 +1,200 @@ +/*! Lity - v2.4.1 - 2020-04-26 +* http://sorgalla.com/lity/ +* Copyright (c) 2015-2020 Jan Sorgalla; Licensed MIT */ +.lity { + z-index: 9990; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + white-space: nowrap; + background: #0b0b0b; + background: rgba(0, 0, 0, 0.9); + outline: none !important; + opacity: 0; + -webkit-transition: opacity 0.3s ease; + -o-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; +} +.lity.lity-opened { + opacity: 1; +} +.lity.lity-closed { + opacity: 0; +} +.lity * { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} +.lity-wrap { + z-index: 9990; + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + outline: none !important; +} +.lity-wrap:before { + content: ''; + display: inline-block; + height: 100%; + vertical-align: middle; + margin-right: -0.25em; +} +.lity-loader { + z-index: 9991; + color: #fff; + position: absolute; + top: 50%; + margin-top: -0.8em; + width: 100%; + text-align: center; + font-size: 14px; + font-family: Arial, Helvetica, sans-serif; + opacity: 0; + -webkit-transition: opacity 0.3s ease; + -o-transition: opacity 0.3s ease; + transition: opacity 0.3s ease; +} +.lity-loading .lity-loader { + opacity: 1; +} +.lity-container { + z-index: 9992; + position: relative; + text-align: left; + vertical-align: middle; + display: inline-block; + white-space: normal; + max-width: 100%; + max-height: 100%; + outline: none !important; +} +.lity-content { + z-index: 9993; + width: 100%; + -webkit-transform: scale(1); + -ms-transform: scale(1); + -o-transform: scale(1); + transform: scale(1); + -webkit-transition: -webkit-transform 0.3s ease; + transition: -webkit-transform 0.3s ease; + -o-transition: -o-transform 0.3s ease; + transition: transform 0.3s ease; + transition: transform 0.3s ease, -webkit-transform 0.3s ease, -o-transform 0.3s ease; +} +.lity-loading .lity-content, +.lity-closed .lity-content { + -webkit-transform: scale(0.8); + -ms-transform: scale(0.8); + -o-transform: scale(0.8); + transform: scale(0.8); +} +.lity-content:after { + content: ''; + position: absolute; + left: 0; + top: 0; + bottom: 0; + display: block; + right: 0; + width: auto; + height: auto; + z-index: -1; + -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); +} +.lity-close { + z-index: 9994; + width: 35px; + height: 35px; + position: fixed; + right: 0; + top: 0; + -webkit-appearance: none; + cursor: pointer; + text-decoration: none; + text-align: center; + padding: 0; + color: #fff; + font-style: normal; + font-size: 35px; + font-family: Arial, Baskerville, monospace; + line-height: 35px; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + border: 0; + background: none; + outline: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.lity-close::-moz-focus-inner { + border: 0; + padding: 0; +} +.lity-close:hover, +.lity-close:focus, +.lity-close:active, +.lity-close:visited { + text-decoration: none; + text-align: center; + padding: 0; + color: #fff; + font-style: normal; + font-size: 35px; + font-family: Arial, Baskerville, monospace; + line-height: 35px; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + border: 0; + background: none; + outline: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.lity-close:active { + top: 1px; +} +/* Image */ +.lity-image img { + max-width: 100%; + display: block; + line-height: 0; + border: 0; +} +/* iFrame */ +.lity-iframe .lity-container, +.lity-youtube .lity-container, +.lity-vimeo .lity-container, +.lity-facebookvideo .lity-container, +.lity-googlemaps .lity-container { + width: 100%; + max-width: 964px; +} +.lity-iframe-container { + width: 100%; + height: 0; + padding-top: 56.25%; + overflow: auto; + pointer-events: auto; + -webkit-transform: translateZ(0); + transform: translateZ(0); + -webkit-overflow-scrolling: touch; +} +.lity-iframe-container iframe { + position: absolute; + display: block; + top: 0; + left: 0; + width: 100%; + height: 100%; + -webkit-box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + box-shadow: 0 0 8px rgba(0, 0, 0, 0.6); + background: #000; +} +.lity-hide { + display: none; +} diff --git a/squelettes/javascript/lity/lity.js b/squelettes/javascript/lity/lity.js new file mode 100644 index 0000000..950ae78 --- /dev/null +++ b/squelettes/javascript/lity/lity.js @@ -0,0 +1,638 @@ +/*! Lity - v2.4.1 - 2020-04-26 +* http://sorgalla.com/lity/ +* Copyright (c) 2015-2020 Jan Sorgalla; Licensed MIT */ +(function(window, factory) { + if (typeof define === 'function' && define.amd) { + define(['jquery'], function($) { + return factory(window, $); + }); + } else if (typeof module === 'object' && typeof module.exports === 'object') { + module.exports = factory(window, require('jquery')); + } else { + window.lity = factory(window, window.jQuery || window.Zepto); + } +}(typeof window !== "undefined" ? window : this, function(window, $) { + 'use strict'; + + var document = window.document; + + var _win = $(window); + var _deferred = $.Deferred; + var _html = $('html'); + var _instances = []; + + var _attrAriaHidden = 'aria-hidden'; + var _dataAriaHidden = 'lity-' + _attrAriaHidden; + + var _focusableElementsSelector = 'a[href],area[href],input:not([disabled]),select:not([disabled]),textarea:not([disabled]),button:not([disabled]),iframe,object,embed,[contenteditable],[tabindex]:not([tabindex^="-"])'; + + var _defaultOptions = { + esc: true, + handler: null, + handlers: { + image: imageHandler, + inline: inlineHandler, + youtube: youtubeHandler, + vimeo: vimeoHandler, + googlemaps: googlemapsHandler, + facebookvideo: facebookvideoHandler, + iframe: iframeHandler + }, + template: '' + }; + + var _imageRegexp = /(^data:image\/)|(\.(png|jpe?g|gif|svg|webp|bmp|ico|tiff?)(\?\S*)?$)/i; + var _youtubeRegex = /(youtube(-nocookie)?\.com|youtu\.be)\/(watch\?v=|v\/|u\/|embed\/?)?([\w-]{11})(.*)?/i; + var _vimeoRegex = /(vimeo(pro)?.com)\/(?:[^\d]+)?(\d+)\??(.*)?$/; + var _googlemapsRegex = /((maps|www)\.)?google\.([^\/\?]+)\/?((maps\/?)?\?)(.*)/i; + var _facebookvideoRegex = /(facebook\.com)\/([a-z0-9_-]*)\/videos\/([0-9]*)(.*)?$/i; + + var _transitionEndEvent = (function() { + var el = document.createElement('div'); + + var transEndEventNames = { + WebkitTransition: 'webkitTransitionEnd', + MozTransition: 'transitionend', + OTransition: 'oTransitionEnd otransitionend', + transition: 'transitionend' + }; + + for (var name in transEndEventNames) { + if (el.style[name] !== undefined) { + return transEndEventNames[name]; + } + } + + return false; + })(); + + function transitionEnd(element) { + var deferred = _deferred(); + + if (!_transitionEndEvent || !element.length) { + deferred.resolve(); + } else { + element.one(_transitionEndEvent, deferred.resolve); + setTimeout(deferred.resolve, 500); + } + + return deferred.promise(); + } + + function settings(currSettings, key, value) { + if (arguments.length === 1) { + return $.extend({}, currSettings); + } + + if (typeof key === 'string') { + if (typeof value === 'undefined') { + return typeof currSettings[key] === 'undefined' + ? null + : currSettings[key]; + } + + currSettings[key] = value; + } else { + $.extend(currSettings, key); + } + + return this; + } + + function parseQueryParams(params) { + var pairs = decodeURI(params.split('#')[0]).split('&'); + var obj = {}, p; + + for (var i = 0, n = pairs.length; i < n; i++) { + if (!pairs[i]) { + continue; + } + + p = pairs[i].split('='); + obj[p[0]] = p[1]; + } + + return obj; + } + + function appendQueryParams(url, params) { + return url + (url.indexOf('?') > -1 ? '&' : '?') + $.param(params); + } + + function transferHash(originalUrl, newUrl) { + var pos = originalUrl.indexOf('#'); + + if (-1 === pos) { + return newUrl; + } + + if (pos > 0) { + originalUrl = originalUrl.substr(pos); + } + + return newUrl + originalUrl; + } + + function error(msg) { + return $('').append(msg); + } + + function imageHandler(target, instance) { + var desc = (instance.opener() && instance.opener().data('lity-desc')) || 'Image with no description'; + var img = $('' + desc + ''); + var deferred = _deferred(); + var failed = function() { + deferred.reject(error('Failed loading image')); + }; + + img + .on('load', function() { + if (this.naturalWidth === 0) { + return failed(); + } + + deferred.resolve(img); + }) + .on('error', failed) + ; + + return deferred.promise(); + } + + imageHandler.test = function(target) { + return _imageRegexp.test(target); + }; + + function inlineHandler(target, instance) { + var el, placeholder, hasHideClass; + + try { + el = $(target); + } catch (e) { + return false; + } + + if (!el.length) { + return false; + } + + placeholder = $(''); + hasHideClass = el.hasClass('lity-hide'); + + instance + .element() + .one('lity:remove', function() { + placeholder + .before(el) + .remove() + ; + + if (hasHideClass && !el.closest('.lity-content').length) { + el.addClass('lity-hide'); + } + }) + ; + + return el + .removeClass('lity-hide') + .after(placeholder) + ; + } + + function youtubeHandler(target) { + var matches = _youtubeRegex.exec(target); + + if (!matches) { + return false; + } + + return iframeHandler( + transferHash( + target, + appendQueryParams( + 'https://www.youtube' + (matches[2] || '') + '.com/embed/' + matches[4], + $.extend( + { + autoplay: 1 + }, + parseQueryParams(matches[5] || '') + ) + ) + ) + ); + } + + function vimeoHandler(target) { + var matches = _vimeoRegex.exec(target); + + if (!matches) { + return false; + } + + return iframeHandler( + transferHash( + target, + appendQueryParams( + 'https://player.vimeo.com/video/' + matches[3], + $.extend( + { + autoplay: 1 + }, + parseQueryParams(matches[4] || '') + ) + ) + ) + ); + } + + function facebookvideoHandler(target) { + var matches = _facebookvideoRegex.exec(target); + + if (!matches) { + return false; + } + + if (0 !== target.indexOf('http')) { + target = 'https:' + target; + } + + return iframeHandler( + transferHash( + target, + appendQueryParams( + 'https://www.facebook.com/plugins/video.php?href=' + target, + $.extend( + { + autoplay: 1 + }, + parseQueryParams(matches[4] || '') + ) + ) + ) + ); + } + + function googlemapsHandler(target) { + var matches = _googlemapsRegex.exec(target); + + if (!matches) { + return false; + } + + return iframeHandler( + transferHash( + target, + appendQueryParams( + 'https://www.google.' + matches[3] + '/maps?' + matches[6], + { + output: matches[6].indexOf('layer=c') > 0 ? 'svembed' : 'embed' + } + ) + ) + ); + } + + function iframeHandler(target) { + return '