diff --git a/ng2-components/ng2-alfresco-upload/src/components/upload-button.component.js b/ng2-components/ng2-alfresco-upload/src/components/upload-button.component.js deleted file mode 100644 index 8ae5e8743d..0000000000 --- a/ng2-components/ng2-alfresco-upload/src/components/upload-button.component.js +++ /dev/null @@ -1,199 +0,0 @@ -/** - * @license - * Copyright 2016 Alfresco Software, Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -System.register(['angular2/core', '../services/upload.service', './file-uploading-dialog.component', 'ng2-translate/ng2-translate'], function(exports_1, context_1) { - "use strict"; - var __moduleName = context_1 && context_1.id; - var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; - }; - var __metadata = (this && this.__metadata) || function (k, v) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); - }; - var core_1, upload_service_1, file_uploading_dialog_component_1, ng2_translate_1; - var UploadButtonComponent; - return { - setters:[ - function (core_1_1) { - core_1 = core_1_1; - }, - function (upload_service_1_1) { - upload_service_1 = upload_service_1_1; - }, - function (file_uploading_dialog_component_1_1) { - file_uploading_dialog_component_1 = file_uploading_dialog_component_1_1; - }, - function (ng2_translate_1_1) { - ng2_translate_1 = ng2_translate_1_1; - }], - execute: function() { - /** - * - * - * - * This component, provide a set of buttons to upload files to alfresco. - * - * @InputParam {boolean} [true] showDialogUpload - hide/show upload dialog. - * @InputParam {boolean} [true] showUdoNotificationBar - hide/show notification bar. - * @InputParam {boolean} [false] uploadFolders - allow/disallow upload folders (only for chrome). - * @InputParam {boolean} [false] multipleFiles - allow/disallow multiple files. - * @InputParam {string} [*] acceptedFilesType - array of allowed file extensions. - * - * - * @returns {UploadDragAreaComponent} . - */ - UploadButtonComponent = (function () { - function UploadButtonComponent(el, translate) { - this.el = el; - this.showUploadDialog = true; - this.showUdoNotificationBar = true; - this.uploadFolders = false; - this.multipleFiles = false; - this.acceptedFilesType = '*'; - this.uploaddirectory = ''; - this.onSuccess = new core_1.EventEmitter(); - this.filesUploadingList = []; - console.log('UploadComponent constructor', el); - this._uploaderService = new upload_service_1.UploadService({ - url: 'http://192.168.99.100:8080/alfresco/service/api/upload', - withCredentials: true, - authToken: btoa('admin:admin'), - authTokenPrefix: 'Basic', - fieldName: 'filedata', - formFields: { - siteid: 'swsdp', - containerid: 'documentLibrary' - } - }); - this.translationInit(translate); - } - /** - * Method called when files are dropped in the drag area. - * - * @param {File[]} files - files dropped in the drag area. - */ - UploadButtonComponent.prototype.onFilesAdded = function ($event) { - var files = $event.currentTarget.files; - if (files.length) { - var latestFilesAdded = this._uploaderService.addToQueue(files); - this._uploaderService.uploadFilesInTheQueue(this.uploaddirectory, this.onSuccess); - this.filesUploadingList = this._uploaderService.getQueue(); - if (this.showUploadDialog) { - this._showDialog(); - } - if (this.showUdoNotificationBar) { - this._showUndoNotificationBar(latestFilesAdded); - } - } - }; - /** - * Show undo notification bar. - * - * @param {FileModel[]} latestFilesAdded - files in the upload queue enriched with status flag and xhr object. - */ - UploadButtonComponent.prototype._showUndoNotificationBar = function (latestFilesAdded) { - if (componentHandler) { - componentHandler.upgradeAllRegistered(); - } - this.undoNotificationBar.nativeElement.MaterialSnackbar.showSnackbar({ - message: this.translate.get('FILE_UPLOAD.MESSAGES.PROGRESS').value, - timeout: 5000, - actionHandler: function () { - latestFilesAdded.forEach(function (uploadingFileModel) { - uploadingFileModel.setAbort(); - }); - }, - actionText: this.translate.get('FILE_UPLOAD.ACTION.UNDO').value - }); - }; - /** - * Show the upload dialog. - */ - UploadButtonComponent.prototype._showDialog = function () { - this.fileUploadingDialogComponent.showDialog(); - }; - /** - * Initial configuration for Multi language - * @param translate - */ - UploadButtonComponent.prototype.translationInit = function (translate) { - this.translate = translate; - var userLang = navigator.language.split('-')[0]; // use navigator lang if available - userLang = /(fr|en)/gi.test(userLang) ? userLang : 'en'; - this.translate.setDefaultLang(userLang); - this.translate.use(userLang); - }; - __decorate([ - core_1.ViewChild('undoNotificationBar'), - __metadata('design:type', Object) - ], UploadButtonComponent.prototype, "undoNotificationBar", void 0); - __decorate([ - core_1.ViewChild('fileUploadingDialog'), - __metadata('design:type', file_uploading_dialog_component_1.FileUploadingDialogComponent) - ], UploadButtonComponent.prototype, "fileUploadingDialogComponent", void 0); - __decorate([ - core_1.Input(), - __metadata('design:type', Boolean) - ], UploadButtonComponent.prototype, "showUploadDialog", void 0); - __decorate([ - core_1.Input(), - __metadata('design:type', Boolean) - ], UploadButtonComponent.prototype, "showUdoNotificationBar", void 0); - __decorate([ - core_1.Input(), - __metadata('design:type', Boolean) - ], UploadButtonComponent.prototype, "uploadFolders", void 0); - __decorate([ - core_1.Input(), - __metadata('design:type', Boolean) - ], UploadButtonComponent.prototype, "multipleFiles", void 0); - __decorate([ - core_1.Input(), - __metadata('design:type', String) - ], UploadButtonComponent.prototype, "acceptedFilesType", void 0); - __decorate([ - core_1.Input(), - __metadata('design:type', String) - ], UploadButtonComponent.prototype, "uploaddirectory", void 0); - __decorate([ - core_1.Output(), - __metadata('design:type', Object) - ], UploadButtonComponent.prototype, "onSuccess", void 0); - UploadButtonComponent = __decorate([ - core_1.Component({ - selector: 'alfresco-upload-button', - moduleId: __moduleName, - directives: [file_uploading_dialog_component_1.FileUploadingDialogComponent], - templateUrl: './upload-button.component.html', - styleUrls: ['./upload-button.component.css'], - pipes: [ng2_translate_1.TranslatePipe] - }), - __metadata('design:paramtypes', [core_1.ElementRef, ng2_translate_1.TranslateService]) - ], UploadButtonComponent); - return UploadButtonComponent; - }()); - exports_1("UploadButtonComponent", UploadButtonComponent); - } - } -}); -//# sourceMappingURL=upload-button.component.js.map \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-upload/src/components/upload-button.component.js.map b/ng2-components/ng2-alfresco-upload/src/components/upload-button.component.js.map deleted file mode 100644 index 688e5a9e58..0000000000 --- a/ng2-components/ng2-alfresco-upload/src/components/upload-button.component.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"upload-button.component.js","sourceRoot":"","sources":["upload-button.component.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-upload/src/services/upload.service.js b/ng2-components/ng2-alfresco-upload/src/services/upload.service.js deleted file mode 100644 index f4c78f68a5..0000000000 --- a/ng2-components/ng2-alfresco-upload/src/services/upload.service.js +++ /dev/null @@ -1,169 +0,0 @@ -/** - * @license - * Copyright 2016 Alfresco Software, Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -System.register(['../models/file.model'], function(exports_1, context_1) { - "use strict"; - var __moduleName = context_1 && context_1.id; - var file_model_1; - var UploadService; - return { - setters:[ - function (file_model_1_1) { - file_model_1 = file_model_1_1; - }], - execute: function() { - /** - * - * UploadService keep the queue of the file to upload and uploads them. - * - * @returns {UploadService} . - */ - UploadService = (function () { - function UploadService(options) { - this.options = options; - this._method = 'POST'; - this._authTokenPrefix = 'Basic'; - this._authToken = undefined; - this._fieldName = 'file'; - this._formFields = {}; - this._queue = []; - console.log('UploadService constructor'); - this._withCredentials = options.withCredentials != null ? options.withCredentials : this._withCredentials; - this._url = options.url != null ? options.url : this._url; - this._authTokenPrefix = options.authTokenPrefix != null ? options.authTokenPrefix : this._authTokenPrefix; - this._authToken = options.authToken != null ? options.authToken : this._authToken; - this._fieldName = options.fieldName != null ? options.fieldName : this._fieldName; - this._formFields = options.formFields != null ? options.formFields : this._formFields; - } - /** - * Add files to the uploading queue to be uploaded. - * - * @param {File[]} - files to add to the upload queue. - * - * return {FileModel[]} - return the file added to the queue in this call. - */ - UploadService.prototype.addToQueue = function (files) { - var latestFilesAdded = []; - for (var _i = 0, files_1 = files; _i < files_1.length; _i++) { - var file = files_1[_i]; - if (this._isFile(file)) { - var uploadingFileModel = new file_model_1.FileModel(file); - latestFilesAdded.push(uploadingFileModel); - this._queue.push(uploadingFileModel); - } - } - return latestFilesAdded; - }; - /** - * Pick all the files in the queue that are not been uploaded yet and upload it into the directory folder. - */ - UploadService.prototype.uploadFilesInTheQueue = function (directory, elementEmit) { - var _this = this; - var filesToUpload = this._queue.filter(function (uploadingFileModel) { - return !uploadingFileModel.uploading && !uploadingFileModel.done && !uploadingFileModel.abort && !uploadingFileModel.error; - }); - filesToUpload.forEach(function (uploadingFileModel) { - uploadingFileModel.setUploading(); - _this.uploadFile(uploadingFileModel, directory, elementEmit); - }); - }; - ; - /** - * The method create a new XMLHttpRequest instance if doesn't exist - */ - UploadService.prototype._configureXMLHttpRequest = function (uploadingFileModel, elementEmit) { - var _this = this; - if (this._xmlHttpRequest == undefined) { - this._xmlHttpRequest = new XMLHttpRequest(); - this._xmlHttpRequest.upload.onprogress = function (e) { - if (e.lengthComputable) { - var percent = Math.round(e.loaded / e.total * 100); - uploadingFileModel.setProgres({ - total: e.total, - loaded: e.loaded, - percent: percent - }); - } - }; - this._xmlHttpRequest.upload.onabort = function (e) { - uploadingFileModel.setAbort(); - }; - this._xmlHttpRequest.upload.onerror = function (e) { - uploadingFileModel.setError(); - }; - this._xmlHttpRequest.onreadystatechange = function () { - if (_this._xmlHttpRequest.readyState === XMLHttpRequest.DONE) { - elementEmit.emit({ - value: 'File uploaded' - }); - uploadingFileModel.onFinished(_this._xmlHttpRequest.status, _this._xmlHttpRequest.statusText, _this._xmlHttpRequest.response); - } - }; - } - }; - /** - * Upload a file into the directory folder, and enrich it with the xhr. - * - * @param {FileModel} - files to be uploaded. - * - */ - UploadService.prototype.uploadFile = function (uploadingFileModel, directory, elementEmit) { - var _this = this; - var form = new FormData(); - form.append(this._fieldName, uploadingFileModel.file, uploadingFileModel.name); - Object.keys(this._formFields).forEach(function (key) { - form.append(key, _this._formFields[key]); - }); - form.append('uploaddirectory', directory); - this._configureXMLHttpRequest(uploadingFileModel, elementEmit); - uploadingFileModel.setXMLHttpRequest(this._xmlHttpRequest); - this._xmlHttpRequest.open(this._method, this._url, true); - this._xmlHttpRequest.withCredentials = this._withCredentials; - if (this._authToken) { - this._xmlHttpRequest.setRequestHeader('Authorization', this._authTokenPrefix + " " + this._authToken); - } - this._xmlHttpRequest.send(form); - }; - /** - * Return all the files in the uploading queue. - * - * @return {FileModel[]} - files in the upload queue. - */ - UploadService.prototype.getQueue = function () { - return this._queue; - }; - /** - * Check if an item is a file. - * - * @return {boolean} - */ - UploadService.prototype._isFile = function (file) { - return file !== null && (file instanceof Blob || (file.name && file.size)); - }; - /** - * Set XMLHttpRequest method - * @param xhr - */ - UploadService.prototype.setXMLHttpRequest = function (xhr) { - this._xmlHttpRequest = xhr; - }; - return UploadService; - }()); - exports_1("UploadService", UploadService); - } - } -}); -//# sourceMappingURL=upload.service.js.map \ No newline at end of file diff --git a/ng2-components/ng2-alfresco-upload/src/services/upload.service.js.map b/ng2-components/ng2-alfresco-upload/src/services/upload.service.js.map deleted file mode 100644 index 5700ff69b6..0000000000 --- a/ng2-components/ng2-alfresco-upload/src/services/upload.service.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"upload.service.js","sourceRoot":"","sources":["upload.service.ts"],"names":[],"mappings":"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"} \ No newline at end of file