(function () { 'use strict'; const lodash = require('lodash'), path = require('path'), myStorage = require('local-storage'), EventEmitter = require('myevents'), apiService = require('app-service'), downManager = require('downmanager'), fs = require('fs'), downFiles = require('down-folder'), appCache = require('app-cache'), { down: downURL } = require('sys-config'), uploadManager = require('uploadmanager'); angular .module("app.factory") .factory('fileTool', file_tool); file_tool.$inject = ['$mdDialog']; function file_tool($mdDialog) { let service = { downFile: function () { let self = this; let local_config = appCache.local_config(); return function (files) { if (local_config.down_setting.default) { downFiles(local_config.down_setting.path, files); service._addCart(files); return Promise.resolve(true); } return $mdDialog.show({ controller: 'm_downFileCtr', templateUrl: './app/widgets/download/down.html', parent: angular.element(document.body), clickOutsideToClose: false, fullscreen: false, multiple: true, locals: { files: files } }).then(function () { $('body').off('change', '#openFolder'); service._addCart(files); appCache.task_panel = 'download'; appCache.task_controller = 'task.downList'; }, function () { $('body').off('change', '#openFolder'); }); } }, downshareFile: function () { let self = this; return function (share_files) { let save_path = myStorage.get('save_path'); if (!!save_path) { share_files.forEach((file) => { let file_path = path.join(save_path, file.name); apiService.share_package_files(file._id).then((v) => { return d.data; }).then(files => { downFiles(save_path, files); }); }); service._addCart(share_files); return; } share_files.share = true; return $mdDialog.show({ controller: 'm_downFileCtr', templateUrl: './app/widgets/download/down.html', parent: angular.element(document.body), clickOutsideToClose: false, fullscreen: false, multiple: true, locals: { files: share_files } }).then(function () { $('body').off('change', '#openFolder'); service._addCart(share_files); appCache.task_panel = 'download'; appCache.task_controller = 'task.downList'; share_files.forEach(v => { return apiService.analysis_add(v).then(function (d) { }); }); }, function () { $('body').off('change', '#openFolder'); }); } }, shareFile: function () { return (files) => { $mdDialog.show({ controller: 'm_shareFileCtr', templateUrl: 'shareFile.html', parent: angular.element(document.body), clickOutsideToClose: false, fullscreen: false, multiple: true, onComplete: function () { EventEmitter.emit('m_shareFileCtrComplete'); }, locals: { files: files } }) } }, deleteFile: function (files) { var confirm; confirm = { controller: 'm_deleteFileCtr', templateUrl: `./app/widgets/alert/alert.html`, parent: angular.element(document.body), clickOutsideToClose: false, fullscreen: false, multiple: true, locals: { files: files } } return $mdDialog.show(confirm) .then(function () { let tip_loading = layer.load(1); return apiService.delete_item(files.map(v => v._id)).then(function (d) { EventEmitter.emit('fileListRefresh'); layer.close(tip_loading) return d; }); }, function () { }); }, moveFile: function (files, is_copy) { return $mdDialog.show({ controller: 'm_moveFileCtr', template: `