From c895e95b87582251287a1ac9f819dd0981003518 Mon Sep 17 00:00:00 2001
From: Bubka <858858+Bubka@users.noreply.github.com>
Date: Mon, 23 Nov 2020 12:58:44 +0100
Subject: [PATCH] Apply group filtering on client side to save an api call
---
.../Controllers/TwoFAccountController.php | 2 +-
resources/js/views/Accounts.vue | 30 +++++++++++--------
2 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/app/Http/Controllers/TwoFAccountController.php b/app/Http/Controllers/TwoFAccountController.php
index 8889dd02..7a737d16 100644
--- a/app/Http/Controllers/TwoFAccountController.php
+++ b/app/Http/Controllers/TwoFAccountController.php
@@ -18,7 +18,7 @@ class TwoFAccountController extends Controller
*/
public function index()
{
- return response()->json(TwoFAccount::ofGroup(Options::get('activeGroup'))->ordered()->get()->toArray());
+ return response()->json(TwoFAccount::ordered()->get()->toArray());
}
diff --git a/resources/js/views/Accounts.vue b/resources/js/views/Accounts.vue
index 1da0454f..8d62ec29 100644
--- a/resources/js/views/Accounts.vue
+++ b/resources/js/views/Accounts.vue
@@ -157,7 +157,7 @@
- {{ this.activeGroupName }} ({{ this.accounts.length }})
+ {{ activeGroupName }} ({{ filteredAccounts.length }})
@@ -237,9 +237,18 @@
computed: {
filteredAccounts: {
get: function() {
+
return this.accounts.filter(
item => {
- return item.service.toLowerCase().includes(this.search.toLowerCase()) || item.account.toLowerCase().includes(this.search.toLowerCase());
+ if( parseInt(this.$root.appSettings.activeGroup) > 0 ) {
+ return (item.service.toLowerCase().includes(this.search.toLowerCase()) ||
+ item.account.toLowerCase().includes(this.search.toLowerCase())) &&
+ (item.group_id == parseInt(this.$root.appSettings.activeGroup))
+ }
+ else {
+ return (item.service.toLowerCase().includes(this.search.toLowerCase()) ||
+ item.account.toLowerCase().includes(this.search.toLowerCase()))
+ }
}
);
},
@@ -314,7 +323,8 @@
service : data.service,
account : data.account ? data.account : '-',
icon : data.icon,
- isConsistent : data.isConsistent
+ isConsistent : data.isConsistent,
+ group_id : data.group_id,
})
})
@@ -424,24 +434,20 @@
/**
* Set the provided group as the active group
*/
- async setActiveGroup(id) {
+ setActiveGroup(id) {
- this.form.activeGroup = id
+ this.form.activeGroup = this.$root.appSettings.activeGroup = id
- await this.form.post('/api/settings/options', {returnError: true})
+ this.form.post('/api/settings/options', {returnError: true})
.then(response => {
-
- this.$root.appSettings.activeGroup = response.data.settings.activeGroup
-
- this.closeGroupSwitch()
-
+ // everything's fine
})
.catch(error => {
this.$router.push({ name: 'genericError', params: { err: error.response } })
});
- this.fetchAccounts()
+ this.closeGroupSwitch()
},
/**