{"version":3,"file":"app.js","mappings":"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","sources":["webpack://VirtoCommerce.Assets/./Scripts/assets.js","webpack://VirtoCommerce.Assets/./Scripts/blades/asset-list.js","webpack://VirtoCommerce.Assets/./Scripts/blades/asset-select.js","webpack://VirtoCommerce.Assets/./Scripts/blades/asset-upload.js","webpack://VirtoCommerce.Assets/./Scripts/resources/assetApi.js"],"sourcesContent":["//Call this to register our module to main application\nvar moduleName = \"virtoCommerce.assetsModule\";\n\nif (AppDependencies !== undefined) {\n AppDependencies.push(moduleName);\n}\n\n\nangular.module(moduleName, [])\n .config(['$stateProvider', function ($stateProvider) {\n $stateProvider\n .state('workspace.assetsModule', {\n url: '/assets',\n templateUrl: '$(Platform)/Scripts/common/templates/home.tpl.html',\n controller: ['$scope', 'platformWebApp.bladeNavigationService', function ($scope, bladeNavigationService) {\n var blade = {\n id: 'assetList',\n controller: 'virtoCommerce.assetsModule.assetListController',\n template: 'Modules/$(VirtoCommerce.Assets)/Scripts/blades/asset-list.tpl.html',\n isClosingDisabled: true\n };\n bladeNavigationService.showBlade(blade);\n }]\n });\n }])\n\n .run(['platformWebApp.mainMenuService', '$state', 'platformWebApp.toolbarService', 'platformWebApp.breadcrumbHistoryService', function (mainMenuService, $state, toolbarService, breadcrumbHistoryService) {\n var menuItem = {\n path: 'browse/assets',\n icon: 'fa fa-folder-o',\n title: 'platform.menu.assets',\n priority: 130,\n action: function () { $state.go('workspace.assetsModule'); },\n permission: 'platform:asset:access'\n };\n mainMenuService.addMenuItem(menuItem);\n\n // register back-button\n toolbarService.register(breadcrumbHistoryService.getBackButtonInstance(), 'platformWebApp.assets.assetListController');\n toolbarService.register(breadcrumbHistoryService.getBackButtonInstance(), 'platformWebApp.assets.assetSelectController');\n }]);\n","angular.module('virtoCommerce.assetsModule')\n .controller('virtoCommerce.assetsModule.assetListController', ['$scope', '$translate', 'platformWebApp.assets.api',\n 'platformWebApp.bladeNavigationService', 'platformWebApp.dialogService', 'platformWebApp.bladeUtils', 'platformWebApp.uiGridHelper',\n function ($scope, $translate, assets, bladeNavigationService, dialogService, bladeUtils, uiGridHelper) {\n var blade = $scope.blade;\n blade.title = 'platform.blades.asset-list.title';\n if (!blade.currentEntity) {\n blade.currentEntity = {};\n }\n\n blade.refresh = function () {\n blade.isLoading = true;\n assets.search(\n {\n keyword: blade.searchKeyword,\n folderUrl: blade.currentEntity.url\n },\n function (data) {\n $scope.pageSettings.totalItems = data.totalCount;\n _.each(data.results, function (x) {\n x.isImage = x.contentType && x.contentType.startsWith('image/');\n if (x.isImage) {\n x.noCacheUrl = `${x.url}?t=${x.modifiedDate}`;\n }\n });\n $scope.listEntries = data.results;\n blade.isLoading = false;\n\n //Set navigation breadcrumbs\n setBreadcrumbs();\n });\n };\n\n //Breadcrumbs\n function setBreadcrumbs() {\n blade.breadcrumbs = blade.breadcrumbs\n ? getUniqueBreadcrumbs()\n : [generateBreadcrumb(blade.currentEntity.url, 'platform.blades.asset-list.bread-crumb-top')];\n }\n\n function getUniqueBreadcrumbs() {\n //Clone array (angular.copy leaves the same reference)\n var breadcrumbs = blade.breadcrumbs.slice(0);\n\n //prevent duplicate items\n if (blade.currentEntity.url && _.all(breadcrumbs,\n function (x) {\n return x.id !== blade.currentEntity.url\n })) {\n var breadCrumb = generateBreadcrumb(blade.currentEntity.url, blade.currentEntity.name);\n breadcrumbs.push(breadCrumb);\n }\n return breadcrumbs;\n }\n\n function generateBreadcrumb(id, name) {\n return {\n id: id,\n name: name,\n blade: blade,\n navigate: function (breadcrumb) {\n bladeNavigationService.closeBlade(blade,\n function () {\n blade.disableOpenAnimation = true;\n bladeNavigationService.showBlade(blade, blade.parentBlade);\n });\n }\n }\n }\n\n function newFolder() {\n var tooltip = $translate.instant('platform.dialogs.create-folder.title');\n var result = prompt(tooltip + \"\\n\\nEnter folder name:\");\n if (result != null) {\n assets.createFolder({ name: result, parentUrl: blade.currentEntity.url }, blade.refresh);\n }\n }\n\n $scope.copyUrl = function (data) {\n window.prompt(\"Copy to clipboard: Ctrl+C, Enter\", data.url);\n };\n\n $scope.downloadUrl = function (data) {\n window.open(data.url, '_blank');\n };\n\n function isItemsChecked() {\n return $scope.gridApi && _.any($scope.gridApi.selection.getSelectedRows());\n }\n\n $scope.delete = function (data) {\n deleteList([data]);\n };\n\n function deleteList(selection) {\n bladeNavigationService.closeChildrenBlades(blade, function () {\n var dialog = {\n id: \"confirmDeleteItem\",\n title: \"platform.dialogs.folders-delete.title\",\n message: \"platform.dialogs.folders-delete.message\",\n callback: function (remove) {\n if (remove) {\n var listEntryIds = _.pluck(selection, 'url');\n assets.remove({ urls: listEntryIds },\n blade.refresh,\n function (error) { bladeNavigationService.setError('Error ' + error.status, blade); });\n }\n }\n }\n dialogService.showConfirmationDialog(dialog);\n });\n }\n\n $scope.selectNode = function (listItem) {\n if (listItem.type === 'folder') {\n var newBlade = {\n id: blade.id,\n breadcrumbs: blade.breadcrumbs,\n currentEntity: listItem,\n disableOpenAnimation: true,\n controller: blade.controller,\n template: blade.template,\n isClosingDisabled: blade.isClosingDisabled\n };\n\n bladeNavigationService.showBlade(newBlade, blade.parentBlade);\n }\n };\n\n blade.headIcon = 'fa fa-folder-o';\n\n blade.toolbarCommands = [\n {\n name: \"platform.commands.refresh\", icon: 'fa fa-refresh',\n title: \"platform.commands.titles.refresh\",\n executeMethod: blade.refresh,\n canExecuteMethod: function () {\n return true;\n }\n },\n {\n name: \"platform.commands.new-folder\", icon: 'fa fa-folder-o',\n title: \"platform.commands.titles.new-folder\",\n executeMethod: function () { newFolder(); },\n canExecuteMethod: function () {\n return true;\n },\n permission: 'platform:asset:create'\n },\n {\n name: \"platform.commands.upload\", icon: 'fa fa-upload',\n title: \"platform.commands.titles.upload\",\n executeMethod: function () {\n var newBlade = {\n id: \"assetUpload\",\n currentEntityId: blade.currentEntity.url,\n title: 'platform.blades.asset-upload.title',\n controller: 'virtoCommerce.assetsModule.assetUploadController',\n template: 'Modules/$(VirtoCommerce.Assets)/Scripts/blades/asset-upload.tpl.html'\n };\n bladeNavigationService.showBlade(newBlade, blade);\n },\n canExecuteMethod: function () {\n return true;\n },\n permission: 'platform:asset:create'\n },\n {\n name: \"platform.commands.delete\", icon: 'fas fa-trash-alt',\n executeMethod: function () { deleteList($scope.gridApi.selection.getSelectedRows()); },\n canExecuteMethod: isItemsChecked,\n permission: 'platform:asset:delete'\n }\n ];\n\n // ui-grid\n $scope.setGridOptions = function (gridOptions) {\n uiGridHelper.initialize($scope, gridOptions,\n function (gridApi) {\n $scope.$watch('pageSettings.currentPage', gridApi.pagination.seek);\n });\n };\n bladeUtils.initializePagination($scope, true);\n\n blade.refresh();\n }]);\n","angular.module('virtoCommerce.assetsModule')\n .controller('virtoCommerce.assetsModule.assetSelectController', ['$scope', 'platformWebApp.assets.api', 'platformWebApp.bladeNavigationService', 'platformWebApp.bladeUtils', 'platformWebApp.uiGridHelper',\n function ($scope, assetsApi, bladeNavigationService, bladeUtils, uiGridHelper) {\n var blade = $scope.blade;\n blade.template = 'Modules/$(VirtoCommerce.Assets)/Scripts/blades/asset-select.tpl.html';\n\n blade.headIcon = 'fa fa-folder-o';\n\n if (!blade.currentEntity) {\n blade.currentEntity = {};\n }\n if (blade.folder) {\n blade.currentEntity.url = '/' + blade.folder;\n }\n\n blade.refresh = function () {\n blade.isLoading = true;\n assetsApi.search(\n {\n keyword: blade.searchKeyword,\n folderUrl: blade.currentEntity.url\n },\n function (data) {\n $scope.pageSettings.totalItems = data.totalCount;\n _.each(data.results, function (x) { x.isImage = x.contentType && x.contentType.startsWith('image/'); });\n $scope.listEntries = data.results;\n blade.isLoading = false;\n\n //Set navigation breadcrumbs\n setBreadcrumbs();\n }, function (error) {\n bladeNavigationService.setError('Error ' + error.status, blade);\n });\n };\n\n //Breadcrumbs\n function setBreadcrumbs() {\n if (blade.breadcrumbs) {\n //Clone array (angular.copy leaves the same reference)\n var breadcrumbs = blade.breadcrumbs.slice(0);\n\n //prevent duplicate items\n if (blade.currentEntity.url && _.all(breadcrumbs, function (x) { return x.id !== blade.currentEntity.url; })) {\n var breadCrumb = generateBreadcrumb(blade.currentEntity.url, blade.currentEntity.name);\n breadcrumbs.push(breadCrumb);\n }\n blade.breadcrumbs = breadcrumbs;\n } else {\n var name = blade.folder || \"platform.blades.asset-list.bread-crumb-top\";\n blade.breadcrumbs = [generateBreadcrumb(blade.currentEntity.url, name)];\n }\n }\n\n function generateBreadcrumb(id, name) {\n return {\n id: id,\n name: name,\n blade: blade,\n navigate: function (breadcrumb) {\n bladeNavigationService.closeBlade(blade,\n function () {\n blade.disableOpenAnimation = true;\n bladeNavigationService.showBlade(blade, blade.parentBlade);\n });\n }\n }\n }\n\n function isItemsChecked() {\n return $scope.gridApi && _.any($scope.gridApi.selection.getSelectedRows());\n }\n\n function getSelectedAssets() {\n return $scope.gridApi.selection.getSelectedRows();\n }\n\n $scope.selectNode = function (listItem) {\n if (listItem.type === 'folder') {\n var newBlade = {\n id: blade.id,\n title: blade.title,\n breadcrumbs: blade.breadcrumbs,\n currentEntity: listItem,\n disableOpenAnimation: true,\n controller: blade.controller,\n template: blade.template,\n isClosingDisabled: blade.isClosingDisabled,\n onSelect: blade.onSelect\n };\n\n bladeNavigationService.showBlade(newBlade, blade.parentBlade);\n }\n };\n\n blade.toolbarCommands = [\n {\n name: 'platform.commands.confirm',\n icon: 'fa fa-check',\n executeMethod: function () { $scope.saveChanges(); },\n canExecuteMethod: function () {\n return isItemsChecked();\n }\n }\n ];\n\n $scope.saveChanges = function () {\n if (blade.onSelect)\n blade.onSelect(getSelectedAssets());\n\n $scope.bladeClose();\n };\n\n // ui-grid\n $scope.setGridOptions = function (gridOptions) {\n uiGridHelper.initialize($scope, gridOptions,\n function (gridApi) {\n $scope.$watch('pageSettings.currentPage', gridApi.pagination.seek);\n });\n };\n bladeUtils.initializePagination($scope, true);\n\n blade.refresh();\n }]);\n","angular.module('virtoCommerce.assetsModule')\r\n .controller('virtoCommerce.assetsModule.assetUploadController', ['$scope', 'platformWebApp.assets.api', 'platformWebApp.bladeNavigationService', 'FileUploader', 'platformWebApp.dialogService', function ($scope, assets, bladeNavigationService, FileUploader, dialogService) {\r\n var blade = $scope.blade;\r\n var currentEntities;\r\n if (!blade.fileUploadOptions) {\r\n blade.fileUploadOptions = {};\r\n }\r\n var folderUrl = blade.currentEntityId || \"\";\r\n\r\n function initialize() {\r\n if (!$scope.uploader) {\r\n // Create the uploader\r\n var uploader = $scope.uploader = new FileUploader({\r\n scope: $scope,\r\n url: 'api/assets?folderUrl=' + folderUrl,\r\n method: 'POST',\r\n //autoUpload: true,\r\n removeAfterUpload: true\r\n });\r\n\r\n if (blade.fileUploadOptions.filterCallback && angular.isFunction(blade.fileUploadOptions.filterCallback)) {\r\n uploader.filters.push({\r\n name: 'customFileFilter',\r\n fn: blade.fileUploadOptions.filterCallback\r\n });\r\n } else if (blade.fileUploadOptions.accept && blade.fileUploadOptions.accept.contains('image')) {\r\n uploader.filters.push({\r\n name: 'imageFilter',\r\n fn: function (item) {\r\n var type = '|' + item.type.slice(item.type.lastIndexOf('/') + 1) + '|';\r\n return '|jpg|png|jpeg|bmp|gif|svg+xml|'.indexOf(type) !== -1;\r\n }\r\n });\r\n }\r\n\r\n uploader.onAfterAddingAll = function (addedItems) {\r\n if (folderUrl) {\r\n blade.isLoading = true;\r\n blade.uploadCompleted = false;\r\n bladeNavigationService.setError(null, blade);\r\n\r\n // check for asset duplicates\r\n assets.search({ folderUrl: folderUrl },\r\n function (data) {\r\n blade.isLoading = false;\r\n currentEntities = data.results;\r\n\r\n _.each(addedItems, promptUserDecision);\r\n uploader.uploadAll();\r\n }, function (error) {\r\n bladeNavigationService.setError('Error ' + error.status, blade);\r\n });\r\n \r\n } else {\r\n dialogService.showNotificationDialog({\r\n id: \"error\",\r\n title: \"platform.dialogs.asset-upload-error.title\",\r\n message: \"platform.dialogs.asset-upload-error.message\"\r\n });\r\n }\r\n };\r\n\r\n uploader.onErrorItem = function (item, response, status, headers) {\r\n bladeNavigationService.setError(item._file.name + ' failed: ' + (response.message ? response.message : status), blade);\r\n };\r\n\r\n uploader.onSuccessItem = function (fileItem, images) {\r\n refreshParentBlade();\r\n if (blade.onUploadComplete) {\r\n blade.onUploadComplete(images);\r\n }\r\n blade.uploadCompleted = true;\r\n };\r\n }\r\n }\r\n\r\n function refreshParentBlade() {\r\n if (blade.parentBlade.refresh && !blade.fileUploadOptions.suppressParentRefresh) {\r\n blade.parentBlade.refresh();\r\n }\r\n }\r\n\r\n function promptUserDecision(item) {\r\n if (_.any(currentEntities, function (x) { return x.type === 'blob' && x.name.toLowerCase() === item.file.name.toLowerCase() })) {\r\n var result = prompt(\"File \\\"\" + item.file.name + \"\\\" already exists!\\n- Change name / press [OK] to overwrite.\\n- Press [Cancel] to skip this file.\\nFile name:\", item.file.name);\r\n if (result == null) {\r\n item.remove();\r\n } else if (!result) {\r\n promptUserDecision(item);\r\n } else if (result !== item.file.name) {\r\n item.file.name = result;\r\n promptUserDecision(item);\r\n } else {\r\n item.url += \"&forceFileOverwrite=true\";\r\n }\r\n }\r\n }\r\n\r\n $scope.addImageFromUrl = function () {\r\n if (blade.newExternalImageUrl) {\r\n blade.uploadCompleted = false;\r\n if (folderUrl) { \r\n assets.uploadFromUrl({ folderUrl: folderUrl, url: blade.newExternalImageUrl }, function (data) {\r\n refreshParentBlade();\r\n if (blade.onUploadComplete) {\r\n blade.onUploadComplete(data);\r\n }\r\n blade.newExternalImageUrl = undefined;\r\n blade.uploadCompleted = true;\r\n });\r\n } else {\r\n dialogService.showNotificationDialog({\r\n id: \"error\",\r\n title: \"platform.dialogs.asset-upload-error.title\",\r\n message: \"platform.dialogs.asset-upload-error.message\"\r\n });\r\n }\r\n }\r\n };\r\n\r\n blade.headIcon = 'fa fa-file-o';\r\n\r\n initialize();\r\n blade.isLoading = false;\r\n }]);\r\n","angular.module('virtoCommerce.assetsModule')\n.factory('platformWebApp.assets.api', ['$resource', function ($resource) {\n return $resource('api/assets', {}, {\n search: { method: 'GET', url: 'api/assets', isArray: false },\n createFolder: { method: 'POST', url: 'api/assets/folder' },\n move: { method: 'POST', url: 'api/assets/move' },\n uploadFromUrl: { method: 'POST', params: { url: '@url', folderUrl: '@folderUrl', name: '@name' }, isArray: true }\n });\n}]);\n\n"],"names":["moduleName","undefined","AppDependencies","push","angular","module","config","$stateProvider","state","url","templateUrl","controller","$scope","bladeNavigationService","showBlade","id","template","isClosingDisabled","run","mainMenuService","$state","toolbarService","breadcrumbHistoryService","menuItem","path","icon","title","priority","action","go","permission","addMenuItem","register","getBackButtonInstance","$translate","assets","dialogService","bladeUtils","uiGridHelper","blade","generateBreadcrumb","name","navigate","breadcrumb","closeBlade","disableOpenAnimation","parentBlade","deleteList","selection","closeChildrenBlades","dialog","message","callback","remove","listEntryIds","_","pluck","urls","refresh","error","setError","status","showConfirmationDialog","currentEntity","isLoading","search","keyword","searchKeyword","folderUrl","data","pageSettings","totalItems","totalCount","each","results","x","isImage","contentType","startsWith","noCacheUrl","modifiedDate","listEntries","breadcrumbs","slice","all","breadCrumb","getUniqueBreadcrumbs","copyUrl","window","prompt","downloadUrl","open","delete","selectNode","listItem","type","newBlade","headIcon","toolbarCommands","executeMethod","canExecuteMethod","tooltip","result","instant","createFolder","parentUrl","currentEntityId","gridApi","getSelectedRows","any","setGridOptions","gridOptions","initialize","$watch","pagination","seek","initializePagination","assetsApi","folder","setBreadcrumbs","onSelect","saveChanges","bladeClose","FileUploader","currentEntities","fileUploadOptions","refreshParentBlade","suppressParentRefresh","promptUserDecision","item","toLowerCase","file","addImageFromUrl","newExternalImageUrl","uploadCompleted","uploadFromUrl","onUploadComplete","showNotificationDialog","uploader","scope","method","removeAfterUpload","filterCallback","isFunction","filters","fn","accept","contains","lastIndexOf","indexOf","onAfterAddingAll","addedItems","uploadAll","onErrorItem","response","headers","_file","onSuccessItem","fileItem","images","factory","$resource","isArray","move","params"],"sourceRoot":""}