56 lines
1.6 KiB
JavaScript
56 lines
1.6 KiB
JavaScript
/**
|
|
This view handles rendering of a user's preferences
|
|
|
|
@class PreferencesView
|
|
@extends Discourse.View
|
|
@namespace Discourse
|
|
@module Discourse
|
|
**/
|
|
Discourse.PreferencesView = Discourse.View.extend({
|
|
templateName: 'user/preferences',
|
|
classNames: ['user-preferences'],
|
|
|
|
uploading: false,
|
|
uploadProgress: 0,
|
|
|
|
didInsertElement: function() {
|
|
var self = this;
|
|
var $upload = $("#profile-background-input");
|
|
|
|
this._super();
|
|
|
|
$upload.fileupload({
|
|
url: Discourse.getURL("/users/" + this.get('controller.model.username') + "/preferences/user_image"),
|
|
dataType: "json",
|
|
fileInput: $upload,
|
|
formData: { user_image_type: "profile_background" }
|
|
});
|
|
|
|
$upload.on('fileuploadsubmit', function (e, data) {
|
|
var result = Discourse.Utilities.validateUploadedFiles(data.files);
|
|
self.setProperties({ uploadProgress: 0, uploading: result });
|
|
return result;
|
|
});
|
|
$upload.on("fileuploadprogressall", function(e, data) {
|
|
var progress = parseInt(data.loaded / data.total * 100, 10);
|
|
self.set("uploadProgress", progress);
|
|
});
|
|
$upload.on("fileuploaddone", function(e, data) {
|
|
if(data.result.url) {
|
|
self.set("controller.model.profile_background", data.result.url);
|
|
} else {
|
|
bootbox.alert(I18n.t('post.errors.upload'));
|
|
}
|
|
});
|
|
$upload.on("fileuploadfail", function(e, data) {
|
|
Discourse.Utilities.displayErrorForUpload(data);
|
|
});
|
|
$upload.on("fileuploadalways", function() {
|
|
self.setProperties({ uploading: false, uploadProgress: 0});
|
|
});
|
|
},
|
|
willDestroyElement: function() {
|
|
$("#profile-background-input").fileupload("destroy");
|
|
}
|
|
});
|