]> git.mxchange.org Git - friendica.git/blobdiff - view/theme/frio/js/modal.js
[frio] Add .add-to-modal delegated event on anchors
[friendica.git] / view / theme / frio / js / modal.js
index 56df75d7b68269fa5ea9ced61d7ad80b0e1998eb..9bca427779fcbc057e05aa5b81e4c84ea863d74e 100644 (file)
@@ -12,7 +12,7 @@ $(document).ready(function(){
                // with AjaxUpload.
                $(".fbrowser").remove();
                // Remove the AjaxUpload element.
-               $("[name=userfile]").parent().remove();
+               $(".ajaxbutton-wrapper").remove();
        });
 
        // Clear bs modal on close.
@@ -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.
@@ -144,7 +163,7 @@ Dialog._load = function(url) {
        var type = $("#fb-type").attr("value");
 
        // Try to fetch the hash form the url.
-       var match = url.match(/fbrowser\/[a-z]+\/\?mode=none(.*)/);
+       var match = url.match(/fbrowser\/[a-z]+\/.*(#.*)/);
        if (match===null) return; //not fbrowser
        var hash = match[1];
 
@@ -188,14 +207,25 @@ function loadModalTitle() {
        }
 }
 
-// This function loads html content from a friendica page
-// into a modal.
-function addToModal(url) {
+
+/**
+ * This function loads html content from a friendica page into a modal.
+ * 
+ * @param {string} url The url with html content.
+ * @param {string} id The ID of a html element (can be undefined).
+ * @returns {void}
+ */
+function addToModal(url, id) {
        var char = qOrAmp(url);
 
        url = url + char + 'mode=none';
        var modal = $('#modal').modal();
 
+       // Only search for an element if we have an ID.
+       if (typeof id !== "undefined") {
+               url = url + " div#" + id;
+       }
+
        modal
                .find('#modal-body')
                .load(url, function (responseText, textStatus) {
@@ -207,11 +237,15 @@ function addToModal(url) {
                                //Get first element with the class "heading"
                                //and use it as title.
                                loadModalTitle();
+
+                               // We need to initialize autosize again for new
+                               // modal conent.
+                               autosize($('.modal .text-autosize'));
                        }
                });
 }
 
-// Add a element (by it's id) to a bootstrap modal.
+// Add an element (by its id) to a bootstrap modal.
 function addElmToModal(id) {
        var elm = $(id).html();
        var modal = $('#modal').modal();
@@ -277,6 +311,7 @@ function editpost(url) {
 
                                modal.show();
                                $("#jot-popup").show();
+                               linkPreview = $('#profile-jot-text').linkPreview();
                        }
                });
 }
@@ -328,6 +363,8 @@ function toggleJotNav (elm) {
        // 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();