Loading public/javascript/redmic/form/UploadInput.js +20 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ define([ , 'dijit/_WidgetBase' , 'dojo/_base/declare' , 'dojo/_base/lang' , 'dojo/Deferred' , 'dojo/Evented' , 'dojo/i18n!./nls/UploadInput' , 'dojo/text!./templates/UploadInput.html' Loading @@ -19,6 +20,7 @@ define([ , _WidgetBase , declare , lang , Deferred , Evented , i18n , template Loading @@ -38,6 +40,7 @@ define([ minFiles: 0, _updateStatusTimeout: 100, _ignoreStatusName: 'ignore', _dropzoneDfd: new Deferred(), url: null, paramName: 'file', Loading Loading @@ -85,6 +88,7 @@ define([ this._dropzone = this._getNewInstance(); this._listenInstanceEvents(this._dropzone); this._dropzoneDfd.resolve(this._dropzone); })); }, Loading Loading @@ -166,6 +170,22 @@ define([ instance.on('maxfilesreached', lang.hitch(this, this._onDropzoneMaxFilesReached)); }, _addFile: function(file) { this._dropzoneDfd.then(lang.hitch(this, function(file, instance) { instance.addFile(file); }, file)); }, _removeFile: function(file) { this._dropzoneDfd.then(lang.hitch(this, function(file, instance) { instance.removeFile(file); }, file)); }, _dropzoneConfirm: function(question, accepted, rejected) { alertify.confirm(question, function(e) { Loading tests/unit/redmic/form/testUploadInput.js +19 −12 Original line number Diff line number Diff line define([ 'dojo/_base/lang' , 'dojo/Deferred' , 'dojo/on' , 'redmic/form/UploadInput' ], function( lang , Deferred , on , UploadInput ){ var timeout = 100, saveUrl = '/api/save', saveUrl = '/{apiUrl}/save', fileUrlParams = '?token=1234', files, prevFileUrl, input; Loading @@ -18,6 +20,11 @@ define([ registerSuite('UploadInput tests', { before: function() { env = new Deferred(); env.resolve({ apiUrl: '/api' }); input = new UploadInput({ url: saveUrl, maxFiles: 1, Loading Loading @@ -60,7 +67,7 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._addFile(file); }, Should_EmitFileRemoved_When_RemoveFile: function() { Loading @@ -75,8 +82,8 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._dropzone.removeFile(file); input._addFile(file); input._removeFile(file); }, Should_EmitStatusUpdatedWithError_When_AddTooManyFiles: function() { Loading @@ -95,8 +102,8 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._dropzone.addFile(altFile); input._addFile(file); input._addFile(altFile); }, Should_EmitStatusUpdatedWithoutError_When_AddTooManyFilesAndThenRemoveRemainingFiles: function() { Loading @@ -105,8 +112,8 @@ define([ file = lang.clone(files[0]), altFile = lang.clone(files[1]); input._dropzone.addFile(file); input._dropzone.addFile(altFile); input._addFile(file); input._addFile(altFile); on.once(input, 'statusUpdated', function(evt) { Loading @@ -116,7 +123,7 @@ define([ dfd.resolve(); }); input._dropzone.removeFile(altFile); input._removeFile(altFile); }, Should_EmitMaxFilesReached_When_AddEnoughFilesToReachMaxFiles: function() { Loading @@ -132,7 +139,7 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._addFile(file); }, Should_EmitPreviousFileAddedAndLoadPreviousFile_When_LoadPreviouslySavedFile: function() { Loading Loading @@ -165,7 +172,7 @@ define([ on.once(input, 'previousFileAdded', function(evt) { prevFile = evt; input._dropzone.removeFile(prevFile); input._removeFile(prevFile); }); input.loadPreviouslySavedFiles([prevFileUrl], fileUrlParams); Loading Loading @@ -200,7 +207,7 @@ define([ dfd.resolve(); }); input._dropzone.addFile(wrongFile); input._addFile(wrongFile); } } }); Loading Loading
public/javascript/redmic/form/UploadInput.js +20 −0 Original line number Diff line number Diff line Loading @@ -5,6 +5,7 @@ define([ , 'dijit/_WidgetBase' , 'dojo/_base/declare' , 'dojo/_base/lang' , 'dojo/Deferred' , 'dojo/Evented' , 'dojo/i18n!./nls/UploadInput' , 'dojo/text!./templates/UploadInput.html' Loading @@ -19,6 +20,7 @@ define([ , _WidgetBase , declare , lang , Deferred , Evented , i18n , template Loading @@ -38,6 +40,7 @@ define([ minFiles: 0, _updateStatusTimeout: 100, _ignoreStatusName: 'ignore', _dropzoneDfd: new Deferred(), url: null, paramName: 'file', Loading Loading @@ -85,6 +88,7 @@ define([ this._dropzone = this._getNewInstance(); this._listenInstanceEvents(this._dropzone); this._dropzoneDfd.resolve(this._dropzone); })); }, Loading Loading @@ -166,6 +170,22 @@ define([ instance.on('maxfilesreached', lang.hitch(this, this._onDropzoneMaxFilesReached)); }, _addFile: function(file) { this._dropzoneDfd.then(lang.hitch(this, function(file, instance) { instance.addFile(file); }, file)); }, _removeFile: function(file) { this._dropzoneDfd.then(lang.hitch(this, function(file, instance) { instance.removeFile(file); }, file)); }, _dropzoneConfirm: function(question, accepted, rejected) { alertify.confirm(question, function(e) { Loading
tests/unit/redmic/form/testUploadInput.js +19 −12 Original line number Diff line number Diff line define([ 'dojo/_base/lang' , 'dojo/Deferred' , 'dojo/on' , 'redmic/form/UploadInput' ], function( lang , Deferred , on , UploadInput ){ var timeout = 100, saveUrl = '/api/save', saveUrl = '/{apiUrl}/save', fileUrlParams = '?token=1234', files, prevFileUrl, input; Loading @@ -18,6 +20,11 @@ define([ registerSuite('UploadInput tests', { before: function() { env = new Deferred(); env.resolve({ apiUrl: '/api' }); input = new UploadInput({ url: saveUrl, maxFiles: 1, Loading Loading @@ -60,7 +67,7 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._addFile(file); }, Should_EmitFileRemoved_When_RemoveFile: function() { Loading @@ -75,8 +82,8 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._dropzone.removeFile(file); input._addFile(file); input._removeFile(file); }, Should_EmitStatusUpdatedWithError_When_AddTooManyFiles: function() { Loading @@ -95,8 +102,8 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._dropzone.addFile(altFile); input._addFile(file); input._addFile(altFile); }, Should_EmitStatusUpdatedWithoutError_When_AddTooManyFilesAndThenRemoveRemainingFiles: function() { Loading @@ -105,8 +112,8 @@ define([ file = lang.clone(files[0]), altFile = lang.clone(files[1]); input._dropzone.addFile(file); input._dropzone.addFile(altFile); input._addFile(file); input._addFile(altFile); on.once(input, 'statusUpdated', function(evt) { Loading @@ -116,7 +123,7 @@ define([ dfd.resolve(); }); input._dropzone.removeFile(altFile); input._removeFile(altFile); }, Should_EmitMaxFilesReached_When_AddEnoughFilesToReachMaxFiles: function() { Loading @@ -132,7 +139,7 @@ define([ dfd.resolve(); }); input._dropzone.addFile(file); input._addFile(file); }, Should_EmitPreviousFileAddedAndLoadPreviousFile_When_LoadPreviouslySavedFile: function() { Loading Loading @@ -165,7 +172,7 @@ define([ on.once(input, 'previousFileAdded', function(evt) { prevFile = evt; input._dropzone.removeFile(prevFile); input._removeFile(prevFile); }); input.loadPreviouslySavedFiles([prevFileUrl], fileUrlParams); Loading Loading @@ -200,7 +207,7 @@ define([ dfd.resolve(); }); input._dropzone.addFile(wrongFile); input._addFile(wrongFile); } } }); Loading