Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/passman.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js/app
diff options
context:
space:
mode:
Diffstat (limited to 'js/app')
-rw-r--r--js/app/controllers/credential.js106
-rw-r--r--js/app/controllers/menu.js4
-rw-r--r--js/app/directives/icon.js4
-rw-r--r--js/app/directives/iconpicker.js8
-rw-r--r--js/app/services/credentialservice.js5
5 files changed, 71 insertions, 56 deletions
diff --git a/js/app/controllers/credential.js b/js/app/controllers/credential.js
index 21121cf3..440af994 100644
--- a/js/app/controllers/credential.js
+++ b/js/app/controllers/credential.js
@@ -345,25 +345,33 @@
$scope.filtered_credentials = [];
$scope.$watch('[selectedtags, filterOptions, delete_time, active_vault.credentials]', function () {
- if (!$scope.active_vault) {
- return;
- }
- if ($scope.active_vault.credentials) {
- var credentials = angular.copy($scope.active_vault.credentials);
- var filtered_credentials = $filter('credentialSearch')(credentials, $scope.filterOptions);
- filtered_credentials = $filter('tagFilter')(filtered_credentials, $scope.selectedtags);
- filtered_credentials = $filter('filter')(filtered_credentials, {hidden: 0});
- $scope.filtered_credentials = filtered_credentials;
- $scope.filterOptions.selectedtags = angular.copy($scope.selectedtags);
- for (var i = 0; i < $scope.active_vault.credentials.length; i++) {
- var _credential = $scope.active_vault.credentials[i];
- if (_credential.tags) {
- TagService.addTags(_credential.tags);
- }
- }
- }
+ $scope.applyUserFilters(true);
}, true);
+ $scope.applyUserFilters = function(noFilterReset) {
+ if (!$scope.active_vault) {
+ return;
+ }
+ if ($scope.active_vault.credentials) {
+ var credentials = angular.copy($scope.active_vault.credentials);
+ if ($scope.active_vault.credentials.length > 0) {
+ $scope.filterSpecialCredentials(noFilterReset);
+ credentials = angular.copy($scope.filtered_credentials);
+ }
+ var filtered_credentials = $filter('credentialSearch')(credentials, $scope.filterOptions);
+ filtered_credentials = $filter('tagFilter')(filtered_credentials, $scope.selectedtags);
+ filtered_credentials = $filter('filter')(filtered_credentials, {hidden: 0});
+ $scope.filtered_credentials = filtered_credentials;
+ $scope.filterOptions.selectedtags = angular.copy($scope.selectedtags);
+ for (var i = 0; i < $scope.active_vault.credentials.length; i++) {
+ var _credential = $scope.active_vault.credentials[i];
+ if (_credential.tags) {
+ TagService.addTags(_credential.tags);
+ }
+ }
+ }
+ };
+
$scope.no_credentials_label=[];
$scope.no_credentials_label.all=true;
$scope.no_credentials_label.s_good=false;
@@ -379,34 +387,40 @@
$scope.no_credentials_label.expired=false;
};
+ $scope.currentSpecialFilter = "all";
+
//watch for special tags
$scope.$on('filterSpecial', function(event, args) {
-
- $scope.disableAllLabels();
- switch (args) {
- case "strength_good":
- $scope.filterStrength(3,1000);
- $scope.no_credentials_label.s_good=true;
- break;
- case "strength_medium":
- $scope.filterStrength(2,3);
- $scope.no_credentials_label.s_medium=true;
- break;
- case "strength_low":
- $scope.filterStrength(0,1);
- $scope.no_credentials_label.s_low=true;
- break;
- case "expired":
- $scope.filterExpired();
- $scope.no_credentials_label.expired=true;
- break;
- case "all":
- $scope.filterAll();
- $scope.no_credentials_label.all=true;
- break;
- }
+ $scope.currentSpecialFilter = args;
+ $scope.applyUserFilters(args !== "all");
});
+ $scope.filterSpecialCredentials = function(noFilterReset) {
+ $scope.disableAllLabels();
+ switch ($scope.currentSpecialFilter) {
+ case "strength_good":
+ $scope.filterStrength(3,1000);
+ $scope.no_credentials_label.s_good=true;
+ break;
+ case "strength_medium":
+ $scope.filterStrength(2,3);
+ $scope.no_credentials_label.s_medium=true;
+ break;
+ case "strength_low":
+ $scope.filterStrength(0,1);
+ $scope.no_credentials_label.s_low=true;
+ break;
+ case "expired":
+ $scope.filterExpired();
+ $scope.no_credentials_label.expired=true;
+ break;
+ case "all":
+ $scope.filterAll(noFilterReset);
+ $scope.no_credentials_label.all=true;
+ break;
+ }
+ };
+
$scope.getListSizes = function(){
var l = $scope.filtered_credentials;
@@ -425,13 +439,15 @@
return result;
};
- $scope.filterAll = function(){
- $scope.selectedtags=[];
- $scope.filterOptions.filterText="";
+ $scope.filterAll = function(noFilterReset){
+ if (noFilterReset == null || noFilterReset === false) {
+ $scope.filterOptions.filterText="";
+ $scope.selectedtags=[];
+ }
var creds_filtered=[];
for (var i = 0; i < $scope.active_vault.credentials.length; i++) {
- if($scope.active_vault.credentials[i].delete_time===0){
+ if($scope.active_vault.credentials[i].delete_time===0 || $scope.delete_time > 0){
creds_filtered.push($scope.active_vault.credentials[i]);
}
}
diff --git a/js/app/controllers/menu.js b/js/app/controllers/menu.js
index 0c1ed6b2..edf57b9f 100644
--- a/js/app/controllers/menu.js
+++ b/js/app/controllers/menu.js
@@ -134,7 +134,9 @@
if(string !== "nav_trashbin"){
$scope.delete_time=0;
$rootScope.$broadcast('set_delete_time', $scope.delete_time);
- }
+ } else {
+ string = "all";
+ }
$scope.selectedTags =[];
$rootScope.$broadcast('filterSpecial',string);
diff --git a/js/app/directives/icon.js b/js/app/directives/icon.js
index 646dec01..72efc923 100644
--- a/js/app/directives/icon.js
+++ b/js/app/directives/icon.js
@@ -32,7 +32,7 @@
angular.module('passmanApp').directive('credentialIcon', [
'$window', function($window) {
return {
- template: '<img ng-src="{{ iconUrl }}" class="icon-image">',
+ template: '<img ng-src="{{ iconUrl }}" class="icon-image-size">',
restrict: 'E',
scope: {
credential: '=',
@@ -55,4 +55,4 @@
}
};
}]);
-}()); \ No newline at end of file
+}());
diff --git a/js/app/directives/iconpicker.js b/js/app/directives/iconpicker.js
index 210dfacb..e6a78f7d 100644
--- a/js/app/directives/iconpicker.js
+++ b/js/app/directives/iconpicker.js
@@ -137,12 +137,8 @@
scope.credential.icon.type = data.substring(data.lastIndexOf(":")+1,data.lastIndexOf(";"));
scope.credential.icon.content = data.substring(data.lastIndexOf(",")+1, data.length);
}else{
- $http.get(scope.selectedIcon.url).then(function(result) {
- var base64Data = window.btoa(result.data);
- var mimeType = 'svg+xml';
- scope.credential.icon.type = mimeType;
- scope.credential.icon.content = base64Data;
- });
+ scope.credential.icon.type = 'svg+xml';
+ scope.credential.icon.content = scope.selectedIcon.data;
}
$('#iconPicker').dialog('close');
};
diff --git a/js/app/services/credentialservice.js b/js/app/services/credentialservice.js
index e8bc2a41..c30756d6 100644
--- a/js/app/services/credentialservice.js
+++ b/js/app/services/credentialservice.js
@@ -138,12 +138,13 @@
var fieldValue = angular.copy(credential[field]);
var field_decrypted_value;
try {
- if(fieldValue!==null){
+ if(fieldValue!==null && fieldValue!=="null" && fieldValue!==""){
field_decrypted_value = EncryptService.decryptString(fieldValue, key);
}else{
field_decrypted_value=null;
}
} catch (e) {
+ console.error('Error decrypting credential:', credential);
throw e;
}
try {
@@ -216,7 +217,7 @@
this.parent.plain_credential = service.decryptCredential(credential, this.parent.old_password);
var tmp = angular.copy(this.parent.plain_credential);
- if (tmp.hasOwnProperty('shared_key') && tmp.shared_key !== null && !skipSharingKey) {
+ if (tmp.hasOwnProperty('shared_key') && tmp.shared_key !== null && tmp.shared_key !== '' && !skipSharingKey) {
var shared_key = EncryptService.decryptString(angular.copy(tmp.shared_key)).trim();
tmp.shared_key = EncryptService.encryptString(angular.copy(shared_key), this.parent.new_password);
tmp.set_share_key = true;