Merge pull request #6013 from JonnyTischbein/issue_comment_media_link_prompt

[frio] Add media / link prompt in comments
This commit is contained in:
Hypolite Petovan 2018-10-24 12:17:58 -04:00 committed by GitHub
commit 9c9ebfc7c9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 80 additions and 21 deletions

View file

@ -1083,9 +1083,7 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$geotag' => $geotag, '$geotag' => $geotag,
'$nickname' => $x['nickname'], '$nickname' => $x['nickname'],
'$ispublic' => L10n::t('Visible to <strong>everybody</strong>'), '$ispublic' => L10n::t('Visible to <strong>everybody</strong>'),
'$linkurl' => L10n::t('Please enter a link URL:'), '$linkurl' => L10n::t('Please enter a image/video/audio/webpage URL:'),
'$vidurl' => L10n::t("Please enter a video link/URL:"),
'$audurl' => L10n::t("Please enter an audio link/URL:"),
'$term' => L10n::t('Tag term:'), '$term' => L10n::t('Tag term:'),
'$fileas' => L10n::t('Save to Folder:'), '$fileas' => L10n::t('Save to Folder:'),
'$whereareu' => L10n::t('Where are you right now?'), '$whereareu' => L10n::t('Where are you right now?'),
@ -1129,12 +1127,14 @@ function status_editor(App $a, $x, $notes_cid = 0, $popup = false)
'$shortupload' => L10n::t('upload photo'), '$shortupload' => L10n::t('upload photo'),
'$attach' => L10n::t('Attach file'), '$attach' => L10n::t('Attach file'),
'$shortattach' => L10n::t('attach file'), '$shortattach' => L10n::t('attach file'),
'$weblink' => L10n::t('Insert web link'), '$edbold' => L10n::t('Bold'),
'$shortweblink' => L10n::t('web link'), '$editalic' => L10n::t('Italic'),
'$video' => L10n::t('Insert video link'), '$eduline' => L10n::t('Underline'),
'$shortvideo' => L10n::t('video link'), '$edquote' => L10n::t('Quote'),
'$audio' => L10n::t('Insert audio link'), '$edcode' => L10n::t('Code'),
'$shortaudio' => L10n::t('audio link'), '$edimg' => L10n::t('Image'),
'$edurl' => L10n::t('Link'),
'$edattach' => L10n::t('Link or Media'),
'$setloc' => L10n::t('Set your location'), '$setloc' => L10n::t('Set your location'),
'$shortsetloc' => L10n::t('set location'), '$shortsetloc' => L10n::t('set location'),
'$noloc' => L10n::t('Clear browser location'), '$noloc' => L10n::t('Clear browser location'),

View file

@ -93,6 +93,7 @@ function parse_url_content(App $a)
} }
} }
$template = '[bookmark=%s]%s[/bookmark]%s'; $template = '[bookmark=%s]%s[/bookmark]%s';
$arr = ['url' => $url, 'text' => '']; $arr = ['url' => $url, 'text' => ''];
@ -124,6 +125,12 @@ function parse_url_content(App $a)
unset($siteinfo['keywords']); unset($siteinfo['keywords']);
// Bypass attachment if parse url for a comment
if (!empty($_GET['noAttachment'])) {
echo $br . '[url=' . $url . ']' . $siteinfo['title'] . '[/url]';
exit();
}
// Format it as BBCode attachment // Format it as BBCode attachment
$info = add_page_info_data($siteinfo); $info = add_page_info_data($siteinfo);

View file

@ -806,7 +806,8 @@ class Post extends BaseObject
'$edcode' => L10n::t('Code'), '$edcode' => L10n::t('Code'),
'$edimg' => L10n::t('Image'), '$edimg' => L10n::t('Image'),
'$edurl' => L10n::t('Link'), '$edurl' => L10n::t('Link'),
'$edvideo' => L10n::t('Video'), '$edattach' => L10n::t('Link or Media'),
'$prompttext' => L10n::t('Please enter a image/video/audio/webpage URL:'),
'$preview' => ((Feature::isEnabled($conv->getProfileOwner(), 'preview')) ? L10n::t('Preview') : ''), '$preview' => ((Feature::isEnabled($conv->getProfileOwner(), 'preview')) ? L10n::t('Preview') : ''),
'$indent' => $indent, '$indent' => $indent,
'$sourceapp' => L10n::t($a->sourcename), '$sourceapp' => L10n::t($a->sourcename),

