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