aboutsummaryrefslogtreecommitdiff
path: root/thirdparty/URI.js/build.js
diff options
context:
space:
mode:
Diffstat (limited to 'thirdparty/URI.js/build.js')
-rw-r--r--thirdparty/URI.js/build.js78
1 files changed, 78 insertions, 0 deletions
diff --git a/thirdparty/URI.js/build.js b/thirdparty/URI.js/build.js
new file mode 100644
index 000000000..21d0bb531
--- /dev/null
+++ b/thirdparty/URI.js/build.js
@@ -0,0 +1,78 @@
+(function($, undefined){
+ window.URL = window.webkitURL || window.URL;
+ window.BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder;
+
+function build(files) {
+ var $out = $('#output'),
+ $progress = $('#prog'),
+ sources = [],
+ connections = [],
+ source;
+
+ $out.parent().hide();
+ $progress.show().prop('value', 1).text('Loading Files');
+
+ for (var i = 0, length = files.length; i < length; i++) {
+ sources.push("");
+ (function(i, file){
+ connections.push($.get("src/" + file, function(data) {
+ sources[i] = data;
+ }, "text"));
+ })(i, files[i]);
+ }
+
+ $.when.apply($, connections).done(function() {
+ $progress.prop('value', 2).text('Compiling Scripts');
+ $.post('https://closure-compiler.appspot.com/compile', {
+ js_code: sources.join("\n\n"),
+ compilation_level: "SIMPLE_OPTIMIZATIONS",
+ output_format: "text",
+ output_info: "compiled_code"
+ }, function(data) {
+ var code = "/*! URI.js v1.18.2 http://medialize.github.io/URI.js/ */\n/* build contains: " + files.join(', ') + " */\n" + data;
+ $progress.hide();
+ $out.val(code).parent().show();
+ $out.prev().find('a').remove();
+ $out.prev().prepend(download(code));
+ }).error(function() {
+ alert("Your browser is incapable of cross-domain communication.\nPlease see instructions for manual build below.");
+ });
+ });
+};
+
+function download(code) {
+ var blob = new Blob([code], {type: 'text\/javascript'});
+
+ var a = document.createElement('a');
+ a.download = 'URI.js';
+ a.href = window.URL.createObjectURL(blob);
+ a.textContent = 'Download';
+ a.dataset.downloadurl = ['text/javascript', a.download, a.href].join(':');
+
+ return a;
+};
+
+$(function(){
+ $('#builder').on('submit', function(e) {
+ var $this = $(this),
+ $files = $this.find('input:checked'),
+ files = [];
+
+ e.preventDefault();
+ e.stopImmediatePropagation();
+
+ if (!$files.length) {
+ alert("please choose at least one file!");
+ return;
+ }
+
+ $files.each(function() {
+ var val = $(this).val();
+ val.length && files.push(val);
+ });
+
+ build(files);
+ });
+});
+
+})(jQuery);