From 498aa4b31e4852841b6c4b67b23e129b602f3c5d Mon Sep 17 00:00:00 2001 From: Luke Pulverenti Date: Thu, 18 Apr 2013 15:32:16 -0400 Subject: [PATCH] fixes #157 - User permissions --- dashboard-ui/scripts/userimagepage.js | 223 +++++++++++++++----------- dashboard-ui/userimage.html | 2 +- 2 files changed, 126 insertions(+), 99 deletions(-) diff --git a/dashboard-ui/scripts/userimagepage.js b/dashboard-ui/scripts/userimagepage.js index 070c5b2247..043a2aedff 100644 --- a/dashboard-ui/scripts/userimagepage.js +++ b/dashboard-ui/scripts/userimagepage.js @@ -1,17 +1,8 @@ -var UserImagePage = { +(function ($, window, document, FileReader) { - onPageShow: function () { + var currentFile; - UserImagePage.reloadUser(); - - $("#userImageDropZone", this).on('dragover', UserImagePage.onImageDragOver).on('drop', UserImagePage.onImageDrop); - }, - - onPageHide: function () { - $("#userImageDropZone", this).off('dragover', UserImagePage.onImageDragOver).off('drop', UserImagePage.onImageDrop); - }, - - reloadUser: function () { + function reloadUser(page) { var userId = getParameterByName("userId"); @@ -19,8 +10,6 @@ ApiClient.getUser(userId).done(function (user) { - var page = $($.mobile.activePage); - if (user.Configuration.IsAdministrator) { $('.lnkMediaLibrary', page).show(); } else { @@ -51,75 +40,20 @@ Dashboard.hideLoadingMsg(); }); - }, - deleteImage: function () { + } - Dashboard.confirm("Are you sure you wish to delete the image?", "Delete Image", function (result) { + function processImageChangeResult() { - if (result) { - - Dashboard.showLoadingMsg(); - - var userId = getParameterByName("userId"); - - ApiClient.deleteUserImage(userId, "primary").done(UserImagePage.processImageChangeResult); - } - - }); - }, - - processImageChangeResult: function () { - Dashboard.hideLoadingMsg(); - Dashboard.validateCurrentUser($.mobile.activePage); - UserImagePage.reloadUser(); - }, - - onFileUploadChange: function (fileUpload) { - - UserImagePage.setFiles(fileUpload.files); - }, - - setFiles: function (files) { - var page = $.mobile.activePage; - var file = files[0]; + Dashboard.validateCurrentUser(page); + reloadUser(page); + } - if (!file || !file.type.match('image.*')) { - $('#userImageOutput', page).html(''); - $('#fldUpload', page).hide(); - UserImagePage.currentFile = null; - return; - } - - UserImagePage.currentFile = file; - - var reader = new FileReader(); - - reader.onerror = UserImagePage.onFileReaderError; - reader.onloadstart = UserImagePage.onFileReaderOnloadStart; - reader.onabort = UserImagePage.onFileReaderAbort; - - // Closure to capture the file information. - reader.onload = (function (theFile) { - return function (e) { - - // Render thumbnail. - var html = [''].join(''); - - $('#userImageOutput', page).html(html); - $('#fldUpload', page).show(); - }; - })(file); - - // Read in the image file as a data URL. - reader.readAsDataURL(file); - }, - - onFileReaderError: function (evt) { + function onFileReaderError(evt) { Dashboard.hideLoadingMsg(); @@ -135,50 +69,66 @@ default: Dashboard.showError('An error occurred reading this file.'); }; - }, + } - onFileReaderOnloadStart: function (evt) { + function onFileReaderOnloadStart(evt) { $('#fldUpload', $.mobile.activePage).hide(); - }, + } - onFileReaderAbort: function (evt) { + function onFileReaderAbort(evt) { Dashboard.hideLoadingMsg(); Dashboard.showError('File read cancelled'); - }, + } - onSubmit: function () { + function setFiles(files) { - var file = UserImagePage.currentFile; + var page = $.mobile.activePage; - if (!file) { - return false; + var file = files[0]; + + if (!file || !file.type.match('image.*')) { + $('#userImageOutput', page).html(''); + $('#fldUpload', page).hide(); + currentFile = null; + return; } - if (file.type != "image/png" && file.type != "image/jpeg" && file.type != "image/jpeg") { - return false; - } + currentFile = file; - Dashboard.showLoadingMsg(); + var reader = new FileReader(); - var userId = getParameterByName("userId"); + reader.onerror = onFileReaderError; + reader.onloadstart = onFileReaderOnloadStart; + reader.onabort = onFileReaderAbort; - ApiClient.uploadUserImage(userId, 'Primary', file).done(UserImagePage.processImageChangeResult); + // Closure to capture the file information. + reader.onload = (function (theFile) { + return function (e) { - return false; - }, + // Render thumbnail. + var html = [''].join(''); - onImageDrop: function (e) { + $('#userImageOutput', page).html(html); + $('#fldUpload', page).show(); + }; + })(file); + + // Read in the image file as a data URL. + reader.readAsDataURL(file); + } + + function onImageDrop(e) { e.preventDefault(); - UserImagePage.setFiles(e.originalEvent.dataTransfer.files); + setFiles(e.originalEvent.dataTransfer.files); return false; - }, + } - onImageDragOver: function (e) { + function onImageDragOver(e) { e.preventDefault(); @@ -186,6 +136,83 @@ return false; } -}; -$(document).on('pageshow', "#userImagePage", UserImagePage.onPageShow).on('pagehide', "#userImagePage", UserImagePage.onPageHide); + function userImagePage() { + + var self = this; + + self.onSubmit = function () { + + var file = currentFile; + + if (!file) { + return false; + } + + if (file.type != "image/png" && file.type != "image/jpeg" && file.type != "image/jpeg") { + return false; + } + + Dashboard.showLoadingMsg(); + + var userId = getParameterByName("userId"); + + ApiClient.uploadUserImage(userId, 'Primary', file).done(processImageChangeResult); + + return false; + }; + + self.deleteImage = function () { + + Dashboard.confirm("Are you sure you wish to delete the image?", "Delete Image", function (result) { + + if (result) { + + Dashboard.showLoadingMsg(); + + var userId = getParameterByName("userId"); + + ApiClient.deleteUserImage(userId, "primary").done(processImageChangeResult); + } + + }); + }; + + self.onFileUploadChange = function (fileUpload) { + + setFiles(fileUpload.files); + }; + } + + window.UserImagePage = new userImagePage(); + + $(document).on('pagebeforeshow', "#userImagePage", function () { + + var page = this; + + Dashboard.getCurrentUser().done(function (loggedInUser) { + + if (loggedInUser.Configuration.IsAdministrator) { + $('.lnkMediaLibrary', page).show().prev().removeClass('ui-last-child'); + } else { + $('.lnkMediaLibrary', page).hide().prev().addClass('ui-last-child'); + } + }); + + }).on('pageshow', "#userImagePage", function () { + + var page = this; + + reloadUser(page); + + $("#userImageDropZone", page).on('dragover', onImageDragOver).on('drop', onImageDrop); + + }).on('pagehide', "#userImagePage", function () { + + var page = this; + + $("#userImageDropZone", page).off('dragover', onImageDragOver).off('drop', onImageDrop); + }); + + +})(jQuery, window, document, window.FileReader); \ No newline at end of file diff --git a/dashboard-ui/userimage.html b/dashboard-ui/userimage.html index 85e95b3596..cc0135dc84 100644 --- a/dashboard-ui/userimage.html +++ b/dashboard-ui/userimage.html @@ -12,7 +12,7 @@ Profile Image Password - Media Library +