diff --git a/public/src/forum/accountedit.js b/public/src/forum/accountedit.js index 7771562454..530261c77d 100644 --- a/public/src/forum/accountedit.js +++ b/public/src/forum/accountedit.js @@ -1,4 +1,4 @@ -define(['forum/accountheader'], function(header) { +define(['forum/accountheader', 'uploader'], function(header, uploader) { var AccountEdit = {}; AccountEdit.init = function() { @@ -7,61 +7,6 @@ define(['forum/accountheader'], function(header) { var gravatarPicture = templates.get('gravatarpicture'); var uploadedPicture = templates.get('uploadedpicture'); - $('#uploadForm').submit(function() { - AccountEdit.status('uploading the file ...'); - - $('#upload-progress-bar').css('width', '0%'); - $('#upload-progress-box').show(); - $('#upload-progress-box').removeClass('hide'); - - if (!$('#userPhotoInput').val()) { - AccountEdit.error('select an image to upload!'); - return false; - } - - $(this).find('#imageUploadCsrf').val($('#csrf_token').val()); - - - $(this).ajaxSubmit({ - - error: function(xhr) { - AccountEdit.error('Error: ' + xhr.status); - }, - - uploadProgress: function(event, position, total, percent) { - console.log(percent); - $('#upload-progress-bar').css('width', percent + '%'); - }, - - - success: function(response) { - if (response.error) { - AccountEdit.error(response.error); - return; - } - - var imageUrlOnServer = response.path; - - $('#user-current-picture').attr('src', imageUrlOnServer); - $('#user-uploaded-picture').attr('src', imageUrlOnServer); - - uploadedPicture = imageUrlOnServer; - - setTimeout(function() { - AccountEdit.hideAlerts(); - $('#upload-picture-modal').modal('hide'); - }, 750); - - socket.emit('api:updateHeader', { - fields: ['username', 'picture', 'userslug'] - }); - AccountEdit.success('File uploaded successfully!'); - } - }); - - return false; - }); - var selectedImageType = ''; $('#submitBtn').on('click', function() { @@ -137,17 +82,21 @@ define(['forum/accountheader'], function(header) { $('#uploadPictureBtn').on('click', function() { $('#change-picture-modal').modal('hide'); - $('#upload-picture-modal').modal('show'); - $('#upload-picture-modal').removeClass('hide'); + uploader.open(config.relative_path + '/user/uploadpicture', function(imageUrlOnServer) { + $('#user-current-picture').attr('src', imageUrlOnServer); + $('#user-uploaded-picture').attr('src', imageUrlOnServer); + + uploadedPicture = imageUrlOnServer; + + socket.emit('api:updateHeader', { + fields: ['username', 'picture', 'userslug'] + }); + }); - AccountEdit.hideAlerts(); return false; }); - $('#pictureUploadSubmitBtn').on('click', function() { - $('#uploadForm').submit(); - }); (function handlePasswordChange() { var currentPassword = $('#inputCurrentPassword'); @@ -230,27 +179,6 @@ define(['forum/accountheader'], function(header) { }()); }; - AccountEdit.hideAlerts = function() { - $('#alert-status').addClass('hide'); - $('#alert-success').addClass('hide'); - $('#alert-error').addClass('hide'); - $('#upload-progress-box').addClass('hide'); - } - - AccountEdit.status = function(message) { - AccountEdit.hideAlerts(); - $('#alert-status').text(message).removeClass('hide'); - } - - AccountEdit.success = function(message) { - AccountEdit.hideAlerts(); - $('#alert-success').text(message).removeClass('hide'); - } - - AccountEdit.error = function(message) { - AccountEdit.hideAlerts(); - $('#alert-error').text(message).removeClass('hide'); - } AccountEdit.changeUserPicture = function(type) { var userData = { diff --git a/public/src/forum/admin/settings.js b/public/src/forum/admin/settings.js index b6017af47e..bbf04fef3e 100644 --- a/public/src/forum/admin/settings.js +++ b/public/src/forum/admin/settings.js @@ -1,4 +1,4 @@ -define(function() { +define(['uploader'], function(uploader) { var Settings = {}; Settings.init = function() { @@ -69,6 +69,15 @@ define(function() { }); } }); + + $('#uploadLogoBtn').on('click', function() { + + uploader.open(config.relative_path + '/admin/uploadlogo', function(image) { + $('#logoUrl').val(image); + }); + + uploader.hideAlerts(); + }); }; Settings.remove = function(key) { diff --git a/public/src/modules/uploader.js b/public/src/modules/uploader.js new file mode 100644 index 0000000000..381e0d2cad --- /dev/null +++ b/public/src/modules/uploader.js @@ -0,0 +1,83 @@ +define(function() { + + var module = {}; + + module.open = function(route, callback) { + $('#upload-picture-modal').modal('show').removeClass('hide'); + module.hideAlerts(); + + $('#uploadForm')[0].reset(); + $('#uploadForm').attr('action', route); + + $('#pictureUploadSubmitBtn').off('click').on('click', function() { + $('#uploadForm').submit(); + }); + + $('#uploadForm').off('submit').submit(function() { + + function status(message) { + module.hideAlerts(); + $('#alert-status').text(message).removeClass('hide'); + } + + function success(message) { + module.hideAlerts(); + $('#alert-success').text(message).removeClass('hide'); + } + + function error(message) { + module.hideAlerts(); + $('#alert-error').text(message).removeClass('hide'); + } + + status('uploading the file ...'); + + $('#upload-progress-bar').css('width', '0%'); + $('#upload-progress-box').show().removeClass('hide'); + + if (!$('#userPhotoInput').val()) { + error('select an image to upload!'); + return false; + } + + $(this).find('#imageUploadCsrf').val($('#csrf_token').val()); + + + $(this).ajaxSubmit({ + + error: function(xhr) { + error('Error: ' + xhr.status); + }, + + uploadProgress: function(event, position, total, percent) { + $('#upload-progress-bar').css('width', percent + '%'); + }, + + success: function(response) { + if (response.error) { + error(response.error); + return; + } + callback(response.path); + + success('File uploaded successfully!'); + setTimeout(function() { + module.hideAlerts(); + $('#upload-picture-modal').modal('hide'); + }, 750); + } + }); + + return false; + }); + } + + module.hideAlerts = function() { + $('#alert-status').addClass('hide'); + $('#alert-success').addClass('hide'); + $('#alert-error').addClass('hide'); + $('#upload-progress-box').addClass('hide'); + } + + return module; +}); \ No newline at end of file diff --git a/public/templates/accountedit.tpl b/public/templates/accountedit.tpl index 2166c69053..acfe8bc4ce 100644 --- a/public/templates/accountedit.tpl +++ b/public/templates/accountedit.tpl @@ -31,41 +31,6 @@ -
-