From 3e91c9e2379558f0db6afde6fc4787abc660c0f1 Mon Sep 17 00:00:00 2001 From: Jens Giessmann Date: Mon, 15 Aug 2022 13:58:29 +0200 Subject: [PATCH 1/2] add item.model.urls in angular app, which can be used to overwrite the default stream & download urls that are displayed in the file-item copy-links overlay. --- src/assets/dist/angular-filemanager.min.js | 119 ++++++++++++--------- 1 file changed, 69 insertions(+), 50 deletions(-) diff --git a/src/assets/dist/angular-filemanager.min.js b/src/assets/dist/angular-filemanager.min.js index b7d13cf..66350bb 100755 --- a/src/assets/dist/angular-filemanager.min.js +++ b/src/assets/dist/angular-filemanager.min.js @@ -324,12 +324,30 @@ }; var domain = window.location.protocol + '//' + window.location.host; - var downloadPath = [fileManagerConfig.downloadFileUrl, $.param(downloadData)].join('?'); + var downloadPath = domain + [fileManagerConfig.downloadFileUrl, $.param(downloadData)].join('?'); + // if (item.isImage()) { + // if (item.model && item.model.urls && item.model.urls.image) { + // var downloadPath = item.model.urls.image; + // } else { + // if (undefined !== fileManagerConfig.imageFileUrl) { + // var downloadPath = [fileManagerConfig.imageFileUrl, itemFullPath].join('/'); + // } + // } + // } var streamPath = [fileManagerConfig.downloadFileUrl, $.param(streamData)].join('?'); - $scope.dlLink = domain + downloadPath; + $scope.dlLink = downloadPath; $scope.streamLink = streamPath; $scope.path = itemFullPath; + $scope.urls = []; + $scope.showDefaultUrls = true; + $scope.showCustomUrls = false; + if (item.model.urls && item.model.urls.length !== 0) { + $scope.urls = item.model.urls; + $scope.showDefaultUrls = false; + $scope.showCustomUrls = true; + } + //open modal $scope.modal('downloadlink', false); @@ -585,53 +603,6 @@ })(angular); -(function(angular) { - 'use strict'; - var app = angular.module('FileManagerApp'); - - app.filter('strLimit', ['$filter', function($filter) { - return function(input, limit, more) { - if (input.length <= limit) { - return input; - } - return $filter('limitTo')(input, limit) + (more || '...'); - }; - }]); - - app.filter('fileExtension', ['$filter', function($filter) { - return function(input) { - return /\./.test(input) && $filter('strLimit')(input.split('.').pop(), 3, '..') || ''; - }; - }]); - - app.filter('formatDate', ['$filter', function() { - return function(input) { - return input instanceof Date ? - input.toISOString().substring(0, 19).replace('T', ' ') : - (input.toLocaleString || input.toString).apply(input); - }; - }]); - - app.filter('humanReadableFileSize', ['$filter', 'fileManagerConfig', function($filter, fileManagerConfig) { - // See https://en.wikipedia.org/wiki/Binary_prefix - var decimalByteUnits = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB']; - var binaryByteUnits = ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']; - - return function(input) { - var i = -1; - var fileSizeInBytes = input; - - do { - fileSizeInBytes = fileSizeInBytes / 1024; - i++; - } while (fileSizeInBytes > 1024); - - var result = fileManagerConfig.useBinarySizePrefixes ? binaryByteUnits[i] : decimalByteUnits[i]; - return Math.max(fileSizeInBytes, 0.1).toFixed(1) + ' ' + result; - }; - }]); -})(angular); - (function(angular) { 'use strict'; angular.module('FileManagerApp').service('chmod', function () { @@ -749,6 +720,7 @@ var rawModel = { name: model && model.name || '', thumbnail: model && model.thumbnail || '', + urls: model && model.urls || [], path: path || [], type: model && model.type || 'file', size: model && parseInt(model.size || 0), @@ -2048,6 +2020,53 @@ }]); })(angular); +(function(angular) { + 'use strict'; + var app = angular.module('FileManagerApp'); + + app.filter('strLimit', ['$filter', function($filter) { + return function(input, limit, more) { + if (input.length <= limit) { + return input; + } + return $filter('limitTo')(input, limit) + (more || '...'); + }; + }]); + + app.filter('fileExtension', ['$filter', function($filter) { + return function(input) { + return /\./.test(input) && $filter('strLimit')(input.split('.').pop(), 3, '..') || ''; + }; + }]); + + app.filter('formatDate', ['$filter', function() { + return function(input) { + return input instanceof Date ? + input.toISOString().substring(0, 19).replace('T', ' ') : + (input.toLocaleString || input.toString).apply(input); + }; + }]); + + app.filter('humanReadableFileSize', ['$filter', 'fileManagerConfig', function($filter, fileManagerConfig) { + // See https://en.wikipedia.org/wiki/Binary_prefix + var decimalByteUnits = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB']; + var binaryByteUnits = ['KiB', 'MiB', 'GiB', 'TiB', 'PiB', 'EiB', 'ZiB', 'YiB']; + + return function(input) { + var i = -1; + var fileSizeInBytes = input; + + do { + fileSizeInBytes = fileSizeInBytes / 1024; + i++; + } while (fileSizeInBytes > 1024); + + var result = fileManagerConfig.useBinarySizePrefixes ? binaryByteUnits[i] : decimalByteUnits[i]; + return Math.max(fileSizeInBytes, 0.1).toFixed(1) + ' ' + result; + }; + }]); +})(angular); + (function(angular, $) { 'use strict'; angular.module('FileManagerApp').service('apiHandler', ['$http', '$q', '$window', '$translate', 'Upload', @@ -3831,7 +3850,7 @@ $templateCache.put("src/templates/main-icons.html","
\n \n \n \n \n {{\"name\" | translate}}\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n {{\"no_folders_in_folder\" | translate}}...\n \n \n \n \n \n \n \n {{ fileNavigator.error }}\n \n \n \n \n \n \n {{item.model.name | strLimit : 32}}\n \n \n \n \n \n \n \n"); $templateCache.put("src/templates/main-table.html","\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n \n {{\"name\" | translate}}\n \n \n \n \n {{\"size\" | translate}}\n \n \n \n \n {{\"date\" | translate}}\n \n \n \n \n {{\"permissions\" | translate}}\n \n \n
\n
\n
\n {{\"no_files_in_folder\" | translate}}...\n
\n {{ fileNavigator.error }}\n
\n \n \n \n {{item.model.name | strLimit : 64}}\n \n \n \n {{item.model.size | humanReadableFileSize}}\n \n \n {{item.model.date | formatDate }}\n \n {{item.model.perms.toCode(item.model.type === \'dir\'?\'d\':\'-\')}}\n
\n"); $templateCache.put("src/templates/main.html","
\n
\n\n
\n
\n\n
\n
\n\n
\n
\n
\n
\n
\n\n
\n
\n
\n"); -$templateCache.put("src/templates/modals.html","
\n
\n
\n
\n \n

{{\"preview\" | translate}}

\n
\n
\n
\n\n \"{{singleSelection().model.name}}\"\n {{\'loading\' | translate}} ...\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\"confirm\" | translate}}

\n
\n
\n {{\'sure_to_delete\' | translate}} \n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'move\' | translate}}

\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\n \n

{{\'rename\' | translate}}

\n
\n
\n \n \n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'copy_file\' | translate}}

\n
\n
\n
\n \n \n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'compress\' | translate}}

\n
\n
\n
\n
{{\'compression_started\' | translate}}
\n
\n
\n
\n {{\'sure_to_start_compression_with\' | translate}} {{singleSelection().model.name}} ?\n
\n
\n \n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'extract_item\' | translate}}

\n
\n
\n
\n
{{\'extraction_started\' | translate}}
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n \n

{{\'edit_file\' | translate}}

\n
\n
\n \n {{\'loading\' | translate}} ...\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'new_folder\' | translate}}

\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\"upload_files\" | translate}}

\n
\n
\n \n \n\n
\n
    \n
  • \n \n
    {{uploadFile.name}}
    \n

    {{uploadFile.size | humanReadableFileSize}}

    \n
  • \n
\n
\n {{\"uploading\" | translate}}... {{apiMiddleware.apiHandler.progress}}%\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n \n

{{\'change_permissions\' | translate}}

\n
\n
\n
\n
\n

{{\'read\' | translate}}

\n \n
\n
\n
\n
\n
\n
\n

{{\'write\' | translate}}

\n\n \n
\n
\n
\n
\n
\n
\n

{{\'delete\' | translate}}

\n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n \n
\n \n\n\n
\n
\n
\n
\n
\n \n

{{\'copy_links\' | translate}}

\n
\n
\n\n \n\n
\n \n \n \n \n
\n\n \n\n
\n \n \n \n \n
\n\n \n\n
\n \n \n \n \n
\n\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n

{{\"select_destination_folder\" | translate}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n\n"); +$templateCache.put("src/templates/modals.html","
\n
\n
\n
\n \n

{{\"preview\" | translate}}

\n
\n
\n
\n\n \"{{singleSelection().model.name}}\"\n {{\'loading\' | translate}} ...\n
\n
\n
\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\"confirm\" | translate}}

\n
\n
\n {{\'sure_to_delete\' | translate}} \n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'move\' | translate}}

\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n\n
\n
\n
\n
\n
\n \n

{{\'rename\' | translate}}

\n
\n
\n \n \n\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'copy_file\' | translate}}

\n
\n
\n
\n \n \n
\n\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'compress\' | translate}}

\n
\n
\n
\n
{{\'compression_started\' | translate}}
\n
\n
\n
\n {{\'sure_to_start_compression_with\' | translate}} {{singleSelection().model.name}} ?\n
\n
\n \n \n
\n
\n\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'extract_item\' | translate}}

\n
\n
\n
\n
{{\'extraction_started\' | translate}}
\n
\n
\n \n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n \n

{{\'edit_file\' | translate}}

\n
\n
\n \n {{\'loading\' | translate}} ...\n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\'new_folder\' | translate}}

\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n \n

{{\"upload_files\" | translate}}

\n
\n
\n \n \n\n
\n
    \n
  • \n \n
    {{uploadFile.name}}
    \n

    {{uploadFile.size | humanReadableFileSize}}

    \n
  • \n
\n
\n {{\"uploading\" | translate}}... {{apiMiddleware.apiHandler.progress}}%\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n
\n \n

{{\'change_permissions\' | translate}}

\n
\n
\n
\n
\n

{{\'read\' | translate}}

\n \n
\n
\n
\n
\n
\n
\n

{{\'write\' | translate}}

\n\n \n
\n
\n
\n
\n
\n
\n

{{\'delete\' | translate}}

\n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n \n \n \n\n\n
\n
\n
\n
\n
\n \n

{{\'copy_links\' | translate}}

\n
\n
\n\n \n\n
\n \n \n \n \n
\n
\n \n\n
\n \n \n \n \n
\n\n \n\n
\n \n \n \n \n
\n
\n\n
\n
\n \n
\n \n \n \n
\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n

{{\"select_destination_folder\" | translate}}

\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n
\n\n\n\n\n\n\n"); $templateCache.put("src/templates/navbar.html",""); $templateCache.put("src/templates/sidebar.html","\n\n"); $templateCache.put("src/templates/spinner.html","
\n \n \n \n
");}]); \ No newline at end of file From d4033e9f71c3404b36eaf9ad8b00dbb1af911a78 Mon Sep 17 00:00:00 2001 From: Jens Giessmann Date: Mon, 15 Aug 2022 14:52:50 +0200 Subject: [PATCH 2/2] increment dmstr/yii2-filefly-module constraint --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2de17fd..782d14d 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ ], "require": { "yiisoft/yii2": "*", - "dmstr/yii2-filefly-module" : "^1.1.0", + "dmstr/yii2-filefly-module" : "^1.6.0", "kartik-v/yii2-widget-select2": "^2.0.0", "rmrevin/yii2-fontawesome": "~2.9", "yii2assets/yii2-fullscreen-modal": "^1.0.2"