From 53c1366e7ef8c75a23829dd963172969725f7634 Mon Sep 17 00:00:00 2001 From: Tobias Reich Date: Fri, 16 Jan 2015 21:39:32 +0100 Subject: [PATCH] New dialogs --- dist/main.js | Bin 175821 -> 176016 bytes src/scripts/album.js | 21 ++-- src/scripts/photo.js | 282 +++++++++++++++++++++++++++---------------- 3 files changed, 187 insertions(+), 116 deletions(-) diff --git a/dist/main.js b/dist/main.js index 00a4fb3dab3807e62eb5ef7d394068fbaf96b7e5..8afc117e30408690f345fb6884668ae8a3aec680 100644 GIT binary patch delta 4902 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 Fe*iKLdK3Tv delta 5218 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 diff --git a/src/scripts/album.js b/src/scripts/album.js index 7760237..8a68b68 100644 --- a/src/scripts/album.js +++ b/src/scripts/album.js @@ -251,13 +251,10 @@ album.setTitle = function(albumIDs) { action = function(data) { var params, - newTitle; + newTitle = data.title; basicModal.close(); - // Get input - newTitle = data.title; - // Remove html from input newTitle = lychee.removeHTML(newTitle); @@ -301,7 +298,7 @@ album.setTitle = function(albumIDs) { body: msg, buttons: { action: { - title: 'Set title', + title: 'Set Title', fn: action }, cancel: { @@ -315,23 +312,25 @@ album.setTitle = function(albumIDs) { album.setDescription = function(photoID) { - var oldDescription = album.json.description.replace("'", '''); + var oldDescription = album.json.description.replace("'", '''), + action; action = function(data) { - var params; + var params, + description = data.description; basicModal.close(); // Remove html from input - data.description = lychee.removeHTML(data.description); + description = lychee.removeHTML(description); if (visible.album()) { - album.json.description = data.description; + album.json.description = description; view.album.description(); } - params = 'setAlbumDescription&albumID=' + photoID + '&description=' + escape(encodeURI(data.description)); + params = 'setAlbumDescription&albumID=' + photoID + '&description=' + escape(encodeURI(description)); lychee.api(params, function(data) { if (data!==true) lychee.error(null, params, data); @@ -378,11 +377,9 @@ album.setPublic = function(albumID, e) { }; msg = "

This album will be shared with the following properties:

"; - msg += "

Listed to visitors of your Lychee.

"; msg += "

Visitors of your Lychee can download this album.

"; msg += "

Only accessible with a valid password.

"; - msg += "
" basicModal.show({ diff --git a/src/scripts/photo.js b/src/scripts/photo.js index 6a6ae3c..53b1c57 100644 --- a/src/scripts/photo.js +++ b/src/scripts/photo.js @@ -168,9 +168,10 @@ photo.duplicate = function(photoIDs) { photo.delete = function(photoIDs) { - var params, - buttons, - photoTitle; + var action = {}, + cancel = {}, + msg = '', + photoTitle = ''; if (!photoIDs) return false; if (photoIDs instanceof Array===false) photoIDs = [photoIDs]; @@ -186,72 +187,87 @@ photo.delete = function(photoIDs) { } - buttons = [ - ['', function() { + action.fn = function() { - var nextPhoto = '', - previousPhoto = ''; + var params = '', + nextPhoto = '', + previousPhoto = ''; - photoIDs.forEach(function(id, index, array) { + basicModal.close(); - // Change reference for the next and previous photo - if (album.json.content[id].nextPhoto!==''||album.json.content[id].previousPhoto!=='') { + photoIDs.forEach(function(id, index, array) { - nextPhoto = album.json.content[id].nextPhoto; - previousPhoto = album.json.content[id].previousPhoto; + // Change reference for the next and previous photo + if (album.json.content[id].nextPhoto!==''||album.json.content[id].previousPhoto!=='') { - album.json.content[previousPhoto].nextPhoto = nextPhoto; - album.json.content[nextPhoto].previousPhoto = previousPhoto; + nextPhoto = album.json.content[id].nextPhoto; + previousPhoto = album.json.content[id].previousPhoto; - } + album.json.content[previousPhoto].nextPhoto = nextPhoto; + album.json.content[nextPhoto].previousPhoto = previousPhoto; - album.json.content[id] = null; - view.album.content.delete(id); + } - }); + album.json.content[id] = null; + view.album.content.delete(id); - albums.refresh(); + }); - // Go to next photo if there is a next photo and - // next photo is not the current one. Show album otherwise. - if (visible.photo()&&nextPhoto!==''&&nextPhoto!==photo.getID()) lychee.goto(album.getID() + '/' + nextPhoto); - else if (!visible.albums()) lychee.goto(album.getID()); + albums.refresh(); - params = 'deletePhoto&photoIDs=' + photoIDs; - lychee.api(params, function(data) { + // Go to next photo if there is a next photo and + // next photo is not the current one. Show album otherwise. + if (visible.photo()&&nextPhoto!==''&&nextPhoto!==photo.getID()) lychee.goto(album.getID() + '/' + nextPhoto); + else if (!visible.albums()) lychee.goto(album.getID()); - if (data!==true) lychee.error(null, params, data); + params = 'deletePhoto&photoIDs=' + photoIDs; + lychee.api(params, function(data) { - }); + if (data!==true) lychee.error(null, params, data); - }], - ['', function() {}] - ]; + }); + + } if (photoIDs.length===1) { - buttons[0][0] = 'Delete Photo'; - buttons[1][0] = 'Keep Photo'; + action.title = 'Delete Photo'; + cancel.title = 'Keep Photo'; - modal.show('Delete Photo', "Are you sure you want to delete the photo '" + photoTitle + "'?
This action can't be undone!", buttons); + msg = "

Are you sure you want to delete the photo '" + photoTitle + "'?
This action can't be undone!

"; } else { - buttons[0][0] = 'Delete Photos'; - buttons[1][0] = 'Keep Photos'; + action.title = 'Delete Photo'; + cancel.title = 'Keep Photo'; - modal.show('Delete Photos', "Are you sure you want to delete all " + photoIDs.length + " selected photo?
This action can't be undone!", buttons); + msg = "

Are you sure you want to delete all " + photoIDs.length + " selected photo?
This action can't be undone!

"; } + basicModal.show({ + body: msg, + buttons: { + action: { + title: action.title, + fn: action.fn, + class: 'red' + }, + cancel: { + title: cancel.title, + fn: basicModal.close + } + } + }); + } photo.setTitle = function(photoIDs) { var oldTitle = '', - newTitle, - params, - buttons; + input = '', + msg = '', + action; if (!photoIDs) return false; if (photoIDs instanceof Array===false) photoIDs = [photoIDs]; @@ -263,38 +279,53 @@ photo.setTitle = function(photoIDs) { oldTitle = oldTitle.replace("'", '''); } - buttons = [ - ['Set Title', function() { + action = function(data) { - // Get input - newTitle = $('.message input.text').val(); + var params, + newTitle = data.title; - // Remove html from input - newTitle = lychee.removeHTML(newTitle); + basicModal.close(); - if (visible.photo()) { - photo.json.title = (newTitle==='') ? 'Untitled' : newTitle; - view.photo.title(); + // Remove html from input + newTitle = lychee.removeHTML(newTitle); + + if (visible.photo()) { + photo.json.title = (newTitle==='') ? 'Untitled' : newTitle; + view.photo.title(); + } + + photoIDs.forEach(function(id, index, array) { + album.json.content[id].title = newTitle; + view.album.content.title(id); + }); + + params = 'setPhotoTitle&photoIDs=' + photoIDs + '&title=' + escape(encodeURI(newTitle)); + lychee.api(params, function(data) { + + if (data!==true) lychee.error(null, params, data); + + }); + + } + + input = ""; + + if (photoIDs.length===1) msg = "

Enter a new title for this photo: " + input + "

"; + else msg = "

Enter a title for all " + photoIDs.length + " selected photos: " + input + "

"; + + basicModal.show({ + body: msg, + buttons: { + action: { + title: 'Set title', + fn: action + }, + cancel: { + title: 'Cancel', + fn: basicModal.close } - - photoIDs.forEach(function(id, index, array) { - album.json.content[id].title = newTitle; - view.album.content.title(id); - }); - - params = 'setPhotoTitle&photoIDs=' + photoIDs + '&title=' + escape(encodeURI(newTitle)); - lychee.api(params, function(data) { - - if (data!==true) lychee.error(null, params, data); - - }); - - }], - ['Cancel', function() {}] - ]; - - if (photoIDs.length===1) modal.show('Set Title', "Enter a new title for this photo: ", buttons); - else modal.show('Set Titles', "Enter a title for all " + photoIDs.length + " selected photos: ", buttons); + } + }); } @@ -369,7 +400,29 @@ photo.setPublic = function(photoID, e) { if (photo.json.public==2) { - modal.show('Public Album', "This photo is located in a public album. To make this photo private or public, edit the visibility of the associated album.", [['Show Album', function() { lychee.goto(photo.json.original_album) }], ['Close', function() {}]]); + var action; + + action = function() { + + basicModal.close(); + lychee.goto(photo.json.original_album); + + } + + basicModal.show({ + body: "

This photo is located in a public album. To make this photo private or public, edit the visibility of the associated album.

", + buttons: { + action: { + title: 'Show Album', + fn: action + }, + cancel: { + title: 'Cancel', + fn: basicModal.close + } + } + }); + return false; } @@ -399,44 +452,53 @@ photo.setPublic = function(photoID, e) { photo.setDescription = function(photoID) { var oldDescription = photo.json.description.replace("'", '''), - description, - params, - buttons; + action; - buttons = [ - ['Set Description', function() { + action = function(data) { - // Get input - description = $('.message input.text').val(); + var params, + description = data.description; - // Remove html from input - description = lychee.removeHTML(description); + basicModal.close(); - if (visible.photo()) { - photo.json.description = description; - view.photo.description(); + // Remove html from input + description = lychee.removeHTML(description); + + if (visible.photo()) { + photo.json.description = description; + view.photo.description(); + } + + params = 'setPhotoDescription&photoID=' + photoID + '&description=' + escape(encodeURI(description)); + lychee.api(params, function(data) { + + if (data!==true) lychee.error(null, params, data); + + }); + + } + + basicModal.show({ + body: "

Enter a description for this photo:

", + buttons: { + action: { + title: 'Set Description', + fn: action + }, + cancel: { + title: 'Cancel', + fn: basicModal.close } - - params = 'setPhotoDescription&photoID=' + photoID + '&description=' + escape(encodeURI(description)); - lychee.api(params, function(data) { - - if (data!==true) lychee.error(null, params, data); - - }); - - }], - ['Cancel', function() {}] - ]; - - modal.show('Set Description', "Enter a description for this photo: ", buttons); + } + }); } photo.editTags = function(photoIDs) { var oldTags = '', - tags = '', - buttons; + msg = '', + input = ''; if (!photoIDs) return false; if (photoIDs instanceof Array===false) photoIDs = [photoIDs]; @@ -456,19 +518,31 @@ photo.editTags = function(photoIDs) { // Improve tags oldTags = oldTags.replace(/,/g, ', '); - buttons = [ - ['Set Tags', function() { + action = function(data) { - tags = $('.message input.text').val(); + basicModal.close(); + photo.setTags(photoIDs, data.tags); - photo.setTags(photoIDs, tags); + } - }], - ['Cancel', function() {}] - ]; + input = ""; - if (photoIDs.length===1) modal.show('Set Tags', "Enter your tags for this photo. You can add multiple tags by separating them with a comma: ", buttons); - else modal.show('Set Tags', "Enter your tags for all " + photoIDs.length + " selected photos. Existing tags will be overwritten. You can add multiple tags by separating them with a comma: ", buttons); + if (photoIDs.length===1) msg = "

Enter your tags for this photo. You can add multiple tags by separating them with a comma: " + input + "

"; + else msg = "

Enter your tags for all " + photoIDs.length + " selected photos. Existing tags will be overwritten. You can add multiple tags by separating them with a comma: " + input + "

"; + + basicModal.show({ + body: msg, + buttons: { + action: { + title: 'Set Tags', + fn: action + }, + cancel: { + title: 'Cancel', + fn: basicModal.close + } + } + }); }