X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=view%2Ftheme%2Ffrio%2Fjs%2Fmodal.js;h=c13b0682b581fbd2523478dd69c46e8c92544bc4;hb=8536b313a1eb1c3e11f9ba5317fdcef33118bcb8;hp=9a15cab52a67862845b5482dbd69bb52d13637bd;hpb=71ec84f6dc83f753fe80170cfdfd32d202850d90;p=friendica.git diff --git a/view/theme/frio/js/modal.js b/view/theme/frio/js/modal.js index 9a15cab52a..c13b0682b5 100644 --- a/view/theme/frio/js/modal.js +++ b/view/theme/frio/js/modal.js @@ -22,6 +22,10 @@ $(document).ready(function(){ $("#jot-content").append(jotcache); // Clear the jotcache. jotcache = ''; + // Destroy the attachment linkPreviw for Jot. + if (typeof linkPreview === 'object') { + linkPreview.destroy(); + } }); // Add Colorbox for viewing Network page images. @@ -89,6 +93,21 @@ $(document).ready(function(){ input.val(img); }); + + // Generic delegated event to open an anchor URL in a modal. + // Used in the hovercard. + document.getElementsByTagName('body')[0].addEventListener('click', function(e) { + var target = e.target; + while (target) { + if (target.matches && target.matches('a.add-to-modal')) { + addToModal(target.href); + e.preventDefault(); + return false; + } + + target = target.parentNode || null; + } + }); }); // Overwrite Dialog.show from main js to load the filebrowser into a bs modal. @@ -116,7 +135,7 @@ Dialog.show = function(url, title) { Dialog._get_url = function(type, name, id) { var hash = name; if (id !== undefined) hash = hash + "-" + id; - return "fbrowser/"+type+"/?mode=none#"+hash; + return "fbrowser/"+type+"/?mode=none&theme=frio#"+hash; }; // Does load the filebrowser into the jot modal. @@ -140,20 +159,19 @@ Dialog.showJot = function() { // Init the filebrowser after page load. Dialog._load = function(url) { // Get nickname & filebrowser type from the modal content. - var nickname = $("#fb-nickname").attr("value"); - var type = $("#fb-type").attr("value"); + let filebrowser = document.getElementById('filebrowser'); // Try to fetch the hash form the url. - var match = url.match(/fbrowser\/[a-z]+\/\?mode=none(.*)/); - if (match===null) return; //not fbrowser - var hash = match[1]; + let match = url.match(/fbrowser\/[a-z]+\/.*(#.*)/); + if (!filebrowser || match === null) { + return; //not fbrowser + } // Initialize the filebrowser. - var jsbrowser = function() { - FileBrowser.init(nickname, type, hash); - }; loadScript("view/js/ajaxupload.js"); - loadScript("view/theme/frio/js/filebrowser.js", jsbrowser); + loadScript("view/theme/frio/js/filebrowser.js", function() { + FileBrowser.init(filebrowser.dataset.nickname, filebrowser.dataset.type, match[1]); + }); }; /** @@ -258,7 +276,6 @@ function editpost(url) { var modal = $('#jot-modal').modal(); url = url + " #jot-sections"; - //var rand_num = random_digits(12); $(".jot-nav .jot-perms-lnk").parent("li").addClass("hidden"); // For editpost we load the modal html of "jot-sections" of the edit page. So we would have two jot forms in @@ -292,6 +309,7 @@ function editpost(url) { modal.show(); $("#jot-popup").show(); + linkPreview = $('#profile-jot-text').linkPreview(); } }); } @@ -306,14 +324,6 @@ function jotreset() { $("#profile-jot-form #jot-title-wrap").show(); $("#profile-jot-form #jot-category-wrap").show(); - // the following was commented out because it is needed anymore - // because we changed the behavior at an other place. - // var rand_num = random_digits(12); - // $('#jot-title, #jot-category, #profile-jot-text').val(""); - // $( "#profile-jot-form input[name='type']" ).val("wall"); - // $( "#profile-jot-form input[name='post_id']" ).val(""); - // $( "#profile-jot-form input[name='post_id_random']" ).val(rand_num); - // Remove the "edit-jot" class so we can the standard behavior on close. $("#jot-modal.edit-jot").removeClass("edit-jot"); $("#jot-modal-content").empty(); @@ -333,16 +343,18 @@ function toggleJotNav (elm) { // Minimize all tab content wrapper and activate only the selected // tab panel. - $('#jot-modal [role=tabpanel]').addClass("minimize").attr("aria-hidden" ,"true"); - $('#jot-modal #' + tabpanel).removeClass("minimize").attr("aria-hidden" ,"false"); + $('#profile-jot-form > [role=tabpanel]').addClass("minimize").attr("aria-hidden" ,"true"); + $('#' + tabpanel).removeClass("minimize").attr("aria-hidden" ,"false"); // Set the aria-selected states - $("#jot-modal .nav-tabs .jot-nav-lnk").attr("aria-selected", "false"); + $("#jot-modal .modal-header .nav-tabs .jot-nav-lnk").attr("aria-selected", "false"); elm.setAttribute("aria-selected", "true"); // For some some tab panels we need to execute other js functions. if (tabpanel === "jot-preview-content") { preview_post(); + // Make Share button visivle in preview + $('#jot-preview-share').removeClass("minimize").attr("aria-hidden" ,"false"); } else if (tabpanel === "jot-fbrowser-wrapper") { $(function() { Dialog.showJot();