From 464e8293dce525a5c71cf8a718b9e5cc1fac6b04 Mon Sep 17 00:00:00 2001 From: Artur Paikin Date: Fri, 27 Nov 2015 12:27:48 +0300 Subject: [PATCH] Merge --- .gitignore | 1 + bin/builder | 61 +++++ .../static/transloadit-js-client/App.js | 10 + .../transloadit-js-client/core/Transloadit.js | 74 ++++++ .../core/Transloadit.scss | 5 + .../transloadit-js-client/plugins/DragDrop.js | 86 +++++++ .../plugins/TransloaditBasic.js | 67 +++++ .../plugins/TransloaditPlugin.js | 38 +++ .../transloadit-js-client/plugins/Tus10.js | 92 +++++++ .../transloadit-js-client.css | 5 + .../transloadit-js-client.js | 242 ++++++++++++++++++ 11 files changed, 681 insertions(+) create mode 100755 bin/builder create mode 100644 examples/playground/static/transloadit-js-client/App.js create mode 100644 examples/playground/static/transloadit-js-client/core/Transloadit.js create mode 100644 examples/playground/static/transloadit-js-client/core/Transloadit.scss create mode 100644 examples/playground/static/transloadit-js-client/plugins/DragDrop.js create mode 100644 examples/playground/static/transloadit-js-client/plugins/TransloaditBasic.js create mode 100644 examples/playground/static/transloadit-js-client/plugins/TransloaditPlugin.js create mode 100644 examples/playground/static/transloadit-js-client/plugins/Tus10.js create mode 100644 examples/playground/static/transloadit-js-client/transloadit-js-client.css create mode 100644 examples/playground/static/transloadit-js-client/transloadit-js-client.js diff --git a/.gitignore b/.gitignore index 4e98459ee..0bbb5e9e4 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ Thumbs.db npm-debug.log node_modules + dist/ lib/ examples/playground/static/js/app.js diff --git a/bin/builder b/bin/builder new file mode 100755 index 000000000..c9406138a --- /dev/null +++ b/bin/builder @@ -0,0 +1,61 @@ +#!/bin/bash + +# Setup +####################################################### +transformations="[ babelify ]" +toolpath="${1:-node_modules/.bin/browserify}" +toolname="$(basename "${toolpath}")" + +if [ "${toolname}" = "node-sass" ]; then + srcExtension="scss" + dstExtension="css" +else + srcExtension="js" + dstExtension="js" +fi + +if [ "${toolname}" = "watchify" ]; then + extraArgs="-t ${transformations} --ignore-watch=**/build/** --verbose" +elif [ "${toolname}" = "browserify" ]; then + extraArgs="-t ${transformations} --ignore-watch=**/build/** --verbose" +else + extraArgs="" +fi + + +bundleTarget="build/uppy.${dstExtension}" + +# Individual files, built seperately +####################################################### +allSourceFiles="" +for src in $(find src -name "*.${srcExtension}" -type f); do + allSourceFiles="${allSourceFiles} ${src}" + dst="build/$(basename $(dirname ${src}))/$(basename ${src})" + echo "--> ${src} -> ${dst}" + + # Argument should be `browserify`, or `node-sass` + if [ "${toolname}" = "node-sass" ]; then + "${toolpath}" "${src}" "${dst}" ${extraArgs} + else + "${toolpath}" "${src}" -o "${dst}" ${extraArgs} + fi +done + +# All files in one bundle +####################################################### +echo "--> *.${srcExtension} -> ${bundleTarget}" +if [ "${toolname}" = "node-sass" ]; then + "${toolpath}" ${allSourceFiles} "${bundleTarget}" ${extraArgs} +else + "${toolpath}" ${allSourceFiles} -o "${bundleTarget}" ${extraArgs} +fi + +# Install into examples +for path in $(find examples -maxdepth 1 -mindepth 1 -type d); do + exampleProject="$(basename "${path}")" + rsync \ + -ai \ + --exclude='.DS_Store' \ + --exclude='.empty' \ + build/ "examples/${exampleProject}/static/uppy" +done diff --git a/examples/playground/static/transloadit-js-client/App.js b/examples/playground/static/transloadit-js-client/App.js new file mode 100644 index 000000000..2cf63fcb4 --- /dev/null +++ b/examples/playground/static/transloadit-js-client/App.js @@ -0,0 +1,10 @@ +import Transloadit from './core/Transloadit'; + +const transloadit = new Transloadit({wait: false}); +const files = transloadit + .use(DragDrop, {modal: true}) + .use(Tus10, {endpoint: 'http://master.tus.io:8080'}) + .run(); + +console.log('--> Finished transloadit. Final result: '); +console.dir(files); diff --git a/examples/playground/static/transloadit-js-client/core/Transloadit.js b/examples/playground/static/transloadit-js-client/core/Transloadit.js new file mode 100644 index 000000000..fd525ffbb --- /dev/null +++ b/examples/playground/static/transloadit-js-client/core/Transloadit.js @@ -0,0 +1,74 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o Now running ' + plugin.type + ' plugin ' + plugin.name + ': '); + files = plugin.run(files); + console.dir(files); + console.log(''); + } + } + + // core.run is the final step and retuns the results (vs every other method, returning `this`) + // for chainability + return files; + } + }]); + + return Transloadit; +})(); + +exports['default'] = Transloadit; +module.exports = exports['default']; + +},{}]},{},[1]); diff --git a/examples/playground/static/transloadit-js-client/core/Transloadit.scss b/examples/playground/static/transloadit-js-client/core/Transloadit.scss new file mode 100644 index 000000000..a188fa2e1 --- /dev/null +++ b/examples/playground/static/transloadit-js-client/core/Transloadit.scss @@ -0,0 +1,5 @@ +.transloadit-js-client { + font-family: "Comic Sans MS"; + color: purple; + border: 1px dashed pink; + font-size: 32px; } diff --git a/examples/playground/static/transloadit-js-client/plugins/DragDrop.js b/examples/playground/static/transloadit-js-client/plugins/DragDrop.js new file mode 100644 index 000000000..de98fefdc --- /dev/null +++ b/examples/playground/static/transloadit-js-client/plugins/DragDrop.js @@ -0,0 +1,86 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o Now running ' + plugin.type + ' plugin ' + plugin.name + ': '); + files = plugin.run(files); + console.dir(files); + console.log(''); + } + } + + // core.run is the final step and retuns the results (vs every other method, returning `this`) + // for chainability + return files; + } + }]); + + return Transloadit; +})(); + +exports['default'] = Transloadit; +module.exports = exports['default']; + +},{}],2:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var _pluginsTransloaditPlugin = require('../plugins/TransloaditPlugin'); + +var _pluginsTransloaditPlugin2 = _interopRequireDefault(_pluginsTransloaditPlugin); + +var DragDrop = (function (_TransloaditPlugin) { + _inherits(DragDrop, _TransloaditPlugin); + + function DragDrop(core, opts) { + _classCallCheck(this, DragDrop); + + _get(Object.getPrototypeOf(DragDrop.prototype), 'constructor', this).call(this, core, opts); + this.type = 'selecter'; + } + + _createClass(DragDrop, [{ + key: 'run', + value: function run(files) { + this.core.setProgress(this, 0); + var selected = [{ name: 'lolcat.jpeg' }]; + this.core.setProgress(this, 100); + + return selected; + } + }]); + + return DragDrop; +})(_pluginsTransloaditPlugin2['default']); + +exports['default'] = DragDrop; +module.exports = exports['default']; + +},{"../plugins/TransloaditPlugin":4}],3:[function(require,module,exports){ +'use strict'; + +var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var _TransloaditPlugin2 = require('./TransloaditPlugin'); + +var _TransloaditPlugin3 = _interopRequireDefault(_TransloaditPlugin2); + +var TransloaditBasic = (function (_TransloaditPlugin) { + _inherits(TransloaditBasic, _TransloaditPlugin); + + function TransloaditBasic(core, opts) { + _classCallCheck(this, TransloaditBasic); + + _get(Object.getPrototypeOf(TransloaditBasic.prototype), 'constructor', this).call(this, core, opts); + this.type = 'presetter'; + this.core.use(DragDrop, { modal: true, wait: true }).use(Tus10, { endpoint: 'http://master.tus.io:8080' }); + } + + return TransloaditBasic; +})(_TransloaditPlugin3['default']); + +},{"./TransloaditPlugin":4}],4:[function(require,module,exports){ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var TransloaditPlugin = (function () { + // This contains boilerplate that all TransloaditPlugins share - and should not be used + // directly. It also shows which methods final plugins should implement/override, + // this deciding on structure. + + function TransloaditPlugin(core, opts) { + _classCallCheck(this, TransloaditPlugin); + + this.core = core; + this.opts = opts; + this.name = this.constructor.name; + } + + _createClass(TransloaditPlugin, [{ + key: "run", + value: function run(files) { + return files; + } + }]); + + return TransloaditPlugin; +})(); + +exports["default"] = TransloaditPlugin; +module.exports = exports["default"]; + +},{}],5:[function(require,module,exports){ +'use strict'; + +Object.defineProperty(exports, '__esModule', { + value: true +}); + +var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); + +var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } + +function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var _TransloaditPlugin2 = require('./TransloaditPlugin'); + +var _TransloaditPlugin3 = _interopRequireDefault(_TransloaditPlugin2); + +var Tus10 = (function (_TransloaditPlugin) { + _inherits(Tus10, _TransloaditPlugin); + + function Tus10(core, opts) { + _classCallCheck(this, Tus10); + + _get(Object.getPrototypeOf(Tus10.prototype), 'constructor', this).call(this, core, opts); + this.type = 'uploader'; + } + + _createClass(Tus10, [{ + key: 'run', + value: function run(files) { + this.core.setProgress(this, 0); + var uploaded = []; + for (var i in files) { + var file = files[i]; + this.core.setProgress(this, i * 1 + 1); + uploaded[i] = file; + uploaded[i].url = this.opts.endpoint + '/uploaded/' + file.name; + } + this.core.setProgress(this, 100); + + return uploaded; + } + }]); + + return Tus10; +})(_TransloaditPlugin3['default']); + +exports['default'] = Tus10; +module.exports = exports['default']; + +},{"./TransloaditPlugin":4}]},{},[1,2,3,4,5]);