diff --git a/package.json b/package.json index 4281fe9..99d7866 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "anchr-multi-webservice", - "version": "2.1.0", + "version": "3.0.0", "description": "⚓️ Anchr provides you with a toolbox for tiny tasks on the internet, especially bookmark collections", "private": true, "scripts": { diff --git a/public/app/index.html b/public/app/index.html index 20c9394..0b9f842 100644 --- a/public/app/index.html +++ b/public/app/index.html @@ -140,7 +140,6 @@ - @@ -152,6 +151,7 @@ + diff --git a/public/app/scripts/controllers/image.js b/public/app/scripts/controllers/image.js index 5041b28..061341b 100644 --- a/public/app/scripts/controllers/image.js +++ b/public/app/scripts/controllers/image.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('anchrClientApp') - .controller('ImageCtrl', ['$rootScope', '$scope', 'Upload', '$timeout', function ($rootScope, $scope, Upload, $timeout) { + .controller('ImageCtrl', ['$rootScope', '$scope', 'Snackbar', 'Upload', 'Encryption', '$timeout', function ($rootScope, $scope, Snackbar, Upload, Encryption, $timeout) { var allowedTypes = ['image/']; $scope.encryptAndUpload = function (files, errFiles) { @@ -16,19 +16,27 @@ angular.module('anchrClientApp') return false; } - reader.onload = function(e) { - var encrypted = CryptoJS.AES.encrypt(e.target.result, password); - var blob = new Blob([encrypted], {type: file.type}); - blob.name = file.name; - blob.encrypted = true; - $scope.files.loading = false; - $scope.uploadFiles([blob], []); + reader.onload = function (e) { + Encryption.encrypt(e.target.result, password) + .then(function (encrypted) { + var blob = new Blob([encrypted], { type: file.type }); + blob.name = file.name; + blob.encrypted = true; + $scope.files.loading = false; + $scope.uploadFiles([blob], []); + }) + .catch(function(error) { + console.error(error); + + $scope.files.loading = false; + Snackbar.show("Failed to encrypt image."); + }); }; - reader.readAsDataURL(file); + reader.readAsArrayBuffer(file); }; - $scope.uploadFiles = function(files, errFiles) { + $scope.uploadFiles = function (files, errFiles) { if ((files && files.length) || (errFiles && errFiles.length)) { $scope.files.files = $scope.files.files.concat(files); $scope.files.errFiles = $scope.files.errFiles.concat(errFiles); @@ -41,7 +49,7 @@ angular.module('anchrClientApp') else { file.upload = Upload.upload({ url: $rootScope.getApiUrl() + 'image', - data: {uploadFile: file, encrypted: file.encrypted} + data: { uploadFile: file, encrypted: file.encrypted } }); file.upload.then(function (response) { @@ -63,7 +71,7 @@ angular.module('anchrClientApp') $scope.clear = function () { $scope.files = { - files : [], + files: [], errFiles: [], password: null, encrypt: false, @@ -79,8 +87,8 @@ angular.module('anchrClientApp') $rootScope.init(); } - function arrayMatch (regexArray, val) { - for (var i=0; i