From 797a81e3789ab2b6748e60cf76d63d46bad616e2 Mon Sep 17 00:00:00 2001 From: Kjetil Orbekk Date: Tue, 13 Oct 2015 21:34:00 -0400 Subject: Move the javascript code to a separate file. --- web/index.html | 102 +-------------------------------------------------------- web/main.js | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 101 deletions(-) create mode 100644 web/main.js diff --git a/web/index.html b/web/index.html index 3655b59..89ca0dc 100644 --- a/web/index.html +++ b/web/index.html @@ -11,107 +11,7 @@ - +
diff --git a/web/main.js b/web/main.js new file mode 100644 index 0000000..93c465e --- /dev/null +++ b/web/main.js @@ -0,0 +1,99 @@ +var authentication_token = null; + +function addPending(albumName) { + function makeElement(name) { + return $('
  • ' + name + ' (edit)
  • '); + } + var element = makeElement(albumName); + $(element).find('a').click(function() { + var input = + $(''); + setTimeout(function() { + var position = input[0].value.length; + input[0].setSelectionRange(position, position); + }, 0); + $(input).keypress(function(e) { + if (e.which == 13) { + $(input).replaceWith($('renaming...')); + renamePending(albumName, input[0].value); + } + }); + $(this).replaceWith(input); + }); + $('#pending-container').append(element); +} + +function addPermanentAlbum(albumName) { + function makeElement(name) { + return $('
  • ' + name + '
  • '); + } + $('#album-container').append(makeElement(albumName)); +} + +function fetchAlbums() { + $.ajax({ + url: "/api/albums", + headers: {'X-Token': authentication_token}, + success: function(data) { + $('#pending-error').empty(); + $('#pending-container').empty(); + $('#album-container').empty(); + console.log('Got albums:'); + console.log(data); + data.forEach(function (album) { + if (album.pending) { + addPending(album.name, album.pending); + } else { + addPermanentAlbum(album.name); + } + console.log('Added album ' + album.name); + }); + }, + error: function(unused, unusedStatus, error) { + $('#pending-container').empty(); + $('#pending-error').html( + '

    Error fetching pending albums: ' + error); + } + }); +} + +function showError(error) { + $('#generic-error').html( + '

    ' + error + '

    '); +} + +function renamePending(oldName, newName) { + var request = { + from: { name: oldName, pending: true }, + to: { name: newName, pending: false } + }; + $.ajax({ + url: '/api/rename', + headers: {'X-Token': authentication_token}, + type: 'POST', + contentType: 'application/json', + data: JSON.stringify(request), + success: function(data) { + if ('Left' in data) { + showError('Error renaming ' + oldName + ' to ' + newName + ': ' + + data.Left); + } + fetchAlbums(); + } + }); +} + +function onSignIn(googleUser) { + // Useful data for your client-side scripts: + var profile = googleUser.getBasicProfile(); + console.log("ID: " + profile.getId()); // Don't send this directly to your server! + console.log("Name: " + profile.getName()); + console.log("Image URL: " + profile.getImageUrl()); + console.log("Email: " + profile.getEmail()); + authentication_token = googleUser.getAuthResponse().id_token; + // The ID token you need to pass to your backend: + var id_token = googleUser.getAuthResponse().id_token; + console.log("ID Token: " + id_token); + $('.g-signin2').remove(); + fetchAlbums(); +}; -- cgit v1.2.3