Seditio Source
Root |
./othercms/xenForo 2.2.8/js/xf/avatar.min.js
'use strict';!function(f,k,l,m){XF.AvatarUpload=XF.Element.newHandler({options:{},init:function(){var b=this.$target,a=b.find(".js-uploadAvatar"),c=b.find(".js-avatar"),d=b.find(".js-deleteAvatar");c.find("img").length?d.show():d.hide();a.on("change",XF.proxy(this,"changeFile"));b.on("ajax-submit:response",XF.proxy(this,"ajaxResponse"))},changeFile:function(b){""!=f(b.target).val()&&this.$target.submit()},ajaxResponse:function(b,a){if(!a.errors&&!a.exception){b.preventDefault();a.message&&XF.flashMessage(a.message,
3E3);var c=this.$target;b=c.find(".js-deleteAvatar");var d=c.find(".js-uploadAvatar"),e=c.find(".js-avatar"),g=c.find(".js-avatarX"),h=c.find(".js-avatarY");if(c=1==c.find('input[name="use_custom"]:checked').val())e.css({left:-1*a.cropX,top:-1*a.cropX}),g.val(a.cropX),h.val(a.cropY),e.data("x",a.cropX),e.data("y",a.cropY),XF.Element.initializeElement(e),d.val("");else if(f(".js-gravatarPreview").attr("src",a.gravatarTest?a.gravatarPreview:a.gravatarUrl),a.gravatarTest)return;XF.updateAvatars(a.userId,
a.avatars,c);a.defaultAvatars?b.hide():b.show();f(".js-avatarCropper").trigger("avatar:updated",a)}}});XF.AvatarCropper=XF.Element.newHandler({options:{size:96,x:0,y:0},$img:null,size:96,x:0,y:0,imgW:null,imgH:null,cropSize:null,scale:null,init:function(){this.$target.one("avatar:updated",XF.proxy(this,"avatarsUpdated"));this.$img=this.$target.find("img");this.$img.length&&this.initTest()},avatarsUpdated:function(b,a){this.options.x=a.cropX;this.options.y=a.cropY;this.init()},initTest:function(){var b=
this.$img[0],a=0,c=this,d=function(){a++;50<a||(0<b.naturalWidth?c.setup():0===b.naturalWidth&&setTimeout(d,100))};d()},setup:function(){this.imgW=this.$img[0].naturalWidth;this.imgH=this.$img[0].naturalHeight;this.cropSize=Math.min(this.imgW,this.imgH);this.scale=this.cropSize/this.options.size;this.$img.cropbox({width:this.size,height:this.size,zoom:0,maxZoom:0,controls:!1,showControls:"never",result:{cropX:this.options.x*this.scale,cropY:this.options.y*this.scale,cropW:this.cropSize,cropH:this.cropSize}}).on("cropbox",
XF.proxy(this,"onCrop"));if(XF.browser.mozilla)this.$img.on("mousedown",function(b){b.preventDefault()})},onCrop:function(b,a){this.$target.parent().find(".js-avatarX").val(a.cropX/this.scale);this.$target.parent().find(".js-avatarY").val(a.cropY/this.scale)}});XF.Element.register("avatar-upload","XF.AvatarUpload");XF.Element.register("avatar-cropper","XF.AvatarCropper")}(jQuery,window,document);