Skip to content
Extraits de code Groupes Projets
Non vérifiée Valider 14304f36 rédigé par Benjamin Neff's avatar Benjamin Neff Validation de Steffen van Bergerem
Parcourir les fichiers

Extract profile photo uploader to file

parent 07a4925f
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -8,6 +8,7 @@ app.pages.Settings = Backbone.View.extend({
new Diaspora.TagsAutocomplete("#profile_tag_string", {
preFill: gon.preloads.tagsArray
});
new Diaspora.ProfilePhotoUploader();
}
});
// @license-end
// @license magnet:?xt=urn:btih:0b31508aeb0634b347b8270c7bee4d411b5d4109&dn=agpl-3.0.txt AGPL-v3-or-Later
Diaspora.ProfilePhotoUploader = function() {
this.initialize();
};
Diaspora.ProfilePhotoUploader.prototype = {
constructor: Diaspora.ProfilePhotoUploader,
initialize: function() {
new qq.FileUploaderBasic({
element: document.getElementById("file-upload"),
params: {"photo": {"pending": true, "aspect_ids": "all", "set_profile_photo": true}},
allowedExtensions: ["jpg", "jpeg", "png"],
action: "/photos",
button: document.getElementById("file-upload"),
sizeLimit: 4194304,
onProgress: function(id, fileName, loaded, total) {
var progress = Math.round(loaded / total * 100);
$("#fileInfo").text(fileName + " " + progress + "%");
},
messages: {
typeError: Diaspora.I18n.t("photo_uploader.invalid_ext"),
sizeError: Diaspora.I18n.t("photo_uploader.size_error"),
emptyError: Diaspora.I18n.t("photo_uploader.empty")
},
onSubmit: function() {
$("#file-upload").addClass("loading");
$("#profile_photo_upload").find(".avatar").addClass("loading");
$("#file-upload-spinner").removeClass("hidden");
$("#fileInfo").show();
},
onComplete: function(_id, fileName, responseJSON) {
$("#file-upload-spinner").addClass("hidden");
$("#fileInfo").text(Diaspora.I18n.t("photo_uploader.completed", {"file": fileName}));
$("#file-upload").removeClass("loading");
/* flash message prompt */
var message = Diaspora.I18n.t("photo_uploader.looking_good");
if (app.flashMessages) { app.flashMessages.success(message); }
var id = responseJSON.data.photo.id;
var url = responseJSON.data.photo.unprocessed_image.url;
var oldPhoto = $("#photo_id");
if (oldPhoto.length === 0) {
$("#update_profile_form").prepend("<input type='hidden' value='" + id + "' id='photo_id' name='photo_id'/>");
} else {
oldPhoto.val(id);
}
$("#profile_photo_upload").find(".avatar").removeClass("loading");
$("#profile_photo_upload").find(".avatar").attr("src", url);
}
});
}
};
// @license-end
......@@ -16,6 +16,7 @@
//= require bootstrap
//= require diaspora
//= require helpers/i18n
//= require helpers/profile_photo_uploader
//= require helpers/tags_autocomplete
//= require widgets/timeago
//= require mobile/mobile_application
......
......@@ -58,6 +58,7 @@ Diaspora.Pages.UsersGettingStarted = function() {
elem.remove();
}
});
new Diaspora.ProfilePhotoUploader();
});
};
// @license-end
......
......@@ -2,62 +2,6 @@
-# licensed under the Affero General Public License version 3 or later. See
-# the COPYRIGHT file.
- content_for :head do
:javascript
function createUploader(){
var uploader = new qq.FileUploaderBasic({
element: document.getElementById('file-upload'),
params: {'photo' : {'pending' : true, 'aspect_ids' : "all", 'set_profile_photo': true}},
allowedExtensions: ['jpg', 'jpeg', 'png'],
action: "#{photos_path}",
button: document.getElementById('file-upload'),
sizeLimit: 4194304,
onProgress: function(id, fileName, loaded, total){
var progress = Math.round(loaded / total * 100 );
$('#fileInfo').text(fileName + ' ' + progress + '%');
},
messages: {
typeError: "#{t('photos.new_photo.invalid_ext')}",
sizeError: "#{t('photos.new_photo.size_error')}",
emptyError: "#{t('photos.new_photo.empty')}"
},
onSubmit: function(id, fileName){
$('#file-upload').addClass("loading");
$("#profile_photo_upload").find(".avatar").addClass('loading');
$("#file-upload-spinner").removeClass("hidden");
$("#fileInfo").show();
},
onComplete: function(id, fileName, responseJSON){
$("#file-upload-spinner").addClass("hidden");
$("#fileInfo").text(Diaspora.I18n.t("photo_uploader.completed", {"file": fileName}));
$('#file-upload').removeClass("loading");
/* flash message prompt */
var message = Diaspora.I18n.t("photo_uploader.looking_good");
if(app.flashMessages) { app.flashMessages.success(message); }
var id = responseJSON.data.photo.id;
var url = responseJSON.data.photo.unprocessed_image.url;
var oldPhoto = $('#photo_id');
if(oldPhoto.length == 0) {
$('#update_profile_form').prepend("<input type='hidden' value='" + id + "' id='photo_id' name='photo_id'/>");
} else {
oldPhoto.val(id);
}
$("#profile_photo_upload").find(".avatar").removeClass('loading');
$("#profile_photo_upload").find(".avatar").attr("src",url);
$(".avatar[data-person_id=#{current_user.person.id}]").attr("src",url);
}
});
}
window.onload = createUploader;
.profile-photo-upload#profile_photo_upload
= owner_image_tag(:thumb_large)
.small-horizontal-spacer
......
......@@ -6,6 +6,7 @@
:javascript
$(document).ready(function () {
new Diaspora.TagsAutocomplete("#profile_tag_string", {preFill: gon.preloads.tagsArray});
new Diaspora.ProfilePhotoUploader();
});
.settings_container.container-fluid
......
......@@ -6,6 +6,7 @@
:javascript
$(document).ready(function () {
new Diaspora.TagsAutocomplete("#follow_tags");
new Diaspora.ProfilePhotoUploader();
});
:css
......
......@@ -901,10 +901,6 @@ en:
type_error: "Photo upload failed. Are you sure an image was added?"
destroy:
notice: "Photo deleted."
new_photo:
invalid_ext: "{file} has invalid extension. Only {extensions} are allowed."
size_error: "{file} is too large, maximum file size is {sizeLimit}."
empty: "{file} is empty, please select files again without it."
new_profile_photo:
upload: "Upload a new profile photo!"
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter