aboutsummaryrefslogtreecommitdiffhomepage
path: root/tpl/default
diff options
context:
space:
mode:
Diffstat (limited to 'tpl/default')
-rw-r--r--tpl/default/404.html2
-rw-r--r--tpl/default/addlink.html58
-rw-r--r--tpl/default/changepassword.html2
-rw-r--r--tpl/default/changetag.html8
-rw-r--r--tpl/default/configure.html6
-rw-r--r--tpl/default/daily.html40
-rw-r--r--tpl/default/dailyrss.html51
-rw-r--r--tpl/default/editlink.batch.html32
-rw-r--r--tpl/default/editlink.html48
-rw-r--r--tpl/default/error.html2
-rw-r--r--tpl/default/export.html3
-rw-r--r--tpl/default/feed.atom.html2
-rw-r--r--tpl/default/feed.rss.html4
-rw-r--r--tpl/default/import.html2
-rw-r--r--tpl/default/includes.html21
-rw-r--r--tpl/default/install.html12
-rw-r--r--tpl/default/linklist.html54
-rw-r--r--tpl/default/linklist.paging.html59
-rw-r--r--tpl/default/opensearch.html4
-rw-r--r--tpl/default/page.footer.html9
-rw-r--r--tpl/default/page.header.html56
-rw-r--r--tpl/default/picwall.html86
-rw-r--r--tpl/default/pluginsadmin.html9
-rw-r--r--tpl/default/server.html129
-rw-r--r--tpl/default/server.requirements.html68
-rw-r--r--tpl/default/tag.cloud.html6
-rw-r--r--tpl/default/tag.list.html10
-rw-r--r--tpl/default/tag.sort.html8
-rw-r--r--tpl/default/thumbnails.html2
-rw-r--r--tpl/default/tools.html28
30 files changed, 618 insertions, 203 deletions
diff --git a/tpl/default/404.html b/tpl/default/404.html
index 09737b4b..7b696e4c 100644
--- a/tpl/default/404.html
+++ b/tpl/default/404.html
@@ -8,7 +8,7 @@
8 {include="page.header"} 8 {include="page.header"}
9<div id="pageError" class="page-error-container center"> 9<div id="pageError" class="page-error-container center">
10 <h2>{'Sorry, nothing to see here.'|t}</h2> 10 <h2>{'Sorry, nothing to see here.'|t}</h2>
11 <img src="img/sad_star.png" alt=""> 11 <img src="{$asset_path}/img/sad_star.png#" alt="">
12 <p>{$error_message}</p> 12 <p>{$error_message}</p>
13</div> 13</div>
14{include="page.footer"} 14{include="page.footer"}
diff --git a/tpl/default/addlink.html b/tpl/default/addlink.html
index b4b4a0ec..4aac7ff1 100644
--- a/tpl/default/addlink.html
+++ b/tpl/default/addlink.html
@@ -9,7 +9,7 @@
9 <div class="pure-u-lg-1-3 pure-u-1-24"></div> 9 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
10 <div id="addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24"> 10 <div id="addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24">
11 <h2 class="window-title">{"Shaare a new link"|t}</h2> 11 <h2 class="window-title">{"Shaare a new link"|t}</h2>
12 <form method="GET" action="#" name="addform" class="addform"> 12 <form method="GET" action="{$base_path}/admin/shaare" name="addform" class="addform">
13 <div> 13 <div>
14 <label for="shaare">{'URL or leave empty to post a note'|t}</label> 14 <label for="shaare">{'URL or leave empty to post a note'|t}</label>
15 <input type="text" name="post" id="shaare" class="autofocus"> 15 <input type="text" name="post" id="shaare" class="autofocus">
@@ -20,6 +20,62 @@
20 </form> 20 </form>
21 </div> 21 </div>
22</div> 22</div>
23
24<div class="pure-g addlink-batch-show-more-block pure-u-0">
25 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
26 <div class="pure-u-lg-1-3 pure-u-22-24 addlink-batch-show-more">
27 <a href="#">{'BULK CREATION'|t}&nbsp;<i class="fa fa-plus-circle" aria-hidden="true"></i></a>
28 </div>
29</div>
30
31<div class="addlink-batch-form-block">
32 {if="empty($async_metadata)"}
33 <div class="pure-g pure-alert pure-alert-warning pure-alert-closable">
34 <div class="pure-u-2-24"></div>
35 <div class="pure-u-20-24">
36 <p>
37 {'Metadata asynchronous retrieval is disabled.'|t}
38 {'We recommend that you enable the setting <em>general > enable_async_metadata</em> in your configuration file to use bulk link creation.'|t}
39 </p>
40 </div>
41 <div class="pure-u-2-24">
42 <i class="fa fa-times pure-alert-close"></i>
43 </div>
44 </div>
45 {/if}
46
47 <div class="pure-g">
48 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
49 <div id="batch-addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24">
50 <h2 class="window-title">{"Shaare multiple new links"|t}</h2>
51 <form method="POST" action="{$base_path}/admin/shaare-batch" name="batch-addform" class="batch-addform">
52 <div>
53 <label for="urls">{'Add one URL per line to create multiple bookmarks.'|t}</label>
54 <textarea name="urls" id="urls"></textarea>
55
56 <div>
57 <label for="tags">{'Tags'|t}</label>
58 </div>
59 <div>
60 <input type="text" name="tags" id="tags" class="lf_input"
61 data-list="{loop="$tags"}{$key}, {/loop}" data-multiple data-autofirst autocomplete="off">
62 </div>
63
64 <div>
65 <input type="hidden" name="private" value="0">
66 <input type="checkbox" name="private" {if="$default_private_links"} checked="checked"{/if}>
67 &nbsp; <label for="lf_private">{'Private'|t}</label>
68 </div>
69 </div>
70 <div>
71 <input type="hidden" name="token" value="{$token}">
72 <input type="submit" value="{'Add links'|t}">
73 </div>
74 </form>
75 </div>
76 </div>
77</div>
78
23{include="page.footer"} 79{include="page.footer"}
24</body> 80</body>
25</html> 81</html>
diff --git a/tpl/default/changepassword.html b/tpl/default/changepassword.html
index ab579433..736774f3 100644
--- a/tpl/default/changepassword.html
+++ b/tpl/default/changepassword.html
@@ -9,7 +9,7 @@
9 <div class="pure-u-lg-1-3 pure-u-1-24"></div> 9 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
10 <div id="addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24"> 10 <div id="addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24">
11 <h2 class="window-title">{"Change password"|t}</h2> 11 <h2 class="window-title">{"Change password"|t}</h2>
12 <form method="POST" action="#" name="changepasswordform" id="changepasswordform"> 12 <form method="POST" action="{$base_path}/admin/password" name="changepasswordform" id="changepasswordform">
13 <div> 13 <div>
14 <input type="password" name="oldpassword" aria-label="{'Current password'|t}" placeholder="{'Current password'|t}" class="autofocus"> 14 <input type="password" name="oldpassword" aria-label="{'Current password'|t}" placeholder="{'Current password'|t}" class="autofocus">
15 </div> 15 </div>
diff --git a/tpl/default/changetag.html b/tpl/default/changetag.html
index ec6e0b46..89d08e2c 100644
--- a/tpl/default/changetag.html
+++ b/tpl/default/changetag.html
@@ -9,7 +9,7 @@
9 <div class="pure-u-lg-1-3 pure-u-1-24"></div> 9 <div class="pure-u-lg-1-3 pure-u-1-24"></div>
10 <div id="addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24"> 10 <div id="addlink-form" class="page-form page-form-light pure-u-lg-1-3 pure-u-22-24">
11 <h2 class="window-title">{"Manage tags"|t}</h2> 11 <h2 class="window-title">{"Manage tags"|t}</h2>
12 <form method="POST" action="#" name="changetag" id="changetag"> 12 <form method="POST" action="{$base_path}/admin/tags" name="changetag" id="changetag">
13 <div> 13 <div>
14 <input type="text" name="fromtag" aria-label="{'Tag'|t}" placeholder="{'Tag'|t}" value="{$fromtag}" 14 <input type="text" name="fromtag" aria-label="{'Tag'|t}" placeholder="{'Tag'|t}" value="{$fromtag}"
15 list="tagsList" autocomplete="off" class="awesomplete autofocus" data-minChars="1"> 15 list="tagsList" autocomplete="off" class="awesomplete autofocus" data-minChars="1">
@@ -27,12 +27,12 @@
27 <div><i class="fa fa-info-circle" aria-hidden="true"></i> {'Case sensitive'|t}</div> 27 <div><i class="fa fa-info-circle" aria-hidden="true"></i> {'Case sensitive'|t}</div>
28 <input type="hidden" name="token" value="{$token}"> 28 <input type="hidden" name="token" value="{$token}">
29 <div> 29 <div>
30 <input type="submit" value="{'Rename'|t}" name="renametag"> 30 <input type="submit" value="{'Rename tag'|t}" name="renametag">
31 <input type="submit" value="{'Delete'|t}" name="deletetag" class="button button-red confirm-delete"> 31 <input type="submit" value="{'Delete tag'|t}" name="deletetag" class="button button-red confirm-delete">
32 </div> 32 </div>
33 </form> 33 </form>
34 34
35 <p>{'You can also edit tags in the'|t} <a href="?do=taglist&sort=usage">{'tag list'|t}</a>.</p> 35 <p>{'You can also edit tags in the'|t} <a href="{$base_path}/tags/list?sort=usage">{'tag list'|t}</a>.</p>
36 </div> 36 </div>
37</div> 37</div>
38{include="page.footer"} 38{include="page.footer"}
diff --git a/tpl/default/configure.html b/tpl/default/configure.html
index 8b75900d..bb2564af 100644
--- a/tpl/default/configure.html
+++ b/tpl/default/configure.html
@@ -11,7 +11,7 @@
11{$ratioInput='7-12'} 11{$ratioInput='7-12'}
12{$ratioInputMobile='1-8'} 12{$ratioInputMobile='1-8'}
13 13
14<form method="POST" action="#" name="configform" id="configform"> 14<form method="POST" action="{$base_path}/admin/configure" name="configform" id="configform">
15 <div class="pure-g"> 15 <div class="pure-g">
16 <div class="pure-u-lg-1-8 pure-u-1-24"></div> 16 <div class="pure-u-lg-1-8 pure-u-1-24"></div>
17 <div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-complete"> 17 <div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-complete">
@@ -35,7 +35,7 @@
35 <div class="form-label"> 35 <div class="form-label">
36 <label for="titleLink"> 36 <label for="titleLink">
37 <span class="label-name">{'Home link'|t}</span><br> 37 <span class="label-name">{'Home link'|t}</span><br>
38 <span class="label-desc">{'Default value'|t}: ?</span> 38 <span class="label-desc">{'Default value'|t}: {$base_path}/</span>
39 </label> 39 </label>
40 </div> 40 </div>
41 </div> 41 </div>
@@ -289,7 +289,7 @@
289 {if="! $gd_enabled"} 289 {if="! $gd_enabled"}
290 {'You need to enable the extension <code>php-gd</code> to use thumbnails.'|t} 290 {'You need to enable the extension <code>php-gd</code> to use thumbnails.'|t}
291 {elseif="$thumbnails_enabled"} 291 {elseif="$thumbnails_enabled"}
292 <a href="?do=thumbs_update">{'Synchronize thumbnails'|t}</a> 292 <a href="{$base_path}/admin/thumbnails">{'Synchronize thumbnails'|t}</a>
293 {/if} 293 {/if}
294 </span> 294 </span>
295 </label> 295 </label>
diff --git a/tpl/default/daily.html b/tpl/default/daily.html
index 6b5103a4..5e038c39 100644
--- a/tpl/default/daily.html
+++ b/tpl/default/daily.html
@@ -7,11 +7,24 @@
7{include="page.header"} 7{include="page.header"}
8 8
9<div class="pure-g"> 9<div class="pure-g">
10 <div class="pure-u-1 pure-alert pure-alert-success tag-sort">
11 <a href="{$base_path}/daily?day">{'Daily'|t}</a>
12 <a href="{$base_path}/daily?week">{'Weekly'|t}</a>
13 <a href="{$base_path}/daily?month">{'Monthly'|t}</a>
14 </div>
15</div>
16
17
18<div class="pure-g">
10 <div class="pure-u-lg-1-6 pure-u-1-24"></div> 19 <div class="pure-u-lg-1-6 pure-u-1-24"></div>
11 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor" id="daily"> 20 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor" id="daily">
12 <h2 class="window-title"> 21 <h2 class="window-title">
13 {'The Daily Shaarli'|t} 22 {$localizedType} Shaarli
14 <a href="?do=dailyrss" title="{'1 RSS entry per day'|t}"><i class="fa fa-rss"></i></a> 23 <a href="{$base_path}/daily-rss?{$type}"
24 title="{function="t('1 RSS entry per :type', '', 1, 'shaarli', [':type' => t($type)])"}"
25 >
26 <i class="fa fa-rss"></i>
27 </a>
15 </h2> 28 </h2>
16 29
17 <div id="plugin_zone_start_daily" class="plugin_zone"> 30 <div id="plugin_zone_start_daily" class="plugin_zone">
@@ -25,19 +38,19 @@
25 <div class="pure-g"> 38 <div class="pure-g">
26 <div class="pure-u-lg-1-3 pure-u-1 center"> 39 <div class="pure-u-lg-1-3 pure-u-1 center">
27 {if="$previousday"} 40 {if="$previousday"}
28 <a href="?do=daily&amp;day={$previousday}"> 41 <a href="{$base_path}/daily?{$type}={$previousday}">
29 <i class="fa fa-arrow-left"></i> 42 <i class="fa fa-arrow-left"></i>
30 {'Previous day'|t} 43 {function="t('Previous :type', '', 1, 'shaarli', [':type' => t($type)], true)"}
31 </a> 44 </a>
32 {/if} 45 {/if}
33 </div> 46 </div>
34 <div class="daily-desc pure-u-lg-1-3 pure-u-1 center"> 47 <div class="daily-desc pure-u-lg-1-3 pure-u-1 center">
35 {'All links of one day in a single page.'|t} 48 {function="t('All links of one :type in a single page.', '', 1, 'shaarli', [':type' => t($type)])"}
36 </div> 49 </div>
37 <div class="pure-u-lg-1-3 pure-u-1 center"> 50 <div class="pure-u-lg-1-3 pure-u-1 center">
38 {if="$nextday"} 51 {if="$nextday"}
39 <a href="?do=daily&amp;day={$nextday}"> 52 <a href="{$base_path}/daily?{$type}={$nextday}">
40 {'Next day'|t} 53 {function="t('Next :type', '', 1, 'shaarli', [':type' => t($type)], true)"}
41 <i class="fa fa-arrow-right"></i> 54 <i class="fa fa-arrow-right"></i>
42 </a> 55 </a>
43 {/if} 56 {/if}
@@ -45,10 +58,7 @@
45 </div> 58 </div>
46 <div> 59 <div>
47 <h3 class="window-subtitle"> 60 <h3 class="window-subtitle">
48 {if="!empty($dayDesc)"} 61 {$dayDesc}
49 {$dayDesc} -
50 {/if}
51 {function="format_date($dayDate, false)"}
52 </h3> 62 </h3>
53 63
54 <div id="plugin_zone_about_daily" class="plugin_zone"> 64 <div id="plugin_zone_about_daily" class="plugin_zone">
@@ -69,14 +79,14 @@
69 {$link=$value} 79 {$link=$value}
70 <div class="daily-entry"> 80 <div class="daily-entry">
71 <div class="daily-entry-title center"> 81 <div class="daily-entry-title center">
72 <a href="?{$link.shorturl}" title="{'Permalink'|t}"> 82 <a href="{$base_path}/?{$link.shorturl}" title="{'Permalink'|t}">
73 <i class="fa fa-link"></i> 83 <i class="fa fa-link"></i>
74 </a> 84 </a>
75 <a href="{$link.real_url}">{$link.title}</a> 85 <a href="{$link.real_url}">{$link.title}</a>
76 </div> 86 </div>
77 {if="$thumbnails_enabled && !empty($link.thumbnail)"} 87 {if="$thumbnails_enabled && !empty($link.thumbnail)"}
78 <div class="daily-entry-thumbnail"> 88 <div class="daily-entry-thumbnail">
79 <img data-src="{$link.thumbnail}#" class="b-lazy" 89 <img data-src="{$root_path}/{$link.thumbnail}#" class="b-lazy"
80 src="" 90 src=""
81 alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" /> 91 alt="thumbnail" width="{$thumbnails_width}" height="{$thumbnails_height}" />
82 </div> 92 </div>
@@ -85,7 +95,7 @@
85 {if="$link.tags"} 95 {if="$link.tags"}
86 <div class="daily-entry-tags center"> 96 <div class="daily-entry-tags center">
87 {loop="link.taglist"} 97 {loop="link.taglist"}
88 <span class="label label-tag" title="Add tag"> 98 <span class="label label-tag">
89 {$value} 99 {$value}
90 </span> 100 </span>
91 {/loop} 101 {/loop}
@@ -116,7 +126,7 @@
116 </div> 126 </div>
117</div> 127</div>
118{include="page.footer"} 128{include="page.footer"}
119<script src="js/thumbnails.min.js?v={$version_hash}"></script> 129<script src="{$asset_path}/js/thumbnails.min.js?v={$version_hash}#"></script>
120</body> 130</body>
121</html> 131</html>
122 132
diff --git a/tpl/default/dailyrss.html b/tpl/default/dailyrss.html
index f589b06e..871a3ba7 100644
--- a/tpl/default/dailyrss.html
+++ b/tpl/default/dailyrss.html
@@ -1,16 +1,35 @@
1<item> 1<?xml version="1.0" encoding="UTF-8"?>
2 <title>{$title} - {function="strftime('%A %e %B %Y', $daydate)"}</title> 2<rss version="2.0">
3 <guid>{$absurl}</guid> 3 <channel>
4 <link>{$absurl}</link> 4 <title>{$localizedType} - {$title}</title>
5 <pubDate>{$rssdate}</pubDate> 5 <link>{$index_url}</link>
6 <description><![CDATA[ 6 <description>{function="t('All links of one :type in a single page.', '', 1, 'shaarli', [':type' => t($type)])"}</description>
7 {loop="links"} 7 <language>{$language}</language>
8 <h3><a href="{$value.url}">{$value.title}</a></h3> 8 <copyright>{$index_url}</copyright>
9 <small>{if="!$hide_timestamps"}{function="strftime('%c', $value.timestamp)"} - {/if}{if="$value.tags"}{$value.tags}{/if}<br> 9 <generator>Shaarli</generator>
10 {$value.url}</small><br> 10
11 {if="$value.thumbnail"}<img src="{$index_url}{$value.thumbnail}#" alt="thumbnail" />{/if}<br> 11 {loop="$days"}
12 {if="$value.description"}{$value.formatedDescription}{/if} 12 <item>
13 <br><br><hr> 13 <title>{$value.date_human} - {$title}</title>
14 {/loop} 14 <guid>{$value.absolute_url}</guid>
15 ]]></description> 15 <link>{$value.absolute_url}</link>
16</item> 16 <pubDate>{$value.date_rss}</pubDate>
17 <description><![CDATA[
18 {loop="$value.links"}
19 <h3><a href="{$value.url}">{$value.title}</a></h3>
20 <small>
21 {if="!$hide_timestamps"}{$value.created|format_date} &#8212; {/if}
22 <a href="{$index_url}shaare/{$value.shorturl}">{'Permalink'|t}</a>
23 {if="$value.tags"} &#8212; {$value.tags}{/if}
24 <br>
25 {$value.url}
26 </small><br>
27 {if="$value.thumbnail"}<img src="{$index_url}{$value.thumbnail}#" alt="thumbnail" />{/if}<br>
28 {if="$value.description"}{$value.description}{/if}
29 <br><hr>
30 {/loop}
31 ]]></description>
32 </item>
33 {/loop}
34 </channel>
35</rss><!-- Cached version of {$page_url} -->
diff --git a/tpl/default/editlink.batch.html b/tpl/default/editlink.batch.html
new file mode 100644
index 00000000..b1f8e5bd
--- /dev/null
+++ b/tpl/default/editlink.batch.html
@@ -0,0 +1,32 @@
1<!DOCTYPE html>
2<html{if="$language !== 'auto'"} lang="{$language}"{/if}>
3<head>
4 {include="includes"}
5</head>
6<body>
7<div class="dark-layer">
8 <div class="screen-center">
9 <div><span class="progressbar-current"></span> / <span class="progressbar-max"></span></div>
10 <div class="progressbar">
11 <div></div>
12 </div>
13 </div>
14</div>
15
16{include="page.header"}
17
18<div class="center">
19 <input type="submit" name="save_edit_batch" class="pure-button-shaarli" value="{'Save all'|t}">
20</div>
21
22{loop="$links"}
23 {include="editlink"}
24{/loop}
25
26<div class="center">
27 <input type="submit" name="save_edit_batch" class="pure-button-shaarli" value="{'Save all'|t}">
28</div>
29
30{include="page.footer"}
31{if="$async_metadata"}<script src="{$asset_path}/js/metadata.min.js?v={$version_hash}#"></script>{/if}
32<script src="{$asset_path}/js/shaare_batch.min.js?v={$version_hash}#"></script>
diff --git a/tpl/default/editlink.html b/tpl/default/editlink.html
index d16059a3..83e541fd 100644
--- a/tpl/default/editlink.html
+++ b/tpl/default/editlink.html
@@ -1,3 +1,4 @@
1{if="empty($batch_mode)"}
1<!DOCTYPE html> 2<!DOCTYPE html>
2<html{if="$language !== 'auto'"} lang="{$language}"{/if}> 3<html{if="$language !== 'auto'"} lang="{$language}"{/if}>
3<head> 4<head>
@@ -5,9 +6,19 @@
5</head> 6</head>
6<body> 7<body>
7 {include="page.header"} 8 {include="page.header"}
9{else}
10 {ignore}Lil hack: when included in a loop in batch mode, `$value` is assigned by RainTPL with template vars.{/ignore}
11 {function="extract($value) ? '' : ''"}
12{/if}
8 <div id="editlinkform" class="edit-link-container" class="pure-g"> 13 <div id="editlinkform" class="edit-link-container" class="pure-g">
9 <div class="pure-u-lg-1-5 pure-u-1-24"></div> 14 <div class="pure-u-lg-1-5 pure-u-1-24"></div>
10 <form method="post" name="linkform" class="page-form pure-u-lg-3-5 pure-u-22-24 page-form page-form-light"> 15 <form method="post"
16 name="linkform"
17 action="{$base_path}/admin/shaare"
18 class="page-form pure-u-lg-3-5 pure-u-22-24 page-form page-form-light"
19 >
20 {$asyncLoadClass=$link_is_new && $async_metadata && empty($link.title) ? 'loading-input' : ''}
21
11 <h2 class="window-title"> 22 <h2 class="window-title">
12 {if="!$link_is_new"}{'Edit Shaare'|t}{else}{'New Shaare'|t}{/if} 23 {if="!$link_is_new"}{'Edit Shaare'|t}{else}{'New Shaare'|t}{/if}
13 </h2> 24 </h2>
@@ -24,26 +35,37 @@
24 <div> 35 <div>
25 <label for="lf_title">{'Title'|t}</label> 36 <label for="lf_title">{'Title'|t}</label>
26 </div> 37 </div>
27 <div> 38 <div class="{$asyncLoadClass}">
28 <input type="text" name="lf_title" id="lf_title" value="{$link.title}" class="lf_input autofocus"> 39 <input type="text" name="lf_title" id="lf_title" value="{$link.title}"
40 class="lf_input {if="!$async_metadata"}autofocus{/if}"
41 >
42 <div class="icon-container">
43 <i class="loader"></i>
44 </div>
29 </div> 45 </div>
30 <div> 46 <div>
31 <label for="lf_description">{'Description'|t}</label> 47 <label for="lf_description">{'Description'|t}</label>
32 </div> 48 </div>
33 <div> 49 <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
34 <textarea name="lf_description" id="lf_description" class="autofocus">{$link.description}</textarea> 50 <textarea name="lf_description" id="lf_description" class="autofocus">{$link.description}</textarea>
51 <div class="icon-container">
52 <i class="loader"></i>
53 </div>
35 </div> 54 </div>
36 <div> 55 <div>
37 <label for="lf_tags">{'Tags'|t}</label> 56 <label for="lf_tags">{'Tags'|t}</label>
38 </div> 57 </div>
39 <div> 58 <div class="{if="$retrieve_description"}{$asyncLoadClass}{/if}">
40 <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input autofocus" 59 <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input autofocus"
41 data-list="{loop="$tags"}{$key}, {/loop}" data-multiple data-autofirst autocomplete="off" > 60 data-list="{loop="$tags"}{$key}, {/loop}" data-multiple data-autofirst autocomplete="off" >
61 <div class="icon-container">
62 <i class="loader"></i>
63 </div>
42 </div> 64 </div>
43 65
44 <div> 66 <div>
45 <input type="checkbox" name="lf_private" id="lf_private" 67 <input type="checkbox" name="lf_private" id="lf_private"
46 {if="($link_is_new && $default_private_links || $link.private == true)"} 68 {if="$link.private === true"}
47 checked="checked" 69 checked="checked"
48 {/if}> 70 {/if}>
49 &nbsp;<label for="lf_private">{'Private'|t}</label> 71 &nbsp;<label for="lf_private">{'Private'|t}</label>
@@ -66,10 +88,17 @@
66 88
67 89
68 <div class="submit-buttons center"> 90 <div class="submit-buttons center">
91 {if="!empty($batch_mode)"}
92 <a href="#" class="button button-grey" name="cancel-batch-link"
93 title="{'Remove this bookmark from batch creation/modification.'}"
94 >
95 {'Cancel'|t}
96 </a>
97 {/if}
69 <input type="submit" name="save_edit" class="" id="button-save-edit" 98 <input type="submit" name="save_edit" class="" id="button-save-edit"
70 value="{if="$link_is_new"}{'Save'|t}{else}{'Apply Changes'|t}{/if}"> 99 value="{if="$link_is_new"}{'Save'|t}{else}{'Apply Changes'|t}{/if}">
71 {if="!$link_is_new"} 100 {if="!$link_is_new"}
72 <a href="?delete_link&amp;lf_linkdate={$link.id}&amp;token={$token}" 101 <a href="{$base_path}/admin/shaare/delete?id={$link.id}&amp;token={$token}"
73 title="" name="delete_link" class="button button-red confirm-delete"> 102 title="" name="delete_link" class="button button-red confirm-delete">
74 {'Delete'|t} 103 {'Delete'|t}
75 </a> 104 </a>
@@ -77,11 +106,16 @@
77 </div> 106 </div>
78 107
79 <input type="hidden" name="token" value="{$token}"> 108 <input type="hidden" name="token" value="{$token}">
109 <input type="hidden" name="source" value="{$source}">
80 {if="$http_referer"} 110 {if="$http_referer"}
81 <input type="hidden" name="returnurl" value="{$http_referer}"> 111 <input type="hidden" name="returnurl" value="{$http_referer}">
82 {/if} 112 {/if}
83 </form> 113 </form>
84 </div> 114 </div>
115
116{if="empty($batch_mode)"}
85 {include="page.footer"} 117 {include="page.footer"}
118 {if="$link_is_new && $async_metadata"}<script src="{$asset_path}/js/metadata.min.js?v={$version_hash}#"></script>{/if}
86</body> 119</body>
87</html> 120</html>
121{/if}
diff --git a/tpl/default/error.html b/tpl/default/error.html
index ef1dfd73..c3e0c3c1 100644
--- a/tpl/default/error.html
+++ b/tpl/default/error.html
@@ -15,7 +15,7 @@
15 </pre> 15 </pre>
16 {/if} 16 {/if}
17 17
18 <img src="img/sad_star.png" alt=""> 18 <img src="{$asset_path}/img/sad_star.png#" alt="">
19</div> 19</div>
20{include="page.footer"} 20{include="page.footer"}
21</body> 21</body>
diff --git a/tpl/default/export.html b/tpl/default/export.html
index 99c01b11..c9c92943 100644
--- a/tpl/default/export.html
+++ b/tpl/default/export.html
@@ -6,14 +6,13 @@
6<body> 6<body>
7{include="page.header"} 7{include="page.header"}
8 8
9<form method="GET" action="#" name="exportform" id="exportform"> 9<form method="POST" action="{$base_path}/admin/export" name="exportform" id="exportform">
10 <div class="pure-g"> 10 <div class="pure-g">
11 <div class="pure-u-lg-1-4 pure-u-1-24"></div> 11 <div class="pure-u-lg-1-4 pure-u-1-24"></div>
12 <div class="pure-u-lg-1-2 pure-u-22-24 page-form page-form-complete"> 12 <div class="pure-u-lg-1-2 pure-u-22-24 page-form page-form-complete">
13 <div> 13 <div>
14 <h2 class="window-title">{"Export Database"|t}</h2> 14 <h2 class="window-title">{"Export Database"|t}</h2>
15 </div> 15 </div>
16 <input type="hidden" name="do" value="export">
17 <input type="hidden" name="token" value="{$token}"> 16 <input type="hidden" name="token" value="{$token}">
18 17
19 <div class="pure-g"> 18 <div class="pure-g">
diff --git a/tpl/default/feed.atom.html b/tpl/default/feed.atom.html
index bcfa7012..dd58bd1e 100644
--- a/tpl/default/feed.atom.html
+++ b/tpl/default/feed.atom.html
@@ -6,6 +6,8 @@
6 <updated>{$last_update}</updated> 6 <updated>{$last_update}</updated>
7 {/if} 7 {/if}
8 <link rel="self" href="{$self_link}#" /> 8 <link rel="self" href="{$self_link}#" />
9 <link rel="search" type="application/opensearchdescription+xml" href="{$index_url}open-search#"
10 title="Shaarli search - {$shaarlititle}" />
9 {loop="$plugins_feed_header"} 11 {loop="$plugins_feed_header"}
10 {$value} 12 {$value}
11 {/loop} 13 {/loop}
diff --git a/tpl/default/feed.rss.html b/tpl/default/feed.rss.html
index 66d9a869..85cec7f3 100644
--- a/tpl/default/feed.rss.html
+++ b/tpl/default/feed.rss.html
@@ -7,7 +7,9 @@
7 <language>{$language}</language> 7 <language>{$language}</language>
8 <copyright>{$index_url}</copyright> 8 <copyright>{$index_url}</copyright>
9 <generator>Shaarli</generator> 9 <generator>Shaarli</generator>
10 <atom:link rel="self" href="{$self_link}" /> 10 <atom:link rel="self" href="{$self_link}" />
11 <atom:link rel="search" type="application/opensearchdescription+xml" href="{$index_url}open-search#"
12 title="Shaarli search - {$shaarlititle}" />
11 {loop="$plugins_feed_header"} 13 {loop="$plugins_feed_header"}
12 {$value} 14 {$value}
13 {/loop} 15 {/loop}
diff --git a/tpl/default/import.html b/tpl/default/import.html
index c41afcdb..156de71f 100644
--- a/tpl/default/import.html
+++ b/tpl/default/import.html
@@ -6,7 +6,7 @@
6<body> 6<body>
7{include="page.header"} 7{include="page.header"}
8 8
9<form method="POST" action="?do=import" enctype="multipart/form-data" name="uploadform" id="uploadform"> 9<form method="POST" action="{$base_path}/admin/import" enctype="multipart/form-data" name="uploadform" id="uploadform">
10 <div class="pure-g"> 10 <div class="pure-g">
11 <div class="pure-u-lg-1-4 pure-u-1-24"></div> 11 <div class="pure-u-lg-1-4 pure-u-1-24"></div>
12 <div class="pure-u-lg-1-2 pure-u-22-24 page-form page-form-complete"> 12 <div class="pure-u-lg-1-2 pure-u-22-24 page-form page-form-complete">
diff --git a/tpl/default/includes.html b/tpl/default/includes.html
index 3820a4f7..3e3fb664 100644
--- a/tpl/default/includes.html
+++ b/tpl/default/includes.html
@@ -3,21 +3,22 @@
3<meta name="format-detection" content="telephone=no" /> 3<meta name="format-detection" content="telephone=no" />
4<meta name="viewport" content="width=device-width, initial-scale=1"> 4<meta name="viewport" content="width=device-width, initial-scale=1">
5<meta name="referrer" content="same-origin"> 5<meta name="referrer" content="same-origin">
6<link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" /> 6<link rel="alternate" type="application/atom+xml" href="{$feedurl}feed/atom?{$searchcrits}#" title="ATOM Feed" />
7<link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" /> 7<link rel="alternate" type="application/rss+xml" href="{$feedurl}feed/rss?{$searchcrits}#" title="RSS Feed" />
8<link href="img/favicon.png" rel="shortcut icon" type="image/png" /> 8<link href="{$asset_path}/img/favicon.png#" rel="shortcut icon" type="image/png" />
9<link href="img/apple-touch-icon.png" rel="apple-touch-icon" sizes="180x180" /> 9<link href="{$asset_path}/img/apple-touch-icon.png#" rel="apple-touch-icon" sizes="180x180" />
10<link type="text/css" rel="stylesheet" href="css/shaarli.min.css?v={$version_hash}" /> 10<link type="text/css" rel="stylesheet" href="{$asset_path}/css/shaarli.min.css?v={$version_hash}#" />
11{if="$formatter==='markdown'"} 11{if="strpos($formatter, 'markdown') !== false"}
12 <link type="text/css" rel="stylesheet" href="css/markdown.min.css?v={$version_hash}" /> 12 <link type="text/css" rel="stylesheet" href="{$asset_path}/css/markdown.min.css?v={$version_hash}#" />
13{/if} 13{/if}
14{loop="$plugins_includes.css_files"} 14{loop="$plugins_includes.css_files"}
15 <link type="text/css" rel="stylesheet" href="{$value}?v={$version_hash}#"/> 15 <link type="text/css" rel="stylesheet" href="{$root_path}/{$value}?v={$version_hash}#"/>
16{/loop} 16{/loop}
17{if="is_file('data/user.css')"} 17{if="is_file('data/user.css')"}
18 <link type="text/css" rel="stylesheet" href="data/user.css#" /> 18 <link type="text/css" rel="stylesheet" href="{$root_path}/data/user.css#" />
19{/if} 19{/if}
20<link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle}"/> 20<link rel="search" type="application/opensearchdescription+xml" href="{$base_path}/open-search#"
21 title="Shaarli search - {$shaarlititle}" />
21{if="! empty($links) && count($links) === 1"} 22{if="! empty($links) && count($links) === 1"}
22 {$link=reset($links)} 23 {$link=reset($links)}
23 <meta property="og:title" content="{$link.title}" /> 24 <meta property="og:title" content="{$link.title}" />
diff --git a/tpl/default/install.html b/tpl/default/install.html
index c6f501f0..4f98d49d 100644
--- a/tpl/default/install.html
+++ b/tpl/default/install.html
@@ -10,7 +10,7 @@
10{$ratioLabelMobile='7-8'} 10{$ratioLabelMobile='7-8'}
11{$ratioInputMobile='1-8'} 11{$ratioInputMobile='1-8'}
12 12
13<form method="POST" action="#" name="installform" id="installform"> 13<form method="POST" action="{$base_path}/install" name="installform" id="installform">
14<div class="pure-g"> 14<div class="pure-g">
15 <div class="pure-u-lg-1-6 pure-u-1-24"></div> 15 <div class="pure-u-lg-1-6 pure-u-1-24"></div>
16 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-form-complete"> 16 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-form-complete">
@@ -163,6 +163,16 @@
163 </div> 163 </div>
164</div> 164</div>
165</form> 165</form>
166
167<div class="pure-g">
168 <div class="pure-u-lg-1-6 pure-u-1-24"></div>
169 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-form-complete">
170 <h2 class="window-title">{'Server requirements'|t}</h2>
171
172 {include="server.requirements"}
173 </div>
174</div>
175
166{include="page.footer"} 176{include="page.footer"}
167</body> 177</body>
168</html> 178</html>
diff --git a/tpl/default/linklist.html b/tpl/default/linklist.html
index ffc236c7..e1115d49 100644
--- a/tpl/default/linklist.html
+++ b/tpl/default/linklist.html
@@ -94,7 +94,9 @@
94 {'tagged'|t} 94 {'tagged'|t}
95 {loop="$exploded_tags"} 95 {loop="$exploded_tags"}
96 <span class="label label-tag" title="{'Remove tag'|t}"> 96 <span class="label label-tag" title="{'Remove tag'|t}">
97 <a href="?removetag={function="urlencode($value)"}" aria-label="{'Remove tag'|t}">{$value}<span class="remove"><i class="fa fa-times" aria-hidden="true"></i></span></a> 97 <a href="{$base_path}/remove-tag/{function="$search_tags_url.$key1"}" aria-label="{'Remove tag'|t}">
98 {$value}<span class="remove"><i class="fa fa-times" aria-hidden="true"></i></span>
99 </a>
98 </span> 100 </span>
99 {/loop} 101 {/loop}
100 {/if} 102 {/if}
@@ -127,18 +129,23 @@
127 {$strAddTag=t('Add tag')} 129 {$strAddTag=t('Add tag')}
128 {$strToggleSticky=t('Toggle sticky')} 130 {$strToggleSticky=t('Toggle sticky')}
129 {$strSticky=t('Sticky')} 131 {$strSticky=t('Sticky')}
132 {$strShaarePrivate=t('Share a private link')}
130 {ignore}End of translations{/ignore} 133 {ignore}End of translations{/ignore}
131 {loop="links"} 134 {loop="links"}
132 <div class="anchor" id="{$value.shorturl}"></div> 135 <div class="anchor" id="{$value.shorturl}"></div>
133 136
134 <div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}"> 137 <div class="linklist-item linklist-item{if="$value.class"} {$value.class}{/if}" data-id="{$value.id}">
135 <div class="linklist-item-title"> 138 <div class="linklist-item-title">
136 {if="$thumbnails_enabled && !empty($value.thumbnail)"} 139 {if="$thumbnails_enabled && $value.thumbnail !== false"}
137 <div class="linklist-item-thumbnail" style="width:{$thumbnails_width}px;height:{$thumbnails_height}px;"> 140 <div
141 class="linklist-item-thumbnail {if="$value.thumbnail === null"}hidden{/if}"
142 style="width:{$thumbnails_width}px;height:{$thumbnails_height}px;"
143 {if="$value.thumbnail === null"}data-async-thumbnail="1"{/if}
144 >
138 <div class="thumbnail"> 145 <div class="thumbnail">
139 {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} 146 {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore}
140 <a href="{$value.real_url}" aria-hidden="true" tabindex="-1"> 147 <a href="{$value.real_url}" aria-hidden="true" tabindex="-1">
141 <img data-src="{$value.thumbnail}#" class="b-lazy" 148 <img data-src="{$root_path}/{$value.thumbnail}#" class="b-lazy"
142 src="" 149 src=""
143 alt="" width="{$thumbnails_width}" height="{$thumbnails_height}" /> 150 alt="" width="{$thumbnails_width}" height="{$thumbnails_height}" />
144 </a> 151 </a>
@@ -156,14 +163,14 @@
156 </div> 163 </div>
157 164
158 <h2> 165 <h2>
159 <a href="{$value.real_url}"> 166 <a href="{$value.real_url}" class="linklist-real-url">
160 {if="strpos($value.url, $value.shorturl) === false"} 167 {if="strpos($value.url, $value.shorturl) === false"}
161 <i class="fa fa-external-link" aria-hidden="true"></i> 168 <i class="fa fa-external-link" aria-hidden="true"></i>
162 {else} 169 {else}
163 <i class="fa fa-sticky-note" aria-hidden="true"></i> 170 <i class="fa fa-sticky-note" aria-hidden="true"></i>
164 {/if} 171 {/if}
165 172
166 <span class="linklist-link">{$value.title}</span> 173 <span class="linklist-link">{$value.title_html}</span>
167 </a> 174 </a>
168 </h2> 175 </h2>
169 </div> 176 </div>
@@ -181,7 +188,7 @@
181 {$tag_counter=count($value.taglist)} 188 {$tag_counter=count($value.taglist)}
182 {loop="value.taglist"} 189 {loop="value.taglist"}
183 <span class="label label-tag" title="{$strAddTag}"> 190 <span class="label label-tag" title="{$strAddTag}">
184 <a href="?addtag={$value|urlencode}">{$value}</a> 191 <a href="{$base_path}/add-tag/{$value1.taglist_urlencoded.$key2}">{$value1.taglist_html.$key2}</a>
185 </span> 192 </span>
186 {if="$tag_counter - 1 != $counter"}&middot;{/if} 193 {if="$tag_counter - 1 != $counter"}&middot;{/if}
187 {/loop} 194 {/loop}
@@ -196,16 +203,16 @@
196 <input type="checkbox" class="link-checkbox" value="{$value.id}"> 203 <input type="checkbox" class="link-checkbox" value="{$value.id}">
197 </span> 204 </span>
198 <span class="linklist-item-infos-controls-item ctrl-edit"> 205 <span class="linklist-item-infos-controls-item ctrl-edit">
199 <a href="?edit_link={$value.id}" aria-label="{$strEdit}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link" aria-hidden="true"></i></a> 206 <a href="{$base_path}/admin/shaare/{$value.id}" aria-label="{$strEdit}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link" aria-hidden="true"></i></a>
200 </span> 207 </span>
201 <span class="linklist-item-infos-controls-item ctrl-delete"> 208 <span class="linklist-item-infos-controls-item ctrl-delete">
202 <a href="?delete_link&amp;lf_linkdate={$value.id}&amp;token={$token}" aria-label="{$strDelete}" 209 <a href="{$base_path}/admin/shaare/delete?id={$value.id}&amp;token={$token}" aria-label="{$strDelete}"
203 title="{$strDelete}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete"> 210 title="{$strDelete}" class="delete-link pure-u-0 pure-u-lg-visible confirm-delete">
204 <i class="fa fa-trash" aria-hidden="true"></i> 211 <i class="fa fa-trash" aria-hidden="true"></i>
205 </a> 212 </a>
206 </span> 213 </span>
207 <span class="linklist-item-infos-controls-item ctrl-pin"> 214 <span class="linklist-item-infos-controls-item ctrl-pin">
208 <a href="?do=pin&amp;id={$value.id}&amp;token={$token}" 215 <a href="{$base_path}/admin/shaare/{$value.id}/pin?token={$token}"
209 title="{$strToggleSticky}" aria-label="{$strToggleSticky}" class="pin-link {if="$value.sticky"}pinned-link{/if} pure-u-0 pure-u-lg-visible"> 216 title="{$strToggleSticky}" aria-label="{$strToggleSticky}" class="pin-link {if="$value.sticky"}pinned-link{/if} pure-u-0 pure-u-lg-visible">
210 <i class="fa fa-thumb-tack" aria-hidden="true"></i> 217 <i class="fa fa-thumb-tack" aria-hidden="true"></i>
211 </a> 218 </a>
@@ -222,7 +229,7 @@
222 </div> 229 </div>
223 {/if} 230 {/if}
224 {/if} 231 {/if}
225 <a href="?{$value.shorturl}" title="{$strPermalink}"> 232 <a href="{$base_path}/shaare/{$value.shorturl}" title="{$strPermalink}">
226 {if="!$hide_timestamps || $is_logged_in"} 233 {if="!$hide_timestamps || $is_logged_in"}
227 {$updated=$value.updated_timestamp ? $strEdited. format_date($value.updated) : $strPermalink} 234 {$updated=$value.updated_timestamp ? $strEdited. format_date($value.updated) : $strPermalink}
228 <span class="linkdate" title="{$updated}"> 235 <span class="linkdate" title="{$updated}">
@@ -235,6 +242,12 @@
235 {$strPermalinkLc} 242 {$strPermalinkLc}
236 </a> 243 </a>
237 244
245 {if="$is_logged_in && $value.private"}
246 <a href="{$base_path}/admin/shaare/private/{$value.shorturl}?token={$token}" title="{$strShaarePrivate}">
247 <i class="fa fa-share-alt"></i>
248 </a>
249 {/if}
250
238 <div class="pure-u-0 pure-u-lg-visible"> 251 <div class="pure-u-0 pure-u-lg-visible">
239 {if="isset($value.link_plugin)"} 252 {if="isset($value.link_plugin)"}
240 &middot; 253 &middot;
@@ -249,7 +262,7 @@
249 {ignore}do not add space or line break between these div - Firefox issue{/ignore} 262 {ignore}do not add space or line break between these div - Firefox issue{/ignore}
250 class="linklist-item-infos-url pure-u-lg-5-12 pure-u-1"> 263 class="linklist-item-infos-url pure-u-lg-5-12 pure-u-1">
251 <a href="{$value.real_url}" aria-label="{$value.title}" title="{$value.title}"> 264 <a href="{$value.real_url}" aria-label="{$value.title}" title="{$value.title}">
252 <i class="fa fa-link" aria-hidden="true"></i> {$value.url} 265 <i class="fa fa-link" aria-hidden="true"></i> {$value.url_html}
253 </a> 266 </a>
254 <div class="linklist-item-buttons pure-u-0 pure-u-lg-visible"> 267 <div class="linklist-item-buttons pure-u-0 pure-u-lg-visible">
255 <a href="#" aria-label="{$strFold}" title="{$strFold}" class="fold-button"><i class="fa fa-chevron-up" aria-hidden="true"></i></a> 268 <a href="#" aria-label="{$strFold}" title="{$strFold}" class="fold-button"><i class="fa fa-chevron-up" aria-hidden="true"></i></a>
@@ -265,12 +278,22 @@
265 {/if} 278 {/if}
266 {if="$is_logged_in"} 279 {if="$is_logged_in"}
267 &middot; 280 &middot;
268 <a href="?delete_link&amp;lf_linkdate={$value.id}&amp;token={$token}" aria-label="{$strDelete}" 281 <a href="{$base_path}/admin/shaare/delete?id={$value.id}&amp;token={$token}" aria-label="{$strDelete}"
269 title="{$strDelete}" class="delete-link confirm-delete"> 282 title="{$strDelete}" class="delete-link confirm-delete">
270 <i class="fa fa-trash" aria-hidden="true"></i> 283 <i class="fa fa-trash" aria-hidden="true"></i>
271 </a> 284 </a>
272 &middot; 285 &middot;
273 <a href="?edit_link={$value.id}" aria-label="{$strEdit}" title="{$strEdit}"><i class="fa fa-pencil-square-o edit-link" aria-hidden="true"></i></a> 286 <a href="{$base_path}/admin/shaare/{$value.id}" aria-label="{$strEdit}" title="{$strEdit}">
287 <i class="fa fa-pencil-square-o edit-link" aria-hidden="true"></i>
288 </a>
289 &middot;
290 <a href="{$base_path}/admin/shaare/{$value.id}/pin?token={$token}"
291 aria-label="{$strToggleSticky}"
292 title="{$strToggleSticky}"
293 class="pin-link {if="$value.sticky"}pinned-link{/if}"
294 >
295 <i class="fa fa-thumb-tack" aria-hidden="true"></i>
296 </a>
274 {/if} 297 {/if}
275 </div> 298 </div>
276 </div> 299 </div>
@@ -295,6 +318,7 @@
295</div> 318</div>
296 319
297{include="page.footer"} 320{include="page.footer"}
298<script src="js/thumbnails.min.js?v={$version_hash}"></script> 321<script src="{$asset_path}/js/thumbnails.min.js?v={$version_hash}#"></script>
322{if="$is_logged_in && $async_metadata"}<script src="{$asset_path}/js/metadata.min.js?v={$version_hash}#"></script>{/if}
299</body> 323</body>
300</html> 324</html>
diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html
index 68947f92..aa637868 100644
--- a/tpl/default/linklist.paging.html
+++ b/tpl/default/linklist.paging.html
@@ -1,27 +1,29 @@
1<div class="linklist-paging"> 1<div class="linklist-paging">
2 <div class="paging pure-g"> 2 <div class="paging pure-g">
3 <div class="linklist-filters pure-u-1-3"> 3 <div class="linklist-filters pure-u-1-3">
4 {if="$is_logged_in or !empty($action_plugin)"} 4 <span class="linklist-filters-text pure-u-0 pure-u-lg-visible">
5 <span class="linklist-filters-text pure-u-0 pure-u-lg-visible"> 5 {'Filters'|t}
6 {'Filters'|t} 6 </span>
7 </span> 7 {if="$is_logged_in"}
8 {if="$is_logged_in"} 8 <a href="{$base_path}/admin/visibility/private" aria-label="{'Only display private links'|t}" title="{'Only display private links'|t}"
9 <a href="?visibility=private" aria-label="{'Only display private links'|t}" title="{'Only display private links'|t}" 9 class="{if="$visibility==='private'"}filter-on{else}filter-off{/if}"
10 class="{if="$visibility==='private'"}filter-on{else}filter-off{/if}" 10 ><i class="fa fa-user-secret" aria-hidden="true"></i></a>
11 ><i class="fa fa-user-secret" aria-hidden="true"></i></a> 11 <a href="{$base_path}/admin/visibility/public" aria-label="{'Only display public links'|t}" title="{'Only display public links'|t}"
12 <a href="?visibility=public" aria-label="{'Only display public links'|t}" title="{'Only display public links'|t}" 12 class="{if="$visibility==='public'"}filter-on{else}filter-off{/if}"
13 class="{if="$visibility==='public'"}filter-on{else}filter-off{/if}" 13 ><i class="fa fa-globe" aria-hidden="true"></i></a>
14 ><i class="fa fa-globe" aria-hidden="true"></i></a> 14 {/if}
15 {/if} 15 <a href="{$base_path}/untagged-only" aria-label="{'Filter untagged links'|t}" title="{'Filter untagged links'|t}"
16 <a href="?untaggedonly" aria-label="{'Filter untagged links'|t}" title="{'Filter untagged links'|t}" 16 class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if}
17 class={if="$untaggedonly"}"filter-on"{else}"filter-off"{/if} 17 ><i class="fa fa-tag" aria-hidden="true"></i></a>
18 ><i class="fa fa-tag" aria-hidden="true"></i></a> 18 {if="$is_logged_in"}
19 <a href="#" aria-label="{'Select all'|t}" title="{'Select all'|t}" 19 <a href="#" aria-label="{'Select all'|t}" title="{'Select all'|t}"
20 class="filter-off select-all-button pure-u-0 pure-u-lg-visible" 20 class="filter-off select-all-button pure-u-0 pure-u-lg-visible"
21 ><i class="fa fa-check-square-o" aria-hidden="true"></i></a> 21 ><i class="fa fa-check-square-o" aria-hidden="true"></i></a>
22 <a href="#" class="filter-off fold-all pure-u-lg-0" aria-label="{'Fold all'|t}" title="{'Fold all'|t}"> 22 {/if}
23 <i class="fa fa-chevron-up" aria-hidden="true"></i> 23 <a href="#" class="filter-off fold-all pure-u-lg-0" aria-label="{'Fold all'|t}" title="{'Fold all'|t}">
24 </a> 24 <i class="fa fa-chevron-up" aria-hidden="true"></i>
25 </a>
26 {if="!empty($action_plugin)"}
25 {loop="$action_plugin"} 27 {loop="$action_plugin"}
26 {$value.attr.class=isset($value.attr.class) ? $value.attr.class : ''} 28 {$value.attr.class=isset($value.attr.class) ? $value.attr.class : ''}
27 {$value.attr.class=!empty($value.on) ? $value.attr.class .' filter-on' : $value.attr.class .' filter-off'} 29 {$value.attr.class=!empty($value.on) ? $value.attr.class .' filter-on' : $value.attr.class .' filter-off'}
@@ -53,11 +55,16 @@
53 55
54 <div class="linksperpage pure-u-1-3"> 56 <div class="linksperpage pure-u-1-3">
55 <div class="pure-u-0 pure-u-lg-visible">{'Links per page'|t}</div> 57 <div class="pure-u-0 pure-u-lg-visible">{'Links per page'|t}</div>
56 <a href="?linksperpage=20">20</a> 58 <a href="{$base_path}/links-per-page?nb=20"
57 <a href="?linksperpage=50">50</a> 59 {if="$links_per_page == 20"}class="selected"{/if}>20</a>
58 <a href="?linksperpage=100">100</a> 60 <a href="{$base_path}/links-per-page?nb=50"
59 <form method="GET" class="pure-u-0 pure-u-lg-visible"> 61 {if="$links_per_page == 50"}class="selected"{/if}>50</a>
60 <input type="text" name="linksperpage" placeholder="133"> 62 <a href="{$base_path}/links-per-page?nb=100"
63 {if="$links_per_page == 100"}class="selected"{/if}>100</a>
64 <form method="GET" class="pure-u-0 pure-u-lg-visible" action="{$base_path}/links-per-page">
65 <input type="text" name="nb" placeholder="133"
66 {if="$links_per_page != 20 && $links_per_page != 50 && $links_per_page != 100"}
67 value="{$links_per_page}"{/if}>
61 </form> 68 </form>
62 <a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" aria-label="{'Fold all'|t}" title="{'Fold all'|t}"> 69 <a href="#" class="filter-off fold-all pure-u-0 pure-u-lg-visible" aria-label="{'Fold all'|t}" title="{'Fold all'|t}">
63 <i class="fa fa-chevron-up" aria-hidden="true"></i> 70 <i class="fa fa-chevron-up" aria-hidden="true"></i>
diff --git a/tpl/default/opensearch.html b/tpl/default/opensearch.html
index 3fcc30b7..1c7f279b 100644
--- a/tpl/default/opensearch.html
+++ b/tpl/default/opensearch.html
@@ -3,8 +3,8 @@
3 <ShortName>Shaarli search - {$pagetitle}</ShortName> 3 <ShortName>Shaarli search - {$pagetitle}</ShortName>
4 <Description>Shaarli search - {$pagetitle}</Description> 4 <Description>Shaarli search - {$pagetitle}</Description>
5 <Url type="text/html" template="{$serverurl}?searchterm={searchTerms}" /> 5 <Url type="text/html" template="{$serverurl}?searchterm={searchTerms}" />
6 <Url type="application/atom+xml" template="{$serverurl}?do=atom&amp;searchterm={searchTerms}"/> 6 <Url type="application/atom+xml" template="{$serverurl}feed/atom?searchterm={searchTerms}"/>
7 <Url type="application/rss+xml" template="{$serverurl}?do=rss&amp;searchterm={searchTerms}"/> 7 <Url type="application/rss+xml" template="{$serverurl}feed/rss?searchterm={searchTerms}"/>
8 <InputEncoding>UTF-8</InputEncoding> 8 <InputEncoding>UTF-8</InputEncoding>
9 <Developer>Shaarli Community - https://github.com/shaarli/Shaarli/</Developer> 9 <Developer>Shaarli Community - https://github.com/shaarli/Shaarli/</Developer>
10 <Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAHRklE 10 <Image width="16" height="16">data:image/x-icon;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QA/wD/AP+gvaeTAAAHRklE
diff --git a/tpl/default/page.footer.html b/tpl/default/page.footer.html
index 0899826b..c153def0 100644
--- a/tpl/default/page.footer.html
+++ b/tpl/default/page.footer.html
@@ -10,7 +10,7 @@
10 {/if} 10 {/if}
11 &middot; 11 &middot;
12 {'The personal, minimalist, super-fast, database free, bookmarking service'|t} {'by the Shaarli community'|t} &middot; 12 {'The personal, minimalist, super-fast, database free, bookmarking service'|t} {'by the Shaarli community'|t} &middot;
13 <a href="doc/html/index.html" rel="nofollow">{'Documentation'|t}</a> 13 <a href="{$root_path}/doc/html/index.html" rel="nofollow">{'Documentation'|t}</a>
14 {loop="$plugins_footer.text"} 14 {loop="$plugins_footer.text"}
15 {$value} 15 {$value}
16 {/loop} 16 {/loop}
@@ -25,7 +25,7 @@
25{/loop} 25{/loop}
26 26
27{loop="$plugins_footer.js_files"} 27{loop="$plugins_footer.js_files"}
28 <script src="{$value}#"></script> 28 <script src="{$root_path}/{$value}#"></script>
29{/loop} 29{/loop}
30 30
31<div id="js-translations" class="hidden"> 31<div id="js-translations" class="hidden">
@@ -33,10 +33,11 @@
33 <span id="translation-fold-all">{'Fold all'|t}</span> 33 <span id="translation-fold-all">{'Fold all'|t}</span>
34 <span id="translation-expand">{'Expand'|t}</span> 34 <span id="translation-expand">{'Expand'|t}</span>
35 <span id="translation-expand-all">{'Expand all'|t}</span> 35 <span id="translation-expand-all">{'Expand all'|t}</span>
36 <span id="translation-delete-link">{'Are you sure you want to delete this link?'|t}</span> 36 <span id="translation-delete-link">{'Are you sure you want to delete this tag?'|t}</span>
37 <span id="translation-shaarli-desc"> 37 <span id="translation-shaarli-desc">
38 {'The personal, minimalist, super-fast, database free, bookmarking service'|t} {'by the Shaarli community'|t} 38 {'The personal, minimalist, super-fast, database free, bookmarking service'|t} {'by the Shaarli community'|t}
39 </span> 39 </span>
40</div> 40</div>
41 41
42<script src="js/shaarli.min.js?v={$version_hash}"></script> 42<input type="hidden" name="js_base_path" value="{$base_path}" />
43<script src="{$asset_path}/js/shaarli.min.js?v={$version_hash}#"></script>
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html
index 82f8ebf1..a71464c7 100644
--- a/tpl/default/page.header.html
+++ b/tpl/default/page.header.html
@@ -21,24 +21,24 @@
21 </li> 21 </li>
22 {if="$is_logged_in || $openshaarli"} 22 {if="$is_logged_in || $openshaarli"}
23 <li class="pure-menu-item"> 23 <li class="pure-menu-item">
24 <a href="?do=addlink" class="pure-menu-link" id="shaarli-menu-shaare"> 24 <a href="{$base_path}/admin/add-shaare" class="pure-menu-link" id="shaarli-menu-shaare">
25 <i class="fa fa-plus" aria-hidden="true"></i> {'Shaare'|t} 25 <i class="fa fa-plus" aria-hidden="true"></i> {'Shaare'|t}
26 </a> 26 </a>
27 </li> 27 </li>
28 <li class="pure-menu-item" id="shaarli-menu-tools"> 28 <li class="pure-menu-item" id="shaarli-menu-tools">
29 <a href="?do=tools" class="pure-menu-link">{'Tools'|t}</a> 29 <a href="{$base_path}/admin/tools" class="pure-menu-link">{'Tools'|t}</a>
30 </li> 30 </li>
31 {/if} 31 {/if}
32 <li class="pure-menu-item" id="shaarli-menu-tags"> 32 <li class="pure-menu-item" id="shaarli-menu-tags">
33 <a href="?do=tagcloud" class="pure-menu-link">{'Tag cloud'|t}</a> 33 <a href="{$base_path}/tags/cloud" class="pure-menu-link">{'Tag cloud'|t}</a>
34 </li> 34 </li>
35 {if="$thumbnails_enabled"} 35 {if="$thumbnails_enabled"}
36 <li class="pure-menu-item" id="shaarli-menu-picwall"> 36 <li class="pure-menu-item" id="shaarli-menu-picwall">
37 <a href="?do=picwall{$searchcrits}" class="pure-menu-link">{'Picture wall'|t}</a> 37 <a href="{$base_path}/picture-wall?{function="ltrim($searchcrits, '&')"}" class="pure-menu-link">{'Picture wall'|t}</a>
38 </li> 38 </li>
39 {/if} 39 {/if}
40 <li class="pure-menu-item" id="shaarli-menu-daily"> 40 <li class="pure-menu-item" id="shaarli-menu-daily">
41 <a href="?do=daily" class="pure-menu-link">{'Daily'|t}</a> 41 <a href="{$base_path}/daily" class="pure-menu-link">{'Daily'|t}</a>
42 </li> 42 </li>
43 {loop="$plugins_header.buttons_toolbar"} 43 {loop="$plugins_header.buttons_toolbar"}
44 <li class="pure-menu-item shaarli-menu-plugin"> 44 <li class="pure-menu-item shaarli-menu-plugin">
@@ -52,15 +52,15 @@
52 </li> 52 </li>
53 {/loop} 53 {/loop}
54 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-rss"> 54 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-rss">
55 <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a> 55 <a href="{$base_path}/feed/{$feed_type}?{$searchcrits}" class="pure-menu-link">{'RSS Feed'|t}</a>
56 </li> 56 </li>
57 {if="$is_logged_in"} 57 {if="$is_logged_in"}
58 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-logout"> 58 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-logout">
59 <a href="?do=logout" class="pure-menu-link">{'Logout'|t}</a> 59 <a href="{$base_path}/admin/logout" class="pure-menu-link">{'Logout'|t}</a>
60 </li> 60 </li>
61 {else} 61 {else}
62 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-login"> 62 <li class="pure-menu-item pure-u-lg-0 shaarli-menu-mobile" id="shaarli-menu-mobile-login">
63 <a href="/login" class="pure-menu-link">{'Login'|t}</a> 63 <a href="{$base_path}/login" class="pure-menu-link">{'Login'|t}</a>
64 </li> 64 </li>
65 {/if} 65 {/if}
66 </ul> 66 </ul>
@@ -74,13 +74,13 @@
74 </a> 74 </a>
75 </li> 75 </li>
76 <li class="pure-menu-item" id="shaarli-menu-desktop-rss"> 76 <li class="pure-menu-item" id="shaarli-menu-desktop-rss">
77 <a href="?do={$feed_type}{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}" aria-label="{'RSS Feed'|t}"> 77 <a href="{$base_path}/feed/{$feed_type}?{$searchcrits}" class="pure-menu-link" title="{'RSS Feed'|t}" aria-label="{'RSS Feed'|t}">
78 <i class="fa fa-rss" aria-hidden="true"></i> 78 <i class="fa fa-rss" aria-hidden="true"></i>
79 </a> 79 </a>
80 </li> 80 </li>
81 {if="!$is_logged_in"} 81 {if="!$is_logged_in"}
82 <li class="pure-menu-item" id="shaarli-menu-desktop-login"> 82 <li class="pure-menu-item" id="shaarli-menu-desktop-login">
83 <a href="/login" class="pure-menu-link" 83 <a href="{$base_path}/login" class="pure-menu-link"
84 data-open-id="header-login-form" 84 data-open-id="header-login-form"
85 id="login-button" aria-label="{'Login'|t}" title="{'Login'|t}"> 85 id="login-button" aria-label="{'Login'|t}" title="{'Login'|t}">
86 <i class="fa fa-user" aria-hidden="true"></i> 86 <i class="fa fa-user" aria-hidden="true"></i>
@@ -88,7 +88,7 @@
88 </li> 88 </li>
89 {else} 89 {else}
90 <li class="pure-menu-item" id="shaarli-menu-desktop-logout"> 90 <li class="pure-menu-item" id="shaarli-menu-desktop-logout">
91 <a href="?do=logout" class="pure-menu-link" aria-label="{'Logout'|t}" title="{'Logout'|t}"> 91 <a href="{$base_path}/admin/logout" class="pure-menu-link" aria-label="{'Logout'|t}" title="{'Logout'|t}">
92 <i class="fa fa-sign-out" aria-hidden="true"></i> 92 <i class="fa fa-sign-out" aria-hidden="true"></i>
93 </a> 93 </a>
94 </li> 94 </li>
@@ -101,7 +101,7 @@
101 101
102<main id="content" class="container" role="main"> 102<main id="content" class="container" role="main">
103 <div id="search" class="subheader-form searchform-block header-search"> 103 <div id="search" class="subheader-form searchform-block header-search">
104 <form method="GET" class="pure-form searchform" name="searchform"> 104 <form method="GET" class="pure-form searchform" name="searchform" action="{$base_path}/">
105 <input type="text" id="searchform_value" name="searchterm" aria-label="{'Search text'|t}" placeholder="{'Search text'|t}" 105 <input type="text" id="searchform_value" name="searchterm" aria-label="{'Search text'|t}" placeholder="{'Search text'|t}"
106 {if="!empty($search_term)"} 106 {if="!empty($search_term)"}
107 value="{$search_term}" 107 value="{$search_term}"
@@ -184,8 +184,22 @@
184 </div> 184 </div>
185{/if} 185{/if}
186 186
187{if="!empty($global_warnings) && $is_logged_in"} 187{if="!empty($global_errors)"}
188 <div class="pure-g pure-alert pure-alert-warning pure-alert-closable" id="shaarli-warnings-alert"> 188 <div class="pure-g header-alert-message pure-alert pure-alert-error pure-alert-closable" id="shaarli-errors-alert">
189 <div class="pure-u-2-24"></div>
190 <div class="pure-u-20-24">
191 {loop="$global_errors"}
192 <p>{$value}</p>
193 {/loop}
194 </div>
195 <div class="pure-u-2-24">
196 <i class="fa fa-times pure-alert-close"></i>
197 </div>
198 </div>
199{/if}
200
201{if="!empty($global_warnings)"}
202 <div class="pure-g header-alert-message pure-alert pure-alert-warning pure-alert-closable" id="shaarli-warnings-alert">
189 <div class="pure-u-2-24"></div> 203 <div class="pure-u-2-24"></div>
190 <div class="pure-u-20-24"> 204 <div class="pure-u-20-24">
191 {loop="global_warnings"} 205 {loop="global_warnings"}
@@ -198,4 +212,18 @@
198 </div> 212 </div>
199{/if} 213{/if}
200 214
215{if="!empty($global_successes)"}
216 <div class="pure-g header-alert-message new-version-message pure-alert pure-alert-success pure-alert-closable" id="shaarli-success-alert">
217 <div class="pure-u-2-24"></div>
218 <div class="pure-u-20-24">
219 {loop="$global_successes"}
220 <p>{$value}</p>
221 {/loop}
222 </div>
223 <div class="pure-u-2-24">
224 <i class="fa fa-times pure-alert-close"></i>
225 </div>
226 </div>
227{/if}
228
201 <div class="clear"></div> 229 <div class="clear"></div>
diff --git a/tpl/default/picwall.html b/tpl/default/picwall.html
index 73359949..ac613b35 100644
--- a/tpl/default/picwall.html
+++ b/tpl/default/picwall.html
@@ -5,61 +5,55 @@
5</head> 5</head>
6<body> 6<body>
7{include="page.header"} 7{include="page.header"}
8{if="!$thumbnails_enabled"} 8
9<div class="pure-g pure-alert pure-alert-warning page-single-alert"> 9{if="count($linksToDisplay)===0 && $is_logged_in"}
10 <div class="pure-u-1 center"> 10 <div class="pure-g pure-alert pure-alert-warning page-single-alert">
11 {'Picture wall unavailable (thumbnails are disabled).'|t} 11 <div class="pure-u-1 center">
12 </div> 12 {'There is no cached thumbnail.'|t}
13</div> 13 <a href="{$base_path}/admin/thumbnails">{'Try to synchronize them.'|t}</a>
14{else}
15 {if="count($linksToDisplay)===0 && $is_logged_in"}
16 <div class="pure-g pure-alert pure-alert-warning page-single-alert">
17 <div class="pure-u-1 center">
18 {'There is no cached thumbnail. Try to <a href="?do=thumbs_update">synchronize them</a>.'|t}
19 </div>
20 </div> 14 </div>
21 {/if} 15 </div>
16{/if}
22 17
23 <div class="pure-g"> 18<div class="pure-g">
24 <div class="pure-u-lg-1-6 pure-u-1-24"></div> 19 <div class="pure-u-lg-1-6 pure-u-1-24"></div>
25 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor"> 20 <div class="pure-u-lg-2-3 pure-u-22-24 page-form page-visitor">
26 {$countPics=count($linksToDisplay)} 21 {$countPics=count($linksToDisplay)}
27 <h2 class="window-title">{'Picture Wall'|t} - {$countPics} {'pics'|t}</h2> 22 <h2 class="window-title">{'Picture Wall'|t} - {$countPics} {'pics'|t}</h2>
28 23
29 <div id="plugin_zone_start_picwall" class="plugin_zone"> 24 <div id="plugin_zone_start_picwall" class="plugin_zone">
30 {loop="$plugin_start_zone"} 25 {loop="$plugin_start_zone"}
31 {$value} 26 {$value}
32 {/loop} 27 {/loop}
33 </div> 28 </div>
34 29
35 <div id="picwall-container" class="picwall-container" role="list"> 30 <div id="picwall-container" class="picwall-container" role="list">
36 {loop="$linksToDisplay"} 31 {loop="$linksToDisplay"}
37 <div class="picwall-pictureframe" role="listitem"> 32 <div class="picwall-pictureframe" role="listitem">
38 {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore} 33 {ignore}RainTPL hack: put the 2 src on two different line to avoid path replace bug{/ignore}
39 <img data-src="{$value.thumbnail}#" class="b-lazy" 34 <img data-src="{$root_path}/{$value.thumbnail}#" class="b-lazy"
40 src="" 35 src=""
41 alt="" width="{$thumbnails_width}" height="{$thumbnails_height}" /> 36 alt="" width="{$thumbnails_width}" height="{$thumbnails_height}" />
42 <a href="{$value.real_url}"><span class="info">{$value.title}</span></a> 37 <a href="{$value.real_url}"><span class="info">{$value.title}</span></a>
43 {loop="$value.picwall_plugin"} 38 {loop="$value.picwall_plugin"}
44 {$value} 39 {$value}
45 {/loop} 40 {/loop}
46 </div> 41 </div>
47 {/loop} 42 {/loop}
48 <div class="clear"></div> 43 <div class="clear"></div>
49 </div> 44 </div>
50 45
51 <div id="plugin_zone_end_picwall" class="plugin_zone"> 46 <div id="plugin_zone_end_picwall" class="plugin_zone">
52 {loop="$plugin_end_zone"} 47 {loop="$plugin_end_zone"}
53 {$value} 48 {$value}
54 {/loop} 49 {/loop}
55 </div>
56 </div> 50 </div>
57 <div class="pure-u-lg-1-6 pure-u-1-24"></div>
58 </div> 51 </div>
59{/if} 52 <div class="pure-u-lg-1-6 pure-u-1-24"></div>
53</div>
60 54
61{include="page.footer"} 55{include="page.footer"}
62<script src="js/thumbnails.min.js?v={$version_hash}"></script> 56<script src="{$asset_path}/js/thumbnails.min.js?v={$version_hash}#"></script>
63</body> 57</body>
64</html> 58</html>
65 59
diff --git a/tpl/default/pluginsadmin.html b/tpl/default/pluginsadmin.html
index 4bfaa934..5c073da6 100644
--- a/tpl/default/pluginsadmin.html
+++ b/tpl/default/pluginsadmin.html
@@ -16,7 +16,7 @@
16 <div class="clear"></div> 16 <div class="clear"></div>
17</noscript> 17</noscript>
18 18
19<form method="POST" action="?do=save_pluginadmin" name="pluginform" id="pluginform" class="pluginform-container"> 19<form method="POST" action="{$base_path}/admin/plugins" name="pluginform" id="pluginform" class="pluginform-container">
20 <div class="pure-g"> 20 <div class="pure-g">
21 <div class="pure-u-lg-1-8 pure-u-1-24"></div> 21 <div class="pure-u-lg-1-8 pure-u-1-24"></div>
22 <div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-complete"> 22 <div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-complete">
@@ -117,7 +117,7 @@
117 117
118 <div class="center more"> 118 <div class="center more">
119 {"More plugins available"|t} 119 {"More plugins available"|t}
120 <a href="doc/html/Community-&-Related-software/#third-party-plugins">{"in the documentation"|t}</a>. 120 <a href="{$root_path}/doc/html/Community-&-Related-software/#third-party-plugins">{"in the documentation"|t}</a>.
121 </div> 121 </div>
122 <div class="center"> 122 <div class="center">
123 <input type="submit" value="{'Save'|t}" name="save"> 123 <input type="submit" value="{'Save'|t}" name="save">
@@ -127,7 +127,7 @@
127 <input type="hidden" name="token" value="{$token}"> 127 <input type="hidden" name="token" value="{$token}">
128</form> 128</form>
129 129
130<form action="?do=save_pluginadmin" method="POST"> 130<form action="{$base_path}/admin/plugins" method="POST">
131 <div class="pure-g"> 131 <div class="pure-g">
132 <div class="pure-u-lg-1-8 pure-u-1-24"></div> 132 <div class="pure-u-lg-1-8 pure-u-1-24"></div>
133 <div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-light"> 133 <div class="pure-u-lg-3-4 pure-u-22-24 page-form page-form-light">
@@ -173,10 +173,11 @@
173 </section> 173 </section>
174 </div> 174 </div>
175 </div> 175 </div>
176 <input type="hidden" name="token" value="{$token}">
176</form> 177</form>
177 178
178{include="page.footer"} 179{include="page.footer"}
179<script src="js/pluginsadmin.min.js?v={$version_hash}"></script> 180<script src="{$asset_path}/js/pluginsadmin.min.js?v={$version_hash}#"></script>
180 181
181</body> 182</body>
182</html> 183</html>
diff --git a/tpl/default/server.html b/tpl/default/server.html
new file mode 100644
index 00000000..de1c8b53
--- /dev/null
+++ b/tpl/default/server.html
@@ -0,0 +1,129 @@
1<!DOCTYPE html>
2<html{if="$language !== 'auto'"} lang="{$language}"{/if}>
3<head>
4 {include="includes"}
5</head>
6<body>
7{include="page.header"}
8
9<div class="pure-g">
10 <div class="pure-u-lg-1-4 pure-u-1-24"></div>
11 <div class="pure-u-lg-1-2 pure-u-22-24 page-form server-tables-page">
12 <h2 class="window-title">{'Server administration'|t}</h2>
13
14 <h3 class="window-subtitle">{'General'|t}</h3>
15
16 <div class="pure-g server-row">
17 <div class="pure-u-lg-1-2 pure-u-1 server-label">
18 <p>{'Index URL'|t}</p>
19 </div>
20 <div class="pure-u-lg-1-2 pure-u-1">
21 <p><a href="{$index_url}" title="{$pagetitle}">{$index_url}</a></p>
22 </div>
23 </div>
24 <div class="pure-g server-row">
25 <div class="pure-u-lg-1-2 pure-u-1 server-label">
26 <p>{'Base path'|t}</p>
27 </div>
28 <div class="pure-u-lg-1-2 pure-u-1">
29 <p>{$base_path}</p>
30 </div>
31 </div>
32 <div class="pure-g server-row">
33 <div class="pure-u-lg-1-2 pure-u-1 server-label">
34 <p>{'Client IP'|t}</p>
35 </div>
36 <div class="pure-u-lg-1-2 pure-u-1">
37 <p>{$client_ip}</p>
38 </div>
39 </div>
40 <div class="pure-g server-row">
41 <div class="pure-u-lg-1-2 pure-u-1 server-label">
42 <p>{'Trusted reverse proxies'|t}</p>
43 </div>
44 <div class="pure-u-lg-1-2 pure-u-1">
45 {if="count($trusted_proxies) > 0"}
46 <p>
47 {loop="$trusted_proxies"}
48 {$value}<br>
49 {/loop}
50 </p>
51 {else}
52 <p>{'N/A'|t}</p>
53 {/if}
54 </div>
55 </div>
56
57 {include="server.requirements"}
58
59 <h3 class="window-subtitle">Version</h3>
60
61 <div class="pure-g server-row">
62 <div class="pure-u-lg-1-2 pure-u-1 server-label">
63 <p>Current version</p>
64 </div>
65 <div class="pure-u-lg-1-2 pure-u-1">
66 <p>{$current_version}</p>
67 </div>
68 </div>
69
70 <div class="pure-g server-row">
71 <div class="pure-u-lg-1-2 pure-u-1 server-label">
72 <p>Latest release</p>
73 </div>
74 <div class="pure-u-lg-1-2 pure-u-1">
75 <p>
76 <a href="{$release_url}" title="{'Visit releases page on Github'|t}">
77 {$latest_version}
78 </a>
79 </p>
80 </div>
81 </div>
82
83 <h3 class="window-subtitle">Thumbnails</h3>
84
85 <div class="pure-g server-row">
86 <div class="pure-u-lg-1-2 pure-u-1 server-label">
87 <p>Thumbnails status</p>
88 </div>
89 <div class="pure-u-lg-1-2 pure-u-1">
90 <p>
91 {if="$thumbnails_mode==='all'"}
92 {'All'|t}
93 {elseif="$thumbnails_mode==='common'"}
94 {'Only common media hosts'|t}
95 {else}
96 {'None'|t}
97 {/if}
98 </p>
99 </div>
100 </div>
101
102 {if="$thumbnails_mode!=='none'"}
103 <div class="center tools-item">
104 <a href="{$base_path}/admin/thumbnails" title="{'Synchronize all link thumbnails'|t}">
105 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Synchronize thumbnails'|t}</span>
106 </a>
107 </div>
108 {/if}
109
110 <h3 class="window-subtitle">Cache</h3>
111
112 <div class="center tools-item">
113 <a href="{$base_path}/admin/clear-cache?type=main">
114 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Clear main cache</span>
115 </a>
116 </div>
117
118 <div class="center tools-item">
119 <a href="{$base_path}/admin/clear-cache?type=thumbnails">
120 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">Clear thumbnails cache</span>
121 </a>
122 </div>
123 </div>
124</div>
125
126{include="page.footer"}
127
128</body>
129</html>
diff --git a/tpl/default/server.requirements.html b/tpl/default/server.requirements.html
new file mode 100644
index 00000000..85def9b7
--- /dev/null
+++ b/tpl/default/server.requirements.html
@@ -0,0 +1,68 @@
1<div class="server-tables">
2 <h3 class="window-subtitle">{'Permissions'|t}</h3>
3
4 {if="count($permissions) > 0"}
5 <p class="center">
6 <i class="fa fa-close fa-color-red" aria-hidden="true"></i>
7 {'There are permissions that need to be fixed.'|t}
8 </p>
9
10 <p>
11 {loop="$permissions"}
12 <div class="center">{$value}</div>
13 {/loop}
14 </p>
15 {else}
16 <p class="center">
17 <i class="fa fa-check fa-color-green" aria-hidden="true"></i>
18 {'All read/write permissions are properly set.'|t}
19 </p>
20 {/if}
21
22 <h3 class="window-subtitle">PHP</h3>
23
24 <p class="center">
25 <strong>{'Running PHP'|t} {$php_version}</strong>
26 {if="$php_has_reached_eol"}
27 <i class="fa fa-circle fa-color-orange" aria-label="hidden"></i><br>
28 {'End of life: '|t} {$php_eol}
29 {else}
30 <i class="fa fa-circle fa-color-green" aria-label="hidden"></i><br>
31 {/if}
32 </p>
33
34 <table class="center">
35 <thead>
36 <tr>
37 <th>{'Extension'|t}</th>
38 <th>{'Usage'|t}</th>
39 <th>{'Status'|t}</th>
40 <th>{'Loaded'|t}</th>
41 </tr>
42 </thead>
43 <tbody>
44 {loop="$php_extensions"}
45 <tr>
46 <td>{$value.name}</td>
47 <td>{$value.desc}</td>
48 <td>{$value.required ? t('Required') : t('Optional')}</td>
49 <td>
50 {if="$value.loaded"}
51 {$classLoaded="fa-color-green"}
52 {$strLoaded=t('Loaded')}
53 {else}
54 {$strLoaded=t('Not loaded')}
55 {if="$value.required"}
56 {$classLoaded="fa-color-red"}
57 {else}
58 {$classLoaded="fa-color-orange"}
59 {/if}
60 {/if}
61
62 <i class="fa fa-circle {$classLoaded}" aria-label="{$strLoaded}" title="{$strLoaded}"></i>
63 </td>
64 </tr>
65 {/loop}
66 </tbody>
67 </table>
68</div>
diff --git a/tpl/default/tag.cloud.html b/tpl/default/tag.cloud.html
index 7839fcca..c067e1d4 100644
--- a/tpl/default/tag.cloud.html
+++ b/tpl/default/tag.cloud.html
@@ -15,7 +15,7 @@
15 <h2 class="window-title">{'Tag cloud'|t} - {$countTags} {'tags'|t}</h2> 15 <h2 class="window-title">{'Tag cloud'|t} - {$countTags} {'tags'|t}</h2>
16 {if="!empty($search_tags)"} 16 {if="!empty($search_tags)"}
17 <p class="center"> 17 <p class="center">
18 <a href="?searchtags={$search_tags|urlencode}" class="pure-button pure-button-shaarli"> 18 <a href="{$base_path}/?searchtags={$search_tags_url}" class="pure-button pure-button-shaarli">
19 {'List all links with those tags'|t} 19 {'List all links with those tags'|t}
20 </a> 20 </a>
21 </p> 21 </p>
@@ -48,8 +48,8 @@
48 48
49 <div id="cloudtag" class="cloudtag-container"> 49 <div id="cloudtag" class="cloudtag-container">
50 {loop="tags"} 50 {loop="tags"}
51 <a href="?searchtags={$key|urlencode} {$search_tags|urlencode}" style="font-size:{$value.size}em;">{$key}</a 51 <a href="{$base_path}/?searchtags={$tags_url.$key1} {$search_tags_url}" style="font-size:{$value.size}em;">{$key}</a
52 ><a href="?addtag={$key|urlencode}" title="{'Filter by tag'|t}" class="count">{$value.count}</a> 52 ><a href="{$base_path}/add-tag/{$tags_url.$key1}" title="{'Filter by tag'|t}" class="count">{$value.count}</a>
53 {loop="$value.tag_plugin"} 53 {loop="$value.tag_plugin"}
54 {$value} 54 {$value}
55 {/loop} 55 {/loop}
diff --git a/tpl/default/tag.list.html b/tpl/default/tag.list.html
index d5777465..96e7fbe0 100644
--- a/tpl/default/tag.list.html
+++ b/tpl/default/tag.list.html
@@ -15,7 +15,7 @@
15 <h2 class="window-title">{'Tag list'|t} - {$countTags} {'tags'|t}</h2> 15 <h2 class="window-title">{'Tag list'|t} - {$countTags} {'tags'|t}</h2>
16 {if="!empty($search_tags)"} 16 {if="!empty($search_tags)"}
17 <p class="center"> 17 <p class="center">
18 <a href="?searchtags={$search_tags|urlencode}" class="pure-button pure-button-shaarli"> 18 <a href="{$base_path}/?searchtags={$search_tags_url}" class="pure-button pure-button-shaarli">
19 {'List all links with those tags'|t} 19 {'List all links with those tags'|t}
20 </a> 20 </a>
21 </p> 21 </p>
@@ -47,17 +47,17 @@
47 47
48 <div id="taglist" class="taglist-container"> 48 <div id="taglist" class="taglist-container">
49 {loop="tags"} 49 {loop="tags"}
50 <div class="tag-list-item pure-g" data-tag="{$key}"> 50 <div class="tag-list-item pure-g" data-tag="{$key}" data-tag-url="{$tags_url.$key1}">
51 <div class="pure-u-1"> 51 <div class="pure-u-1">
52 {if="$is_logged_in===true"} 52 {if="$is_logged_in===true"}
53 <a href="#" class="delete-tag" aria-label="{'Delete'|t}"><i class="fa fa-trash" aria-hidden="true"></i></a>&nbsp;&nbsp; 53 <a href="#" class="delete-tag" aria-label="{'Delete'|t}"><i class="fa fa-trash" aria-hidden="true"></i></a>&nbsp;&nbsp;
54 <a href="?do=changetag&fromtag={$key|urlencode}" class="rename-tag" aria-label="{'Rename tag'|t}"> 54 <a href="{$base_path}/admin/tags?fromtag={$tags_url.$key1}" class="rename-tag" aria-label="{'Rename tag'|t}">
55 <i class="fa fa-pencil-square-o {$key}" aria-hidden="true"></i> 55 <i class="fa fa-pencil-square-o {$key}" aria-hidden="true"></i>
56 </a> 56 </a>
57 {/if} 57 {/if}
58 58
59 <a href="?addtag={$key|urlencode}" title="{'Filter by tag'|t}" class="count">{$value}</a> 59 <a href="{$base_path}/add-tag/{$tags_url.$key1}" title="{'Filter by tag'|t}" class="count">{$value}</a>
60 <a href="?searchtags={$key|urlencode} {$search_tags|urlencode}" class="tag-link">{$key}</a> 60 <a href="{$base_path}/?searchtags={$tags_url.$key1} {$search_tags_url}" class="tag-link">{$key}</a>
61 61
62 {loop="$value.tag_plugin"} 62 {loop="$value.tag_plugin"}
63 {$value} 63 {$value}
diff --git a/tpl/default/tag.sort.html b/tpl/default/tag.sort.html
index d24c9f64..b3764e29 100644
--- a/tpl/default/tag.sort.html
+++ b/tpl/default/tag.sort.html
@@ -1,8 +1,8 @@
1<div class="pure-g"> 1<div class="pure-g">
2 <div class="pure-u-1 pure-alert pure-alert-success tag-sort"> 2 <div class="pure-u-1 pure-alert pure-alert-success tag-sort">
3 {'Sort by:'|t} 3 {'Sort by:'|t}
4 <a href="?do=tagcloud">{'Cloud'|t}</a> &middot; 4 <a href="{$base_path}/tags/cloud">{'Cloud'|t}</a>
5 <a href="?do=taglist&sort=usage">{'Most used'|t}</a> &middot; 5 <a href="{$base_path}/tags/list?sort=usage">{'Most used'|t}</a>
6 <a href="?do=taglist&sort=alpha">{'Alphabetical'|t}</a> 6 <a href="{$base_path}/tags/list?sort=alpha">{'Alphabetical'|t}</a>
7 </div> 7 </div>
8</div> \ No newline at end of file 8</div>
diff --git a/tpl/default/thumbnails.html b/tpl/default/thumbnails.html
index 5f9bef08..504644ca 100644
--- a/tpl/default/thumbnails.html
+++ b/tpl/default/thumbnails.html
@@ -43,6 +43,6 @@
43</div> 43</div>
44 44
45{include="page.footer"} 45{include="page.footer"}
46<script src="js/thumbnails_update.min.js?v={$version_hash}"></script> 46<script src="{$asset_path}/js/thumbnails_update.min.js?v={$version_hash}#"></script>
47</body> 47</body>
48</html> 48</html>
diff --git a/tpl/default/tools.html b/tpl/default/tools.html
index 20d0c893..2df73598 100644
--- a/tpl/default/tools.html
+++ b/tpl/default/tools.html
@@ -11,48 +11,46 @@
11 <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light"> 11 <div class="pure-u-lg-1-3 pure-u-22-24 page-form page-form-light">
12 <h2 class="window-title">{'Settings'|t}</h2> 12 <h2 class="window-title">{'Settings'|t}</h2>
13 <div class="tools-item"> 13 <div class="tools-item">
14 <a href="?do=configure" title="{'Change Shaarli settings: title, timezone, etc.'|t}"> 14 <a href="{$base_path}/admin/configure" title="{'Change Shaarli settings: title, timezone, etc.'|t}">
15 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Configure your Shaarli'|t}</span> 15 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Configure your Shaarli'|t}</span>
16 </a> 16 </a>
17 </div> 17 </div>
18 <div class="tools-item"> 18 <div class="tools-item">
19 <a href="?do=pluginadmin" title="{'Enable, disable and configure plugins'|t}"> 19 <a href="{$base_path}/admin/plugins" title="{'Enable, disable and configure plugins'|t}">
20 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Plugin administration'|t}</span> 20 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Plugin administration'|t}</span>
21 </a> 21 </a>
22 </div> 22 </div>
23 <div class="tools-item">
24 <a href="{$base_path}/admin/server"
25 title="{'Check instance\'s server configuration'|t}">
26 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Server administration'|t}</span>
27 </a>
28 </div>
23 {if="!$openshaarli"} 29 {if="!$openshaarli"}
24 <div class="tools-item"> 30 <div class="tools-item">
25 <a href="?do=changepasswd" title="{'Change your password'|t}"> 31 <a href="{$base_path}/admin/password" title="{'Change your password'|t}">
26 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Change password'|t}</span> 32 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Change password'|t}</span>
27 </a> 33 </a>
28 </div> 34 </div>
29 {/if} 35 {/if}
30 <div class="tools-item"> 36 <div class="tools-item">
31 <a href="?do=changetag" title="{'Rename or delete a tag in all links'|t}"> 37 <a href="{$base_path}/admin/tags" title="{'Rename or delete a tag in all links'|t}">
32 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Manage tags'|t}</span> 38 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Manage tags'|t}</span>
33 </a> 39 </a>
34 </div> 40 </div>
35 <div class="tools-item"> 41 <div class="tools-item">
36 <a href="?do=import" 42 <a href="{$base_path}/admin/import"
37 title="{'Import Netscape HTML bookmarks (as exported from Firefox, Chrome, Opera, delicious...)'|t}"> 43 title="{'Import Netscape HTML bookmarks (as exported from Firefox, Chrome, Opera, delicious...)'|t}">
38 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Import links'|t}</span> 44 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Import links'|t}</span>
39 </a> 45 </a>
40 </div> 46 </div>
41 <div class="tools-item"> 47 <div class="tools-item">
42 <a href="?do=export" 48 <a href="{$base_path}/admin/export"
43 title="{'Export Netscape HTML bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)'|t}"> 49 title="{'Export Netscape HTML bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)'|t}">
44 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Export database'|t}</span> 50 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Export database'|t}</span>
45 </a> 51 </a>
46 </div> 52 </div>
47 53
48 {if="$thumbnails_enabled"}
49 <div class="tools-item">
50 <a href="?do=thumbs_update" title="{'Synchronize all link thumbnails'|t}">
51 <span class="pure-button pure-u-lg-2-3 pure-u-3-4">{'Synchronize thumbnails'|t}</span>
52 </a>
53 </div>
54 {/if}
55
56 {loop="$tools_plugin"} 54 {loop="$tools_plugin"}
57 <div class="tools-item"> 55 <div class="tools-item">
58 {$value} 56 {$value}
@@ -86,7 +84,7 @@
86 alert('{function="str_replace(' ', '%20', t('The selected text is too long, it will be truncated.'))"}'); 84 alert('{function="str_replace(' ', '%20', t('The selected text is too long, it will be truncated.'))"}');
87 } 85 }
88 window.open( 86 window.open(
89 '{$pageabsaddr}?post='%20+%20encodeURIComponent(url)+ 87 '{$pageabsaddr}admin/shaare?post='%20+%20encodeURIComponent(url)+
90 '&amp;title='%20+%20encodeURIComponent(title)+ 88 '&amp;title='%20+%20encodeURIComponent(title)+
91 '&amp;description='%20+%20encodeURIComponent(desc)+ 89 '&amp;description='%20+%20encodeURIComponent(desc)+
92 '&amp;source=bookmarklet','_blank','menubar=no,height=800,width=600,toolbar=no,scrollbars=yes,status=no,dialog=1' 90 '&amp;source=bookmarklet','_blank','menubar=no,height=800,width=600,toolbar=no,scrollbars=yes,status=no,dialog=1'