View file

@ -24,7 +24,7 @@ function openClose(theID) {
} }
function openMenu(theID) { function openMenu(theID) {
var el = document.getElementById(theID) var el = document.getElementById(theID);
if (el) { if (el) {
el.style.display = "block"; el.style.display = "block";

View file

@ -2,6 +2,47 @@
* @brief The file contains functions for text editing and commenting * @brief The file contains functions for text editing and commenting
*/ */
function commentGetLink(id, prompttext) {
reply = prompt(prompttext);
if(reply && reply.length) {
reply = bin2hex(reply);
$.get('parse_url?noAttachment=1&binurl=' + reply, function(data) {
addCommentText(data, id);
});
}
}
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));
}
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) {
addCommentText(data, id);
});
}
}
function commentLinkDropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list");
if (linkFound) {
event.preventDefault();
}
}
function insertFormatting(BBcode, id) { function insertFormatting(BBcode, id) {
var tmpStr = $("#comment-edit-text-" + id).val(); var tmpStr = $("#comment-edit-text-" + id).val();

View file

@ -43,11 +43,10 @@
</button> </button>
</li> </li>
<li> <li>
<button type="button" class="btn-link icon bb-video" style="cursor: pointer;" aria-label="{{$edvideo}}" title="{{$edvideo}}" onclick="insertFormatting('video',{{$id}});"> <button type="button" class="btn-link icon" style="cursor: pointer;" aria-label="{{$edattach}}" title="{{$edattach}}" ondragenter="return commentLinkDrop(event, {{$id}});" ondragover="return commentLinkDrop(event, {{$id}});" ondrop="commentLinkDropper(event);" onclick="commentGetLink({{$id}}, '{{$prompttext}}');">
<i class="fa fa-video-camera"></i> <i class="fa fa-paperclip"></i>
</button> </button>
</li> </li>
<li> <li>
<button type="button" class="btn-link icon underline" style="cursor: pointer;" aria-label="{{$eduline}}" title="{{$eduline}}" onclick="insertFormatting('u',{{$id}});"> <button type="button" class="btn-link icon underline" style="cursor: pointer;" aria-label="{{$eduline}}" title="{{$eduline}}" onclick="insertFormatting('u',{{$id}});">
<i class="fa fa-underline"></i> <i class="fa fa-underline"></i>

View file

@ -127,14 +127,20 @@
} }
function jotGetLink() { function jotGetLink() {
var currentText = $("#profile-jot-text").val();
var noAttachment = '';
reply = prompt("{{$linkurl}}"); reply = prompt("{{$linkurl}}");
if(reply && reply.length) { if(reply && reply.length) {
reply = bin2hex(reply); reply = bin2hex(reply);
$('#profile-rotator').show(); $('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) { if (currentText.includes("[attachment") && currentText.includes("[/attachment]")) {
noAttachment = '&noAttachment=1';
}
$.get('parse_url?binurl=' + reply + noAttachment, function(data) {
addeditortext(data); addeditortext(data);
$('#profile-rotator').hide(); $('#profile-rotator').hide();
}); });
autosize.update($("#profile-jot-text"));
} }
} }
@ -174,26 +180,31 @@
$("#jot-popup").show(); $("#jot-popup").show();
} }
function linkdropper(event) { function linkDropper(event) {
var linkFound = event.dataTransfer.types.contains("text/uri-list"); var linkFound = event.dataTransfer.types.contains("text/uri-list");
if(linkFound) if(linkFound)
event.preventDefault(); event.preventDefault();
} }
function linkdrop(event) { function linkDrop(event) {
var reply = event.dataTransfer.getData("text/uri-list"); var reply = event.dataTransfer.getData("text/uri-list");
var noAttachment = '';
event.target.textContent = reply; event.target.textContent = reply;
event.preventDefault(); event.preventDefault();
if(reply && reply.length) { if(reply && reply.length) {
reply = bin2hex(reply); reply = bin2hex(reply);
$('#profile-rotator').show(); $('#profile-rotator').show();
$.get('parse_url?binurl=' + reply, function(data) { if (currentText.includes("[attachment") && currentText.includes("[/attachment]")) {
noAttachment = '&noAttachment=1';
}
$.get('parse_url?binurl=' + reply + noAttachment, function(data) {
if (!editor) $("#profile-jot-text").val(""); if (!editor) $("#profile-jot-text").val("");
initEditor(function(){ initEditor(function(){
addeditortext(data); addeditortext(data);
$('#profile-rotator').hide(); $('#profile-rotator').hide();
}); });
}); });
autosize.update($("#profile-jot-text"));
} }
} }
@ -261,6 +272,7 @@
var currentText = $("#profile-jot-text").val(); var currentText = $("#profile-jot-text").val();
//insert the data as new value //insert the data as new value
textfield.value = currentText + data; textfield.value = currentText + data;
autosize.update($("#profile-jot-text"));
} }
{{$geotag}} {{$geotag}}

