From bf703b6880823be4a0aa0dca61b04c8873d03b0b Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Mon, 28 Aug 2017 23:47:35 -0400 Subject: [PATCH] hide file download features on edge --- src/popup/app/tools/toolsController.js | 3 ++- src/popup/app/tools/toolsExportController.js | 21 ++++++++++++------- src/popup/app/tools/views/tools.html | 2 +- .../app/vault/vaultEditLoginController.js | 1 + .../app/vault/vaultViewLoginController.js | 21 +++++++++++++------ src/popup/app/vault/views/vaultEditLogin.html | 2 +- src/popup/app/vault/views/vaultViewLogin.html | 2 +- 7 files changed, 34 insertions(+), 18 deletions(-) diff --git a/src/popup/app/tools/toolsController.js b/src/popup/app/tools/toolsController.js index 03a5e602..798c96b3 100644 --- a/src/popup/app/tools/toolsController.js +++ b/src/popup/app/tools/toolsController.js @@ -1,8 +1,9 @@ angular .module('bit.tools') - .controller('toolsController', function ($scope, SweetAlert, i18nService, $analytics) { + .controller('toolsController', function ($scope, SweetAlert, i18nService, $analytics, utilsService) { $scope.i18n = i18nService; + $scope.showExport = !utilsService.isEdge(); $scope.launchWebVault = function (createOrg) { $analytics.eventTrack('Launch Web Vault' + (createOrg ? ' For Share' : '')); chrome.tabs.create({ url: 'https://vault.bitwarden.com/#/' + (createOrg ? '?org=free' : '') }); diff --git a/src/popup/app/tools/toolsExportController.js b/src/popup/app/tools/toolsExportController.js index 32d1037d..43117b3f 100644 --- a/src/popup/app/tools/toolsExportController.js +++ b/src/popup/app/tools/toolsExportController.js @@ -2,7 +2,7 @@ .module('bit.tools') .controller('toolsExportController', function ($scope, $state, toastr, $q, $analytics, - i18nService, cryptoService, userService, folderService, loginService) { + i18nService, cryptoService, userService, folderService, loginService, $window) { $scope.i18n = i18nService; $('#master-password').focus(); @@ -89,16 +89,21 @@ function downloadFile(csvString) { var csvBlob = new Blob([csvString]); - if (window.navigator.msSaveOrOpenBlob) { - window.navigator.msSaveBlob(csvBlob, makeFileName()); + var fileName = makeFileName(); + + if ($window.navigator.msSaveOrOpenBlob) { + // Currently bugged in Edge. See + // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8178877/ + // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8477778/ + $window.navigator.msSaveBlob(csvBlob, fileName); } else { - var a = window.document.createElement('a'); - a.href = window.URL.createObjectURL(csvBlob, { type: 'text/plain' }); - a.download = makeFileName(); - document.body.appendChild(a); + var a = $window.document.createElement('a'); + a.href = $window.URL.createObjectURL(csvBlob, { type: 'text/plain' }); + a.download = fileName; + $window.document.body.appendChild(a); a.click(); - document.body.removeChild(a); + $window.document.body.removeChild(a); } } diff --git a/src/popup/app/tools/views/tools.html b/src/popup/app/tools/views/tools.html index 63ee376a..181635d8 100644 --- a/src/popup/app/tools/views/tools.html +++ b/src/popup/app/tools/views/tools.html @@ -35,7 +35,7 @@ {{i18n.importLogins}} {{i18n.importLoginsInfo}} - + {{i18n.exportVault}} {{i18n.exportVaultInfo}} diff --git a/src/popup/app/vault/vaultEditLoginController.js b/src/popup/app/vault/vaultEditLoginController.js index 68fd4a74..99a94cbf 100644 --- a/src/popup/app/vault/vaultEditLoginController.js +++ b/src/popup/app/vault/vaultEditLoginController.js @@ -4,6 +4,7 @@ angular .controller('vaultEditLoginController', function ($scope, $state, $stateParams, loginService, folderService, cryptoService, $q, toastr, SweetAlert, utilsService, $analytics, i18nService) { $scope.i18n = i18nService; + $scope.showAttachments = !utilsService.isEdge(); var loginId = $stateParams.loginId; var fromView = $stateParams.fromView; var from = $stateParams.from; diff --git a/src/popup/app/vault/vaultViewLoginController.js b/src/popup/app/vault/vaultViewLoginController.js index c4127707..afc07eab 100644 --- a/src/popup/app/vault/vaultViewLoginController.js +++ b/src/popup/app/vault/vaultViewLoginController.js @@ -4,6 +4,7 @@ angular .controller('vaultViewLoginController', function ($scope, $state, $stateParams, loginService, toastr, $q, $analytics, i18nService, utilsService, totpService, $timeout, tokenService, $window, cryptoService, SweetAlert) { $scope.i18n = i18nService; + $scope.showAttachments = !utilsService.isEdge(); var from = $stateParams.from, totpInterval = null; @@ -143,12 +144,20 @@ angular }).then(function (decBuf) { var blob = new Blob([decBuf]); - var a = $window.document.createElement('a'); - a.href = $window.URL.createObjectURL(blob); - a.download = attachment.fileName; - $window.document.body.appendChild(a); - a.click(); - $window.document.body.removeChild(a); + if ($window.navigator.msSaveOrOpenBlob) { + // Currently bugged in Edge. See + // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8178877/ + // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8477778/ + $window.navigator.msSaveBlob(csvBlob, attachment.fileName); + } + else { + var a = $window.document.createElement('a'); + a.href = $window.URL.createObjectURL(blob); + a.download = attachment.fileName; + $window.document.body.appendChild(a); + a.click(); + $window.document.body.removeChild(a); + } $timeout(function () { attachment.downloading = false; diff --git a/src/popup/app/vault/views/vaultEditLogin.html b/src/popup/app/vault/views/vaultEditLogin.html index 29339e83..5b36ac7a 100644 --- a/src/popup/app/vault/views/vaultEditLogin.html +++ b/src/popup/app/vault/views/vaultEditLogin.html @@ -57,7 +57,7 @@ - + {{i18n.attachments}} diff --git a/src/popup/app/vault/views/vaultViewLogin.html b/src/popup/app/vault/views/vaultViewLogin.html index 24acad43..e0c79110 100644 --- a/src/popup/app/vault/views/vaultViewLogin.html +++ b/src/popup/app/vault/views/vaultViewLogin.html @@ -76,7 +76,7 @@
{{login.notes}}
-
+
{{i18n.attachments}}