2013-02-26 10:09:41 +01:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html>
|
2013-09-25 21:27:50 +02:00
|
|
|
<head>{include="includes"}
|
2015-03-06 21:29:56 +01:00
|
|
|
<link type="text/css" rel="stylesheet" href="../inc/awesomplete.css" />
|
|
|
|
<script src="inc/awesomplete.min.js#"></script>
|
2013-09-25 21:27:50 +02:00
|
|
|
</head>
|
2013-03-04 10:18:39 +01:00
|
|
|
<body
|
2013-10-23 23:21:36 +02:00
|
|
|
{if="$link.title==''"}onload="document.linkform.lf_title.focus();"
|
|
|
|
{elseif="$link.description==''"}onload="document.linkform.lf_description.focus();"
|
2013-02-26 10:09:41 +01:00
|
|
|
{else}onload="document.linkform.lf_tags.focus();"{/if} >
|
|
|
|
<div id="pageheader">
|
2015-05-11 18:42:54 +02:00
|
|
|
{if="$source !== 'firefoxsocialapi'"}
|
2013-02-26 10:09:41 +01:00
|
|
|
{include="page.header"}
|
2015-05-11 18:42:54 +02:00
|
|
|
{/if}
|
2013-02-26 10:09:41 +01:00
|
|
|
<div id="editlinkform">
|
|
|
|
<form method="post" name="linkform">
|
|
|
|
<input type="hidden" name="lf_linkdate" value="{$link.linkdate}">
|
2015-06-11 13:53:27 +02:00
|
|
|
<label for="lf_url"><i>URL</i></label><br><input type="text" name="lf_url" id="lf_url" value="{$link.url}" class="lf_input"><br>
|
|
|
|
<label for="lf_title"><i>Title</i></label><br><input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input"><br>
|
|
|
|
<label for="lf_description"><i>Description</i></label><br><textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea><br>
|
2015-03-06 21:29:56 +01:00
|
|
|
<label for="lf_tags"><i>Tags</i></label><br>
|
2015-06-24 05:35:36 +02:00
|
|
|
<input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input"
|
2015-03-06 21:29:56 +01:00
|
|
|
data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" ><br>
|
2015-07-15 11:47:12 +02:00
|
|
|
|
|
|
|
{loop="$edit_link_plugin"}
|
|
|
|
{$value}
|
|
|
|
{/loop}
|
|
|
|
|
2013-10-23 23:21:36 +02:00
|
|
|
{if="($link_is_new && $GLOBALS['privateLinkByDefault']==true) || $link.private == true"}
|
2013-03-04 10:18:39 +01:00
|
|
|
<input type="checkbox" checked="checked" name="lf_private" id="lf_private">
|
|
|
|
<label for="lf_private"><i>Private</i></label><br>
|
|
|
|
{else}
|
|
|
|
<input type="checkbox" name="lf_private" id="lf_private">
|
|
|
|
<label for="lf_private"><i>Private</i></label><br>
|
|
|
|
{/if}
|
2014-12-02 21:00:52 +01:00
|
|
|
<input type="submit" value="Save" name="save_edit" class="bigbutton">
|
|
|
|
<input type="submit" value="Cancel" name="cancel_edit" class="bigbutton">
|
|
|
|
{if="!$link_is_new"}<input type="submit" value="Delete" name="delete_link" class="bigbutton delete" onClick="return confirmDeleteLink();">{/if}
|
2013-02-26 10:09:41 +01:00
|
|
|
<input type="hidden" name="token" value="{$token}">
|
2015-06-11 13:53:27 +02:00
|
|
|
{if="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer}">{/if}
|
2013-02-26 10:09:41 +01:00
|
|
|
</form>
|
|
|
|
</div>
|
|
|
|
</div>
|
2015-05-11 18:42:54 +02:00
|
|
|
{if="$source !== 'firefoxsocialapi'"}
|
2013-02-26 10:09:41 +01:00
|
|
|
{include="page.footer"}
|
2015-05-11 18:42:54 +02:00
|
|
|
{/if}
|
2015-03-06 21:29:56 +01:00
|
|
|
{if="($GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn())"}
|
2015-01-08 15:09:46 +01:00
|
|
|
<script>
|
2015-03-06 21:29:56 +01:00
|
|
|
$ = Awesomplete.$;
|
2015-07-08 16:28:31 +02:00
|
|
|
awesomplete = new Awesomplete($('input[data-multiple]'), {
|
2015-03-06 21:29:56 +01:00
|
|
|
filter: function(text, input) {
|
|
|
|
return Awesomplete.FILTER_CONTAINS(text, input.match(/[^ ]*$/)[0]);
|
|
|
|
},
|
|
|
|
replace: function(text) {
|
|
|
|
var before = this.input.value.match(/^.+ \s*|/)[0];
|
|
|
|
this.input.value = before + text + " ";
|
|
|
|
},
|
|
|
|
minChars: 1
|
|
|
|
});
|
2015-07-08 16:28:31 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Remove already selected items from autocompletion list.
|
|
|
|
* HTML list is never updated, so removing a tag will add it back to awesomplete.
|
|
|
|
*
|
|
|
|
* FIXME: This a workaround waiting for awesomplete to handle this.
|
|
|
|
* https://github.com/LeaVerou/awesomplete/issues/16749
|
|
|
|
*/
|
|
|
|
var input = document.querySelector('#lf_tags');
|
|
|
|
input.addEventListener('input', function()
|
|
|
|
{
|
|
|
|
proposedTags = input.getAttribute('data-list').replace(/,/g, '').split(' ');
|
|
|
|
reg = /(\w+) /g;
|
|
|
|
while((match = reg.exec(input.value)) !== null) {
|
|
|
|
id = proposedTags.indexOf(match[1]);
|
|
|
|
if(id != -1 ) {
|
|
|
|
proposedTags.splice(id, 1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
awesomplete.list = proposedTags;
|
|
|
|
});
|
2013-09-25 21:27:50 +02:00
|
|
|
</script>
|
|
|
|
{/if}
|
2013-02-26 10:09:41 +01:00
|
|
|
</body>
|
2013-10-23 23:21:36 +02:00
|
|
|
</html>
|