From 3a15c2202873472cdcef04e66848e68122198751 Mon Sep 17 00:00:00 2001
From: rabuzarus <trebor@central-unit>
Date: Sat, 2 Feb 2019 03:12:36 +0100
Subject: [PATCH] attachment preview: frio- initialize linkPreview on jot modal
 open (so we can use the linkPreview for new posts and edit post modal)

---
 view/theme/frio/js/jot.js                | 20 +++++++----
 view/theme/frio/js/modal.js              |  5 +++
 view/theme/frio/js/textedit.js           | 42 ++++++++++++------------
 view/theme/frio/templates/jot-header.tpl |  3 ++
 4 files changed, 43 insertions(+), 27 deletions(-)

diff --git a/view/theme/frio/js/jot.js b/view/theme/frio/js/jot.js
index 25db238241..08ed6f2215 100644
--- a/view/theme/frio/js/jot.js
+++ b/view/theme/frio/js/jot.js
@@ -1,10 +1,8 @@
+// We apptend the linkPreview to a global Variable to make linkPreview
+// accessable on other places. Note: search on other places before you
+// delete or move the variable.
 var linkPreview;
 
-$(document).ready(function() {
-	linkPreview = $('#profile-jot-text').linkPreview();
-});
-
-
 /**
  * Insert a link into friendica jot.
  * 
@@ -25,7 +23,17 @@ function jotGetLink() {
 
 		// We use the linkPreview library to have a preview
 		// of the attachments.
-		linkPreview.crawlText(reply + noAttachment);
+		if (typeof linkPreview === 'object') {
+			linkPreview.crawlText(reply + noAttachment);
+
+		// Fallback: insert the attachment bbcode directly into the textarea
+		// if the attachment live preview isn't available
+		} else {
+			$.get('parse_url?binurl=' + bin2hex(reply) + noAttachment, function(data) {
+				addeditortext(data);
+				$('#profile-rotator').hide();
+			});
+		}
 		autosize.update($("#profile-jot-text"));
 	}
 }
diff --git a/view/theme/frio/js/modal.js b/view/theme/frio/js/modal.js
index 80694b64da..1c5314c4b4 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.
@@ -292,6 +296,7 @@ function editpost(url) {
 
 				modal.show();
 				$("#jot-popup").show();
+				linkPreview = $('#profile-jot-text').linkPreview();
 			}
 		});
 }
diff --git a/view/theme/frio/js/textedit.js b/view/theme/frio/js/textedit.js
index 76a04a32f2..e0c06af581 100644
--- a/view/theme/frio/js/textedit.js
+++ b/view/theme/frio/js/textedit.js
@@ -46,34 +46,34 @@ function commentGetLink(id, prompttext) {
 }
 
 function addCommentText(data, id) {
-    // get the textfield
-    var textfield = document.getElementById("comment-edit-text-" + id);
-    // check if the textfield does have the default-value
-    commentOpenUI(textfield, id);
-    // save already existent content
-    var currentText = $("#comment-edit-text-" + id).val();
-    //insert the data as new value
-    textfield.value = currentText + data;
-    autosize.update($("#comment-edit-text-" + id));
+	// get the textfield
+	var textfield = document.getElementById("comment-edit-text-" + id);
+	// check if the textfield does have the default-value
+	commentOpenUI(textfield, id);
+	// save already existent content
+	var currentText = $("#comment-edit-text-" + id).val();
+	//insert the data as new value
+	textfield.value = currentText + data;
+	autosize.update($("#comment-edit-text-" + id));
 }
 
 function commentLinkDrop(event, id) {
-    var reply = event.dataTransfer.getData("text/uri-list");
-    event.target.textContent = reply;
-    event.preventDefault();
-    if (reply && reply.length) {
-        reply = bin2hex(reply);
-        $.get('parse_url?noAttachment=1&binurl=' + reply, function(data) {
+	var reply = event.dataTransfer.getData("text/uri-list");
+	event.target.textContent = reply;
+	event.preventDefault();
+	if (reply && reply.length) {
+		reply = bin2hex(reply);
+		$.get('parse_url?noAttachment=1&binurl=' + reply, function(data) {
 			addCommentText(data, id);
-        });
-    }
+		});
+	}
 }
 
 function commentLinkDropper(event) {
-    var linkFound = event.dataTransfer.types.contains("text/uri-list");
-    if (linkFound) {
-        event.preventDefault();
-    }
+	var linkFound = event.dataTransfer.types.contains("text/uri-list");
+	if (linkFound) {
+		event.preventDefault();
+	}
 }
 
 
diff --git a/view/theme/frio/templates/jot-header.tpl b/view/theme/frio/templates/jot-header.tpl
index 548ff264ab..ac59caed8e 100644
--- a/view/theme/frio/templates/jot-header.tpl
+++ b/view/theme/frio/templates/jot-header.tpl
@@ -273,6 +273,9 @@
 			.find('#jot-modal-content')
 			.append(jotcache)
 			.modal.show;
+
+		// Jot attachment live preview.
+		linkPreview = $('#profile-jot-text').linkPreview();
 	}
 
 	// Activate the jot text section in the jot modal