Fix filtering on tags

This commit is contained in:
brantje 2016-10-07 11:15:51 +02:00
parent 9a902fb446
commit fc9a41d119
No known key found for this signature in database
GPG key ID: 5FF1D117F918687F
3 changed files with 15 additions and 6 deletions

View file

@ -9,8 +9,8 @@
*/
angular.module('passmanApp')
.controller('CredentialCtrl', ['$scope', 'VaultService', 'SettingsService', '$location', 'CredentialService',
'$rootScope', 'FileService', 'EncryptService', 'TagService', '$timeout', 'NotificationService', 'CacheService', 'ShareService', 'SharingACL', '$interval',
function ($scope, VaultService, SettingsService, $location, CredentialService, $rootScope, FileService, EncryptService, TagService, $timeout, NotificationService, CacheService, ShareService, SharingACL, $interval) {
'$rootScope', 'FileService', 'EncryptService', 'TagService', '$timeout', 'NotificationService', 'CacheService', 'ShareService', 'SharingACL', '$interval', '$filter',
function ($scope, VaultService, SettingsService, $location, CredentialService, $rootScope, FileService, EncryptService, TagService, $timeout, NotificationService, CacheService, ShareService, SharingACL, $interval, $filter) {
$scope.active_vault = VaultService.getActiveVault();
if (!SettingsService.getSetting('defaultVault') || !SettingsService.getSetting('defaultVaultPass')) {
if (!$scope.active_vault) {
@ -86,6 +86,7 @@ angular.module('passmanApp')
}
}
angular.merge($scope.active_vault.credentials, _credentials);
$scope.filtered_credentials = angular.copy($scope.active_vault.credentials);
$scope.show_spinner = false;
});
});
@ -283,6 +284,14 @@ angular.module('passmanApp')
fields: ['label', 'username', 'email', 'password', 'custom_fields']
};
$scope.filtered_credentials = [];
$scope.$watch('[selectedtags, filterOptions, delete_time]', function(){
var credentials = angular.copy($scope.active_vault.credentials);
var filtered_credentials = $filter('credentialSearch')(credentials,$scope.filterOptions);
filtered_credentials = $filter('tagFilter')(filtered_credentials,$scope.selectedtags);
$scope.filtered_credentials = filtered_credentials;
}, true);
$scope.selectedtags = [];
var to;
$rootScope.$on('selected_tags_updated', function (evt, _sTags) {

File diff suppressed because one or more lines are too long

View file

@ -31,7 +31,6 @@
</div>
</div>
</div>
{{filtered_credentials}}
<div off-click="closeSelected()" off-click-filter="'.download-js-link'">
<div class="loaderContainer" ng-if="show_spinner">
@ -40,7 +39,7 @@
<div ng-init="menuOpen = false;">
<table class="credential-table"
ng-if="view_mode === 'list'">
<tr ng-repeat="credential in active_vault.credentials | credentialSearch:filterOptions | tagFilter:selectedtags | orderBy:'label'| as:this:'filtered_credentials'"
<tr ng-repeat="credential in filtered_credentials | orderBy:'label'"
ng-if="credential.hidden == 0 && showCredentialRow(credential)"
ng-click="selectCredential(credential)"
ng-class="{'selected': selectedCredential.credential_id == credential.credential_id}">
@ -58,9 +57,10 @@
</td>
</tr>
</table>
<ul class="grid-view" ng-if="view_mode === 'grid'">
<li class="credential"
ng-repeat="credential in active_vault.credentials | credentialSearch:filterOptions | tagFilter:selectedtags | orderBy:'label'| as:this:'filtered_credentials'"
ng-repeat="credential in filtered_credentials | orderBy:'label'"
ng-if="credential.hidden == 0 && showCredentialRow(credential)"
ng-click="selectCredential(credential)"
use-theme type="'border-color'">