Files
fergalmoran.github.com/cdn/js/bootstrap-fileupload.min.js
2012-09-12 17:16:00 +01:00

1 line
2.3 KiB
JavaScript
Executable File

!function(a){"use strict";var b=function(b,c){this.$element=a(b);this.type=this.$element.data("uploadtype")||(this.$element.find(".thumbnail").length>0?"image":"file");this.$input=this.$element.find(":file");if(this.$input.length===0)return;this.name=this.$input.attr("name")||c.name;this.$hidden=this.$element.find(':hidden[name="'+this.name+'"]');if(this.$hidden.length===0){this.$hidden=a('<input type="hidden" />');this.$element.prepend(this.$hidden)}this.$preview=this.$element.find(".fileupload-preview");var d=this.$preview.css("height");if(this.$preview.css("display")!="inline"&&d!="0px"&&d!="none")this.$preview.css("line-height",d);this.$remove=this.$element.find('[data-dismiss="fileupload"]');this.listen()};b.prototype={listen:function(){this.$input.on("change.fileupload",a.proxy(this.change,this));if(this.$remove)this.$remove.on("click.fileupload",a.proxy(this.clear,this))},change:function(a,b){var c=a.target.files!==undefined?a.target.files[0]:{name:a.target.value.replace(/^.+\\/,"")};if(!c||b==="clear")return;this.$hidden.attr("name","");this.$input.attr("name",this.name);if(this.type==="image"&&this.$preview.length>0&&(typeof c.type!=="undefined"?c.type.match("image.*"):c.name.match("\\.(gif|png|jpe?g)$"))&&typeof FileReader!=="undefined"){var d=new FileReader;var e=this.$preview;var f=this.$element;d.onload=function(a){e.html('<img src="'+a.target.result+'" '+(e.css("max-height")!="none"?'style="max-height: '+e.css("max-height")+';"':"")+" />");f.addClass("fileupload-exists").removeClass("fileupload-new")};d.readAsDataURL(c)}else{this.$preview.text(c.name);this.$element.addClass("fileupload-exists").removeClass("fileupload-new")}},clear:function(a){this.$hidden.val("");this.$hidden.attr("name",this.name);this.$input.attr("name","");this.$preview.html("");this.$element.addClass("fileupload-new").removeClass("fileupload-exists");this.$input.trigger("change",["clear"]);a.preventDefault();return false}};a.fn.fileupload=function(c){return this.each(function(){var d=a(this),e=d.data("fileupload");if(!e)d.data("fileupload",e=new b(this,c))})};a.fn.fileupload.Constructor=b;a(function(){a("body").on("click.fileupload.data-api",'[data-provides="fileupload"]',function(b){var c=a(this);if(c.data("fileupload"))return;c.fileupload(c.data());if(a(b.target).data("dismiss")=="fileupload")a(b.target).trigger("click.fileupload")})})}(window.jQuery)