1 <%include include/head.html>
3 <div class="page-id hidden">image-browser</div>
5 <script language="javascript">
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");
17 $(clickToHideElement).click(function() {
18 $(blockElement).slideUp();
19 $(clickToHideElement).addClass("hidden");
20 $(clickToShowElement).removeClass("hidden");
31 <p><%= Page.ImageBrowser.Album.Error.NotFound.Text|l10n|html></p>
33 <%elseifnull album.title>
35 <p><%= Page.ImageBrowser.Album.Error.NotFound.Text|l10n|html></p>
39 <%if album.sone.local>
40 <script language="javascript">
42 getTranslation("WebInterface.DefaultText.UploadImage.Title", function(text) {
43 $("#upload-image :input[name='title']").each(function() {
44 registerInputTextareaSwap(this, text, "title", false, true);
47 getTranslation("WebInterface.DefaultText.UploadImage.Description", function(text) {
48 $("#upload-image :input[name='description']").each(function() {
49 registerInputTextareaSwap(this, text, "description", true, false);
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);
58 getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
59 $("#create-album input[name='description']").each(function() {
60 registerInputTextareaSwap(this, text, "description", true, true);
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);
69 getTranslation("WebInterface.DefaultText.EditAlbum.Description", function(text) {
70 $("#edit-album :input[name='description']").each(function() {
71 registerInputTextareaSwap(this, text, "description", true, false);
74 $("#edit-album label").hide();
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");
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();
91 return $(event.target).is("button");
96 hideAndShowData(".image-title, .image-description", ".image", ".show-data", ".edit-data");
101 <h1 class="backlink"><%= Page.ImageBrowser.Album.Title|l10n|replace needle='{album}' replacementKey=album.title|html></h1>
103 <div class="backlinks">
104 <%foreach album.backlinks backlink backlinks>
105 <div class="backlink">
106 <a href="<% backlink.target|html>"><% backlink.name|html></a>
108 <%if ! backlinks.last>
109 <div class="separator">></div>
114 <p id="description"><% album.description|html></p>
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>
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>" />
127 <label for="title"><%= Page.ImageBrowser.Album.Label.Title|l10n|html></label>
128 <input type="text" name="title" value="<%album.title|html>" />
131 <label for="description"><%= Page.ImageBrowser.Album.Label.Description|l10n|html></label>
132 <textarea name="description"><%album.description|html></textarea>
134 <button type="submit"><%= Page.ImageBrowser.Album.Button.Save|l10n|html></button>
139 <%foreach album.albums album>
140 <%first><h2><%= Page.ImageBrowser.Header.Albums|l10n|html></h2><%/first>
141 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
142 <div class="album image">
143 <div class="image-container">
144 <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
145 <%ifnull album.albumImage>
146 <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;" />
148 <% album.albumImage|image-link max-width=200 max-height=200 mode=enlarge title==album.title>
152 <div class="show-data">
153 <div class="album-title"><% album.title|html></div>
154 <div class="album-description"><% album.description|html></div>
157 <%= false|store key=endRow>
158 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
159 <%last><%= true|store key=endRow><%/last>
160 <%if endRow></div><%/if>
163 <%if album.sone.local>
164 <div class="show-create-album hidden toggle-link"><a class="small-link">» <%= View.CreateAlbum.Title|l10n|html></a></div>
165 <div class="hide-create-album hidden toggle-link"><a class="small-link">« <%= View.CreateAlbum.Title|l10n|html></a></div>
166 <div class="create-album">
167 <%include include/createAlbum.html>
171 <%foreach album.images image>
172 <%first><h2><%= Page.ImageBrowser.Header.Images|l10n|html></h2><%/first>
173 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
174 <div id="image-<% image.id|html>" class="image">
175 <div class="image-id hidden"><% image.id|html></div>
176 <div class="image-container">
177 <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=200 max-height=200 mode=enlarge title==image.title></a>
179 <div class="show-data">
180 <div class="image-title"><% image.title|html></div>
181 <div class="image-description"><% image.description|html></div>
183 <%if album.sone.local>
184 <form class="edit-image" action="editImage.html" method="post">
185 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
186 <input type="hidden" name="returnPage" value="<%request.uri|html>" />
187 <input type="hidden" name="image" value="<%image.id|html>" />
189 <div class="edit-data hidden">
191 <input type="text" name="title" value="<%image.title|html>" />
194 <textarea name="description"><%image.description|html></textarea>
197 <%notfirst><button type="submit" name="moveLeft" value="true"><%= Page.ImageBrowser.Image.Button.MoveLeft|l10n|html></button><%/notfirst>
198 <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
199 <%notlast><button type="submit" name="moveRight" value="true"><%= Page.ImageBrowser.Image.Button.MoveRight|l10n|html></button><%/notlast>
205 <%= false|store key=endRow>
206 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
207 <%last><%= true|store key=endRow><%/last>
208 <%if endRow></div><%/if>
211 <%if album.sone.local>
212 <div class="show-upload-image hidden toggle-link"><a class="small-link">» <%= View.UploadImage.Title|l10n|html></a></div>
213 <div class="hide-upload-image hidden toggle-link"><a class="small-link">« <%= View.UploadImage.Title|l10n|html></a></div>
214 <div class="upload-image">
215 <%include include/uploadImage.html>
219 <div class="show-delete-album hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Album.Delete.Title|l10n|html></a></div>
220 <div class="hide-delete-album hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Album.Delete.Title|l10n|html></a></div>
221 <div class="delete-album">
222 <form id="delete-album" action="deleteAlbum.html" method="get">
223 <input type="hidden" name="album" value="<%album.id|html>" />
224 <button type="submit"><%= Page.ImageBrowser.Album.Button.Delete|l10n|html></button>
233 <%elseif imageRequested>
235 <h1 class="backlink"><%image.title|html></h1>
237 <div class="backlinks">
238 <%foreach image.album.backlinks backlink backlinks>
239 <div class="backlink">
240 <a href="<% backlink.target|html>"><% backlink.name|html></a>
242 <%if ! backlinks.last>
243 <div class="separator">></div>
252 <%if image.sone.local>
253 <script language="javascript">
255 getTranslation("WebInterface.DefaultText.EditImage.Title", function(text) {
256 $("#edit-image input[name='title']").each(function() {
257 registerInputTextareaSwap(this, text, "title", false, true);
260 getTranslation("WebInterface.DefaultText.EditImage.Description", function(text) {
261 $("#edit-image :input[name='description']").each(function() {
262 registerInputTextareaSwap(this, text, "description", true, false);
265 $("#edit-image label").hide();
267 hideAndShowBlock(".edit-image", ".show-edit-image", ".hide-edit-image");
268 hideAndShowBlock(".delete-image", ".show-delete-image", ".hide-delete-image");
273 <div class="single-image">
275 <a href="/<%image.key|html>"><% image|image-link max-width=640 max-height=480></a>
277 <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=640 max-height=480></a>
281 <p class="parsed"><%image.description|parse sone=image.sone></p>
283 <%if image.sone.local>
285 <div class="show-edit-image hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></div>
286 <div class="hide-edit-image hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></div>
287 <div class="edit-image">
288 <h2><%= Page.ImageBrowser.Image.Edit.Title|l10n|html></h2>
290 <form id="edit-image" action="editImage.html" method="post">
291 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
292 <input type="hidden" name="returnPage" value="<%request.uri|html>" />
293 <input type="hidden" name="image" value="<%image.id|html>" />
296 <label for="title"><%= Page.ImageBrowser.Image.Title.Label|l10n|html></label>
297 <input type="text" name="title" value="<%image.title|html>" />
300 <label for="description"><%= Page.ImageBrowser.Image.Description.Label|l10n|html></label>
301 <textarea name="description"><%image.description|html></textarea>
304 <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
309 <div class="show-delete-image hidden toggle-link"><a class="small-link">» <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></div>
310 <div class="hide-delete-image hidden toggle-link"><a class="small-link">« <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></div>
311 <div class="delete-image">
312 <h2><%= Page.ImageBrowser.Image.Delete.Title|l10n|html></h2>
314 <form id="delete-image" action="deleteImage.html" method="get">
315 <input type="hidden" name="image" value="<%image.id|html>" />
316 <button type="submit"><%= Page.ImageBrowser.Image.Button.Delete|l10n|html></button>
324 <%elseif soneRequested>
327 <script language="javascript">
329 getTranslation("WebInterface.DefaultText.CreateAlbum.Name", function(text) {
330 $("#create-album input[name='name']").each(function() {
331 registerInputTextareaSwap(this, text, "name", false, true);
334 getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
335 $("#create-album input[name='description']").each(function() {
336 registerInputTextareaSwap(this, text, "description", true, true);
339 $("#create-album label").hide();
341 hideAndShowBlock(".create-album", ".show-create-album", ".hide-create-album");
348 <p><%= Page.ImageBrowser.Sone.Error.NotFound.Text|l10n|html></p>
352 <h1><%= Page.ImageBrowser.Sone.Title|l10n|replace needle='{sone}' replacementKey=sone.niceName|html></h1>
354 <%foreach sone.albums album>
355 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
356 <div class="album image">
357 <div class="image-container">
358 <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
359 <%ifnull album.albumImage>
360 <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;"/>
362 <% album.albumImage|image-link max-width=200 max-height=200 mode=enlarge title==album.title>
366 <div class="show-data">
367 <div class="album-title"><% album.title|html></div>
368 <div class="album-description"><% album.description|html></div>
371 <%= false|store key=endRow>
372 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
373 <%last><%= true|store key=endRow><%/last>
374 <%if endRow></div><%/if>
378 <div class="show-create-album hidden toggle-link"><a class="small-link">» <%= View.CreateAlbum.Title|l10n|html></a></div>
379 <div class="hide-create-album hidden toggle-link"><a class="small-link">« <%= View.CreateAlbum.Title|l10n|html></a></div>
380 <div class="create-album">
381 <%include include/createAlbum.html>
389 <%include include/tail.html>