Files
wordpress-theme-aksrt/assets/js/runtime/mini-upload.min.js
T
2026-08-29 16:15:06 +08:00

2 lines
5.8 KiB
JavaScript

"use strict";function miniupload(){var _body=jQuery("body"),input_selector='[aksrtupload="image_upload"]',submit_selector='[aksrtupload="submit"]',form_selector=".form-upload,.mini-upload,form",add_html='<div class="add"></div>',add_selector=".add",mini_file={},pre_html;_body.on("change",input_selector,function(e){var _this=jQuery(this),files=this.files||e.dataTransfer.files,form=jQuery(_this.parents(form_selector)[0]),size_max=_this.attr("size_max")||Number(_win.upload_img_size)||3,pre_selector=_this.attr("data-preview")||".preview",pre=form.find(pre_selector);pre_html=pre.html();var accept=_this.attr("accept"),multiple=_this.attr("multiple"),multiple_max=_this.attr("multiple_max"),accept_yanz=!1;accept.indexOf("image")!==-1&&(accept_yanz="image"),accept.indexOf("vedio")!==-1&&(accept_yanz="vedio");var upload_id=_this.attr("upload_id");_this.attr("upload_id")||(upload_id=parseInt((Math.random()+1)*Math.pow(10,4)),_this.attr("upload_id",upload_id)),mini_file[upload_id]||(mini_file[upload_id]=[]),jQuery.each(files,function(key,val){var name=val.name;accept_yanz&&val.type.indexOf(accept_yanz)==-1?(notyf(aksrt_sprintf("upload_format_error",name),"danger"),_this.val("")):size_max&&val.size>size_max*1048567?notyf(aksrt_sprintf("upload_size_exceeded",name,size_max),"danger"):pre.find('[preview-name="'+name+'"]').length||mini_file[upload_id].push(val)});var a_file=[],ii=1,empty=!1;jQuery.each(mini_file[upload_id],function(key,val){if(multiple_max&&multiple_max<ii)return notyf(aksrt_sprintf("upload_count_exceeded",multiple_max),"danger"),!1;ii++,a_file.push(val),ToB64(val,function(e2){var img='<img class="fit-cover" preview-name="'+val.name+'" src="'+e2+'">';if(multiple){empty||(pre.html(""),empty=!0);var cloce='<div class="preview-remove" upload-id="'+upload_id+'" file-key="'+jQuery.inArray(val,a_file)+'"><svg class="ic-close" aria-hidden="true"><use xlink:href="#icon-close"></use></svg></div>';img='<div class="preview-item">'+img+cloce+"</div>",pre.append(img).find(add_selector).remove(),multiple_max&&multiple_max>=ii&&pre.append(add_html)}else pre.html(img)})}),mini_file[upload_id]=a_file,form.find("[auto-submit]").click()}),_body.on("click",".preview-remove",function(){var _this=jQuery(this),file_key=_this.attr("file-key"),upload_id=_this.attr("upload-id");return _this.parent().animate({width:0},200,"swing",function(){var pre=jQuery(this).parent();jQuery(this).remove(),mini_file[upload_id].splice(file_key,1),pre.find(add_selector).length||pre.append(add_html)}),!1}),_body.on("click",".preview "+add_selector,function(){var _this=jQuery(this),form=jQuery(_this.parents(form_selector)[0]);form.find(input_selector).click()}),_body.on("click",submit_selector,function(e){var _this=jQuery(this);if(_this.attr("disabled"))return!1;e.preventDefault?e.preventDefault():e.returnValue=!1;var _text=_this.html(),form=jQuery(_this.parents(form_selector)[0]),_input=form.find(input_selector),formData=new FormData,is_files=_this.attr("aksrtupload-nomust");if(_input.each(function(){var _this2=jQuery(this),upload_id=_this2.attr("upload_id");if(upload_id&&mini_file[upload_id]){var ii=0,tag=_this2.attr("data-tag")||"file";jQuery.each(mini_file[upload_id],function(key,val){var append_tag=ii?tag+"_"+ii:tag;formData.append(append_tag,val,val.name),ii++}),ii>1&&formData.append(tag+"_file_count",ii),is_files=ii}}),!is_files)return notyf(aksrt__("upload_select_first"),"danger");var serializeObject=form.serializeObject();jQuery.each(serializeObject,function(key,val){formData.append(key,val)}),form.find("[data-name]").each(function(){var _th=jQuery(this),n=_th.attr("data-name"),v=_th.val()||_th.attr("data-value");v===void 0&&(v=""),formData.get(n)===null&&formData.append(n,v)});var miniuploaded=function(no_preview_reset){_this.attr("disabled",!1).html(_text),_input.attr("disabled",!1).val("").each(function(){var _this2=jQuery(this),upload_id=_this2.attr("upload_id");upload_id&&mini_file[upload_id]&&(mini_file[upload_id]=[])}),!no_preview_reset&&pre_html&&form.find(".preview").html(pre_html)},notyf_id="miniupload_ajax";notyf(aksrt__("processing_wait"),"load","",notyf_id),_this.attr("disabled",!0).html('<span class="miniupload-ing"><i class="loading mr3 c-white"></i><span class="loading-text c-white">'+aksrt__("uploading")+'<count class="px12 ml3"></count></span><div class="progress progress-striped active"><div class="progress-bar progress-bar-success" role="progressbar" style="width:0;"></div></div></span>'),_input.attr("disabled",!0),jQuery.ajax({url:_win.ajax_url,type:"POST",data:formData,processData:!1,cache:!1,contentType:!1,dataType:"json",error:function(n){var _msg=aksrt_sprintf("ajax_error",n.status,n.statusText);aksrt_is_fatal_error_response(n.responseText)&&(_msg=aksrt__("ajax_fatal_error")),notyf(_msg,"danger","",notyf_id),miniuploaded()},xhr:jqXhr(function(e2){var percent=Math.round(e2.loaded/e2.total*100);_this.find("count").html(percent+"%"),percent>=100&&_this.find(".loading-text").html(aksrt__("upload_processing")+" ..."),form.find(".progress .progress-bar").css("width",percent+"%")}),success:function(n){var ys=n.ys?n.ys:n.error?"danger":"";notyf(n.msg||aksrt__("operation_success"),ys,"",notyf_id),miniuploaded(n.no_preview_reset),n.hide_modal&&jQuery(_this.parents(".modal")[0]).modal("hide"),n.url&&n.replace_img&&jQuery("img"+n.replace_img).attr("src",n.url),n.reload&&(n.goto?(window.location.href=n.goto,window.location.reload):window.location.reload()),_this.trigger("miniuploaded",n,form)}})});function ToB64(e,n){if(typeof FileReader>"u")return notyf(aksrt__("upload_unsupported"),"danger");var r=new FileReader;r.readAsDataURL(e),r.onload=function(e2){n&&n(e2.target.result)}}function jqXhr(fun){return jqXhr.onprogress=fun,function(){var xhr=jQuery.ajaxSettings.xhr();return typeof jqXhr.onprogress!="function"||jqXhr.onprogress&&xhr.upload&&(xhr.upload.onprogress=jqXhr.onprogress),xhr}}}_win.is_miniupload||(miniupload(),_win.is_miniupload=!0);