|
|
/*! * jQuery.filer * Copyright (c) 2015 CreativeDream * Website: https://github.com/CreativeDream/jquery.filer
* Version: 1.0.4 (03-Nov-2015) * Requires: jQuery v1.7.1 or later */ (function(n){"use strict";n.fn.filer=function(t){return this.each(function(i,r){var e=n(r),l=".jFiler",s=n(),o=n(),h=n(),c=[],f=n.extend(!0,{},n.fn.filer.defaults,t),u={init:function(){e.wrap('<div class="jFiler"><\/div>');e.prop("jFiler").boxEl=s=e.closest(l);u._changeInput()},_bindInput:function(){f.changeInput&&o.size()>0&&o.bind("click",u._clickHandler);e.on({focus:function(){o.addClass("focused")},blur:function(){o.removeClass("focused")},change:function(){u._onChange()}});if(f.dragDrop&&(o.length>0?o:e).bind("drop",u._dragDrop.drop).bind("dragover",u._dragDrop.dragEnter).bind("dragleave",u._dragDrop.dragLeave),f.uploadFile&&f.clipBoardPaste)n(window).on("paste",u._clipboardPaste)},_unbindInput:function(){f.changeInput&&o.size()>0&&o.unbind("click",u._clickHandler)},_clickHandler:function(){e.click()},_applyAttrSettings:function(){var t=["name","limit","maxSize","extensions","changeInput","showThumbs","appendTo","theme","addMore","excludeName","files","options"],i,n;for(i in t)if(n="data-jfiler-"+t[i],u._assets.hasAttr(n)){switch(t[i]){case"changeInput":case"showThumbs":case"addMore":f[t[i]]=["true","false"].indexOf(e.attr(n))>-1?e.attr(n)==="true":e.attr(n);break;case"extensions":f[t[i]]=e.attr(n).replace(/ /g,"").split(",");break;case"files":case"options":f[t[i]]=JSON.parse(e.attr(n));break;default:f[t[i]]=e.attr(n)}e.removeAttr(n)}},_changeInput:function(){if(u._applyAttrSettings(),f.beforeRender!==null&&typeof f.beforeRender=="function"?f.beforeRender(s,e):null,f.theme&&s.addClass("jFiler-theme-"+f.theme),e.get(0).tagName.toLowerCase()!=="input"&&e.get(0).type!=="file")o=e,e=n('<input type="file" name="'+f.name+'" />'),e.css({position:"absolute",left:"-9999px",top:"-9999px","z-index":"-9999"}),s.prepend(e),u._isGn=e;else if(f.changeInput){switch(typeof f.changeInput){case"boolean":o=n('<div class="jFiler-input"><div class="jFiler-input-caption"><span data-i18n="common.ChooseFilesToUpload">'+f.captions.feedback+'<\/span><\/div><div class="jFiler-input-button" data-i18n="common.ChooseFiles">'+f.captions.button+'<\/div><\/div>"');break;case"string":case"object":o=n(f.changeInput);break;case"function":o=n(f.changeInput(s,e,f))}e.after(o);e.css({position:"absolute",left:"-9999px",top:"-9999px","z-index":"-9999"})}e.prop("jFiler").newInputEl=o;(!f.limit||f.limit&&f.limit>=2)&&(e.attr("multiple","multiple"),e.attr("name").slice(-2)!=="[]"?e.attr("name",e.attr("name")+"[]"):null);u._bindInput();f.files&&u._append(!1,{files:f.files});f.afterRender!==null&&typeof f.afterRender=="function"?f.afterRender(h,s,o,e):null},_clear:function(){u.files=null;e.prop("jFiler").files=null;f.uploadFile||f.addMore||u._reset();u._set("feedback",u._itFl&&u._itFl.length>0?u._itFl.length+" "+f.captions.feedback2:f.captions.feedback);f.onEmpty!==null&&typeof f.onEmpty=="function"?f.onEmpty(s,o,e):null},_reset:function(t){if(!t){if(!f.uploadFile&&f.addMore){for(var i=0;i<c.length;i++)c[i].remove();c=[];u._unbindInput();e=u._isGn?u._isGn:n(r);u._bindInput()}u._set("input","")}u._itFl=[];u._itFc=null;u._ajFc=0;e.prop("jFiler").files_list=u._itFl;e.prop("jFiler").current_file=u._itFc;u._prEr||(u._itFr=[],s.find("input[name^='jfiler-items-exclude-']:hidden").remove());h.fadeOut("fast",function(){n(this).remove()});e.prop("jFiler").listEl=h=n()},_set:function(n,t){switch(n){case"input":e.val("");break;case"feedback":o.length>0&&o.find(".jFiler-input-caption span").html(t)}},_filesCheck:function(){var r=0,i,s;if(f.limit&&u.files.length+u._itFl.length>f.limit)return layer.alert(u._assets.textParse(f.captions.errors.filesLimit)),!1;for(i=0;i<u.files.length;i++){var e=u.files[i].name.split(".").pop().toLowerCase(),t=u.files[i],o={name:t.name,size:t.size,description:t.description||"",fileid:t.fileid||"",size2:u._assets.bytesToSize(t.size),type:t.type,ext:e};if(f.extensions!==null&&n.inArray(e,f.extensions)===-1){layer.alert(u._assets.textParse(f.captions.errors.filesType,o));break}if(f.maxSize!==null&&u.files[i].size>f.maxSize*1048576){layer.alert(u._assets.textParse(f.captions.errors.filesSize,o));break}if(t.size===4096&&t.type.length===0)break;r+=u.f
|