1
0
mirror of https://git.teknik.io/Teknikode/Teknik.git synced 2023-08-02 14:16:22 +02:00

Added ocupload js script

This commit is contained in:
Uncled1023 2015-12-16 15:21:48 -08:00
parent 54d879da20
commit 98c32ac9d1
3 changed files with 242 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,241 @@
/*
* One Click Upload - jQuery Plugin
* Copyright (c) 2008 Michael Mitchell - http://www.michaelmitchell.co.nz
*/
(function($){
$.fn.upload = function(options) {
/** Merge the users options with our defaults */
options = $.extend({
name: 'file',
enctype: 'multipart/form-data',
action: '',
autoSubmit: true,
onSubmit: function() {},
onComplete: function() {},
onSelect: function() {},
params: {}
}, options);
return new $.ocupload(this, options);
},
$.ocupload = function(element, options) {
/** Fix scope problems */
var self = this;
/** A unique id so we can find our elements later */
var id = new Date().getTime().toString().substr(8);
/** Upload Iframe */
var iframe = $(
'<iframe '+
'id="iframe'+id+'" '+
'name="iframe'+id+'"'+
'></iframe>'
).css({
display: 'none'
});
/** Form */
var form = $(
'<form '+
'method="post" '+
'enctype="'+options.enctype+'" '+
'action="'+options.action+'" '+
'target="iframe'+id+'"'+
'></form>'
).css({
margin: 0,
padding: 0
});
/** File Input */
var input = $(
'<input '+
'name="'+options.name+'" '+
'type="file" '+
'/>'
).css({
position: 'relative',
display: 'block',
marginLeft: -175+'px',
opacity: 0
});
/** Put everything together */
element.wrap('<div></div>'); //container
form.append(input);
element.after(form);
element.after(iframe);
/** Find the container and make it nice and snug */
var container = element.parent().css({
position: 'relative',
height: element.outerHeight()+'px',
width: element.outerWidth()+'px',
overflow: 'hidden',
cursor: 'pointer',
margin: 0,
padding: 0
});
/** Put our file input in the right place */
input.css('marginTop', -container.height()-10+'px');
/** Move the input with the mouse to make sure it get clicked! */
container.mousemove(function(e){
input.css({
top: e.pageY-container.offset().top+'px',
left: e.pageX-container.offset().left+'px'
});
});
/** Watch for file selection */
input.change(function() {
/** Do something when a file is selected. */
self.onSelect();
/** Submit the form automaticly after selecting the file */
if(self.autoSubmit) {
self.submit();
}
});
/** Methods */
$.extend(this, {
autoSubmit: true,
onSubmit: options.onSubmit,
onComplete: options.onComplete,
onSelect: options.onSelect,
/** get filename */
filename: function() {
return input.attr('value');
},
/** get/set params */
params: function(params) {
var params = params ? params : false;
if(params) {
options.params = $.extend(options.params, params);
}
else {
return options.params;
}
},
/** get/set name */
name: function(name) {
var name = name ? name : false;
if(name) {
input.attr('name', value);
}
else {
return input.attr('name');
}
},
/** get/set action */
action: function(action) {
var action = action ? action : false;
if(action) {
form.attr('action', action);
}
else {
return form.attr('action');
}
},
/** get/set enctype */
enctype: function(enctype) {
var enctype = enctype ? enctype : false;
if(enctype) {
form.attr('enctype', enctype);
}
else {
return form.attr('enctype');
}
},
/** set options */
set: function(obj, value) {
var value = value ? value : false;
function option(action, value) {
switch(action) {
default:
throw new Error('[jQuery.ocupload.set] \''+action+'\' is an invalid option.');
break;
case 'name':
self.name(value);
break;
case 'action':
self.action(value);
break;
case 'enctype':
self.enctype(value);
break;
case 'params':
self.params(value);
break;
case 'autoSubmit':
self.autoSubmit = value;
break;
case 'onSubmit':
self.onSubmit = value;
break;
case 'onComplete':
self.onComplete = value;
break;
case 'onSelect':
self.onSelect = value;
break;
}
}
if(value) {
option(obj, value);
}
else {
$.each(obj, function(key, value) {
option(key, value);
});
}
},
/** Submit the form */
submit: function() {
/** Do something before we upload */
this.onSubmit();
/** add additional paramters before sending */
$.each(options.params, function(key, value) {
form.append($(
'<input '+
'type="hidden" '+
'name="'+key+'" '+
'value="'+value+'" '+
'/>'
));
});
/** Submit the actual form */
form.submit();
/** Do something after we are finished uploading */
iframe.unbind().load(function() {
/** Get a response from the server in plain text */
var myFrame = document.getElementById(iframe.attr('name'));
var response = $(myFrame.contentWindow.document.body).text();
/** Do something on complete */
self.onComplete(response); //done :D
});
}
});
}
})(jQuery);

View File

@ -247,6 +247,7 @@
<Content Include="Scripts\jquery.validate.unobtrusive.js" />
<Content Include="Scripts\jquery.validate.unobtrusive.min.js" />
<Content Include="Scripts\modernizr-2.8.3.js" />
<Content Include="Scripts\ocupload\1.1.2\ocupload.js" />
<Content Include="Scripts\PageDown\Markdown.Converter.js" />
<Content Include="Scripts\PageDown\Markdown.Editor.js" />
<Content Include="Scripts\PageDown\Markdown.Sanitizer.js" />