1 <%include include/head.html>
3 <div class="page-id hidden">image-browser</div>
9 <p><%= Page.ImageBrowser.Album.Error.NotFound.Text|l10n|html></p>
11 <%elseifnull album.title>
13 <p><%= Page.ImageBrowser.Album.Error.NotFound.Text|l10n|html></p>
17 <%if album.sone.local>
18 <script language="javascript">
20 getTranslation("WebInterface.DefaultText.UploadImage.Title", function(text) {
21 $("#upload-image :input[name='title']").each(function() {
22 registerInputTextareaSwap(this, text, "title", false, true);
25 getTranslation("WebInterface.DefaultText.UploadImage.Description", function(text) {
26 $("#upload-image :input[name='description']").each(function() {
27 registerInputTextareaSwap(this, text, "description", true, false);
30 $("#upload-image label").hide();
31 getTranslation("WebInterface.DefaultText.CreateAlbum.Name", function(text) {
32 $("#create-album input[name='name']").each(function() {
33 registerInputTextareaSwap(this, text, "name", false, true);
36 getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
37 $("#create-album input[name='description']").each(function() {
38 registerInputTextareaSwap(this, text, "description", true, true);
41 $("#create-album label").hide();
42 getTranslation("WebInterface.DefaultText.EditAlbum.Title", function(text) {
43 $("#edit-album input[name='title']").each(function() {
44 registerInputTextareaSwap(this, text, "title", false, true);
47 getTranslation("WebInterface.DefaultText.EditAlbum.Description", function(text) {
48 $("#edit-album :input[name='description']").each(function() {
49 registerInputTextareaSwap(this, text, "description", true, false);
52 $("#edit-album label").hide();
54 /* hide all those forms. */
55 hideBlock = function(blockElement, clickElement) {
56 $(blockElement).hide();
57 $(clickElement).removeClass("hidden").click(function() {
58 $(blockElement).slideDown();
64 hideBlock(".edit-album", ".show-edit-album");
65 hideBlock(".create-album", ".show-create-album");
66 hideBlock(".upload-image", ".show-upload-image");
71 <h1 class="backlink"><%= Page.ImageBrowser.Album.Title|l10n|replace needle='{album}' replacementKey=album.title|html></h1>
73 <div class="backlinks">
74 <%foreach album.backlinks backlink backlinks>
75 <div class="backlink">
76 <a href="<% backlink.target|html>"><% backlink.name|html></a>
78 <%if ! backlinks.last>
79 <div class="separator">></div>
84 <p id="description"><% album.description|html></p>
86 <%if album.sone.local>
87 <p><a class="show-edit-album hidden small-link">» <%= Page.ImageBrowser.Album.Edit.Title|l10n|html></a></p>
88 <div class="edit-album">
89 <h2><%= Page.ImageBrowser.Album.Edit.Title|l10n|html></h2>
91 <form id="edit-album" action="editAlbum.html" method="post">
92 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
93 <input type="hidden" name="album" value="<%album.id|html>" />
96 <label for="title"><%= Page.ImageBrowser.Album.Label.Title|l10n|html></label>
97 <input type="text" name="title" value="<%album.title|html>" />
100 <label for="description"><%= Page.ImageBrowser.Album.Label.Description|l10n|html></label>
101 <textarea name="description"><%album.description|html></textarea>
103 <button type="submit"><%= Page.ImageBrowser.Album.Button.Save|l10n|html></button>
108 <%foreach album.albums album>
109 <%first><h2><%= Page.ImageBrowser.Header.Albums|l10n|html></h2><%/first>
110 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
111 <div class="album image">
112 <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
113 <%ifnull album.albumImage>
114 <img src="images/unknown-image-0.png" width="200" height="150" alt="<% album.title|html>" title="<% album.title|html>" />
116 <% album.albumImage|image-link max-width=200 max-height=150 title==album.title>
122 <%= false|store key=endRow>
123 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
124 <%last><%= true|store key=endRow><%/last>
125 <%if endRow></div><%/if>
128 <%if album.sone.local>
129 <p><a class="show-create-album hidden small-link">» <%= View.CreateAlbum.Title|l10n|html></a></p>
130 <div class="create-album">
131 <%include include/createAlbum.html>
135 <%foreach album.images image>
136 <%first><h2><%= Page.ImageBrowser.Header.Images|l10n|html></h2><%/first>
137 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
139 <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=200 max-height=150></a>
140 <%if album.sone.local>
142 <form class="edit-image" action="editImage.html" method="post">
143 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
144 <input type="hidden" name="returnPage" value="<%request.uri|html>" />
145 <input type="hidden" name="image" value="<%image.id|html>" />
148 <input type="text" name="title" value="<%image.title|html>" />
151 <textarea name="description"><%image.description|html></textarea>
154 <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
159 <%= false|store key=endRow>
160 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
161 <%last><%= true|store key=endRow><%/last>
162 <%if endRow></div><%/if>
165 <%if album.sone.local>
166 <p><a class="show-upload-image hidden small-link">» <%= View.UploadImage.Title|l10n|html></a></p>
167 <div class="upload-image">
168 <%include include/uploadImage.html>
172 <form id="delete-album" action="deleteAlbum.html" method="get">
173 <input type="hidden" name="album" value="<%album.id|html>" />
174 <button type="submit"><%= Page.ImageBrowser.Album.Button.Delete|l10n|html></button>
182 <%elseif imageRequested>
184 <h1 class="backlink"><%image.title|html></h1>
186 <div class="backlinks">
187 <%foreach image.album.backlinks backlink backlinks>
188 <div class="backlink">
189 <a href="<% backlink.target|html>"><% backlink.name|html></a>
191 <%if ! backlinks.last>
192 <div class="separator">></div>
201 <%if image.sone.local>
202 <script language="javascript">
204 getTranslation("WebInterface.DefaultText.EditImage.Title", function(text) {
205 $("#edit-image input[name='title']").each(function() {
206 registerInputTextareaSwap(this, text, "title", false, true);
209 getTranslation("WebInterface.DefaultText.EditImage.Description", function(text) {
210 $("#edit-image :input[name='description']").each(function() {
211 registerInputTextareaSwap(this, text, "description", true, false);
214 $("#edit-image label").hide();
216 /* hide all those forms. */
217 hideBlock = function(blockElement, clickElement) {
218 $(blockElement).hide();
219 $(clickElement).removeClass("hidden").click(function() {
220 $(blockElement).slideDown();
226 hideBlock(".edit-image", ".show-edit-image");
227 hideBlock(".delete-image", ".show-delete-image");
232 <div class="single-image">
234 <a href="/<%image.key|html>"><% image|image-link max-width=640 max-height=480></a>
236 <a href="imageBrowser.html?image=<%image.id|html>"><% image|image-link max-width=640 max-height=480></a>
240 <p class="parsed"><%image.description|parse sone=image.sone></p>
242 <%if image.sone.local>
244 <p><a class="show-edit-image hidden small-link">» <%= Page.ImageBrowser.Image.Edit.Title|l10n|html></a></p>
245 <div class="edit-image">
246 <h2><%= Page.ImageBrowser.Image.Edit.Title|l10n|html></h2>
248 <form id="edit-image" action="editImage.html" method="post">
249 <input type="hidden" name="formPassword" value="<%formPassword|html>" />
250 <input type="hidden" name="returnPage" value="<%request.uri|html>" />
251 <input type="hidden" name="image" value="<%image.id|html>" />
254 <label for="title"><%= Page.ImageBrowser.Image.Title.Label|l10n|html></label>
255 <input type="text" name="title" value="<%image.title|html>" />
258 <label for="description"><%= Page.ImageBrowser.Image.Description.Label|l10n|html></label>
259 <textarea name="description"><%image.description|html></textarea>
262 <button type="submit"><%= Page.ImageBrowser.Image.Button.Save|l10n|html></button>
267 <p><a class="show-delete-image hidden small-link">» <%= Page.ImageBrowser.Image.Delete.Title|l10n|html></a></p>
268 <div class="delete-image">
269 <h2><%= Page.ImageBrowser.Image.Delete.Title|l10n|html></h2>
271 <form id="delete-image" action="deleteImage.html" method="get">
272 <input type="hidden" name="image" value="<%image.id|html>" />
273 <button type="submit"><%= Page.ImageBrowser.Image.Button.Delete|l10n|html></button>
281 <%elseif soneRequested>
284 <script language="javascript">
286 getTranslation("WebInterface.DefaultText.CreateAlbum.Name", function(text) {
287 $("#create-album input[name='name']").each(function() {
288 registerInputTextareaSwap(this, text, "name", false, true);
291 getTranslation("WebInterface.DefaultText.CreateAlbum.Description", function(text) {
292 $("#create-album input[name='description']").each(function() {
293 registerInputTextareaSwap(this, text, "description", true, true);
296 $("#create-album label").hide();
298 /* hide all those forms. */
299 hideBlock = function(blockElement, clickElement) {
300 $(blockElement).hide();
301 $(clickElement).removeClass("hidden").click(function() {
302 $(blockElement).slideDown();
308 hideBlock(".create-album", ".show-create-album");
315 <p><%= Page.ImageBrowser.Sone.Error.NotFound.Text|l10n|html></p>
319 <h1><%= Page.ImageBrowser.Sone.Title|l10n|replace needle='{sone}' replacementKey=sone.niceName|html></h1>
321 <%foreach sone.albums album>
322 <%if loop.count|mod divisor=3><div class="image-row"><%/if>
323 <div class="album image">
324 <a href="imageBrowser.html?album=<% album.id|html>" title="<% album.title|html>">
325 <%ifnull album.albumImage>
326 <img src="images/unknown-image-0.png" width="200" height="150" alt="<% album.title|html>" title="<% album.title|html>" />
328 <% album.albumImage|image-link max-width=200 max-height=150 title==album.title>
334 <%= false|store key=endRow>
335 <%if loop.count|mod divisor=3 offset=1><%= true|store key=endRow><%/if>
336 <%last><%= true|store key=endRow><%/last>
337 <%if endRow></div><%/if>
341 <p><a class="show-create-album hidden small-link">» <%= View.CreateAlbum.Title|l10n|html></a></p>
342 <div class="create-album">
343 <%include include/createAlbum.html>
351 <%include include/tail.html>