Improve block toggling.
[Sone.git] / src / main / resources / templates / imageBrowser.html
1 <%include include/head.html>
2
3         <div class="page-id hidden">image-browser</div>
4
5         <script language="javascript">
6                 $(function() {
7
8                         /* hide all those forms. */
9                         hideAndShowBlock = function(blockElement, clickToShowElement, clickToHideElement) {
10                                 $(blockElement).hide();
11                                 $(clickToShowElement).removeClass("hidden");
12                                 $(clickToShowElement).click(function() {
13                                         $(blockElement).slideDown();
14                                         $(clickToShowElement).addClass("hidden");
15                                         $(clickToHideElement).removeClass("hidden");
16                                 });
17                                 $(clickToHideElement).click(function() {
18                                         $(blockElement).slideUp();
19                                         $(clickToHideElement).addClass("hidden");
20                                         $(clickToShowElement).removeClass("hidden");
21                                 });
22                         };
23
24                 });
25         </script>
26
27         <%if albumRequested>
28
29                 <%ifnull album>
30
31                         <p><%= Page.ImageBrowser.Album.Error.NotFound.Text|l10n|html></p>
32
33                 <%elseifnull album.title>
34
35                         <p><%= Page.ImageBrowser.Album.Error.NotFound.Text|l10n|html></p>
36
37                 <%else>
38
39                         <%if album.sone.local>
40                                 <script language="javascript">
41                                         $(function() {
42                                                 getTranslation("WebInterface.DefaultText.UploadImage.Title", function(text) {
43                                                         $("#upload-image :input[name='title']").each(function() {
44                                                                 registerInputTextareaSwap(this, text, "title", false, true);
45                                                         });
46                                                 });
47                                                 getTranslation("WebInterface.DefaultText.UploadImage.Description", function(text) {
48                                                         $("#upload-image :input[name='description']").each(function() {
49                                                                 registerInputTextareaSwap(this, text, "description", true, false);
50                                                         });
51                                                 });
52                                                 $("#upload-image label").hide();
53                                                 getTranslation("WebInterface.DefaultText.CreateAlbum.Name", function(text) {
54                                                         $("#create-album input[name='name']").each(function() {
55                                                                 registerInputTextareaSwap(this, text, "name", false, true);
56                                                         });
57                                                 });
58                                                 getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
59                                                         $("#create-album input[name='description']").each(function() {
60                                                                 registerInputTextareaSwap(this, text, "description", true, true);
61                                                         });
62                                                 });
63                                                 $("#create-album label").hide();
64                                                 getTranslation("WebInterface.DefaultText.EditAlbum.Title", function(text) {
65                                                         $("#edit-album input[name='title']").each(function() {
66                                                                 registerInputTextareaSwap(this, text, "title", false, true);
67                                                         });
68                                                 });
69                                                 getTranslation("WebInterface.DefaultText.EditAlbum.Description", function(text) {
70                                                         $("#edit-album :input[name='description']").each(function() {
71                                                                 registerInputTextareaSwap(this, text, "description", true, false);
72                                                         });
73                                                 });
74                                                 $("#edit-album label").hide();
75
76                                                 hideAndShowBlock(".edit-album", ".show-edit-album", ".hide-edit-album");
77                                                 hideAndShowBlock(".create-album", ".show-create-album", ".hide-create-album");
78                                                 hideAndShowBlock(".upload-image", ".show-upload-image", ".hide-upload-image");
79                                                 hideAndShowBlock(".delete-album", ".show-delete-album", ".hide-delete-album");
80                                         });
81                                 </script>
82                         <%/if>
83
84                         <h1 class="backlink"><%= Page.ImageBrowser.Album.Title|l10n|replace needle='{album}' replacementKey=album.title|html></h1>
85
86                         <div class="backlinks">
87                                 <%foreach album.backlinks backlink backlinks>
88                                         <div class="backlink">
89                                                 <a href="<% backlink.target|html>"><% backlink.name|html></a>
90                                         </div>
91                                         <%if ! backlinks.last>
92                                                 <div class="separator">&gt;</div>
93                                         <%/if>
94                                 <%/foreach>
95                         </div>
96
97                         <p id="description"><% album.description|html></p>
98
99                         <%if album.sone.local>
100                                 <div class="show-edit-album hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Album.Edit.Title|l10n|html></a></div>
101                                 <div class="hide-edit-album hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Album.Edit.Title|l10n|html></a></div>
102                                 <div class="edit-album">
103                                         <h2><%= Page.ImageBrowser.Album.Edit.Title|l10n|html></h2>
104
105                                         <form id="edit-album" action="editAlbum.html" method="post">
106                                                 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
107                                                 <input type="hidden" name="album" value="<%album.id|html>" />
108
109                                                 <div>
110                                                         <label for="title"><%= Page.ImageBrowser.Album.Label.Title|l10n|html></label>
111                                                         <input type="text" name="title" value="<%album.title|html>" />
112                                                 </div>
113                                                 <div>
114                                                         <label for="description"><%= Page.ImageBrowser.Album.Label.Description|l10n|html></label>
115                                                         <textarea name="description"><%album.description|html></textarea>
116                                                 </div>
117                                                 <button type="submit"><%= Page.ImageBrowser.Album.Button.Save|l10n|html></button>
118                                         </form>
119                                 </div>
120                         <%/if>
121
122                         <%foreach album.albums album>
123                                 <%first><h2><%= Page.ImageBrowser.Header.Albums|l10n|html></h2><%/first>
124                                 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
125                                 <div class="album image">
126                                         <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
127                                                 <%ifnull album.albumImage>
128                                                         <img src="images/unknown-image-0.png" width="200" height="150" alt="<% album.title|html>" title="<% album.title|html>" />
129                                                 <%else><!-- TODO -->
130                                                         <% album.albumImage|image-link max-width=200 max-height=150 title==album.title>
131                                                 <%/if>
132                                                 <br/>
133                                                 <% album.title|html>
134                                         </a>
135                                 </div>
136                                 <%= false|store key=endRow>
137                                 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
138                                 <%last><%= true|store key=endRow><%/last>
139                                 <%if endRow></div><%/if>
140                         <%/foreach>
141
142                         <%if album.sone.local>
143                                 <div class="show-create-album hidden toggle-link"><a class="small-link">» <%= View.CreateAlbum.Title|l10n|html></a></div>
144                                 <div class="hide-create-album hidden toggle-link"><a class="small-link">« <%= View.CreateAlbum.Title|l10n|html></a></div>
145                                 <div class="create-album">
146                                         <%include include/createAlbum.html>
147                                 </div>
148                         <%/if>
149
150                         <%foreach album.images image>
151                                 <%first><h2><%= Page.ImageBrowser.Header.Images|l10n|html></h2><%/first>
152                                 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
153                                 <div class="image">
154                                         <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=200 max-height=150></a>
155                                         <%if album.sone.local>
156                                                 <br/>
157                                                 <form class="edit-image" action="editImage.html" method="post">
158                                                         <input type="hidden" name="formPassword" value="<%formPassword|html>" />
159                                                         <input type="hidden" name="returnPage" value="<%request.uri|html>" />
160                                                         <input type="hidden" name="image" value="<%image.id|html>" />
161
162                                                         <div>
163                                                                 <input type="text" name="title" value="<%image.title|html>" />
164                                                         </div>
165                                                         <div>
166                                                                 <textarea name="description"><%image.description|html></textarea>
167                                                         </div>
168                                                         <div>
169                                                                 <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
170                                                         </div>
171                                                 </form>
172                                         <%/if>
173                                 </div>
174                                 <%= false|store key=endRow>
175                                 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
176                                 <%last><%= true|store key=endRow><%/last>
177                                 <%if endRow></div><%/if>
178                         <%/foreach>
179
180                         <%if album.sone.local>
181                                 <div class="show-upload-image hidden toggle-link"><a class="small-link">» <%= View.UploadImage.Title|l10n|html></a></div>
182                                 <div class="hide-upload-image hidden toggle-link"><a class="small-link">« <%= View.UploadImage.Title|l10n|html></a></div>
183                                 <div class="upload-image">
184                                         <%include include/uploadImage.html>
185                                 </div>
186
187                                 <%if album.empty>
188                                         <div class="show-delete-album hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Album.Delete.Title|l10n|html></a></div>
189                                         <div class="hide-delete-album hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Album.Delete.Title|l10n|html></a></div>
190                                         <div class="delete-album">
191                                                 <form id="delete-album" action="deleteAlbum.html" method="get">
192                                                         <input type="hidden" name="album" value="<%album.id|html>" />
193                                                         <button type="submit"><%= Page.ImageBrowser.Album.Button.Delete|l10n|html></button>
194                                                 </form>
195                                         </div>
196                                 <%/if>
197
198                         <%/if>
199
200                 <%/if>
201
202         <%elseif imageRequested>
203
204                 <h1 class="backlink"><%image.title|html></h1>
205
206                 <div class="backlinks">
207                         <%foreach image.album.backlinks backlink backlinks>
208                                 <div class="backlink">
209                                         <a href="<% backlink.target|html>"><% backlink.name|html></a>
210                                 </div>
211                                 <%if ! backlinks.last>
212                                         <div class="separator">&gt;</div>
213                                 <%/if>
214                         <%/foreach>
215                 </div>
216
217                 <%ifnull image>
218
219                 <%else>
220
221                         <%if image.sone.local>
222                                 <script language="javascript">
223                                         $(function() {
224                                                 getTranslation("WebInterface.DefaultText.EditImage.Title", function(text) {
225                                                         $("#edit-image input[name='title']").each(function() {
226                                                                 registerInputTextareaSwap(this, text, "title", false, true);
227                                                         });
228                                                 });
229                                                 getTranslation("WebInterface.DefaultText.EditImage.Description", function(text) {
230                                                         $("#edit-image :input[name='description']").each(function() {
231                                                                 registerInputTextareaSwap(this, text, "description", true, false);
232                                                         });
233                                                 });
234                                                 $("#edit-image label").hide();
235
236                                                 hideAndShowBlock(".edit-image", ".show-edit-image", ".hide-edit-image");
237                                                 hideAndShowBlock(".delete-image", ".show-delete-image", ".hide-delete-image");
238                                         });
239                                 </script>
240                         <%/if>
241
242                         <div class="single-image">
243                                 <%ifnull !image.key>
244                                         <a href="/<%image.key|html>"><% image|image-link max-width=640 max-height=480></a>
245                                 <%else>
246                                         <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=640 max-height=480></a>
247                                 <%/if>
248                         </div>
249
250                         <p class="parsed"><%image.description|parse sone=image.sone></p>
251
252                         <%if image.sone.local>
253
254                                 <div class="show-edit-image hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></div>
255                                 <div class="hide-edit-image hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></div>
256                                 <div class="edit-image">
257                                         <h2><%= Page.ImageBrowser.Image.Edit.Title|l10n|html></h2>
258
259                                         <form id="edit-image" action="editImage.html" method="post">
260                                                 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
261                                                 <input type="hidden" name="returnPage" value="<%request.uri|html>" />
262                                                 <input type="hidden" name="image" value="<%image.id|html>" />
263
264                                                 <div>
265                                                         <label for="title"><%= Page.ImageBrowser.Image.Title.Label|l10n|html></label>
266                                                         <input type="text" name="title" value="<%image.title|html>" />
267                                                 </div>
268                                                 <div>
269                                                         <label for="description"><%= Page.ImageBrowser.Image.Description.Label|l10n|html></label>
270                                                         <textarea name="description"><%image.description|html></textarea>
271                                                 </div>
272                                                 <div>
273                                                         <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
274                                                 </div>
275                                         </form>
276                                 </div>
277
278                                 <div class="show-delete-image hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></div>
279                                 <div class="hide-delete-image hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></div>
280                                 <div class="delete-image">
281                                         <h2><%= Page.ImageBrowser.Image.Delete.Title|l10n|html></h2>
282
283                                         <form id="delete-image" action="deleteImage.html" method="get">
284                                                 <input type="hidden" name="image" value="<%image.id|html>" />
285                                                 <button type="submit"><%= Page.ImageBrowser.Image.Button.Delete|l10n|html></button>
286                                         </form>
287                                 </div>
288
289                         <%/if>
290
291                 <%/if>
292
293         <%elseif soneRequested>
294
295                 <%if sone.local>
296                         <script language="javascript">
297                                 $(function() {
298                                         getTranslation("WebInterface.DefaultText.CreateAlbum.Name", function(text) {
299                                                 $("#create-album input[name='name']").each(function() {
300                                                         registerInputTextareaSwap(this, text, "name", false, true);
301                                                 });
302                                         });
303                                         getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
304                                                 $("#create-album input[name='description']").each(function() {
305                                                         registerInputTextareaSwap(this, text, "description", true, true);
306                                                 });
307                                         });
308                                         $("#create-album label").hide();
309
310                                         hideAndShowBlock(".create-album", ".show-create-album", ".hide-create-album");
311                                 });
312                         </script>
313                 <%/if>
314
315                 <%ifnull sone>
316
317                         <p><%= Page.ImageBrowser.Sone.Error.NotFound.Text|l10n|html></p>
318
319                 <%else>
320
321                         <h1><%= Page.ImageBrowser.Sone.Title|l10n|replace needle='{sone}' replacementKey=sone.niceName|html></h1>
322
323                         <%foreach sone.albums album>
324                                 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
325                                 <div class="album image">
326                                         <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
327                                                 <%ifnull album.albumImage>
328                                                         <img src="images/unknown-image-0.png" width="200" height="150" alt="<% album.title|html>" title="<% album.title|html>" />
329                                                 <%else><!-- TODO -->
330                                                         <% album.albumImage|image-link max-width=200 max-height=150 title==album.title>
331                                                 <%/if>
332                                                 <br/>
333                                                 <% album.title|html>
334                                         </a>
335                                 </div>
336                                 <%= false|store key=endRow>
337                                 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
338                                 <%last><%= true|store key=endRow><%/last>
339                                 <%if endRow></div><%/if>
340                         <%/foreach>
341
342                         <%if sone.local>
343                                 <div class="show-create-album hidden toggle-link"><a class="small-link">» <%= View.CreateAlbum.Title|l10n|html></a></div>
344                                 <div class="hide-create-album hidden toggle-link"><a class="small-link">« <%= View.CreateAlbum.Title|l10n|html></a></div>
345                                 <div class="create-album">
346                                         <%include include/createAlbum.html>
347                                 </div>
348                         <%/if>
349
350                 <%/if>
351
352         <%/if>
353
354 <%include include/tail.html>