aboutsummaryrefslogtreecommitdiffhomepage
path: root/tpl/editlink.html
blob: 3733ca2185a94ca9a3df7cf48410c17175e476eb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<!DOCTYPE html>
<html>
<head>{include="includes"}
    <link type="text/css" rel="stylesheet" href="../inc/awesomplete.css" />
    <script src="inc/awesomplete.min.js#"></script>
</head>
<body
{if="$link.title==''"}onload="document.linkform.lf_title.focus();"
{elseif="$link.description==''"}onload="document.linkform.lf_description.focus();"
{else}onload="document.linkform.lf_tags.focus();"{/if} >
<div id="pageheader">
	{if="$source !== 'firefoxsocialapi'"}
	{include="page.header"}
	{/if}
	<div id="editlinkform">
	    <form method="post" name="linkform">
	        <input type="hidden" name="lf_linkdate" value="{$link.linkdate}">
	        <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>
            <label for="lf_tags"><i>Tags</i></label><br>
            <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input"
                data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" ><br>
	        {if="($link_is_new && $GLOBALS['privateLinkByDefault']==true) || $link.private == true"}
            <input type="checkbox" checked="checked" name="lf_private" id="lf_private">
            &nbsp;<label for="lf_private"><i>Private</i></label><br>
            {else}
            <input type="checkbox"  name="lf_private" id="lf_private">
            &nbsp;<label for="lf_private"><i>Private</i></label><br>
            {/if}
	        <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}
	        <input type="hidden" name="token" value="{$token}">
	        {if="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer}">{/if}
	    </form>
	</div>
</div>
{if="$source !== 'firefoxsocialapi'"}
{include="page.footer"}
{/if}
{if="($GLOBALS['config']['OPEN_SHAARLI'] || isLoggedIn())"}
<script>
    $ = Awesomplete.$;
    awesomplete = new Awesomplete($('input[data-multiple]'), {
        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
    });

    /**
     * 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;
    });
</script>
{/if}
</body>
</html>