Add possibility to change album image.
[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                                                 hideAndShowData = function(activationElements, activeElements, hideElement, showElement) {
82                                                         $(activationElements).click(function() {
83                                                                 imageId = $(this).closest(".image").find(".image-id").text();
84                                                                 $(hideElement, $("#image-" + imageId)).hide();
85                                                                 $(showElement, $("#image-" + imageId)).show();
86                                                                 $(document).click(function(event) {
87                                                                         if ($(event.target).closest("#image-" + imageId).size() == 0) {
88                                                                                 $(showElement).hide();
89                                                                                 $(hideElement).show();
90                                                                         }
91                                                                         return $(event.target).is("button");
92                                                                 });
93                                                         });
94                                                 };
95
96                                                 hideAndShowData(".image-title, .image-description", ".image", ".show-data", ".edit-data");
97                                         });
98                                 </script>
99                         <%/if>
100
101                         <h1 class="backlink"><%= Page.ImageBrowser.Album.Title|l10n|replace needle='{album}' replacementKey=album.title|html></h1>
102
103                         <div class="backlinks">
104                                 <%foreach album.backlinks backlink backlinks>
105                                         <div class="backlink">
106                                                 <a href="<% backlink.target|html>"><% backlink.name|html></a>
107                                         </div>
108                                         <%if ! backlinks.last>
109                                                 <div class="separator">&gt;</div>
110                                         <%/if>
111                                 <%/foreach>
112                         </div>
113
114                         <p id="description"><% album.description|html></p>
115
116                         <%if album.sone.local>
117                                 <div class="show-edit-album hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Album.Edit.Title|l10n|html></a></div>
118                                 <div class="hide-edit-album hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Album.Edit.Title|l10n|html></a></div>
119                                 <div class="edit-album">
120                                         <h2><%= Page.ImageBrowser.Album.Edit.Title|l10n|html></h2>
121
122                                         <form id="edit-album" action="editAlbum.html" method="post">
123                                                 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
124                                                 <input type="hidden" name="album" value="<%album.id|html>" />
125
126                                                 <%if ! album.images.empty>
127                                                         <div>
128                                                                 <label for="album-image"><%= Page.ImageBrowser.Album.Label.AlbumImage|l10n|html></label>
129                                                                 <select name="album-image">
130                                                                         <option disabled="disabled"><%= Page.ImageBrowser.Album.AlbumImage.Choose|l10n|html></option>
131                                                                         <%foreach album.images image>
132                                                                                 <option value="<% image.id|html>"<%if album.albumImage.id|match key=image.id> selected="selected"<%/if>><% image.title|html></option>
133                                                                         <%/foreach>
134                                                                 </select>
135                                                         </div>
136                                                 <%/if>
137                                                 <div>
138                                                         <label for="title"><%= Page.ImageBrowser.Album.Label.Title|l10n|html></label>
139                                                         <input type="text" name="title" value="<%album.title|html>" />
140                                                 </div>
141                                                 <div>
142                                                         <label for="description"><%= Page.ImageBrowser.Album.Label.Description|l10n|html></label>
143                                                         <textarea name="description"><%album.description|html></textarea>
144                                                 </div>
145                                                 <button type="submit"><%= Page.ImageBrowser.Album.Button.Save|l10n|html></button>
146                                         </form>
147                                 </div>
148                         <%/if>
149
150                         <%foreach album.albums album>
151                                 <%first><h2><%= Page.ImageBrowser.Header.Albums|l10n|html></h2><%/first>
152                                 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
153                                 <div class="album image">
154                                         <div class="image-container">
155                                                 <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
156                                                         <%ifnull album.albumImage>
157                                                                 <img src="images/unknown-image-0.png" width="266" height="200" alt="<% album.title|html>" title="<% album.title|html>" style="position: relative; top: 0px; left: -33px;" />
158                                                         <%else><!-- TODO -->
159                                                                 <% album.albumImage|image-link max-width=200 max-height=200 mode=enlarge title==album.title>
160                                                         <%/if>
161                                                 </a>
162                                         </div>
163                                         <div class="show-data">
164                                                 <div class="album-title"><% album.title|html></div>
165                                                 <div class="album-description"><% album.description|html></div>
166                                         </div>
167                                 </div>
168                                 <%= false|store key=endRow>
169                                 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
170                                 <%last><%= true|store key=endRow><%/last>
171                                 <%if endRow></div><%/if>
172                         <%/foreach>
173
174                         <%if album.sone.local>
175                                 <div class="show-create-album hidden toggle-link"><a class="small-link">» <%= View.CreateAlbum.Title|l10n|html></a></div>
176                                 <div class="hide-create-album hidden toggle-link"><a class="small-link">« <%= View.CreateAlbum.Title|l10n|html></a></div>
177                                 <div class="create-album">
178                                         <%include include/createAlbum.html>
179                                 </div>
180                         <%/if>
181
182                         <%foreach album.images image>
183                                 <%first><h2><%= Page.ImageBrowser.Header.Images|l10n|html></h2><%/first>
184                                 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
185                                 <div id="image-<% image.id|html>" class="image">
186                                         <div class="image-id hidden"><% image.id|html></div>
187                                         <div class="image-container">
188                                                 <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=200 max-height=200 mode=enlarge title==image.title></a>
189                                         </div>
190                                         <div class="show-data">
191                                                 <div class="image-title"><% image.title|html></div>
192                                                 <div class="image-description"><% image.description|html></div>
193                                         </div>
194                                         <%if album.sone.local>
195                                                 <form class="edit-image" action="editImage.html" method="post">
196                                                         <input type="hidden" name="formPassword" value="<%formPassword|html>" />
197                                                         <input type="hidden" name="returnPage" value="<%request.uri|html>" />
198                                                         <input type="hidden" name="image" value="<%image.id|html>" />
199
200                                                         <div class="edit-data hidden">
201                                                                 <div>
202                                                                         <input type="text" name="title" value="<%image.title|html>" />
203                                                                 </div>
204                                                                 <div>
205                                                                         <textarea name="description"><%image.description|html></textarea>
206                                                                 </div>
207                                                                 <div>
208                                                                         <%notfirst><button type="submit" name="moveLeft" value="true"><%= Page.ImageBrowser.Image.Button.MoveLeft|l10n|html></button><%/notfirst>
209                                                                         <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
210                                                                         <%notlast><button type="submit" name="moveRight" value="true"><%= Page.ImageBrowser.Image.Button.MoveRight|l10n|html></button><%/notlast>
211                                                                 </div>
212                                                         </div>
213                                                 </form>
214                                         <%/if>
215                                 </div>
216                                 <%= false|store key=endRow>
217                                 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
218                                 <%last><%= true|store key=endRow><%/last>
219                                 <%if endRow></div><%/if>
220                         <%/foreach>
221
222                         <%if album.sone.local>
223                                 <div class="show-upload-image hidden toggle-link"><a class="small-link">» <%= View.UploadImage.Title|l10n|html></a></div>
224                                 <div class="hide-upload-image hidden toggle-link"><a class="small-link">« <%= View.UploadImage.Title|l10n|html></a></div>
225                                 <div class="upload-image">
226                                         <%include include/uploadImage.html>
227                                 </div>
228
229                                 <%if album.empty>
230                                         <div class="show-delete-album hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Album.Delete.Title|l10n|html></a></div>
231                                         <div class="hide-delete-album hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Album.Delete.Title|l10n|html></a></div>
232                                         <div class="delete-album">
233                                                 <form id="delete-album" action="deleteAlbum.html" method="get">
234                                                         <input type="hidden" name="album" value="<%album.id|html>" />
235                                                         <button type="submit"><%= Page.ImageBrowser.Album.Button.Delete|l10n|html></button>
236                                                 </form>
237                                         </div>
238                                 <%/if>
239
240                         <%/if>
241
242                 <%/if>
243
244         <%elseif imageRequested>
245
246                 <h1 class="backlink"><%image.title|html></h1>
247
248                 <div class="backlinks">
249                         <%foreach image.album.backlinks backlink backlinks>
250                                 <div class="backlink">
251                                         <a href="<% backlink.target|html>"><% backlink.name|html></a>
252                                 </div>
253                                 <%if ! backlinks.last>
254                                         <div class="separator">&gt;</div>
255                                 <%/if>
256                         <%/foreach>
257                 </div>
258
259                 <%ifnull image>
260
261                 <%else>
262
263                         <%if image.sone.local>
264                                 <script language="javascript">
265                                         $(function() {
266                                                 getTranslation("WebInterface.DefaultText.EditImage.Title", function(text) {
267                                                         $("#edit-image input[name='title']").each(function() {
268                                                                 registerInputTextareaSwap(this, text, "title", false, true);
269                                                         });
270                                                 });
271                                                 getTranslation("WebInterface.DefaultText.EditImage.Description", function(text) {
272                                                         $("#edit-image :input[name='description']").each(function() {
273                                                                 registerInputTextareaSwap(this, text, "description", true, false);
274                                                         });
275                                                 });
276                                                 $("#edit-image label").hide();
277
278                                                 hideAndShowBlock(".edit-image", ".show-edit-image", ".hide-edit-image");
279                                                 hideAndShowBlock(".delete-image", ".show-delete-image", ".hide-delete-image");
280                                         });
281                                 </script>
282                         <%/if>
283
284                         <div class="single-image">
285                                 <%ifnull !image.key>
286                                         <a href="/<%image.key|html>"><% image|image-link max-width=640 max-height=480></a>
287                                 <%else>
288                                         <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=640 max-height=480></a>
289                                 <%/if>
290                         </div>
291
292                         <p class="parsed"><%image.description|parse sone=image.sone></p>
293
294                         <%if image.sone.local>
295
296                                 <div class="show-edit-image hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></div>
297                                 <div class="hide-edit-image hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></div>
298                                 <div class="edit-image">
299                                         <h2><%= Page.ImageBrowser.Image.Edit.Title|l10n|html></h2>
300
301                                         <form id="edit-image" action="editImage.html" method="post">
302                                                 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
303                                                 <input type="hidden" name="returnPage" value="<%request.uri|html>" />
304                                                 <input type="hidden" name="image" value="<%image.id|html>" />
305
306                                                 <div>
307                                                         <label for="title"><%= Page.ImageBrowser.Image.Title.Label|l10n|html></label>
308                                                         <input type="text" name="title" value="<%image.title|html>" />
309                                                 </div>
310                                                 <div>
311                                                         <label for="description"><%= Page.ImageBrowser.Image.Description.Label|l10n|html></label>
312                                                         <textarea name="description"><%image.description|html></textarea>
313                                                 </div>
314                                                 <div>
315                                                         <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
316                                                 </div>
317                                         </form>
318                                 </div>
319
320                                 <div class="show-delete-image hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></div>
321                                 <div class="hide-delete-image hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></div>
322                                 <div class="delete-image">
323                                         <h2><%= Page.ImageBrowser.Image.Delete.Title|l10n|html></h2>
324
325                                         <form id="delete-image" action="deleteImage.html" method="get">
326                                                 <input type="hidden" name="image" value="<%image.id|html>" />
327                                                 <button type="submit"><%= Page.ImageBrowser.Image.Button.Delete|l10n|html></button>
328                                         </form>
329                                 </div>
330
331                         <%/if>
332
333                 <%/if>
334
335         <%elseif soneRequested>
336
337                 <%if sone.local>
338                         <script language="javascript">
339                                 $(function() {
340                                         getTranslation("WebInterface.DefaultText.CreateAlbum.Name", function(text) {
341                                                 $("#create-album input[name='name']").each(function() {
342                                                         registerInputTextareaSwap(this, text, "name", false, true);
343                                                 });
344                                         });
345                                         getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
346                                                 $("#create-album input[name='description']").each(function() {
347                                                         registerInputTextareaSwap(this, text, "description", true, true);
348                                                 });
349                                         });
350                                         $("#create-album label").hide();
351
352                                         hideAndShowBlock(".create-album", ".show-create-album", ".hide-create-album");
353                                 });
354                         </script>
355                 <%/if>
356
357                 <%ifnull sone>
358
359                         <p><%= Page.ImageBrowser.Sone.Error.NotFound.Text|l10n|html></p>
360
361                 <%else>
362
363                         <h1><%= Page.ImageBrowser.Sone.Title|l10n|replace needle='{sone}' replacementKey=sone.niceName|html></h1>
364
365                         <%foreach sone.albums album>
366                                 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
367                                 <div class="album image">
368                                         <div class="image-container">
369                                                 <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
370                                                         <%ifnull album.albumImage>
371                                                                 <img src="images/unknown-image-0.png" width="266" height="200" alt="<% album.title|html>" title="<% album.title|html>" style="position: relative; top: 0px; left: -33px;"/>
372                                                         <%else><!-- TODO -->
373                                                                 <% album.albumImage|image-link max-width=200 max-height=200 mode=enlarge title==album.title>
374                                                         <%/if>
375                                                 </a>
376                                         </div>
377                                         <div class="show-data">
378                                                 <div class="album-title"><% album.title|html></div>
379                                                 <div class="album-description"><% album.description|html></div>
380                                         </div>
381                                 </div>
382                                 <%= false|store key=endRow>
383                                 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
384                                 <%last><%= true|store key=endRow><%/last>
385                                 <%if endRow></div><%/if>
386                         <%/foreach>
387
388                         <%if sone.local>
389                                 <div class="show-create-album hidden toggle-link"><a class="small-link">» <%= View.CreateAlbum.Title|l10n|html></a></div>
390                                 <div class="hide-create-album hidden toggle-link"><a class="small-link">« <%= View.CreateAlbum.Title|l10n|html></a></div>
391                                 <div class="create-album">
392                                         <%include include/createAlbum.html>
393                                 </div>
394                         <%/if>
395
396                 <%/if>
397
398         <%/if>
399
400 <%include include/tail.html>