aboutsummaryrefslogtreecommitdiffstats
path: root/view
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-08-08 22:55:47 -0700
committerzotlabs <mike@macgirvin.com>2017-08-08 22:55:47 -0700
commitca11d7b9a76c41c7cea0dbec1befacb0ff182de2 (patch)
treeb341eae028b38707e2282ebd29632eaf74c8066c /view
parenta7a73a5150e8da202b1ea84408434e284f4ceda2 (diff)
downloadvolse-hubzilla-ca11d7b9a76c41c7cea0dbec1befacb0ff182de2.tar.gz
volse-hubzilla-ca11d7b9a76c41c7cea0dbec1befacb0ff182de2.tar.bz2
volse-hubzilla-ca11d7b9a76c41c7cea0dbec1befacb0ff182de2.zip
support upload of files and attachments into comments. This has some repercussions when it comes to post permissions since the commenter will not know the distribution of the post. Basically the files will be uploaded with the commenter's default ACL. Most of the time this will do the right thing.
Diffstat (limited to 'view')
-rw-r--r--view/js/main.js13
-rwxr-xr-xview/tpl/comment_item.tpl3
-rwxr-xr-xview/tpl/jot-header.tpl31
-rwxr-xr-xview/tpl/jot.tpl1
4 files changed, 48 insertions, 0 deletions
diff --git a/view/js/main.js b/view/js/main.js
index aaadff99b..e4cfcf7b2 100644
--- a/view/js/main.js
+++ b/view/js/main.js
@@ -132,6 +132,19 @@ function inserteditortag(BBcode, id) {
return true;
}
+function insertCommentAttach(comment,id) {
+
+ activeCommentID = id;
+ activeCommentText = comment;
+
+ $('body').css('cursor', 'wait');
+
+ $('#invisible-comment-upload').trigger('click');
+
+ return false;
+
+}
+
function insertCommentURL(comment, id) {
reply = prompt(aStr.linkurl);
if(reply && reply.length) {
diff --git a/view/tpl/comment_item.tpl b/view/tpl/comment_item.tpl
index 02b0c527c..289356107 100755
--- a/view/tpl/comment_item.tpl
+++ b/view/tpl/comment_item.tpl
@@ -47,6 +47,9 @@
</button>
</div>
<div class="btn-group mr-2">
+ <button class="btn btn-outline-secondary btn-sm" title="{{$edatt}}" onclick="insertCommentAttach('{{$comment}}',{{$id}}); return false;">
+ <i class="fa fa-paperclip comment-icon"></i>
+ </button>
<button class="btn btn-outline-secondary btn-sm" title="{{$edurl}}" onclick="insertCommentURL('{{$comment}}',{{$id}}); return false;">
<i class="fa fa-link comment-icon"></i>
</button>
diff --git a/view/tpl/jot-header.tpl b/view/tpl/jot-header.tpl
index 815d17c3c..91c30423d 100755
--- a/view/tpl/jot-header.tpl
+++ b/view/tpl/jot-header.tpl
@@ -106,6 +106,9 @@ function enableOnUser(){
<script src="library/blueimp_upload/js/jquery.fileupload.js"></script>
<script>
+var activeCommentID = 0;
+var activeCommentText = '';
+
$(document).ready(function() {
/* enable tinymce on focus and click */
$("#profile-jot-text").focus(enableOnUser);
@@ -139,6 +142,34 @@ function enableOnUser(){
DragDropUploadInit();
}
+
+ $('#invisible-comment-upload').fileupload({
+ url: 'wall_attach/{{$nickname}}',
+ dataType: 'json',
+ maxChunkSize: 4 * 1024 * 1024,
+ add: function(e,data) {
+
+ var tmpStr = $("#comment-edit-text-" + activeCommentID).val();
+ if(tmpStr == activeCommentText) {
+ tmpStr = "";
+ $("#comment-edit-text-" + activeCommentID).addClass("comment-edit-text-full");
+ $("#comment-edit-text-" + activeCommentID).removeClass("comment-edit-text-empty");
+ openMenu("comment-tools-" + activeCommentID);
+ $("#comment-edit-text-" + activeCommentID).val(tmpStr);
+ }
+ data.submit();
+ },
+
+ done: function(e,data) {
+ textarea = document.getElementById("comment-edit-text-" + activeCommentID);
+ textarea.value = textarea.value + data.result.message;
+ },
+ stop: function(e,data) {
+ $('body').css('cursor', 'auto');
+ preview_comment(activeCommentID);
+ activeCommentID = 0;
+ },
+ });
});
function deleteCheckedItems() {
diff --git a/view/tpl/jot.tpl b/view/tpl/jot.tpl
index cf99ede42..39ba9e59b 100755
--- a/view/tpl/jot.tpl
+++ b/view/tpl/jot.tpl
@@ -1,4 +1,5 @@
<input id="invisible-wall-file-upload" type="file" name="files" style="visibility:hidden;position:absolute;top:-50;left:-50;width:0;height:0;" multiple>
+<input id="invisible-comment-upload" type="file" name="files" style="visibility:hidden;position:absolute;top:-50;left:-50;width:0;height:0;" multiple>
<form id="profile-jot-form" action="{{$action}}" method="post" class="acl-form" data-form_id="profile-jot-form" data-allow_cid='{{$allow_cid}}' data-allow_gid='{{$allow_gid}}' data-deny_cid='{{$deny_cid}}' data-deny_gid='{{$deny_gid}}'>
{{$mimeselect}}
{{$layoutselect}}