From b6fea434ad2888de8dbc87d25ba0444c991d42d6 Mon Sep 17 00:00:00 2001 From: Geo Halkiadakis Date: Tue, 6 Jun 2023 18:34:51 +0300 Subject: send invitation(s) form is ready --- public/assets/js/lesson-features.js | 218 ------------------------------------ 1 file changed, 218 deletions(-) delete mode 100644 public/assets/js/lesson-features.js (limited to 'public/assets/js/lesson-features.js') diff --git a/public/assets/js/lesson-features.js b/public/assets/js/lesson-features.js deleted file mode 100644 index 189b301..0000000 --- a/public/assets/js/lesson-features.js +++ /dev/null @@ -1,218 +0,0 @@ -const valid_codeblocks = [ // supported sort-code keys - 'youtube', - 'spotify', - 'spotify-track', - 'world-data', - 'vimeo', - 'dailymotion' -]; - - -const symbol_escapes = [ - { esc: '>', chr: '>' }, - { esc: '<', chr: '<' }, - { esc: '&', chr: '&' }, - { esc: '"', chr: '\"' }, - { esc: ''', chr: '\'' }, - { esc: '€', chr: '€' }, - { esc: '©', chr: '©' }, - { esc: '®', chr: '®' } -]; - - -var youtube_template = ( id => { - return ''; -}); - - -var spotify_template = ( id => { - return ''; -}); - -var spotify_track = ( id => { - return ''; -}); - -var owid_template = ( id => { // our world in data (explorer) - return '' -}); - -var vimeo_template = ( id => { - return '
' -}); - -var dailymotion_template = ( id => { - return '
' -}); - - - -/** inject_codeblocks - * --- -- -- - - - - * - * NOTE: - * a short-code is a mustache block of 3 parametres: - * {{ object = someID ; some label description }} - * ex. `{{product=1507175; Coca Cola Zero}}` - * - * The short-code is parsed to a code-block: - * an `a` modal-toggler link with certain data-attributes (+label), ex: - * `Coca Cola Zero` - * - * @param code (string): original content html with short-codes - * @returns (string): html content with code-blocks - */ -function inject_codeblocks(code) { - // isolate all mustache blocks - const regexp = /{{(.*?)}}/g; // regex makes multiple-matching easier - const matches = [...code.matchAll(regexp)]; - // console.log(matches); - - var output = code; // use a copy of (source) code - - console.log(matches); - - matches.forEach( match => { - // parse (every) match - // NOTE: - // match array has 3 items; example: - // match[0] : `{{youtube=6EA-MIYY1bg}}` - // match[1] : `youtube=6EA-MIYY1bg` - // match[3] : the (source) code string - - // let blockparts = unescaped_str( match[1] ).trim().split('='); - let blockparts = match[1].trim().split('='); - let target = blockparts[0].toLowerCase(); - let id = blockparts[1]; - // let label = escaped_str(blockparts[1]); - if (valid_codeblocks.includes(target)) { - - var codeblock = ''; - - console.log(target, id); - - switch (target) { - - case 'youtube': - codeblock = youtube_template(id); - break; - - case 'spotify': - codeblock = spotify_template(id); - break; - - case 'spotify-track': - codeblock = spotify_track(id); - break; - - case 'world-data': - codeblock = owid_template(id); - break; - - case 'vimeo': - codeblock = vimeo_template(id); - break; - - case 'dailymotion': - codeblock = dailymotion_template(id); - break; - - default: - codeblock = id; - - } - - output = output.replaceAll(match[0], codeblock); - - } - }); - - return output; -} - - -// pair of function to escepe/unescape special html symbols -// --- -- -- - - - -function unescaped_str(txt) { - symbol_escapes.forEach( pair => { txt = txt.replaceAll(pair.esc, pair.chr); }) - return txt; -} - -function escaped_str(txt) { - symbol_escapes.forEach( pair => { txt = txt.replaceAll(pair.chr, pair.esc); }) - return txt; -} - - -$(document).ready(function() { - - - /** translate short-codes to code-blocks - * ------------------------------------------------------------------------- - */ - var content = $('.main-content .article-body').html(); // get code with shorts - $('.main-content .article-body').html( inject_codeblocks(content) ); // put code with blocks - - - - /** modal listeners - * ------------------------------------------------------------------------- - */ -/* DEPRICATED: not needed - // open store modal listener - // --- -- -- - - - - $(document).on('click', '.js-get_store', function (e) { - e.preventDefault(); - var id = $(this).data('id'); // id for requesting content via ajax - - $('#dynamic-content').html(''); - $('#modal-loader').show(); - - $.ajax({ - url: '/libs/modals/modalStore.php', - type: 'POST', - cache: false, - data: 'id=' + id, - dataType: 'html' - }) - .done(function (data) { - $('#dynamic-content').html(''); - $('#dynamic-content').html(data); - $('#modal-loader').hide(); - }) - .fail(function () { - $('#dynamic-content').html(' Υπήρξε κάποιο πρόβλημα, παρακαλώ προσπαθήστε ξανά.'); - $('#modal-loader').hide(); - }); - }); - - // open product modal listener - // --- - $(document).on('click', '.js-get_product', function (e) { - e.preventDefault(); - var id = $(this).data('id'); // id for requesting content via ajax - - $('#dynamic-product').html(''); - $('#modal-loader').show(); - - $.ajax({ - url: '/products/ajax/get_product_full', - cache: false, - type: 'POST', - data: { id: id }, - dataType: 'html' - }) - .done(function (data) { - $('#dynamic-product').html(''); - $('#dynamic-product').html(data); - $('#modal-loader').hide(); - - }) - .fail(function () { - $('#dynamic-product').html(' Υπήρξε κάποιο πρόβλημα, παρακαλώ προσπαθήστε ξανά.'); - $('#modal-loader').hide(); - - }); - }); -*/ -}); -- cgit v1.2.3