diff options
Diffstat (limited to 'tpl/default')
38 files changed, 2519 insertions, 0 deletions
diff --git a/tpl/default/404.html b/tpl/default/404.html new file mode 100644 index 00000000..53e98e2e --- /dev/null +++ b/tpl/default/404.html | |||
@@ -0,0 +1,17 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | {include="includes"} | ||
5 | </head> | ||
6 | <body> | ||
7 | <div id="pageheader"> | ||
8 | {include="page.header"} | ||
9 | </div> | ||
10 | <div class="error-container"> | ||
11 | <h1>404 Not found <small>Oh crap!</small></h1> | ||
12 | <p>{$error_message}</p> | ||
13 | <p>Would you mind <a href="?">clicking here</a>?</p> | ||
14 | </div> | ||
15 | {include="page.footer"} | ||
16 | </body> | ||
17 | </html> | ||
diff --git a/tpl/default/addlink.html b/tpl/default/addlink.html new file mode 100644 index 00000000..da50f45e --- /dev/null +++ b/tpl/default/addlink.html | |||
@@ -0,0 +1,16 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body onload="document.addform.post.focus();"> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | <div id="headerform"> | ||
8 | <form method="GET" action="" name="addform" class="addform"> | ||
9 | <input type="text" name="post" class="linkurl"> | ||
10 | <input type="submit" value="Add link" class="bigbutton"> | ||
11 | </form> | ||
12 | </div> | ||
13 | </div> | ||
14 | {include="page.footer"} | ||
15 | </body> | ||
16 | </html> | ||
diff --git a/tpl/default/changepassword.html b/tpl/default/changepassword.html new file mode 100644 index 00000000..c40daf9d --- /dev/null +++ b/tpl/default/changepassword.html | |||
@@ -0,0 +1,15 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body onload="document.changepasswordform.oldpassword.focus();"> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | <form method="POST" action="#" name="changepasswordform" id="changepasswordform"> | ||
8 | Old password: <input type="password" name="oldpassword"> | ||
9 | New password: <input type="password" name="setpassword"> | ||
10 | <input type="hidden" name="token" value="{$token}"> | ||
11 | <input type="submit" name="Save" value="Save password" class="bigbutton"></form> | ||
12 | </div> | ||
13 | {include="page.footer"} | ||
14 | </body> | ||
15 | </html> \ No newline at end of file | ||
diff --git a/tpl/default/changetag.html b/tpl/default/changetag.html new file mode 100644 index 00000000..a0df3328 --- /dev/null +++ b/tpl/default/changetag.html | |||
@@ -0,0 +1,34 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"} | ||
4 | <link type="text/css" rel="stylesheet" href="inc/awesomplete.css#" /> | ||
5 | <script src="inc/awesomplete.min.js#"></script> | ||
6 | </head> | ||
7 | <body onload="document.changetag.fromtag.focus();"> | ||
8 | <div id="pageheader"> | ||
9 | {include="page.header"} | ||
10 | <form method="POST" action="" name="changetag" id="changetag"> | ||
11 | <input type="hidden" name="token" value="{$token}"> | ||
12 | <div> | ||
13 | <label for="fromtag">Tag:</label> | ||
14 | </div> | ||
15 | <div> | ||
16 | <input type="text" name="fromtag" id="fromtag" list="tagsList" autocomplete="off" class="awesomplete" data-minChars="1" /> | ||
17 | <datalist id="tagsList"> | ||
18 | {loop="$tags"}<option>{$key}</option>{/loop} | ||
19 | </datalist> | ||
20 | </div> | ||
21 | |||
22 | <div> | ||
23 | <input type="text" name="totag" id="totag"> | ||
24 | <input type="submit" name="renametag" value="Rename tag" class="bigbutton"> | ||
25 | or <input type="submit" name="deletetag" value="Delete tag" class="bigbutton" onClick="return confirmDeleteTag();"> | ||
26 | </div> | ||
27 | </form> | ||
28 | <div class="clear white">(Case sensitive)</div> | ||
29 | </div> | ||
30 | <script>function confirmDeleteTag() { var agree=confirm("Are you sure you want to delete this tag from all links ?"); if (agree) return true ; else return false ; }</script> | ||
31 | </div> | ||
32 | {include="page.footer"} | ||
33 | </body> | ||
34 | </html> | ||
diff --git a/tpl/default/configure.html b/tpl/default/configure.html new file mode 100644 index 00000000..5820e6e4 --- /dev/null +++ b/tpl/default/configure.html | |||
@@ -0,0 +1,121 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body onload="document.configform.title.focus();"> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | {$timezone_js} | ||
8 | <form method="POST" action="#" name="configform" id="configform"> | ||
9 | <input type="hidden" name="token" value="{$token}"> | ||
10 | <table id="configuration_table"> | ||
11 | |||
12 | <tr> | ||
13 | <td><b>Page title:</b></td> | ||
14 | <td><input type="text" name="title" id="title" size="50" value="{$title}"></td> | ||
15 | </tr> | ||
16 | |||
17 | <tr> | ||
18 | <td><b>Title link:</b></td> | ||
19 | <td><input type="text" name="titleLink" id="titleLink" size="50" value="{$titleLink}"><br/><label | ||
20 | for="titleLink">(default value is: ?)</label></td> | ||
21 | </tr> | ||
22 | |||
23 | <tr> | ||
24 | <td><b>Theme:</b></td> | ||
25 | <td> | ||
26 | <select name="theme" id="theme"> | ||
27 | {loop="$theme_available"} | ||
28 | <option value="{$value}" {if="$value===$theme"}selected{/if}> | ||
29 | {$value|ucfirst} | ||
30 | </option> | ||
31 | {/loop} | ||
32 | </select> | ||
33 | </td> | ||
34 | </tr> | ||
35 | |||
36 | <tr> | ||
37 | <td><b>Timezone:</b></td> | ||
38 | <td>{$timezone_form}</td> | ||
39 | </tr> | ||
40 | |||
41 | <tr> | ||
42 | <td><b>Redirector</b></td> | ||
43 | <td> | ||
44 | <input type="text" name="redirector" id="redirector" size="50" value="{$redirector}"><br> | ||
45 | (e.g. <i>http://anonym.to/?</i> will mask the HTTP_REFERER) | ||
46 | </td> | ||
47 | </tr> | ||
48 | |||
49 | <tr> | ||
50 | <td><b>Security:</b></td> | ||
51 | <td> | ||
52 | <input type="checkbox" name="disablesessionprotection" id="disablesessionprotection" | ||
53 | {if="$session_protection_disabled"}checked{/if}> | ||
54 | <label | ||
55 | for="disablesessionprotection"> Disable session cookie hijacking protection (Check this if you get | ||
56 | disconnected often or if your IP address changes often.)</label> | ||
57 | </td> | ||
58 | </tr> | ||
59 | |||
60 | <tr> | ||
61 | <td valign="top"><b>New link:</b></td> | ||
62 | <td> | ||
63 | <input type="checkbox" name="privateLinkByDefault" id="privateLinkByDefault" | ||
64 | {if="$private_links_default"}checked{/if}/> | ||
65 | <label for="privateLinkByDefault"> | ||
66 | All new links are private by default | ||
67 | </label> | ||
68 | </td> | ||
69 | </tr> | ||
70 | <tr> | ||
71 | <td valign="top"><b>RSS direct links</b></td> | ||
72 | <td> | ||
73 | <input type="checkbox" name="enableRssPermalinks" id="enableRssPermalinks" | ||
74 | {if="$enable_rss_permalinks"}checked{/if}/> | ||
75 | <label for="enableRssPermalinks"> | ||
76 | Disable it to use permalinks in RSS feed instead of direct links to your shaared links. Currently <b> | ||
77 | {if="$enable_rss_permalinks"}enabled{else}disabled{/if}.</b> | ||
78 | </label> | ||
79 | </td> | ||
80 | </tr> | ||
81 | <tr> | ||
82 | <td valign="top"><b>Hide public links</b></td> | ||
83 | <td> | ||
84 | <input type="checkbox" name="hidePublicLinks" id="hidePublicLinks" | ||
85 | {if="$hide_public_links"}checked{/if}/> | ||
86 | <label for="hidePublicLinks"> Do not show any links if the user is not logged in.</label> | ||
87 | </td> | ||
88 | </tr> | ||
89 | <tr> | ||
90 | <td valign="top"><b>Update:</b></td> | ||
91 | <td> | ||
92 | <input type="checkbox" name="updateCheck" id="updateCheck" | ||
93 | {if="$enable_update_check"}checked{/if}/> | ||
94 | <label for="updateCheck"> Notify me when a new release is ready</label> | ||
95 | </td> | ||
96 | </tr> | ||
97 | <tr> | ||
98 | <td valign="top"><b>Enable REST API</b></td> | ||
99 | <td> | ||
100 | <input type="checkbox" name="apiEnabled" id="apiEnabled" | ||
101 | {if="$api_enabled"}checked{/if}/> | ||
102 | <label for="apiEnabled"> Allow third party software to use Shaarli such as mobile application.</label> | ||
103 | </td> | ||
104 | </tr> | ||
105 | <tr> | ||
106 | <td valign="top"><b>API secret</b></td> | ||
107 | <td> | ||
108 | <input type="text" name="apiSecret" id="apiSecret" size="50" value="{$api_secret}" /> | ||
109 | </td> | ||
110 | </tr> | ||
111 | |||
112 | <tr> | ||
113 | <td></td> | ||
114 | <td class="right"><input type="submit" name="Save" value="Save config" class="bigbutton"></td> | ||
115 | </tr> | ||
116 | </table> | ||
117 | </form> | ||
118 | </div> | ||
119 | {include="page.footer"} | ||
120 | </body> | ||
121 | </html> | ||
diff --git a/tpl/default/css/reset.css b/tpl/default/css/reset.css new file mode 100644 index 00000000..e29699e2 --- /dev/null +++ b/tpl/default/css/reset.css | |||
@@ -0,0 +1,6 @@ | |||
1 | /* CSS Reset from Yahoo to cope with browsers CSS inconsistencies. */ | ||
2 | /* | ||
3 | Copyright (c) 2010, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html | ||
4 | version: 2.8.2r1 | ||
5 | */ | ||
6 | html{color:#000;background:#FFF;}body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0;}table{border-collapse:collapse;border-spacing:0;}fieldset,img{border:0;}address,caption,cite,code,dfn,em,strong,th,var,optgroup{font-style:inherit;font-weight:inherit;}del,ins{text-decoration:none;}li{list-style:none;}caption,th{text-align:left;}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal;}q:before,q:after{content:'';}abbr,acronym{border:0;font-variant:normal;}sup{vertical-align:baseline;}sub{vertical-align:baseline;}legend{color:#000;}input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;}input,button,textarea,select{*font-size:100%;} \ No newline at end of file | ||
diff --git a/tpl/default/css/shaarli.css b/tpl/default/css/shaarli.css new file mode 100644 index 00000000..6d73af3e --- /dev/null +++ b/tpl/default/css/shaarli.css | |||
@@ -0,0 +1,1208 @@ | |||
1 | /* Cascading Stylesheet for Shaarli - https://github.com/shaarli/Shaarli */ | ||
2 | |||
3 | body { | ||
4 | font-family: "Trebuchet MS",Verdana,Arial,Helvetica,sans-serif; | ||
5 | font-size: 10pt; | ||
6 | background-color: #ffffff; | ||
7 | word-wrap: break-word; | ||
8 | } | ||
9 | |||
10 | input, textarea { | ||
11 | background-color: #dedede; | ||
12 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dedede), to(#ffffff)); | ||
13 | background: -webkit-linear-gradient(#dedede, #ffffff); | ||
14 | background: -moz-linear-gradient(#dedede, #ffffff); | ||
15 | background: -ms-linear-gradient(#dedede, #ffffff); | ||
16 | background: -o-linear-gradient(#dedede, #ffffff); | ||
17 | background: linear-gradient(#dedede, #ffffff); | ||
18 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); | ||
19 | padding: 5px; | ||
20 | border-radius: 3px 3px 3px 3px; | ||
21 | border: none; | ||
22 | color: #000; | ||
23 | } | ||
24 | |||
25 | a { | ||
26 | text-decoration: none; | ||
27 | } | ||
28 | |||
29 | h1 { | ||
30 | font-size: 20pt; | ||
31 | font-weight: bold; | ||
32 | font-style: italic; | ||
33 | margin-bottom: 20px; | ||
34 | } | ||
35 | |||
36 | em { | ||
37 | font-style: italic; | ||
38 | } | ||
39 | |||
40 | strong { | ||
41 | font-weight: bold; | ||
42 | } | ||
43 | |||
44 | /* Buttons */ | ||
45 | .bigbutton, #pageheader a.bigbutton { | ||
46 | background-color: #c0c0c0; | ||
47 | background: -moz-linear-gradient(#c0c0c0, #ffffff) repeat scroll 0 0 transparent; | ||
48 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#c0c0c0), to(#ffffff)); | ||
49 | background: -webkit-linear-gradient(#c0c0c0, #ffffff); | ||
50 | background: -ms-linear-gradient(#c0c0c0, #ffffff); | ||
51 | background: -o-linear-gradient(#c0c0c0, #ffffff); | ||
52 | background: linear-gradient(#c0c0c0, #ffffff); | ||
53 | border-radius: 3px 3px 3px 3px; | ||
54 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); | ||
55 | cursor: pointer; | ||
56 | height: 24px; | ||
57 | padding: 0 5px; | ||
58 | margin: 5px 5px 0 0; | ||
59 | color: #606060; | ||
60 | border-style: outset; | ||
61 | border-width: 1px; | ||
62 | display: inline-block; | ||
63 | } | ||
64 | |||
65 | a.bigbutton, #pageheader a.bigbutton { | ||
66 | height: 22px; | ||
67 | line-height: 22px; | ||
68 | } | ||
69 | |||
70 | .smallbutton { | ||
71 | background-color: #c0c0c0; | ||
72 | background: -moz-linear-gradient(#c0c0c0, #ffffff) repeat scroll 0 0 transparent; | ||
73 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#c0c0c0), to(#ffffff)); | ||
74 | background: -webkit-linear-gradient(#c0c0c0, #ffffff); | ||
75 | background: -ms-linear-gradient(#c0c0c0, #ffffff); | ||
76 | background: -o-linear-gradient(#c0c0c0, #ffffff); | ||
77 | background: linear-gradient(#c0c0c0, #ffffff); | ||
78 | border-radius: 3px 3px 3px 3px; | ||
79 | box-shadow: 0 1px 1px rgba(0, 0, 0, 0.5); | ||
80 | cursor: pointer; | ||
81 | height: 20px; | ||
82 | margin-left: 5px; | ||
83 | padding: 0 5px; | ||
84 | color: #606060; | ||
85 | border-style: outset; | ||
86 | border-width: 1px; | ||
87 | } | ||
88 | |||
89 | /* Small tab on the left of each link with edit/delete buttons. */ | ||
90 | .button_edit, .button_delete { | ||
91 | border-radius: 0; | ||
92 | box-shadow: none; | ||
93 | border-style: none; | ||
94 | border-width: 0; | ||
95 | padding: 0; | ||
96 | background: none; | ||
97 | } | ||
98 | |||
99 | .linkeditbuttons { | ||
100 | position: absolute; | ||
101 | left: 2px; | ||
102 | padding: 4px 2px 2px 2px; | ||
103 | |||
104 | -webkit-border-radius: 0px 6px 6px 0px; | ||
105 | -moz-border-radius: 0px 6px 6px 0px; | ||
106 | -o-border-radius: 0px 6px 6px 0px; | ||
107 | -ms-border-radius: 0px 6px 6px 0px; | ||
108 | border-radius: 0px 6px 6px 0px; | ||
109 | } | ||
110 | |||
111 | #pageheader #logo { | ||
112 | background-image: url('../../../images/logo.png'); | ||
113 | background-repeat: no-repeat; | ||
114 | float: left; | ||
115 | margin: 0 10px 0 10px; | ||
116 | width: 105px; | ||
117 | height: 55px; | ||
118 | cursor: pointer; | ||
119 | } | ||
120 | |||
121 | #pageheader #menu { | ||
122 | width: 100%; | ||
123 | } | ||
124 | |||
125 | #pageheader #menu ul { | ||
126 | margin: auto; | ||
127 | padding: 7px 0px 0px 0px; | ||
128 | float: none; | ||
129 | } | ||
130 | |||
131 | #pageheader #menu ul li { | ||
132 | list-style: none; | ||
133 | display: inline; | ||
134 | position: relative; | ||
135 | box-sizing: border-box; | ||
136 | } | ||
137 | |||
138 | #pageheader a { | ||
139 | background-color: #333333; | ||
140 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#333333), to(#000000)); | ||
141 | background: -webkit-linear-gradient(#333333, #000000); | ||
142 | background: -moz-linear-gradient(#333333, #000000); | ||
143 | background: -ms-linear-gradient(#333333, #000000); | ||
144 | background: -o-linear-gradient(#333333, #000000); | ||
145 | background: linear-gradient(#333333, #000000); | ||
146 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); | ||
147 | padding: 5px; | ||
148 | border-radius: 3px 3px 3px 3px; | ||
149 | margin: 10px 3px 3px 3px; | ||
150 | color: #A2DD42; | ||
151 | text-decoration: none; | ||
152 | line-height: 2.5; | ||
153 | white-space: nowrap; | ||
154 | } | ||
155 | |||
156 | #pageheader #linkcount { | ||
157 | float: right; | ||
158 | font-style: italic; | ||
159 | color: #bbb; | ||
160 | text-align: right; | ||
161 | padding-right: 5px; | ||
162 | margin: 3px 3px 0px 0px; | ||
163 | } | ||
164 | |||
165 | #pageheader { | ||
166 | background-color: #333333; | ||
167 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#333333), to(#111111)); | ||
168 | background: -webkit-linear-gradient(#333333, #111111); | ||
169 | background: -moz-linear-gradient(#333333, #111111); | ||
170 | background: -ms-linear-gradient(#333333, #111111); | ||
171 | background: -o-linear-gradient(#333333, #111111); | ||
172 | background: linear-gradient(#333333, #111111); | ||
173 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); | ||
174 | width: auto; | ||
175 | padding: 0 10px 5px 10px; | ||
176 | margin: auto; | ||
177 | } | ||
178 | |||
179 | #pageheader .search { | ||
180 | width: 100%; | ||
181 | white-space: nowrap; | ||
182 | } | ||
183 | |||
184 | #toolsdiv a { | ||
185 | clear: both; | ||
186 | } | ||
187 | |||
188 | #toolsdiv #bookmark { | ||
189 | clear: none; | ||
190 | } | ||
191 | |||
192 | #toolsdiv a span { | ||
193 | color: #ffffff; | ||
194 | } | ||
195 | |||
196 | .linksperpage, .tagfilter, .searchform, .addform { | ||
197 | background-color: #dedede; | ||
198 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dedede), to(#ffffff)); | ||
199 | background: -webkit-linear-gradient(#dedede, #ffffff); | ||
200 | background: -moz-linear-gradient(#dedede, #ffffff); | ||
201 | background: -ms-linear-gradient(#dedede, #ffffff); | ||
202 | background: -o-linear-gradient(#dedede, #ffffff); | ||
203 | background: linear-gradient(#dedede, #ffffff); | ||
204 | display: inline; | ||
205 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); | ||
206 | padding: 5px; | ||
207 | border: none; | ||
208 | border-radius: 3px 3px 3px 3px; | ||
209 | margin: 10px 3px 3px 3px; | ||
210 | color: #cecece; | ||
211 | } | ||
212 | |||
213 | .linksperpage { | ||
214 | box-shadow: 0 0 0 rgba(0, 0, 0, 0.5); | ||
215 | padding: 3px; | ||
216 | } | ||
217 | |||
218 | .linksperpage input, .tagfilter input, .searchform input, .addform input { | ||
219 | border: none; | ||
220 | color: #606060; | ||
221 | background: none; | ||
222 | box-shadow: none; | ||
223 | padding: 5px; | ||
224 | } | ||
225 | |||
226 | .linksperpage input { | ||
227 | padding: 0; | ||
228 | } | ||
229 | |||
230 | .searchform #searchform_value { | ||
231 | width: 30%; | ||
232 | } | ||
233 | |||
234 | .tagfilter { | ||
235 | margin-left:24px; | ||
236 | } | ||
237 | |||
238 | .tagfilter div.awesomplete { | ||
239 | width: 15%; | ||
240 | } | ||
241 | |||
242 | .tagfilter #tagfilter_value { | ||
243 | display: inline; | ||
244 | } | ||
245 | |||
246 | .tagfilter li { | ||
247 | color: black; | ||
248 | } | ||
249 | |||
250 | .tagfilter input.bigbutton, .searchform input.bigbutton, .addform input.bigbutton { | ||
251 | background-color: #dedede; | ||
252 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#dedede), to(#ffffff)); | ||
253 | background: -webkit-linear-gradient(#dedede, #ffffff); | ||
254 | background: -moz-linear-gradient(#dedede, #ffffff); | ||
255 | background: -ms-linear-gradient(#dedede, #ffffff); | ||
256 | background: -o-linear-gradient(#dedede, #ffffff); | ||
257 | background: linear-gradient(#dedede, #ffffff); | ||
258 | box-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); | ||
259 | padding: 0 5px 0 5px; | ||
260 | margin: 5px 0 5px 0; | ||
261 | height: 20px; | ||
262 | border-radius: 3px 3px 3px 3px; | ||
263 | cursor: pointer; | ||
264 | } | ||
265 | |||
266 | #shaarli_title { | ||
267 | font-weight: bold; | ||
268 | font-style: italic; | ||
269 | margin-top: 0; | ||
270 | } | ||
271 | |||
272 | #shaarli_title a { | ||
273 | color: #fff !important; | ||
274 | } | ||
275 | |||
276 | #pageheader a:visited { | ||
277 | color: #98C943; | ||
278 | text-decoration: none; | ||
279 | } | ||
280 | |||
281 | #pageheader a:hover { | ||
282 | color: #FFFFC9; | ||
283 | text-decoration: none; | ||
284 | } | ||
285 | |||
286 | #pageheader a:active { | ||
287 | color: #bbb; | ||
288 | text-decoration: none; | ||
289 | } | ||
290 | |||
291 | #searchcriteria { | ||
292 | padding: 4px 0px 5px 5px; | ||
293 | font-weight: bold; | ||
294 | } | ||
295 | |||
296 | .paging { | ||
297 | padding: 5px; | ||
298 | background-color: #777; | ||
299 | color: #ccc; | ||
300 | text-align: center; | ||
301 | clear: both; | ||
302 | } | ||
303 | |||
304 | .paging a:link { | ||
305 | color: #ccc; | ||
306 | text-decoration: none; | ||
307 | } | ||
308 | |||
309 | .paging a:visited { | ||
310 | color: #ccc; | ||
311 | } | ||
312 | |||
313 | .paging a:hover { | ||
314 | color: #FFFFC9; | ||
315 | } | ||
316 | |||
317 | .paging a:active { | ||
318 | color: #fff; | ||
319 | } | ||
320 | |||
321 | .paging_privatelinks { | ||
322 | float: left; | ||
323 | } | ||
324 | |||
325 | .paging_linksperpage { | ||
326 | float: right; | ||
327 | padding-right: 5px; | ||
328 | margin: 0px 10px 2px 0px; | ||
329 | } | ||
330 | |||
331 | .paging_linksperpage form.linksperpage { | ||
332 | display: inline; | ||
333 | } | ||
334 | |||
335 | .paging_linksperpage form.linksperpage input { | ||
336 | height: 15px; | ||
337 | } | ||
338 | |||
339 | .paging_current { | ||
340 | display: inline; | ||
341 | color: #fff; | ||
342 | padding: 0 20 0 20; | ||
343 | } | ||
344 | |||
345 | .paging_older { | ||
346 | margin-right: 15px; | ||
347 | } | ||
348 | |||
349 | .paging_newer { | ||
350 | margin-left: 15px; | ||
351 | } | ||
352 | |||
353 | #headerform { | ||
354 | color: #ffffff; | ||
355 | padding: 5px 5px 5px 5px; | ||
356 | clear: both; | ||
357 | } | ||
358 | |||
359 | #headerform input.linkurl { | ||
360 | width: 50%; | ||
361 | font-size: inherit; | ||
362 | } | ||
363 | |||
364 | #headerform label { | ||
365 | cursor: pointer; | ||
366 | margin-right: 10px; | ||
367 | } | ||
368 | |||
369 | #headerform label[for=longlastingsession] { | ||
370 | display: block; | ||
371 | width: 100%; | ||
372 | margin-top: 5px; | ||
373 | } | ||
374 | |||
375 | #toolsdiv { | ||
376 | color: #ffffff; | ||
377 | padding: 5px 5px 5px 5px; | ||
378 | clear: left; | ||
379 | } | ||
380 | |||
381 | #uploaddiv { | ||
382 | color: #ffffff; | ||
383 | padding: 5px 5px 5px 5px; | ||
384 | clear: left; | ||
385 | } | ||
386 | |||
387 | #editlinkform { | ||
388 | height: 100%; | ||
389 | padding: 5px 5px 5px 15px; | ||
390 | width: 80%; | ||
391 | clear: left; | ||
392 | } | ||
393 | |||
394 | #editlinkform label { | ||
395 | cursor: pointer; | ||
396 | color: #ffffff; | ||
397 | } | ||
398 | |||
399 | #editlinkform textarea, #editlinkform .lf_input { | ||
400 | width: 100%; | ||
401 | } | ||
402 | |||
403 | #linklist li { | ||
404 | padding: 4px 10px 15px 20px; | ||
405 | border-top: 1px solid #bbb; | ||
406 | clear: both; | ||
407 | background-color: #F2F2F2; | ||
408 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#F2F2F2), to(#ffffff)); | ||
409 | background: -webkit-linear-gradient(#F2F2F2, #ffffff); | ||
410 | background: -moz-linear-gradient(#F2F2F2, #ffffff); | ||
411 | background: -ms-linear-gradient(#F2F2F2, #ffffff); | ||
412 | background: -o-linear-gradient(#F2F2F2, #ffffff); | ||
413 | background: linear-gradient(#F2F2F2, #ffffff); | ||
414 | } | ||
415 | |||
416 | /* | ||
417 | #linklist li.publicLinkHightLight:hover, #linklist li:hover { | ||
418 | background: #E9FFCE; | ||
419 | } | ||
420 | */ | ||
421 | |||
422 | .linkdate { | ||
423 | font-size:8pt; | ||
424 | color:#888; | ||
425 | } | ||
426 | |||
427 | .linkdate a { | ||
428 | color:#E28E3F; | ||
429 | } | ||
430 | |||
431 | #linklist li.private { | ||
432 | background: url('../images/private.png') no-repeat 4px center; | ||
433 | padding-left: 30px; | ||
434 | } | ||
435 | |||
436 | #linklist li { | ||
437 | padding-left: 30px; | ||
438 | } | ||
439 | |||
440 | .private .linktitle a { | ||
441 | color: #969696; | ||
442 | } | ||
443 | |||
444 | .linktitle { | ||
445 | font-size: 14pt; | ||
446 | font-weight: bold; | ||
447 | } | ||
448 | |||
449 | .linktitle a { | ||
450 | text-decoration: none; | ||
451 | color: #80AD48; | ||
452 | } | ||
453 | |||
454 | .linktitle a:hover { | ||
455 | color: #F57900; | ||
456 | } | ||
457 | |||
458 | .linkdate { | ||
459 | font-size: 8pt; | ||
460 | color: #888; | ||
461 | } | ||
462 | |||
463 | .linkdate a { | ||
464 | background-image: url('../images/calendar.png'); | ||
465 | padding: 2px 0 3px 20px; | ||
466 | background-repeat: no-repeat; | ||
467 | text-decoration: none; | ||
468 | color: #E28E3F; | ||
469 | } | ||
470 | |||
471 | .linkdate a:hover { | ||
472 | color: #F57900 } | ||
473 | |||
474 | .linkurl { | ||
475 | font-size: 8pt; | ||
476 | color: #4BAA74; | ||
477 | } | ||
478 | |||
479 | .linkdescription { | ||
480 | color: #000; | ||
481 | margin-top: 0; | ||
482 | margin-bottom: 12px; | ||
483 | font-weight: normal; | ||
484 | overflow: auto; | ||
485 | } | ||
486 | |||
487 | .linkdescription a { | ||
488 | text-decoration: none; | ||
489 | color: #3465A4; | ||
490 | } | ||
491 | |||
492 | .linkdescription a:hover { | ||
493 | color: #F57900; | ||
494 | } | ||
495 | |||
496 | .linktaglist { | ||
497 | padding-top: 10px; | ||
498 | line-height: 200%; | ||
499 | } | ||
500 | |||
501 | .linktag { | ||
502 | font-size: 9pt; | ||
503 | background-color: #F2F2F2; | ||
504 | background: -webkit-gradient(linear, 0 0, 0 bottom, from(#F2F2F2), to(#ffffff)); | ||
505 | background: -webkit-linear-gradient(#F2F2F2, #ffffff); | ||
506 | background: -moz-linear-gradient(#F2F2F2, #ffffff); | ||
507 | background: -ms-linear-gradient(#F2F2F2, #ffffff); | ||
508 | background: -o-linear-gradient(#F2F2F2, #ffffff); | ||
509 | background: linear-gradient(#F2F2F2, #ffffff); | ||
510 | box-shadow: 0 0 2px rgba(0, 0, 0, 0.5); | ||
511 | padding: 3px 5px 3px 20px; | ||
512 | height: 20px; | ||
513 | border-radius: 3px; | ||
514 | cursor: pointer; | ||
515 | background-image: url('../images/tag_blue.png'); | ||
516 | background-repeat: no-repeat; | ||
517 | background-position: 3px center; | ||
518 | background-color: #ffffff; | ||
519 | } | ||
520 | |||
521 | .linktag:hover { | ||
522 | border-color: #555573; | ||
523 | color: #000; | ||
524 | } | ||
525 | |||
526 | .linktag a { | ||
527 | color: #777; | ||
528 | text-decoration: none; | ||
529 | } | ||
530 | |||
531 | .linktag .remove { | ||
532 | border-left: 1px solid #aaa; | ||
533 | padding-left: 5px; | ||
534 | color:#6767A7; | ||
535 | } | ||
536 | |||
537 | .linkshort { | ||
538 | font-size: 8pt; | ||
539 | color: #888; | ||
540 | } | ||
541 | |||
542 | .linkshort a { | ||
543 | text-decoration: none; | ||
544 | color: #393964; | ||
545 | } | ||
546 | |||
547 | .linkshort a:hover { | ||
548 | text-decoration: underline; | ||
549 | } | ||
550 | |||
551 | .buttoneditform { | ||
552 | display: inline; | ||
553 | } | ||
554 | |||
555 | #footer { | ||
556 | font-size: 8pt; | ||
557 | text-align: center; | ||
558 | color: #888; | ||
559 | clear: both; | ||
560 | max-width: 30em; | ||
561 | margin: 15px auto 15px auto; | ||
562 | } | ||
563 | |||
564 | #footer a { | ||
565 | color: #486D08; | ||
566 | } | ||
567 | |||
568 | #footer a:hover { | ||
569 | color: #000000; | ||
570 | } | ||
571 | |||
572 | #newversion { | ||
573 | background-color: #FFFFA0; | ||
574 | color: #000; | ||
575 | position: absolute; | ||
576 | top: 0; | ||
577 | right: 0; | ||
578 | padding: 2 7 2 7; | ||
579 | font-size: 9pt; | ||
580 | } | ||
581 | |||
582 | #newversion #version_id { | ||
583 | text-decoration: blink; | ||
584 | } | ||
585 | |||
586 | #cloudtag { | ||
587 | padding-left: 10%; | ||
588 | padding-right: 10%; | ||
589 | } | ||
590 | |||
591 | #cloudtag .count { | ||
592 | color: #99f; | ||
593 | font-size: 9pt; | ||
594 | padding-left: 5px; | ||
595 | padding-right: 2px; | ||
596 | } | ||
597 | |||
598 | #cloudtag a { | ||
599 | color: black; | ||
600 | text-decoration: none; | ||
601 | } | ||
602 | |||
603 | #install { | ||
604 | margin: 0 20px; | ||
605 | } | ||
606 | |||
607 | #installform { | ||
608 | border: 1px solid black; | ||
609 | padding: 10px; | ||
610 | } | ||
611 | |||
612 | #installform table { | ||
613 | border: none; | ||
614 | } | ||
615 | |||
616 | #installform td { | ||
617 | font-size: 10pt; | ||
618 | color: black; | ||
619 | padding: 10px 5px 10px 5px; | ||
620 | clear: left; | ||
621 | } | ||
622 | |||
623 | #installform input.bigbutton { | ||
624 | float: right; | ||
625 | } | ||
626 | |||
627 | #changepasswordform { | ||
628 | color: #ccc; | ||
629 | padding: 10px 5px 10px 5px; | ||
630 | clear: left; | ||
631 | } | ||
632 | |||
633 | #changetag { | ||
634 | color: #ccc; | ||
635 | padding: 10px 5px 10px 5px; | ||
636 | clear: left; | ||
637 | } | ||
638 | |||
639 | #changetag #totag { | ||
640 | margin-left: 40px; | ||
641 | } | ||
642 | |||
643 | #changetag div { | ||
644 | float:left; | ||
645 | } | ||
646 | |||
647 | #changetag label { | ||
648 | padding: 5px; | ||
649 | } | ||
650 | |||
651 | #changetag li { | ||
652 | color: #000; | ||
653 | } | ||
654 | #configform td { | ||
655 | color: #ccc; | ||
656 | font-size: 10pt; | ||
657 | padding: 10px 5px 10px 5px; | ||
658 | } | ||
659 | |||
660 | #configform { | ||
661 | color: #ccc; | ||
662 | padding: 10px 5px 10px 5px; | ||
663 | clear: left; | ||
664 | } | ||
665 | |||
666 | .thumbnail { | ||
667 | float: right; | ||
668 | margin: 0px 10px 0px 10px; | ||
669 | } | ||
670 | |||
671 | .thumbnail img { | ||
672 | border-radius: 3px; | ||
673 | box-shadow: 0.5px 0.5px 0.5px 1px #dde4e6; | ||
674 | } | ||
675 | |||
676 | /* If you want thumbnails on the left: | ||
677 | .thumbnail { | ||
678 | float: left; | ||
679 | margin-right: 10px; | ||
680 | } | ||
681 | .linkcontainer { | ||
682 | position: static; | ||
683 | margin-left: 130px; | ||
684 | } | ||
685 | */ | ||
686 | |||
687 | /* --- Picture wall CSS --- */ | ||
688 | #picwall_container { | ||
689 | color: #fff; | ||
690 | background-color: #000; | ||
691 | clear: both; | ||
692 | } | ||
693 | |||
694 | .picwall_pictureframe { | ||
695 | background-color: #000; | ||
696 | z-index: 5; | ||
697 | position: relative; | ||
698 | display: table-cell; | ||
699 | vertical-align: middle; | ||
700 | width: 90px; | ||
701 | height: 90px; | ||
702 | overflow: hidden; | ||
703 | text-align: center; | ||
704 | float: left; | ||
705 | } | ||
706 | |||
707 | .b-lazy { | ||
708 | -webkit-transition: opacity 500ms ease-in-out; | ||
709 | -moz-transition: opacity 500ms ease-in-out; | ||
710 | -o-transition: opacity 500ms ease-in-out; | ||
711 | transition: opacity 500ms ease-in-out; | ||
712 | opacity: 0; | ||
713 | } | ||
714 | .b-lazy.b-loaded { | ||
715 | opacity: 1; | ||
716 | } | ||
717 | |||
718 | .picwall_pictureframe img { | ||
719 | max-width: 100%; | ||
720 | height: auto; | ||
721 | color: transparent; | ||
722 | } /* Adapt the width of the image */ | ||
723 | |||
724 | .picwall_pictureframe a { | ||
725 | text-decoration: none; | ||
726 | } | ||
727 | |||
728 | /* CSS to show title when hovering an image - no javascript required. */ | ||
729 | .picwall_pictureframe span.info { | ||
730 | display: none; | ||
731 | } | ||
732 | |||
733 | .picwall_pictureframe:hover span.info { | ||
734 | display: block; | ||
735 | position: absolute; | ||
736 | top: 0; | ||
737 | left: 0; | ||
738 | width: 90px; | ||
739 | font-weight: bold; | ||
740 | font-size: 8pt; | ||
741 | color: #fff; | ||
742 | text-align: left; | ||
743 | background-color: transparent; | ||
744 | background-color: rgba(0, 0, 0, 0.4); | ||
745 | /* FF3+, Saf3+, Opera 10.10+, Chrome, IE9 */ | ||
746 | filter: progid: DXImageTransform.Microsoft.gradient(startColorstr=#66000000, endColorstr=#66000000); | ||
747 | /* IE6IE9 */ | ||
748 | text-shadow: 2px 2px 1px #000000; | ||
749 | } | ||
750 | |||
751 | #linklist li.publicLinkHightLight { | ||
752 | background: #ffffff; | ||
753 | } | ||
754 | |||
755 | div.daily { | ||
756 | font-family: Georgia, 'DejaVu Serif', Norasi, serif; | ||
757 | background-color: #E6D6BE; | ||
758 | /* Background paper texture by BashCorpo: | ||
759 | http://www.bashcorpo.dk/textures.php | ||
760 | http://bashcorpo.deviantart.com/art/Grungy-paper-texture-v-5-22966998 */ | ||
761 | background-image: url("../images/Paper_texture_v5_by_bashcorpo_w1000.jpg"); | ||
762 | -webkit-background-size: cover; | ||
763 | -moz-background-size: cover; | ||
764 | -o-background-size: cover; | ||
765 | background-size: cover; | ||
766 | position: relative; | ||
767 | border-bottom: 2px solid black; | ||
768 | } | ||
769 | |||
770 | #daily_col1 { | ||
771 | float: left; | ||
772 | position: relative; | ||
773 | width: 33%; | ||
774 | padding-left: 1%; | ||
775 | } | ||
776 | |||
777 | #daily_col2 { | ||
778 | float: left; | ||
779 | position: relative; | ||
780 | width: 33%; | ||
781 | } | ||
782 | |||
783 | #daily_col3 { | ||
784 | float: left; | ||
785 | position: relative; | ||
786 | width: 33%; | ||
787 | } | ||
788 | |||
789 | div.dailyAbout { | ||
790 | float: left; | ||
791 | border: 1px solid black; | ||
792 | font-size: 8pt; | ||
793 | position: absolute; | ||
794 | left: 10px; | ||
795 | top: 15px; | ||
796 | padding: 5px 5px 5px 5px; | ||
797 | text-align: center; | ||
798 | } | ||
799 | |||
800 | div.dailyAbout a { | ||
801 | color: #890500; | ||
802 | } | ||
803 | |||
804 | div.dailyAbout img { | ||
805 | position: relative; | ||
806 | top: 3px; | ||
807 | margin-right: 4px; | ||
808 | width: 14px; | ||
809 | height: 14px; | ||
810 | } | ||
811 | |||
812 | div.dailyEntryPermalink { | ||
813 | float: right; | ||
814 | } | ||
815 | |||
816 | div.dailyTitle { | ||
817 | font-weight: bold; | ||
818 | font-size: 44pt; | ||
819 | text-align: center; | ||
820 | padding: 10px 20px 0px 20px; | ||
821 | } | ||
822 | |||
823 | div.dailyDate { | ||
824 | font-size: 12pt; | ||
825 | font-weight: bold; | ||
826 | text-align: center; | ||
827 | padding: 0px 20px 30px 20px; | ||
828 | } | ||
829 | |||
830 | /* Individual entries in "Daily": */ | ||
831 | div.dailyEntry { | ||
832 | margin: 5px 10px 2px 5px; | ||
833 | font-size: 11pt; | ||
834 | border-top: 1px solid #555; | ||
835 | } | ||
836 | |||
837 | div.dailyEntry a { | ||
838 | text-decoration: none; | ||
839 | color: #890500; | ||
840 | } | ||
841 | |||
842 | div.dailyEntryTags { | ||
843 | font-size: 7.75pt; | ||
844 | } | ||
845 | |||
846 | div.dailyEntryTitle { | ||
847 | font-size: 18pt; | ||
848 | font-weight: bold; | ||
849 | } | ||
850 | |||
851 | div.dailyEntryLinkdate { | ||
852 | font-size: 8pt; | ||
853 | } | ||
854 | |||
855 | div.dailyEntryThumbnail { | ||
856 | width: 100%; | ||
857 | text-align: center; | ||
858 | background-color: rgb(128, 128, 128); | ||
859 | background: url(../images/50pc_transparent.png); | ||
860 | padding: 4px 0px 2px 0px; | ||
861 | } | ||
862 | |||
863 | div.dailyEntryDescription { | ||
864 | margin-top: 10px; | ||
865 | margin-bottom: 30px; | ||
866 | text-align: justify; | ||
867 | overflow: auto; | ||
868 | } | ||
869 | |||
870 | div.dailyNoEntry { | ||
871 | text-align: center; | ||
872 | padding: 40px 0px 90px 0px; | ||
873 | } | ||
874 | |||
875 | .daily #closing { | ||
876 | clear: both; | ||
877 | text-align: center; | ||
878 | padding-bottom: 20px; | ||
879 | } | ||
880 | |||
881 | /* Common CSS screwdriver */ | ||
882 | .clear { | ||
883 | clear: both; | ||
884 | } | ||
885 | |||
886 | .right { | ||
887 | text-align: right; | ||
888 | } | ||
889 | |||
890 | .white { | ||
891 | color: white; | ||
892 | } | ||
893 | |||
894 | /* For lazy images loading in picture wall. | ||
895 | Using http://www.appelsiini.net/projects/lazyload | ||
896 | */ | ||
897 | .lazyimage { | ||
898 | display: none; | ||
899 | } | ||
900 | |||
901 | #configuration_table td { | ||
902 | border: none; | ||
903 | padding: 10px; | ||
904 | vertical-align: top; | ||
905 | } | ||
906 | |||
907 | @media print { | ||
908 | html { | ||
909 | border: none; | ||
910 | background: #fff !important; | ||
911 | color: #000 !important; | ||
912 | } | ||
913 | |||
914 | body { | ||
915 | font-size: 12pt; | ||
916 | width: auto !important; | ||
917 | margin: auto !important; | ||
918 | } | ||
919 | |||
920 | /* Minimum numer of lines to display when splitting a paragraph | ||
921 | over two pages */ | ||
922 | p { | ||
923 | orphans: 3; | ||
924 | widows: 3; | ||
925 | } | ||
926 | |||
927 | a { | ||
928 | color: #000 !important; | ||
929 | text-decoration: none !important; | ||
930 | } | ||
931 | |||
932 | #pageheader, .paging, #linklist li form, #footer { | ||
933 | display: none; | ||
934 | } | ||
935 | |||
936 | #linklist li { | ||
937 | padding: 2 0 10 0; | ||
938 | border-top: 2px solid #000; | ||
939 | clear: both; | ||
940 | } | ||
941 | |||
942 | #linklist li.private { | ||
943 | background-color: none; | ||
944 | border-left: 0; | ||
945 | } | ||
946 | |||
947 | .linkdate { | ||
948 | line-height: 2; | ||
949 | } | ||
950 | |||
951 | .linkurl { | ||
952 | color: #000; | ||
953 | } | ||
954 | |||
955 | .linkdescription { | ||
956 | font-size: 10pt; | ||
957 | } | ||
958 | |||
959 | .linktag { | ||
960 | border: 1px solid black; | ||
961 | font-style: italic; | ||
962 | font-size: 8pt; | ||
963 | } | ||
964 | } | ||
965 | |||
966 | @media handheld, only screen and (max-width: 480px), only screen and (max-device-width: 854px) { | ||
967 | /* A few fixes for mobile devices (far from perfect). */ | ||
968 | |||
969 | .tagfilter div.awesomplete { | ||
970 | width: 70%; | ||
971 | } | ||
972 | |||
973 | .nomobile { | ||
974 | display: none; | ||
975 | } | ||
976 | |||
977 | #logo { | ||
978 | display: none; | ||
979 | } | ||
980 | |||
981 | #pageheader #menu ul { | ||
982 | text-align: center; | ||
983 | } | ||
984 | |||
985 | #pageheader #menu a { | ||
986 | padding: 5px; | ||
987 | border-radius: 3px 3px 3px 3px; | ||
988 | margin: 3px; | ||
989 | } | ||
990 | |||
991 | #headerform label { | ||
992 | width: 100%; | ||
993 | display: block; | ||
994 | height: auto; | ||
995 | line-height: 25px; | ||
996 | padding-bottom: 10px; | ||
997 | } | ||
998 | |||
999 | #headerform label input[type=text], | ||
1000 | #headerform label input[type=password]{ | ||
1001 | float: right; | ||
1002 | width: 70%; | ||
1003 | } | ||
1004 | |||
1005 | .searchform, .tagfilter { | ||
1006 | display: block !important; | ||
1007 | margin: 0px 3px 7px 0px !important; | ||
1008 | padding: 0px !important; | ||
1009 | width: 97% !important; | ||
1010 | } | ||
1011 | |||
1012 | .searchform input, .tagfilter input { | ||
1013 | margin: 0px !important; | ||
1014 | padding: 0px !important; | ||
1015 | display: inline !important; | ||
1016 | } | ||
1017 | |||
1018 | .tagfilter input.bigbutton, .searchform input.bigbutton, .addform input.bigbutton, a.bigbutton { | ||
1019 | width: 30%; | ||
1020 | font-size: smaller; | ||
1021 | } | ||
1022 | |||
1023 | #searchform_value { | ||
1024 | width: 70% !important; | ||
1025 | } | ||
1026 | |||
1027 | #tagfilter_value { | ||
1028 | width: 70% !important; | ||
1029 | } | ||
1030 | |||
1031 | div.qrcode { | ||
1032 | position: relative; | ||
1033 | float: left; | ||
1034 | top: -10px; | ||
1035 | left: 0px; | ||
1036 | } | ||
1037 | |||
1038 | .paging_privatelinks { | ||
1039 | float: none; | ||
1040 | } | ||
1041 | |||
1042 | .paging_linksperpage { | ||
1043 | float: none; | ||
1044 | margin-bottom: 10px; | ||
1045 | font-size: smaller; | ||
1046 | } | ||
1047 | |||
1048 | #paging_older, #paging_newer, .paging_linksperpage a { | ||
1049 | border: 1px solid black; | ||
1050 | padding: 3px 5px 3px 5px; | ||
1051 | background-color: #666; | ||
1052 | color: #fff; | ||
1053 | border-radius: 3px 3px 3px 3px; | ||
1054 | } | ||
1055 | |||
1056 | .thumbnail { | ||
1057 | float: none; | ||
1058 | height: auto; | ||
1059 | margin: 0px; | ||
1060 | text-align: center; | ||
1061 | } | ||
1062 | |||
1063 | #cloudtag { | ||
1064 | padding: 0px; | ||
1065 | } | ||
1066 | |||
1067 | div.dailyAbout { | ||
1068 | float: none; | ||
1069 | position: relative; | ||
1070 | width: 100%; | ||
1071 | clear: both; | ||
1072 | padding: 0px; | ||
1073 | top: 0px; | ||
1074 | left: 0px; | ||
1075 | } | ||
1076 | |||
1077 | #daily_col1, #daily_col2, #daily_col3 { | ||
1078 | float: none; | ||
1079 | width: 100%; | ||
1080 | padding: 0px; | ||
1081 | } | ||
1082 | |||
1083 | div.dailyTitle { | ||
1084 | font-size: 18pt; | ||
1085 | margin-top: 5px; | ||
1086 | padding: 0px; | ||
1087 | } | ||
1088 | |||
1089 | div.dailyDate { | ||
1090 | font-size: 11pt; | ||
1091 | padding: 0px; | ||
1092 | display: block; | ||
1093 | } | ||
1094 | |||
1095 | div.dailyEntryTitle { | ||
1096 | font-size: 16pt; | ||
1097 | font-weight: bold; | ||
1098 | } | ||
1099 | |||
1100 | div.dailyEntryDescription { | ||
1101 | font-size: 10pt; | ||
1102 | } | ||
1103 | } | ||
1104 | |||
1105 | #toolsdiv a.button-description { | ||
1106 | clear: none; | ||
1107 | } | ||
1108 | |||
1109 | /* Highlight search results */ | ||
1110 | .highlight { | ||
1111 | background-color: #FFFF33; | ||
1112 | } | ||
1113 | |||
1114 | .center { | ||
1115 | text-align: center; | ||
1116 | } | ||
1117 | |||
1118 | ul.errors { | ||
1119 | color: red; | ||
1120 | float: left; | ||
1121 | } | ||
1122 | |||
1123 | #pluginsadmin { | ||
1124 | width: 80%; | ||
1125 | padding: 20px 0 0 20px; | ||
1126 | } | ||
1127 | |||
1128 | #pluginsadmin section { | ||
1129 | padding: 20px 0; | ||
1130 | } | ||
1131 | |||
1132 | #pluginsadmin .plugin_parameters { | ||
1133 | margin: 10px 0; | ||
1134 | } | ||
1135 | |||
1136 | #pluginsadmin h1 { | ||
1137 | font-style: normal; | ||
1138 | } | ||
1139 | |||
1140 | #pluginsadmin h2 { | ||
1141 | font-size: 1.4em; | ||
1142 | font-weight: bold; | ||
1143 | } | ||
1144 | |||
1145 | #pluginsadmin table { | ||
1146 | width: 100%; | ||
1147 | } | ||
1148 | |||
1149 | #pluginsadmin table, #pluginsadmin th, #pluginsadmin td { | ||
1150 | border-width: 1px 0; | ||
1151 | border-style: solid; | ||
1152 | border-color: #c0c0c0; | ||
1153 | } | ||
1154 | |||
1155 | #pluginsadmin table th { | ||
1156 | font-weight: bold; | ||
1157 | padding: 10px 0; | ||
1158 | } | ||
1159 | |||
1160 | #pluginsadmin table td { | ||
1161 | padding: 5px 0; | ||
1162 | } | ||
1163 | |||
1164 | #pluginsadmin input[type=submit] { | ||
1165 | margin: 10px 0; | ||
1166 | } | ||
1167 | |||
1168 | #pluginsadmin label { | ||
1169 | cursor: pointer; | ||
1170 | } | ||
1171 | |||
1172 | #pluginsadmin .plugin_parameter { | ||
1173 | padding: 10px 0; | ||
1174 | border-width: 1px 0; | ||
1175 | border-style: solid; | ||
1176 | border-color: #c0c0c0; | ||
1177 | } | ||
1178 | |||
1179 | #pluginsadmin .float_label { | ||
1180 | float: left; | ||
1181 | width: 40%; | ||
1182 | } | ||
1183 | |||
1184 | #pluginsadmin a { | ||
1185 | color: #486D08; | ||
1186 | } | ||
1187 | |||
1188 | #pluginsadmin a.arrow { | ||
1189 | color: black; | ||
1190 | } | ||
1191 | |||
1192 | /* 404 page */ | ||
1193 | .error-container { | ||
1194 | |||
1195 | margin: 50px; | ||
1196 | margin-top: 20px; | ||
1197 | } | ||
1198 | |||
1199 | .error-container h1 { | ||
1200 | text-decoration: none; | ||
1201 | font-style: normal; | ||
1202 | color: #80AD48; | ||
1203 | } | ||
1204 | |||
1205 | .linklist-plugin-icon { | ||
1206 | width: 13px; | ||
1207 | height: 13px; | ||
1208 | } | ||
diff --git a/tpl/default/daily.html b/tpl/default/daily.html new file mode 100644 index 00000000..e86e90b1 --- /dev/null +++ b/tpl/default/daily.html | |||
@@ -0,0 +1,101 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | </div> | ||
8 | <div class="daily"> | ||
9 | <div id="plugin_zone_start_picwall" class="plugin_zone"> | ||
10 | {loop="$plugin_start_zone"} | ||
11 | {$value} | ||
12 | {/loop} | ||
13 | </div> | ||
14 | |||
15 | <div class="dailyAbout"> | ||
16 | All links of one day<br>in a single page.<br> | ||
17 | {if="$previousday"} <a href="?do=daily&day={$previousday}"><b><</b>Previous day</a>{else}<b><</b>Previous day{/if} | ||
18 | - | ||
19 | {if="$nextday"}<a href="?do=daily&day={$nextday}">Next day<b>></b></a>{else}Next day<b>></b>{/if} | ||
20 | <br> | ||
21 | |||
22 | {loop="$daily_about_plugin"} | ||
23 | {$value} | ||
24 | {/loop} | ||
25 | |||
26 | <br> | ||
27 | <a href="?do=dailyrss" title="1 RSS entry per day"><img src="images/feed-icon-14x14.png#" alt="rss_feed">Daily RSS Feed</a> | ||
28 | </div> | ||
29 | |||
30 | <div class="dailyTitle"> | ||
31 | <img src="images/floral_left.png" width="51" height="50" class="nomobile" alt="floral_left"> | ||
32 | The Daily Shaarli | ||
33 | <img src="images/floral_right.png" width="51" height="50" class="nomobile" alt="floral_right"> | ||
34 | </div> | ||
35 | |||
36 | <div class="dailyDate"> | ||
37 | <span class="nomobile">———————————</span> | ||
38 | {function="strftime('%A %d, %B %Y', $day)"} | ||
39 | <span class="nomobile">———————————</span> | ||
40 | </div> | ||
41 | |||
42 | <div class="clear"></div> | ||
43 | |||
44 | {if="$linksToDisplay"} | ||
45 | {loop="$cols"} | ||
46 | {if="isset($value[0])"} | ||
47 | <div id="daily_col{$counter+1}"> | ||
48 | {loop="$value"} | ||
49 | {$link=$value} | ||
50 | <div class="dailyEntry"> | ||
51 | <div class="dailyEntryPermalink"> | ||
52 | <a href="?{$value.shorturl}"> | ||
53 | <img src="images/squiggle.png" width="25" height="26" title="permalink" alt="permalink"> | ||
54 | </a> | ||
55 | </div> | ||
56 | {if="!$hide_timestamps || isLoggedIn()"} | ||
57 | <div class="dailyEntryLinkdate"> | ||
58 | <a href="?{$value.shorturl}">{function="strftime('%c', $link.timestamp)"}</a> | ||
59 | </div> | ||
60 | {/if} | ||
61 | {if="$link.tags"} | ||
62 | <div class="dailyEntryTags"> | ||
63 | {loop="$link.taglist"} | ||
64 | {$value} - | ||
65 | {/loop} | ||
66 | </div> | ||
67 | {/if} | ||
68 | <div class="dailyEntryTitle"> | ||
69 | <a href="{$link.real_url}">{$link.title}</a> | ||
70 | </div> | ||
71 | {if="$link.thumbnail"} | ||
72 | <div class="dailyEntryThumbnail">{$link.thumbnail}</div> | ||
73 | {/if} | ||
74 | <div class="dailyEntryDescription">{$link.formatedDescription}</div> | ||
75 | |||
76 | <div class="dailyEntryFooter"> | ||
77 | {loop="$link.link_plugin"} | ||
78 | {$value} | ||
79 | {/loop} | ||
80 | </div> | ||
81 | </div> | ||
82 | {/loop} | ||
83 | </div> | ||
84 | {/if} | ||
85 | {/loop} | ||
86 | {else} | ||
87 | <div class="dailyNoEntry">No articles on this day.</div> | ||
88 | {/if} | ||
89 | |||
90 | <div class="clear"></div> | ||
91 | |||
92 | <div id="plugin_zone_end_picwall" class="plugin_zone"> | ||
93 | {loop="$plugin_end_zone"} | ||
94 | {$value} | ||
95 | {/loop} | ||
96 | </div> | ||
97 | <div id="closing"><img src="images/squiggle_closing.png" width="66" height="61" alt="-"></div> | ||
98 | </div> | ||
99 | {include="page.footer"} | ||
100 | </body> | ||
101 | </html> | ||
diff --git a/tpl/default/dailyrss.html b/tpl/default/dailyrss.html new file mode 100644 index 00000000..ddbd6c5e --- /dev/null +++ b/tpl/default/dailyrss.html | |||
@@ -0,0 +1,16 @@ | |||
1 | <item> | ||
2 | <title>{$title} - {function="strftime('%A %e %B %Y', $daydate)"}</title> | ||
3 | <guid>{$absurl}</guid> | ||
4 | <link>{$absurl}</link> | ||
5 | <pubDate>{$rssdate}</pubDate> | ||
6 | <description><![CDATA[ | ||
7 | {loop="$links"} | ||
8 | <h3><a href="{$value.url}">{$value.title}</a></h3> | ||
9 | <small>{if="!$hide_timestamps"}{function="strftime('%c', $value.timestamp)"} - {/if}{if="$value.tags"}{$value.tags}{/if}<br> | ||
10 | {$value.url}</small><br> | ||
11 | {if="$value.thumbnail"}{$value.thumbnail}{/if}<br> | ||
12 | {if="$value.description"}{$value.formatedDescription}{/if} | ||
13 | <br><br><hr> | ||
14 | {/loop} | ||
15 | ]]></description> | ||
16 | </item> | ||
diff --git a/tpl/default/editlink.html b/tpl/default/editlink.html new file mode 100644 index 00000000..a2d9b78f --- /dev/null +++ b/tpl/default/editlink.html | |||
@@ -0,0 +1,63 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"} | ||
4 | <link type="text/css" rel="stylesheet" href="inc/awesomplete.css#" /> | ||
5 | </head> | ||
6 | <body | ||
7 | {if="$link.title==''"}onload="document.linkform.lf_title.focus();" | ||
8 | {elseif="$link.description==''"}onload="document.linkform.lf_description.focus();" | ||
9 | {else}onload="document.linkform.lf_tags.focus();"{/if} > | ||
10 | <div id="pageheader"> | ||
11 | {if="$source !== 'firefoxsocialapi'"} | ||
12 | {include="page.header"} | ||
13 | {else} | ||
14 | <div id="shaarli_title"><a href="{$titleLink}">{$shaarlititle}</a></div> | ||
15 | {/if} | ||
16 | <div id="editlinkform"> | ||
17 | <form method="post" name="linkform"> | ||
18 | <input type="hidden" name="lf_linkdate" value="{$link.linkdate}"> | ||
19 | {if="isset($link.id)"} | ||
20 | <input type="hidden" name="lf_id" value="{$link.id}"> | ||
21 | {/if} | ||
22 | <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> | ||
23 | <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> | ||
24 | <label for="lf_description"><i>Description</i></label><br><textarea name="lf_description" id="lf_description" rows="4" cols="25">{$link.description}</textarea><br> | ||
25 | <label for="lf_tags"><i>Tags</i></label><br> | ||
26 | <input type="text" name="lf_tags" id="lf_tags" value="{$link.tags}" class="lf_input" | ||
27 | data-list="{loop="$tags"}{$key}, {/loop}" data-multiple autocomplete="off" ><br> | ||
28 | |||
29 | {loop="$edit_link_plugin"} | ||
30 | {$value} | ||
31 | {/loop} | ||
32 | |||
33 | {if="($link_is_new && $default_private_links) || $link.private == true"} | ||
34 | <input type="checkbox" checked="checked" name="lf_private" id="lf_private"> | ||
35 | <label for="lf_private"><i>Private</i></label><br> | ||
36 | {else} | ||
37 | <input type="checkbox" name="lf_private" id="lf_private"> | ||
38 | <label for="lf_private"><i>Private</i></label><br> | ||
39 | {/if} | ||
40 | <input type="submit" value="Save" name="save_edit" class="bigbutton"> | ||
41 | <input type="submit" value="Cancel" name="cancel_edit" class="bigbutton"> | ||
42 | {if="!$link_is_new && isset($link.id)"} | ||
43 | <a href="?delete_link&lf_linkdate={$link.id}&token={$token}" | ||
44 | name="delete_link" class="bigbutton" | ||
45 | onClick="return confirmDeleteLink();"> | ||
46 | {'Delete'|t} | ||
47 | </a> | ||
48 | {/if} | ||
49 | <input type="hidden" name="token" value="{$token}"> | ||
50 | {if="$http_referer"}<input type="hidden" name="returnurl" value="{$http_referer}">{/if} | ||
51 | </form> | ||
52 | </div> | ||
53 | </div> | ||
54 | {if="$source !== 'firefoxsocialapi'"} | ||
55 | {include="page.footer"} | ||
56 | {/if} | ||
57 | <script src="inc/awesomplete.min.js#"></script> | ||
58 | <script src="inc/awesomplete-multiple-tags.js#"></script> | ||
59 | <script> | ||
60 | awesompleteUniqueTag('#lf_tags'); | ||
61 | </script> | ||
62 | </body> | ||
63 | </html> | ||
diff --git a/tpl/default/export.bookmarks.html b/tpl/default/export.bookmarks.html new file mode 100644 index 00000000..127a5c20 --- /dev/null +++ b/tpl/default/export.bookmarks.html | |||
@@ -0,0 +1,10 @@ | |||
1 | <!DOCTYPE NETSCAPE-Bookmark-file-1> | ||
2 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8"> | ||
3 | <!-- This is an automatically generated file. | ||
4 | It will be read and overwritten. | ||
5 | Do Not Edit! -->{ignore}The RainTPL loop is formatted to avoid generating extra newlines{/ignore} | ||
6 | <TITLE>{$pagetitle}</TITLE> | ||
7 | <H1>Shaarli export of {$selection} bookmarks on {$date}</H1> | ||
8 | <DL><p>{loop="$links"} | ||
9 | <DT><A HREF="{$value.url}" ADD_DATE="{$value.timestamp}" PRIVATE="{$value.private}" TAGS="{$value.taglist}">{$value.title}</A>{if="$value.description"}{$eol}<DD>{$value.description}{/if}{/loop} | ||
10 | </DL><p> | ||
diff --git a/tpl/default/export.html b/tpl/default/export.html new file mode 100644 index 00000000..67c3d05f --- /dev/null +++ b/tpl/default/export.html | |||
@@ -0,0 +1,28 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | <div id="toolsdiv"> | ||
8 | <form method="GET"> | ||
9 | <input type="hidden" name="do" value="export"> | ||
10 | Selection:<br> | ||
11 | <input type="radio" name="selection" value="all" checked="true"> All<br> | ||
12 | <input type="radio" name="selection" value="private"> Private<br> | ||
13 | <input type="radio" name="selection" value="public"> Public<br> | ||
14 | <br> | ||
15 | <input type="checkbox" name="prepend_note_url" id="prepend_note_url"> | ||
16 | <label for="prepend_note_url"> | ||
17 | Prepend note permalinks with this Shaarli instance's URL | ||
18 | <em>(useful to import bookmarks in a web browser)</em> | ||
19 | </label> | ||
20 | <br><br> | ||
21 | <input class="bigbutton" type="submit" value="Export"> | ||
22 | </form> | ||
23 | <div class="clear"></div> | ||
24 | </div> | ||
25 | </div> | ||
26 | {include="page.footer"} | ||
27 | </body> | ||
28 | </html> | ||
diff --git a/tpl/default/feed.atom.html b/tpl/default/feed.atom.html new file mode 100644 index 00000000..49798e85 --- /dev/null +++ b/tpl/default/feed.atom.html | |||
@@ -0,0 +1,42 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <feed xmlns="http://www.w3.org/2005/Atom"> | ||
3 | <title>{$pagetitle}</title> | ||
4 | <subtitle>Shaared links</subtitle> | ||
5 | {if="$show_dates"} | ||
6 | <updated>{$last_update}</updated> | ||
7 | {/if} | ||
8 | <link rel="self" href="{$self_link}#" /> | ||
9 | <link rel="search" type="application/opensearchdescription+xml" href="{$index_url}?do=opensearch#" | ||
10 | title="Shaarli search - {$shaarlititle}" /> | ||
11 | {loop="$feed_plugins_header"} | ||
12 | {$value} | ||
13 | {/loop} | ||
14 | <author> | ||
15 | <name>{$index_url}</name> | ||
16 | <uri>{$index_url}</uri> | ||
17 | </author> | ||
18 | <id>{$index_url}</id> | ||
19 | <generator>Shaarli</generator> | ||
20 | {loop="$links"} | ||
21 | <entry> | ||
22 | <title>{$value.title}</title> | ||
23 | {if="$usepermalinks"} | ||
24 | <link href="{$value.guid}#" /> | ||
25 | {else} | ||
26 | <link href="{$value.url}#" /> | ||
27 | {/if} | ||
28 | <id>{$value.guid}</id> | ||
29 | {if="$show_dates"} | ||
30 | <published>{$value.pub_iso_date}</published> | ||
31 | <updated>{$value.up_iso_date}</updated> | ||
32 | {/if} | ||
33 | <content type="html" xml:lang="{$language}"><![CDATA[{$value.description}]]></content> | ||
34 | {loop="$value.taglist"} | ||
35 | <category scheme="{$index_url}?searchtags=" term="{$value|strtolower}" label="{$value}" /> | ||
36 | {/loop} | ||
37 | {loop="$value.feed_plugins"} | ||
38 | {$value} | ||
39 | {/loop} | ||
40 | </entry> | ||
41 | {/loop} | ||
42 | </feed> | ||
diff --git a/tpl/default/feed.rss.html b/tpl/default/feed.rss.html new file mode 100644 index 00000000..ee3fef88 --- /dev/null +++ b/tpl/default/feed.rss.html | |||
@@ -0,0 +1,39 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"> | ||
3 | <channel> | ||
4 | <title>{$pagetitle}</title> | ||
5 | <link>{$index_url}</link> | ||
6 | <description>Shaared links</description> | ||
7 | <language>{$language}</language> | ||
8 | <copyright>{$index_url}</copyright> | ||
9 | <generator>Shaarli</generator> | ||
10 | <atom:link rel="self" href="{$self_link}" /> | ||
11 | <atom:link rel="search" type="application/opensearchdescription+xml" href="{$index_url}?do=opensearch#" | ||
12 | title="Shaarli search - {$shaarlititle}" /> | ||
13 | {loop="$feed_plugins_header"} | ||
14 | {$value} | ||
15 | {/loop} | ||
16 | {loop="$links"} | ||
17 | <item> | ||
18 | <title>{$value.title}</title> | ||
19 | <guid isPermaLink="{if="$usepermalinks"}true{else}false{/if}">{$value.guid}</guid> | ||
20 | {if="$usepermalinks"} | ||
21 | <link>{$value.guid}</link> | ||
22 | {else} | ||
23 | <link>{$value.url}</link> | ||
24 | {/if} | ||
25 | {if="$show_dates"} | ||
26 | <pubDate>{$value.pub_iso_date}</pubDate> | ||
27 | <atom:modified>{$value.up_iso_date}</atom:modified> | ||
28 | {/if} | ||
29 | <description><![CDATA[{$value.description}]]></description> | ||
30 | {loop="$value.taglist"} | ||
31 | <category domain="{$index_url}?searchtags=">{$value}</category> | ||
32 | {/loop} | ||
33 | {loop="$value.feed_plugins"} | ||
34 | {$value} | ||
35 | {/loop} | ||
36 | </item> | ||
37 | {/loop} | ||
38 | </channel> | ||
39 | </rss> | ||
diff --git a/tpl/default/images/50pc_transparent.png b/tpl/default/images/50pc_transparent.png new file mode 100644 index 00000000..8d8f99de --- /dev/null +++ b/tpl/default/images/50pc_transparent.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/Paper_texture_v5_by_bashcorpo_w1000.jpg b/tpl/default/images/Paper_texture_v5_by_bashcorpo_w1000.jpg new file mode 100644 index 00000000..dd8e67ac --- /dev/null +++ b/tpl/default/images/Paper_texture_v5_by_bashcorpo_w1000.jpg | |||
Binary files differ | |||
diff --git a/tpl/default/images/calendar.png b/tpl/default/images/calendar.png new file mode 100644 index 00000000..81c74519 --- /dev/null +++ b/tpl/default/images/calendar.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/floral_left.png b/tpl/default/images/floral_left.png new file mode 100644 index 00000000..f09a861d --- /dev/null +++ b/tpl/default/images/floral_left.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/floral_right.png b/tpl/default/images/floral_right.png new file mode 100644 index 00000000..0dfb6112 --- /dev/null +++ b/tpl/default/images/floral_right.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/private.png b/tpl/default/images/private.png new file mode 100644 index 00000000..8919d658 --- /dev/null +++ b/tpl/default/images/private.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/squiggle.png b/tpl/default/images/squiggle.png new file mode 100644 index 00000000..c795f0a3 --- /dev/null +++ b/tpl/default/images/squiggle.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/squiggle_closing.png b/tpl/default/images/squiggle_closing.png new file mode 100644 index 00000000..3f9d02b1 --- /dev/null +++ b/tpl/default/images/squiggle_closing.png | |||
Binary files differ | |||
diff --git a/tpl/default/images/tag_blue.png b/tpl/default/images/tag_blue.png new file mode 100644 index 00000000..7ec902fc --- /dev/null +++ b/tpl/default/images/tag_blue.png | |||
Binary files differ | |||
diff --git a/tpl/default/import.html b/tpl/default/import.html new file mode 100644 index 00000000..071e1160 --- /dev/null +++ b/tpl/default/import.html | |||
@@ -0,0 +1,33 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body onload="document.uploadform.filetoupload.focus();"> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | <div id="uploaddiv"> | ||
8 | Import Netscape HTML bookmarks (as exported from Firefox/Chrome/Opera/Delicious/Diigo...) (Max: {$maxfilesize} bytes). | ||
9 | <form method="POST" action="?do=import" enctype="multipart/form-data" | ||
10 | name="uploadform" id="uploadform"> | ||
11 | <input type="hidden" name="token" value="{$token}"> | ||
12 | <input type="hidden" name="MAX_FILE_SIZE" value="{$maxfilesize}"> | ||
13 | <input type="file" name="filetoupload"> | ||
14 | <input type="submit" name="import_file" value="Import" class="bigbutton"><br> | ||
15 | |||
16 | <label for="privacy"> Visibility:</label><br> | ||
17 | <input type="radio" name="privacy" value="default" checked="true"> | ||
18 | Use values from the imported file, default to public<br> | ||
19 | <input type="radio" name="privacy" value="private"> | ||
20 | Import all bookmarks as private<br> | ||
21 | <input type="radio" name="privacy" value="public"> | ||
22 | Import all bookmarks as public<br> | ||
23 | |||
24 | <input type="checkbox" name="overwrite" id="overwrite"> | ||
25 | <label for="overwrite"> Overwrite existing bookmarks</label><br> | ||
26 | <label for="default_tags"> Add default tags</label> | ||
27 | <input type="text" name="default_tags" id="default_tags"> | ||
28 | </form> | ||
29 | </div> | ||
30 | </div> | ||
31 | {include="page.footer"} | ||
32 | </body> | ||
33 | </html> | ||
diff --git a/tpl/default/includes.html b/tpl/default/includes.html new file mode 100644 index 00000000..17b78b17 --- /dev/null +++ b/tpl/default/includes.html | |||
@@ -0,0 +1,15 @@ | |||
1 | <title>{$pagetitle}</title> | ||
2 | <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> | ||
3 | <meta name="format-detection" content="telephone=no" /> | ||
4 | <meta name="viewport" content="width=device-width,initial-scale=1.0" /> | ||
5 | <meta name="referrer" content="same-origin"> | ||
6 | <link rel="alternate" type="application/rss+xml" href="{$feedurl}?do=rss{$searchcrits}#" title="RSS Feed" /> | ||
7 | <link rel="alternate" type="application/atom+xml" href="{$feedurl}?do=atom{$searchcrits}#" title="ATOM Feed" /> | ||
8 | <link href="images/favicon.ico#" rel="shortcut icon" type="image/x-icon" /> | ||
9 | <link type="text/css" rel="stylesheet" href="css/reset.css" /> | ||
10 | <link type="text/css" rel="stylesheet" href="css/shaarli.css" /> | ||
11 | {if="is_file('data/user.css')"}<link type="text/css" rel="stylesheet" href="data/user.css#" />{/if} | ||
12 | {loop="$plugins_includes.css_files"} | ||
13 | <link type="text/css" rel="stylesheet" href="{$value}#"/> | ||
14 | {/loop} | ||
15 | <link rel="search" type="application/opensearchdescription+xml" href="?do=opensearch#" title="Shaarli search - {$shaarlititle|htmlspecialchars}"/> | ||
diff --git a/tpl/default/install.html b/tpl/default/install.html new file mode 100644 index 00000000..42874dcd --- /dev/null +++ b/tpl/default/install.html | |||
@@ -0,0 +1,35 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}{$timezone_js}</head> | ||
4 | <body onload="document.installform.setlogin.focus();"> | ||
5 | <div id="install"> | ||
6 | <h1>Shaarli</h1> | ||
7 | It looks like it's the first time you run Shaarli. Please configure it:<br> | ||
8 | <form method="POST" action="#" name="installform" id="installform"> | ||
9 | <table> | ||
10 | <tr><td><b>Login:</b></td><td><input type="text" name="setlogin" size="30"></td></tr> | ||
11 | <tr><td><b>Password:</b></td><td><input type="password" name="setpassword" size="30"></td></tr> | ||
12 | {$timezone_html} | ||
13 | <tr><td><b>Page title:</b></td><td><input type="text" name="title" size="30"></td></tr> | ||
14 | <tr><td valign="top"><b>Update:</b></td><td> | ||
15 | <input type="checkbox" name="updateCheck" id="updateCheck" checked="checked"><label for="updateCheck"> Notify me when a new release is ready</label></td> | ||
16 | </tr> | ||
17 | <tr> | ||
18 | <td valign="top"> | ||
19 | <b>API:</b> | ||
20 | </td> | ||
21 | <td> | ||
22 | <input type="checkbox" name="enableApi" id="enableApi" checked="checked"> | ||
23 | <label for="enableApi"> | ||
24 | Enable Shaarli's REST API. | ||
25 | Allow third party software to use Shaarli such as mobile application. | ||
26 | </label> | ||
27 | </td> | ||
28 | </tr> | ||
29 | <tr><td colspan="2"><input type="submit" name="Save" value="Save config" class="bigbutton"></td></tr> | ||
30 | </table> | ||
31 | </form> | ||
32 | </div> | ||
33 | {include="page.footer"} | ||
34 | </body> | ||
35 | </html> | ||
diff --git a/tpl/default/linklist.html b/tpl/default/linklist.html new file mode 100644 index 00000000..5accc92f --- /dev/null +++ b/tpl/default/linklist.html | |||
@@ -0,0 +1,151 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head> | ||
4 | <link type="text/css" rel="stylesheet" href="inc/awesomplete.css#" /> | ||
5 | {include="includes"} | ||
6 | </head> | ||
7 | <body> | ||
8 | <div id="pageheader"> | ||
9 | {include="page.header"} | ||
10 | |||
11 | <div id="headerform" class="search"> | ||
12 | <form method="GET" class="searchform" name="searchform"> | ||
13 | <input type="text" tabindex="1" id="searchform_value" name="searchterm" placeholder="Search text" | ||
14 | {if="!empty($search_term)"} | ||
15 | value="{$search_term}" | ||
16 | {/if} | ||
17 | > | ||
18 | <input type="submit" value="Search" class="bigbutton"> | ||
19 | </form> | ||
20 | <form method="GET" class="tagfilter" name="tagfilter"> | ||
21 | <input type="text" tabindex="2" name="searchtags" id="tagfilter_value" placeholder="Filter by tag" | ||
22 | {if="!empty($search_tags)"} | ||
23 | value="{$search_tags}" | ||
24 | {/if} | ||
25 | autocomplete="off" class="awesomplete" data-multiple data-minChars="1" | ||
26 | data-list="{loop="$tags"}{$key}, {/loop}" | ||
27 | > | ||
28 | <input type="submit" value="Search" class="bigbutton"> | ||
29 | </form> | ||
30 | {loop="$plugins_header.fields_toolbar"} | ||
31 | <form | ||
32 | {loop="$value.attr"} | ||
33 | {$key}="{$value}" | ||
34 | {/loop}> | ||
35 | {loop="$value.inputs"} | ||
36 | <input | ||
37 | {loop="$value"} | ||
38 | {$key}="{$value}" | ||
39 | {/loop}> | ||
40 | {/loop} | ||
41 | </form> | ||
42 | {/loop} | ||
43 | </div> | ||
44 | </div> | ||
45 | |||
46 | <div id="linklist"> | ||
47 | |||
48 | {include="linklist.paging"} | ||
49 | |||
50 | <div id="plugin_zone_start_linklist" class="plugin_zone"> | ||
51 | {loop="$plugin_start_zone"} | ||
52 | {$value} | ||
53 | {/loop} | ||
54 | </div> | ||
55 | |||
56 | {if="count($links)==0"} | ||
57 | <div id="searchcriteria">Nothing found.</div> | ||
58 | {elseif="!empty($search_term) or !empty($search_tags)"} | ||
59 | <div id="searchcriteria"> | ||
60 | {$result_count} results | ||
61 | {if="!empty($search_term)"} | ||
62 | for <em>{$search_term}</em> | ||
63 | {/if} | ||
64 | {if="!empty($search_tags)"} | ||
65 | {$exploded_tags=explode(' ', $search_tags)} | ||
66 | tagged | ||
67 | {loop="$exploded_tags"} | ||
68 | <span class="linktag" title="Remove tag"> | ||
69 | <a href="?removetag={function="urlencode($value)"}">{$value} <span class="remove">x</span></a> | ||
70 | </span> | ||
71 | {/loop} | ||
72 | {/if} | ||
73 | </div> | ||
74 | {/if} | ||
75 | <ul> | ||
76 | {loop="$links"} | ||
77 | <li{if="$value.class"} class="{$value.class}"{/if}> | ||
78 | <a id="{$value.shorturl}"></a> | ||
79 | <div class="thumbnail">{$value.url|thumbnail}</div> | ||
80 | <div class="linkcontainer"> | ||
81 | {if="isLoggedIn()"} | ||
82 | <div class="linkeditbuttons"> | ||
83 | <form method="GET" class="buttoneditform"> | ||
84 | <input type="hidden" name="edit_link" value="{$value.id}"> | ||
85 | <input type="image" alt="Edit" src="images/edit_icon.png#" title="Edit" class="button_edit"> | ||
86 | </form><br> | ||
87 | <form method="GET" class="buttoneditform"> | ||
88 | <input type="hidden" name="lf_linkdate" value="{$value.id}"> | ||
89 | <input type="hidden" name="token" value="{$token}"> | ||
90 | <input type="hidden" name="delete_link"> | ||
91 | <input type="image" alt="Delete" src="images/delete_icon.png#" title="Delete" | ||
92 | class="button_delete" onClick="return confirmDeleteLink();"> | ||
93 | </form> | ||
94 | </div> | ||
95 | {/if} | ||
96 | <span class="linktitle"> | ||
97 | <a href="{$value.real_url}">{$value.title}</a> | ||
98 | </span> | ||
99 | <br> | ||
100 | {if="$value.description"}<div class="linkdescription">{$value.description}</div>{/if} | ||
101 | {if="!$hide_timestamps || isLoggedIn()"} | ||
102 | {$updated=$value.updated_timestamp ? 'Edited: '. strftime('%c', $value.updated_timestamp) : 'Permalink'} | ||
103 | <span class="linkdate" title="Permalink"> | ||
104 | <a href="?{$value.shorturl}"> | ||
105 | <span title="{$updated}"> | ||
106 | {function="strftime('%c', $value.timestamp)"} | ||
107 | {if="$value.updated_timestamp"}*{/if} | ||
108 | </span> | ||
109 | - permalink | ||
110 | </a> - | ||
111 | </span> | ||
112 | {else} | ||
113 | <span class="linkdate" title="Short link here"><a href="?{$value.shorturl}">permalink</a> - </span> | ||
114 | {/if} | ||
115 | |||
116 | {loop="$value.link_plugin"} | ||
117 | <span>{$value}</span> - | ||
118 | {/loop} | ||
119 | |||
120 | <a href="{$value.real_url}"><span class="linkurl" title="Short link">{$value.url}</span></a><br> | ||
121 | {if="$value.tags"} | ||
122 | <div class="linktaglist"> | ||
123 | {loop="$value.taglist"}<span class="linktag" title="Add tag"><a href="?addtag={$value|urlencode}">{$value}</a></span> {/loop} | ||
124 | </div> | ||
125 | {/if} | ||
126 | |||
127 | |||
128 | </div> | ||
129 | </li> | ||
130 | {/loop} | ||
131 | </ul> | ||
132 | |||
133 | <div id="plugin_zone_end_linklist" class="plugin_zone"> | ||
134 | {loop="$plugin_end_zone"} | ||
135 | {$value} | ||
136 | {/loop} | ||
137 | </div> | ||
138 | |||
139 | {include="linklist.paging"} | ||
140 | |||
141 | </div> | ||
142 | |||
143 | {include="page.footer"} | ||
144 | |||
145 | <script src="inc/awesomplete.min.js#"></script> | ||
146 | <script src="inc/awesomplete-multiple-tags.js#"></script> | ||
147 | <script> | ||
148 | awesompleteUniqueTag('#tagfilter_value'); | ||
149 | </script> | ||
150 | </body> | ||
151 | </html> | ||
diff --git a/tpl/default/linklist.paging.html b/tpl/default/linklist.paging.html new file mode 100644 index 00000000..86019c01 --- /dev/null +++ b/tpl/default/linklist.paging.html | |||
@@ -0,0 +1,32 @@ | |||
1 | <div class="paging"> | ||
2 | {if="isLoggedIn()"} | ||
3 | <div class="paging_privatelinks"> | ||
4 | <a href="?privateonly"> | ||
5 | {if="$privateonly"} | ||
6 | <img src="images/private_16x16_active.png#" width="16" height="16" title="Click to see all links" alt="Click to see all links"> | ||
7 | {else} | ||
8 | <img src="images/private_16x16.png#" width="16" height="16" title="Click to see only private links" alt="Click to see only private links"> | ||
9 | {/if} | ||
10 | </a> | ||
11 | |||
12 | |||
13 | </div> | ||
14 | {/if} | ||
15 | {loop="$action_plugin"} | ||
16 | <div class="paging_privatelinks"> | ||
17 | <a | ||
18 | {loop="$value.attr"} | ||
19 | {$key}="{$value}" | ||
20 | {/loop}> | ||
21 | {$value.html} | ||
22 | </a> | ||
23 | </div> | ||
24 | {/loop} | ||
25 | <div class="paging_linksperpage"> | ||
26 | Links per page: <a href="?linksperpage=20">20</a> <a href="?linksperpage=50">50</a> <a href="?linksperpage=100">100</a> | ||
27 | <form method="GET" class="linksperpage"><input type="text" name="linksperpage" size="2"></form> | ||
28 | </div> | ||
29 | {if="$previous_page_url"} <a href="{$previous_page_url}" class="paging_older">◄Older</a> {/if} | ||
30 | <div class="paging_current">page {$page_current} / {$page_max} </div> | ||
31 | {if="$next_page_url"} <a href="{$next_page_url}" class="paging_newer">Newer►</a> {/if} | ||
32 | </div> | ||
diff --git a/tpl/default/loginform.html b/tpl/default/loginform.html new file mode 100644 index 00000000..84176385 --- /dev/null +++ b/tpl/default/loginform.html | |||
@@ -0,0 +1,38 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body | ||
5 | {if="ban_canLogin($conf)"} | ||
6 | {if="empty($username)"} | ||
7 | onload="document.loginform.login.focus();" | ||
8 | {else} | ||
9 | onload="document.loginform.password.focus();" | ||
10 | {/if} | ||
11 | {/if}> | ||
12 | <div id="pageheader"> | ||
13 | {include="page.header"} | ||
14 | |||
15 | <div id="headerform"> | ||
16 | {if="!ban_canLogin($conf)"} | ||
17 | You have been banned from login after too many failed attempts. Try later. | ||
18 | {else} | ||
19 | <form method="post" name="loginform"> | ||
20 | <label for="login">Login: <input type="text" id="login" name="login" tabindex="1" | ||
21 | {if="!empty($username)"}value="{$username}"{/if}> | ||
22 | </label> | ||
23 | <label for="password">Password: <input type="password" id="password" name="password" tabindex="2"> | ||
24 | </label> | ||
25 | <input type="submit" value="Login" class="bigbutton" tabindex="4"> | ||
26 | <label for="longlastingsession"> | ||
27 | <input type="checkbox" name="longlastingsession" id="longlastingsession" tabindex="3"> | ||
28 | Stay signed in (Do not check on public computers)</label> | ||
29 | <input type="hidden" name="token" value="{$token}"> | ||
30 | {if="$returnurl"}<input type="hidden" name="returnurl" value="{$returnurl}">{/if} | ||
31 | </form> | ||
32 | {/if} | ||
33 | </div> | ||
34 | </div> | ||
35 | |||
36 | {include="page.footer"} | ||
37 | </body> | ||
38 | </html> | ||
diff --git a/tpl/default/opensearch.html b/tpl/default/opensearch.html new file mode 100644 index 00000000..3fcc30b7 --- /dev/null +++ b/tpl/default/opensearch.html | |||
@@ -0,0 +1,45 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/"> | ||
3 | <ShortName>Shaarli search - {$pagetitle}</ShortName> | ||
4 | <Description>Shaarli search - {$pagetitle}</Description> | ||
5 | <Url type="text/html" template="{$serverurl}?searchterm={searchTerms}" /> | ||
6 | <Url type="application/atom+xml" template="{$serverurl}?do=atom&searchterm={searchTerms}"/> | ||
7 | <Url type="application/rss+xml" template="{$serverurl}?do=rss&searchterm={searchTerms}"/> | ||
8 | <InputEncoding>UTF-8</InputEncoding> | ||
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 | ||
11 | QVRIx5WWaWxU5xWG3++7986dfYYZb+MN2xiMDRiDFePUiQsNoiwpUNpAmhInJVEqpa0oQUlbJVKq | ||
12 | olaiqpLKUtOKhAJRm1BKRVWctuykpFjAgPcFx/uMl5mxPTOeuXPv3O3rjyiV0lIpfX+dc36c55xf | ||
13 | 70vwP9TZ2fFpSQCwT5u6unX4f0QeNLx27RoMQwfRveTd11T23M+8S9w+Z3NRma1W4Hk6/nEimFpM | ||
14 | Xnun9Xpmz1MPY+feOhBi/fwAAOjq7iJEqmQqCZf5i7NvyNZ/bJPYgAjCiJc2Zmhyw68SM/T1+NlK | ||
15 | uf61BPoH+tHU1PT5ACMjI8RXvACvpZ5NT0+fmrG+2TKqtDLV0BgA2AUfXS3+UtfDX2ixCf73E+oA | ||
16 | rat92CTkv9fRBwEkSaLDt/JZR/v0Q7qjb8dQ5hjSqmYSOCkzBbogL+ij2RN8bik9wK88Al9tH4tG | ||
17 | ow88lvb19yEyPwfGGLq6OungYD9fUlosrqwoQVVVUeOU8qE/mU0ZTq6KNvreNort+5hugkayQUgY | ||
18 | qQld/u6qnVRhkciscOdOkNy5E0RnZ+e/AbwsZxAaHyORZA+prW01CTlnGppOqAcwUnCmlDAkAyin | ||
19 | Dapb2t7lNeRijpwvTGlJROXugoKS+upz/S19Kj9lJjxXGY1VU49tGevt7WOCSMHTeAXclePsQts9 | ||
20 | Jq9oLR7rPVkHxpUYkK2c07ZDiieRNcAx3ZlNphcnsxbiMuEsXFSTZpabp+VVS17UNSV/8n7+gN75 | ||
21 | +C1DM6VEjkgatiz/5IOCAheiUdeyr+198keKZXLzTKYjMDk/ZzGJhkV9AiPSdWaYIAY4U7TYNJMR | ||
22 | pugMqgHcXTiJqDK8ycMv2+TPWyWtKFw3KEdtJxNz8u8+/PNYIqeUgY/Oz+Z7q5X3gtqvG7qip8yM | ||
23 | HqdZg5kGgwGACoQQQkEMQ2DMIFnGE04xCRQTZFaexUT6jEEImJ2njjxx9fr13hfqfULTQ4apHept | ||
24 | lxf4mrqS3Tek0w1toTc1K6WcXfAwnyWH8kSkIueEhdhNrzUAv16fSCUzNwR3vr/G2lKWojMqbxF4 | ||
25 | FWlLPDvBR+RBNpTsNqfkV7htuUe/UVq456qdzzvFh2KjdSH0I6ODs1ps9NHcw2jMfRYcEQyOCiox | ||
26 | aWR0fOQWVLFNUuOnrXJxfIPnpXLRKzocLpsJanhUU/bfjJ4gfwm/ys3JGX1cuS3UBvauLa/MBe9z | ||
27 | 5c/xGRdSKpiVmhhN98JK/w4DGgg4uLh8u1NfPhWbmzszeH3G1rxv3dL7+qXyGaXHJi46s4QQophp | ||
28 | TKSDkHWGlAqmGCbAGAUA3sY5LlRZv3w44Dhnm0iFzbnsGfJR5E+EEsppTBVXuBptL5b8YQMlwnO+ | ||
29 | Z2wtea4cl8Rc3KXJ4zShRm0CFaCaGhSDwGSMlbtLhSr7FnVhKhscC4+AO3L0x5PSFBdfE9i40SE6 | ||
30 | xLSWRCIbJ6phIqEysqvk+2aJ0vhB1NK353zyaL3GS76NgRbVYykkt2OXuaQqMwuxkk0FT+OJpS+z | ||
31 | piXPRP1KzRvz4dRvO68PaWCMEQAIDcbqFiLJtyaSA/Ef3NnMGttgvHS7mUUWw7cTMemtY/cPsw3n | ||
32 | oe2+4mGXpt7VGWPJ6zOn1V2Xfaz5AxgvBzexodmeGWmCbWWTDOGpSZIIqeAe2/IYvnXgWbomUj2T | ||
33 | lNlwUP7bV64lzuRIeoodqDxi1OKRs/e0i08dH/6JPWtk6KKaZd3xj2jAXkY3BvZGK1xrhZvRNktP | ||
34 | fNA0ubQrxyxV4jHpSkWoXJPKYqBetxeRpgsMWwE5b/bxaYxUDSWmzCLbStqQuy02LY4/cWLsqH8i | ||
35 | HYNbyEeJczkJSzH2855DwsXp932F9hXEKQSQ1UHa568iRAa3uFyeNVolMBmeIrzT4cTXm37KMuvA | ||
36 | xb8XXTqiDELRgKg8h/dGWwP9iSDaIzcYJSCbA/uNR3N2sNahV/hbsSA70vEdW66tCOOpj8FRkIgU | ||
37 | Q5ybLUopiTzeTpFWUoTXdR3knwQMzLANOyQX50fWhDktLeAX3UcIA2EEQHPgi6TBsrWzaLGm7emC | ||
38 | H7bY+GPlV6YumiEpDhslxGBgROApz+yyhROzduIEzwngDh48iD3jO0nBRAUUXtHcoq+ZWbI5EWWa | ||
39 | WTieFjoKsaVoN92T88J4vlz+asXqpb+hEcdotbdueZ47vyiqhpA2UoRQwpoLtpNHxR0382jR8RzT | ||
40 | k8xYMyCMMfR33Uc8rxdrA9tpuHPyS7pPOTRPZ1arepa4rUsybiWnnU9a39ZXxdur+XoGAGMdoXLi | ||
41 | M789axnfNxDr8omiDcvF1f3OhPf18efjF/nfz6PGvv6zlrlwWwYBgcBZbKH4WKHODLHEURDxbHDF | ||
42 | QWGePftHUlZWjsy8guYnH2EgwORfZ5cuavEqgGhLnL6+sycvRP1Fbux/fheIn3wCCN4N/qdPMwA4 | ||
43 | 2fYOeoe7kc6kcfCbh8n+r7YwAOjs6QCl9DNx5t7dew+MOf8CcuqqoLxlhwgAAAAASUVORK5CYII= | ||
44 | </Image> | ||
45 | </OpenSearchDescription> | ||
diff --git a/tpl/default/page.footer.html b/tpl/default/page.footer.html new file mode 100644 index 00000000..006d1d68 --- /dev/null +++ b/tpl/default/page.footer.html | |||
@@ -0,0 +1,31 @@ | |||
1 | <div id="footer"> | ||
2 | <strong><a href="https://github.com/shaarli/Shaarli">Shaarli</a></strong> | ||
3 | - The personal, minimalist, super-fast, database free, bookmarking service by the Shaarli community | ||
4 | - <a href="doc/Home.html" rel="nofollow">Help/documentation</a> | ||
5 | {loop="$plugins_footer.text"} | ||
6 | {$value} | ||
7 | {/loop} | ||
8 | </div> | ||
9 | |||
10 | {loop="$plugins_footer.endofpage"} | ||
11 | {$value} | ||
12 | {/loop} | ||
13 | |||
14 | {if="$newVersion"} | ||
15 | <div id="newversion"> | ||
16 | <span id="version_id">●</span> Shaarli {$newVersion} is | ||
17 | <a href="https://github.com/shaarli/Shaarli/releases">available</a>. | ||
18 | </div> | ||
19 | {/if} | ||
20 | {if="$versionError"} | ||
21 | <div id="newversion"> | ||
22 | Error: {$versionError} | ||
23 | </div> | ||
24 | {/if} | ||
25 | {if="isLoggedIn()"} | ||
26 | <script>function confirmDeleteLink() { var agree=confirm("Are you sure you want to delete this link ?"); if (agree) return true ; else return false ; }</script> | ||
27 | {/if} | ||
28 | |||
29 | {loop="$plugins_footer.js_files"} | ||
30 | <script src="{$value}#"></script> | ||
31 | {/loop} | ||
diff --git a/tpl/default/page.header.html b/tpl/default/page.header.html new file mode 100644 index 00000000..cce61ec4 --- /dev/null +++ b/tpl/default/page.header.html | |||
@@ -0,0 +1,59 @@ | |||
1 | |||
2 | <div id="logo" title="Share your links !" onclick="document.location='?';"></div> | ||
3 | |||
4 | <div id="linkcount" class="nomobile"> | ||
5 | {if="!empty($linkcount)"}{$linkcount} links{/if}<br> | ||
6 | {if="!empty($privateLinkcount)"}{$privateLinkcount} private links{/if} | ||
7 | </div> | ||
8 | |||
9 | <div id="menu"> | ||
10 | <ul> | ||
11 | <li><span id="shaarli_title"> | ||
12 | <a href="{$titleLink}">{$shaarlititle}</a> | ||
13 | </span> | ||
14 | </li> | ||
15 | |||
16 | {if="!empty($_GET['source']) && $_GET['source']=='bookmarklet'"} | ||
17 | {ignore} When called as a popup from bookmarklet, do not display menu. {/ignore} | ||
18 | {else} | ||
19 | <li><a href="?" class="nomobile">Home</a></li> | ||
20 | {if="isLoggedIn()"} | ||
21 | <li><a href="?do=logout">Logout</a></li> | ||
22 | <li><a href="?do=tools">Tools</a></li> | ||
23 | <li><a href="?do=addlink">Add link</a></li> | ||
24 | {elseif="$openshaarli"} | ||
25 | <li><a href="?do=tools">Tools</a></li> | ||
26 | <li><a href="?do=addlink">Add link</a></li> | ||
27 | {else} | ||
28 | <li><a href="?do=login">Login</a></li> | ||
29 | {/if} | ||
30 | <li><a href="{$feedurl}?do=rss{$searchcrits}" class="nomobile">RSS Feed</a></li> | ||
31 | {if="$showatom"} | ||
32 | <li><a href="{$feedurl}?do=atom{$searchcrits}" class="nomobile">ATOM Feed</a></li> | ||
33 | {/if} | ||
34 | <li><a href="?do=tagcloud">Tag cloud</a></li> | ||
35 | <li><a href="?do=picwall{$searchcrits}">Picture wall</a></li> | ||
36 | <li><a href="?do=daily">Daily</a></li> | ||
37 | {loop="$plugins_header.buttons_toolbar"} | ||
38 | <li><a | ||
39 | {loop="$value.attr"} | ||
40 | {$key}="{$value}" | ||
41 | {/loop}> | ||
42 | {$value.html} | ||
43 | </a></li> | ||
44 | {/loop} | ||
45 | {/if} | ||
46 | </ul> | ||
47 | </div> | ||
48 | |||
49 | {if="!empty($plugin_errors) && isLoggedIn()"} | ||
50 | <ul class="errors"> | ||
51 | {loop="$plugin_errors"} | ||
52 | <li>{$value}</li> | ||
53 | {/loop} | ||
54 | </ul> | ||
55 | {/if} | ||
56 | |||
57 | <div class="clear"></div> | ||
58 | |||
59 | |||
diff --git a/tpl/default/page.html b/tpl/default/page.html new file mode 100644 index 00000000..834915ec --- /dev/null +++ b/tpl/default/page.html | |||
@@ -0,0 +1,9 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader">{include="page.header"}</div> | ||
6 | You body goes here... | ||
7 | {include="page.footer"} | ||
8 | </body> | ||
9 | </html> \ No newline at end of file | ||
diff --git a/tpl/default/picwall.html b/tpl/default/picwall.html new file mode 100644 index 00000000..4e227e37 --- /dev/null +++ b/tpl/default/picwall.html | |||
@@ -0,0 +1,44 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"} | ||
4 | <script src="inc/blazy-1.3.1.min.js#"></script> | ||
5 | </head> | ||
6 | <body> | ||
7 | <div id="pageheader">{include="page.header"}</div> | ||
8 | |||
9 | <div id="plugin_zone_start_picwall" class="plugin_zone"> | ||
10 | {loop="$plugin_start_zone"} | ||
11 | {$value} | ||
12 | {/loop} | ||
13 | </div> | ||
14 | |||
15 | <div class="center"> | ||
16 | <div id="picwall_container"> | ||
17 | {loop="$linksToDisplay"} | ||
18 | <div class="picwall_pictureframe"> | ||
19 | {$value.thumbnail}<a href="{$value.real_url}"><span class="info">{$value.title}</span></a> | ||
20 | {loop="$value.picwall_plugin"} | ||
21 | {$value} | ||
22 | {/loop} | ||
23 | </div> | ||
24 | {/loop} | ||
25 | </div> | ||
26 | </div> | ||
27 | |||
28 | <div class="clear"></div> | ||
29 | |||
30 | <div id="plugin_zone_end_picwall" class="plugin_zone"> | ||
31 | {loop="$plugin_end_zone"} | ||
32 | {$value} | ||
33 | {/loop} | ||
34 | </div> | ||
35 | |||
36 | {include="page.footer"} | ||
37 | |||
38 | <script> | ||
39 | window.onload = function() { | ||
40 | var bLazy = new Blazy(); | ||
41 | } | ||
42 | </script> | ||
43 | </body> | ||
44 | </html> | ||
diff --git a/tpl/default/pluginsadmin.html b/tpl/default/pluginsadmin.html new file mode 100644 index 00000000..ead1734e --- /dev/null +++ b/tpl/default/pluginsadmin.html | |||
@@ -0,0 +1,134 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | </div> | ||
8 | |||
9 | <noscript> | ||
10 | <div> | ||
11 | <ul class="errors"> | ||
12 | <li>You need to enable Javascript to change plugin loading order.</li> | ||
13 | </ul> | ||
14 | </div> | ||
15 | <div class="clear"></div> | ||
16 | </noscript> | ||
17 | |||
18 | <div id="pluginsadmin"> | ||
19 | <form action="?do=save_pluginadmin" method="POST"> | ||
20 | <section id="enabled_plugins"> | ||
21 | <h1>Enabled Plugins</h1> | ||
22 | |||
23 | <div> | ||
24 | {if="count($enabledPlugins)==0"} | ||
25 | <p>No plugin enabled.</p> | ||
26 | {else} | ||
27 | <table id="plugin_table"> | ||
28 | <thead> | ||
29 | <tr> | ||
30 | <th class="center">Disable</th> | ||
31 | <th class="center">Order</th> | ||
32 | <th>Name</th> | ||
33 | <th>Description</th> | ||
34 | </tr> | ||
35 | </thead> | ||
36 | <tbody> | ||
37 | {loop="$enabledPlugins"} | ||
38 | <tr data-line="{$key}" data-order="{$counter}"> | ||
39 | <td class="center"><input type="checkbox" name="{$key}" id="{$key}" checked="checked"></td> | ||
40 | <td class="center"> | ||
41 | <a href="#" class="arrow" | ||
42 | onclick="return orderUp(this.parentNode.parentNode.getAttribute('data-order'));"> | ||
43 | ▲ | ||
44 | </a> | ||
45 | <a href="#" class="arrow" | ||
46 | onclick="return orderDown(this.parentNode.parentNode.getAttribute('data-order'));"> | ||
47 | ▼ | ||
48 | </a> | ||
49 | <input type="hidden" name="order_{$key}" value="{$counter}"> | ||
50 | </td> | ||
51 | <td><label for="{$key}">{function="str_replace('_', ' ', $key)"}</label></td> | ||
52 | <td><label for="{$key}">{$value.description}</label></td> | ||
53 | </tr> | ||
54 | {/loop} | ||
55 | </tbody> | ||
56 | </table> | ||
57 | {/if} | ||
58 | </div> | ||
59 | </section> | ||
60 | |||
61 | <section id="disabled_plugins"> | ||
62 | <h1>Disabled Plugins</h1> | ||
63 | |||
64 | <div> | ||
65 | {if="count($disabledPlugins)==0"} | ||
66 | <p>No plugin disabled.</p> | ||
67 | {else} | ||
68 | <table> | ||
69 | <tr> | ||
70 | <th class="center">Enable</th> | ||
71 | <th>Name</th> | ||
72 | <th>Description</th> | ||
73 | </tr> | ||
74 | {loop="$disabledPlugins"} | ||
75 | <tr> | ||
76 | <td class="center"><input type="checkbox" name="{$key}" id="{$key}"></td> | ||
77 | <td><label for="{$key}">{function="str_replace('_', ' ', $key)"}</label></td> | ||
78 | <td><label for="{$key}">{$value.description}</label></td> | ||
79 | </tr> | ||
80 | {/loop} | ||
81 | </table> | ||
82 | {/if} | ||
83 | </div> | ||
84 | |||
85 | <div class="center"> | ||
86 | <input type="submit" value="Save"/> | ||
87 | </div> | ||
88 | </section> | ||
89 | </form> | ||
90 | |||
91 | <form action="?do=save_pluginadmin" method="POST"> | ||
92 | <section id="plugin_parameters"> | ||
93 | <h1>Enabled Plugin Parameters</h1> | ||
94 | |||
95 | <div> | ||
96 | {if="count($enabledPlugins)==0"} | ||
97 | <p>No plugin enabled.</p> | ||
98 | {else} | ||
99 | {loop="$enabledPlugins"} | ||
100 | {if="count($value.parameters) > 0"} | ||
101 | <div class="plugin_parameters"> | ||
102 | <h2>{function="str_replace('_', ' ', $key)"}</h2> | ||
103 | {loop="$value.parameters"} | ||
104 | <div class="plugin_parameter"> | ||
105 | <div class="float_label"> | ||
106 | <label for="{$key}"> | ||
107 | <code>{$key}</code><br> | ||
108 | {if="isset($value.desc)"} | ||
109 | {$value.desc} | ||
110 | {/if} | ||
111 | </label> | ||
112 | </div> | ||
113 | <div class="float_input"> | ||
114 | <input name="{$key}" value="{$value.value}" id="{$key}"/> | ||
115 | </div> | ||
116 | </div> | ||
117 | {/loop} | ||
118 | </div> | ||
119 | {/if} | ||
120 | {/loop} | ||
121 | {/if} | ||
122 | <div class="center"> | ||
123 | <input type="submit" name="parameters_form" value="Save"/> | ||
124 | </div> | ||
125 | </div> | ||
126 | </section> | ||
127 | </form> | ||
128 | |||
129 | </div> | ||
130 | {include="page.footer"} | ||
131 | |||
132 | <script src="inc/plugin_admin.js#"></script> | ||
133 | </body> | ||
134 | </html> | ||
diff --git a/tpl/default/readme.txt b/tpl/default/readme.txt new file mode 100644 index 00000000..b18deaed --- /dev/null +++ b/tpl/default/readme.txt | |||
@@ -0,0 +1,42 @@ | |||
1 | ===== Shaarli template organisation ===== | ||
2 | |||
3 | Any Shaarli page should conform to this RainTPL template: | ||
4 | |||
5 | ----------------------------------------------------- | ||
6 | <html> | ||
7 | <head>{include="includes"}</head> | ||
8 | <body> | ||
9 | <div id="pageheader">{include="page.header"}</div> | ||
10 | You body goes here... | ||
11 | {include="page.footer"} | ||
12 | </body> | ||
13 | </html> | ||
14 | ----------------------------------------------------- | ||
15 | |||
16 | If you want to also add something in the page header (in the dark area), do it here: | ||
17 | |||
18 | <div id="pageheader">{include="page.header"}My menu goes here...</div> | ||
19 | |||
20 | |||
21 | Example: "Add new link" form: | ||
22 | ----------------------------------------------------- | ||
23 | <html> | ||
24 | <head>{include="includes"}</head> | ||
25 | <body onload="document.addform.post.focus();"> | ||
26 | <div id="pageheader"> | ||
27 | {include="page.header"} | ||
28 | <div id="headerform"> | ||
29 | <form method="GET" action="" name="addform" class="addform"> | ||
30 | <input type="text" name="post" style="width:50%;"> | ||
31 | <input type="submit" value="Add link" class="bigbutton"> | ||
32 | </form> | ||
33 | </div> | ||
34 | </div> | ||
35 | {include="page.footer"} | ||
36 | </body> | ||
37 | </html> | ||
38 | ----------------------------------------------------- | ||
39 | |||
40 | |||
41 | |||
42 | |||
diff --git a/tpl/default/tagcloud.html b/tpl/default/tagcloud.html new file mode 100644 index 00000000..05e45273 --- /dev/null +++ b/tpl/default/tagcloud.html | |||
@@ -0,0 +1,31 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader">{include="page.header"}</div> | ||
6 | <div class="center"> | ||
7 | <div id="plugin_zone_start_tagcloud" class="plugin_zone"> | ||
8 | {loop="$plugin_start_zone"} | ||
9 | {$value} | ||
10 | {/loop} | ||
11 | </div> | ||
12 | |||
13 | <div id="cloudtag"> | ||
14 | {loop="$tags"} | ||
15 | <span class="count">{$value.count}</span><a | ||
16 | href="?searchtags={$key|urlencode}" style="font-size:{$value.size}em;">{$key}</a> | ||
17 | {loop="$value.tag_plugin"} | ||
18 | {$value} | ||
19 | {/loop} | ||
20 | {/loop} | ||
21 | </div> | ||
22 | |||
23 | <div id="plugin_zone_end_tagcloud" class="plugin_zone"> | ||
24 | {loop="$plugin_end_zone"} | ||
25 | {$value} | ||
26 | {/loop} | ||
27 | </div> | ||
28 | </div> | ||
29 | {include="page.footer"} | ||
30 | </body> | ||
31 | </html> | ||
diff --git a/tpl/default/tools.html b/tpl/default/tools.html new file mode 100644 index 00000000..e06d239d --- /dev/null +++ b/tpl/default/tools.html | |||
@@ -0,0 +1,104 @@ | |||
1 | <!DOCTYPE html> | ||
2 | <html> | ||
3 | <head>{include="includes"}</head> | ||
4 | <body> | ||
5 | <div id="pageheader"> | ||
6 | {include="page.header"} | ||
7 | <div id="toolsdiv"> | ||
8 | <a href="?do=configure"><b>Configure your Shaarli</b><span>: Change Title, timezone...</span></a> | ||
9 | <br><br> | ||
10 | <a href="?do=pluginadmin"><b>Plugin administration</b><span>: Enable, disable and configure plugins.</span></a> | ||
11 | <br><br> | ||
12 | {if="!$openshaarli"}<a href="?do=changepasswd"><b>Change password</b><span>: Change your password.</span></a> | ||
13 | <br><br>{/if} | ||
14 | <a href="?do=changetag"><b>Rename/delete tags</b><span>: Rename or delete a tag in all links</span></a> | ||
15 | <br><br> | ||
16 | <a href="?do=import"><b>Import</b><span>: Import Netscape html bookmarks (as exported from Firefox, Chrome, Opera, delicious...)</span></a> | ||
17 | <br><br> | ||
18 | <a href="?do=export"><b>Export</b><span>: Export Netscape html bookmarks (which can be imported in Firefox, Chrome, Opera, delicious...)</span></a> | ||
19 | <br><br> | ||
20 | <a class="smallbutton" | ||
21 | onclick="return alertBookmarklet();" | ||
22 | href="javascript:( | ||
23 | function(){ | ||
24 | var%20url%20=%20location.href; | ||
25 | var%20title%20=%20document.title%20||%20url; | ||
26 | window.open( | ||
27 | '{$pageabsaddr}?post='%20+%20encodeURIComponent(url)+ | ||
28 | '&title='%20+%20encodeURIComponent(title)+ | ||
29 | '&description='%20+%20encodeURIComponent(document.getSelection())+ | ||
30 | '&source=bookmarklet','_blank','menubar=no,height=390,width=600,toolbar=no,scrollbars=no,status=no,dialog=1' | ||
31 | ); | ||
32 | } | ||
33 | )();"> | ||
34 | <b>✚Shaare link</b> | ||
35 | </a> | ||
36 | <a href="#" onclick="return alertBookmarklet();"> | ||
37 | <span> | ||
38 | ⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> | ||
39 | Then click "✚Shaare link" button in any page you want to share. | ||
40 | </span> | ||
41 | </a><br><br> | ||
42 | <a class="smallbutton" | ||
43 | onclick="return alertBookmarklet();" | ||
44 | href="?private=1&post="> | ||
45 | <b>✚Add Note</b> | ||
46 | </a> | ||
47 | <a href="#" onclick="return alertBookmarklet();"> | ||
48 | <span> | ||
49 | ⇐ Drag this link to your bookmarks toolbar (or right-click it and choose Bookmark This Link....).<br> | ||
50 | Then click "✚Add Note" button anytime to start composing a private Note (text post) to your Shaarli. | ||
51 | </span> | ||
52 | </a><br><br> | ||
53 | |||
54 | {if="$sslenabled"} | ||
55 | <a class="smallbutton" onclick="activateFirefoxSocial(this)"> | ||
56 | <b>✚Add to Firefox social</b> | ||
57 | </a> | ||
58 | <a href="#"> | ||
59 | <span>⇐ Click on this button to add Shaarli to the "Share this page" button in Firefox.</span> | ||
60 | </a><br><br> | ||
61 | {/if} | ||
62 | |||
63 | {loop="$tools_plugin"} | ||
64 | {$value} | ||
65 | {/loop} | ||
66 | |||
67 | <div class="clear"></div> | ||
68 | |||
69 | <script> | ||
70 | {if="$sslenabled"} | ||
71 | function activateFirefoxSocial(node) { | ||
72 | var loc = location.href; | ||
73 | var baseURL = loc.substring(0, loc.lastIndexOf("/")); | ||
74 | |||
75 | // Keeping the data separated (ie. not in the DOM) so that it's maintainable and diffable. | ||
76 | var data = { | ||
77 | name: "{$shaarlititle}", | ||
78 | description: "The personal, minimalist, super-fast, no-database delicious clone.", | ||
79 | author: "Shaarli", | ||
80 | version: "1.0.0", | ||
81 | |||
82 | iconURL: baseURL + "/images/favicon.ico", | ||
83 | icon32URL: baseURL + "/images/favicon.ico", | ||
84 | icon64URL: baseURL + "/images/favicon.ico", | ||
85 | |||
86 | shareURL: baseURL + "{noparse}?post=%{url}&title=%{title}&description=%{text}&source=firefoxsocialapi{/noparse}", | ||
87 | homepageURL: baseURL | ||
88 | }; | ||
89 | node.setAttribute("data-service", JSON.stringify(data)); | ||
90 | |||
91 | var activate = new CustomEvent("ActivateSocialFeature"); | ||
92 | node.dispatchEvent(activate); | ||
93 | } | ||
94 | {/if} | ||
95 | function alertBookmarklet() { | ||
96 | alert('Drag this link to your bookmarks toolbar, or right-click it and choose Bookmark This Link...'); | ||
97 | return false; | ||
98 | } | ||
99 | </script> | ||
100 | </div> | ||
101 | </div> | ||
102 | {include="page.footer"} | ||
103 | </body> | ||
104 | </html> | ||