added: fetch title for external links (remote mode only)
changed: hide link popup when press escape
This commit is contained in:
parent
b61688a486
commit
b40446789b
11
handler.php
11
handler.php
|
@ -53,6 +53,17 @@ else if (isset($_POST['action']))
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'title':
|
||||||
|
$result = array();
|
||||||
|
$str = file_get_contents($_POST['data']);
|
||||||
|
if(strlen($str) > 0)
|
||||||
|
{
|
||||||
|
preg_match("/\<title\>(.*)\<\/title\>/", $str, $title);
|
||||||
|
$result['title'] = $title[1];
|
||||||
|
}
|
||||||
|
echo json_encode($result);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
echo '{"error": "unknown action ' . $action . '"}';
|
echo '{"error": "unknown action ' . $action . '"}';
|
||||||
break;
|
break;
|
||||||
|
|
37
main.js
37
main.js
|
@ -40,6 +40,7 @@ var pending = false;
|
||||||
var settings = null;
|
var settings = null;
|
||||||
var tags = null;
|
var tags = null;
|
||||||
var linkpopupid = null;
|
var linkpopupid = null;
|
||||||
|
var titlemap = {};
|
||||||
|
|
||||||
var stat =
|
var stat =
|
||||||
{
|
{
|
||||||
|
@ -806,12 +807,36 @@ function showlinkdialog(link)
|
||||||
var a = document.createElement("a");
|
var a = document.createElement("a");
|
||||||
a.setAttribute("id", "linkelt");
|
a.setAttribute("id", "linkelt");
|
||||||
|
|
||||||
if (link.startsWith("https://"))
|
if (link.startsWith("http"))
|
||||||
{
|
{
|
||||||
a.setAttribute("href", link);
|
a.setAttribute("href", link);
|
||||||
a.setAttribute("target", "_blank");
|
a.setAttribute("target", "_blank");
|
||||||
a.innerText = link;
|
|
||||||
div.onclick = removelinkdialog;
|
div.onclick = removelinkdialog;
|
||||||
|
|
||||||
|
if (settings.sync)
|
||||||
|
{
|
||||||
|
if (titlemap[link])
|
||||||
|
{
|
||||||
|
a.innerText = titlemap[link];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
a.innerText = link;
|
||||||
|
queryremote({action: "title", data: link})
|
||||||
|
.then(res =>
|
||||||
|
{
|
||||||
|
if (res.title)
|
||||||
|
{
|
||||||
|
a.innerText = res.title;
|
||||||
|
titlemap[link] = res.title;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
a.innerText = link;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -854,7 +879,7 @@ function clickeditor()
|
||||||
searchinlist(tags[tag.toLowerCase()])
|
searchinlist(tags[tag.toLowerCase()])
|
||||||
.then(loadnote);
|
.then(loadnote);
|
||||||
}
|
}
|
||||||
else if (word.startsWith("https://"))
|
else if (word.startsWith("http"))
|
||||||
{
|
{
|
||||||
window.open(word, '_blank');
|
window.open(word, '_blank');
|
||||||
}
|
}
|
||||||
|
@ -870,7 +895,7 @@ function clickeditor()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var word = wordatpos();
|
var word = wordatpos();
|
||||||
if (word.startsWith("https://"))
|
if (word.startsWith("http"))
|
||||||
{
|
{
|
||||||
showlinkdialog(word);
|
showlinkdialog(word);
|
||||||
}
|
}
|
||||||
|
@ -2569,6 +2594,10 @@ function esc(event)
|
||||||
filter.placeholder = "Search...";
|
filter.placeholder = "Search...";
|
||||||
md.focus();
|
md.focus();
|
||||||
}
|
}
|
||||||
|
else if (settings.uselinkpopup && typeof linkdialog != "undefined")
|
||||||
|
{
|
||||||
|
removelinkdialog();
|
||||||
|
}
|
||||||
else if (currentnote.title == "Help" || currentnote.title == "Search result")
|
else if (currentnote.title == "Help" || currentnote.title == "Search result")
|
||||||
{
|
{
|
||||||
loadlast();
|
loadlast();
|
||||||
|
|
Loading…
Reference in New Issue