View file

@ -97,9 +97,8 @@
<li role="presentation"><button type="button" class="hidden-xs btn-link icon italic" style="cursor: pointer;" aria-label="{{$editalic}}" title="{{$editalic}}" onclick="insertFormattingToPost('i');"><i class="fa fa-italic"></i></button></li> <li role="presentation"><button type="button" class="hidden-xs btn-link icon italic" style="cursor: pointer;" aria-label="{{$editalic}}" title="{{$editalic}}" onclick="insertFormattingToPost('i');"><i class="fa fa-italic"></i></button></li>
<li role="presentation"><button type="button" class="hidden-xs btn-link icon bold" style="cursor: pointer;" aria-label="{{$edbold}}" title="{{$edbold}}" onclick="insertFormattingToPost('b');"><i class="fa fa-bold"></i></button></li> <li role="presentation"><button type="button" class="hidden-xs btn-link icon bold" style="cursor: pointer;" aria-label="{{$edbold}}" title="{{$edbold}}" onclick="insertFormattingToPost('b');"><i class="fa fa-bold"></i></button></li>
<li role="presentation"><button type="button" class="hidden-xs btn-link icon quote" style="cursor: pointer;" aria-label="{{$edquote}}" title="{{$edquote}}" onclick="insertFormattingToPost('quote');"><i class="fa fa-quote-left"></i></button></li> <li role="presentation"><button type="button" class="hidden-xs btn-link icon quote" style="cursor: pointer;" aria-label="{{$edquote}}" title="{{$edquote}}" onclick="insertFormattingToPost('quote');"><i class="fa fa-quote-left"></i></button></li>
<li role="presentation"><button type="button" class="btn-link" id="profile-link" ondragenter="return linkdropper(event);" ondragover="return linkdropper(event);" ondrop="linkdrop(event);" onclick="jotGetLink();" title="{{$weblink}}"><i class="fa fa-link"></i></button></li> <li role="presentation"><button type="button" class="btn-link icon" style="cursor: pointer;" aria-label="{{$edurl}}" title="{{$edurl}}" onclick="insertFormattingToPost('url');"><i class="fa fa-link"></i></button></li>
<li role="presentation"><button type="button" class="btn-link" id="profile-video" onclick="jotVideoURL();" title="{{$video}}"><i class="fa fa-film" aria-hidden="true"></i></button></li> <li role="presentation"><button type="button" class="btn-link" id="profile-attach" ondragenter="return linkDropper(event);" ondragover="return linkDropper(event);" ondrop="linkDrop(event);" onclick="jotGetLink();" title="{{$edattach}}"><i class="fa fa-paperclip"></i></button></li>
<li role="presentation"><button type="button" class="btn-link" id="profile-audio" onclick="jotAudioURL();" title="{{$audio}}"><i class="fa fa-music" aria-hidden="true"></i></button></li>
<li role="presentation"><button type="button" class="btn-link" id="profile-location" onclick="jotGetLocation();" title="{{$setloc}}"><i class="fa fa-map-marker" aria-hidden="true"></i></button></li> <li role="presentation"><button type="button" class="btn-link" id="profile-location" onclick="jotGetLocation();" title="{{$setloc}}"><i class="fa fa-map-marker" aria-hidden="true"></i></button></li>
<!-- TODO: waiting for a better placement <!-- TODO: waiting for a better placement
<li><button type="button" class="btn-link" id="profile-nolocation" onclick="jotClearLocation();" title="{{$noloc}}">{{$shortnoloc}}</button></li> <li><button type="button" class="btn-link" id="profile-nolocation" onclick="jotClearLocation();" title="{{$noloc}}">{{$shortnoloc}}</button></li>