lesli_audit 1.0.2 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/lesli_audit/users_controller.rb +1 -2
  3. data/app/controllers/lesli_audit/visitors_controller.rb +14 -0
  4. data/app/interfaces/lesli_audit/logger_interface.rb +22 -29
  5. data/app/services/lesli_audit/user_service.rb +105 -12
  6. data/app/services/lesli_audit/{analytic_service.rb → visitor_service.rb} +121 -24
  7. data/app/views/lesli_audit/partials/_navigation.html.erb +1 -1
  8. data/app/views/lesli_audit/requests/index.html.erb +1 -1
  9. data/app/views/lesli_audit/users/index.html.erb +36 -4
  10. data/app/views/lesli_audit/visitors/index.html.erb +118 -0
  11. data/config/routes.rb +1 -1
  12. data/db/migrate/v1.0/0501110210_create_lesli_audit_account_devices.rb +2 -1
  13. data/db/seed/devices.rb +23 -15
  14. data/db/seed/users.rb +117 -0
  15. data/db/seeds.rb +2 -2
  16. data/lib/lesli_audit/version.rb +2 -2
  17. metadata +10 -50
  18. data/app/assets/config/lesli_audit_manifest.js +0 -37
  19. data/app/controllers/lesli_audit/analytics_controller.rb +0 -23
  20. data/app/controllers/lesli_audit/user_journals_controller.rb +0 -60
  21. data/app/helpers/lesli_audit/analytics_helper.rb +0 -4
  22. data/app/views/lesli_audit/analytics/index.html.erb +0 -44
  23. data/app/views/lesli_audit/user_journals/_form.html.erb +0 -17
  24. data/app/views/lesli_audit/user_journals/_user_journal.html.erb +0 -2
  25. data/app/views/lesli_audit/user_journals/edit.html.erb +0 -12
  26. data/app/views/lesli_audit/user_journals/index.html.erb +0 -16
  27. data/app/views/lesli_audit/user_journals/new.html.erb +0 -11
  28. data/app/views/lesli_audit/user_journals/show.html.erb +0 -10
  29. data/app/views/lesli_audit/users/show.html.erb +0 -10
  30. data/lib/scss/application.scss +0 -31
  31. data/lib/vue/application.js +0 -146
  32. data/lib/vue/apps/accounts/activities.vue +0 -48
  33. data/lib/vue/apps/analytics/index.vue +0 -56
  34. data/lib/vue/apps/analytics/trends.vue +0 -148
  35. data/lib/vue/apps/dashboards/components/roles.vue +0 -71
  36. data/lib/vue/apps/dashboards/components/users.vue +0 -71
  37. data/lib/vue/apps/dashboards/show.vue +0 -8
  38. data/lib/vue/apps/requests/index.vue +0 -125
  39. data/lib/vue/apps/security/passwords.vue +0 -52
  40. data/lib/vue/apps/security/sessions.vue +0 -63
  41. data/lib/vue/apps/users/activities.vue +0 -49
  42. data/lib/vue/apps/users/index.vue +0 -89
  43. data/lib/vue/apps/users/logs.vue +0 -49
  44. data/lib/vue/apps/users/registrations.vue +0 -73
  45. data/lib/vue/apps/users/roles.vue +0 -70
  46. data/lib/vue/apps/users/workingHours.vue +0 -52
  47. data/lib/vue/components/requests.vue +0 -63
  48. data/lib/vue/components/visitors.vue +0 -76
  49. data/lib/vue/stores/accounts/activities.js +0 -87
  50. data/lib/vue/stores/analytics.js +0 -127
  51. data/lib/vue/stores/request.js +0 -70
  52. data/lib/vue/stores/security/password.js +0 -75
  53. data/lib/vue/stores/security/session.js +0 -78
  54. data/lib/vue/stores/translations.json +0 -162
  55. data/lib/vue/stores/users/activities.js +0 -76
  56. data/lib/vue/stores/users/logs.js +0 -74
  57. data/lib/vue/stores/users/registrations.js +0 -61
  58. data/lib/vue/stores/users/roles.js +0 -52
  59. data/lib/vue/stores/users/working_hours.js +0 -92
  60. data/lib/vue/stores/users.js +0 -56
@@ -1,146 +0,0 @@
1
- /*
2
- Lesli
3
-
4
- Copyright (c) 2023, Lesli Technologies, S. A.
5
-
6
- This program is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program. If not, see http://www.gnu.org/licenses/.
18
-
19
- Lesli · Ruby on Rails SaaS Development Framework.
20
-
21
- Made with ♥ by https://www.lesli.tech
22
- Building a better future, one line of code at a time.
23
-
24
- @contact hello@lesli.tech
25
- @website https://www.lesli.tech
26
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
27
-
28
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
- // ·
30
- */
31
-
32
-
33
- // · Import Lesli builders
34
- import application from "Lesli/vue/application"
35
- import translation from "Lesli/vue/translation"
36
-
37
-
38
- // · Import engine translations
39
- import translations from "LesliAudit/vue/stores/translations.json"
40
-
41
-
42
- // ·
43
- import appAnalytics from "LesliAudit/vue/apps/analytics/index.vue"
44
- import appRequests from "LesliAudit/vue/apps/requests/index.vue"
45
- import appUsers from "LesliAudit/vue/apps/users/index.vue"
46
-
47
- //import appDashboardShow from "LesliAudit/vue/apps/dashboards/show.vue"
48
- import appDashboardShow from "Lesli/vue/shared/dashboards/apps/show.vue"
49
- import appDashboardEdit from "Lesli/vue/shared/dashboards/apps/edit.vue"
50
-
51
- // ·
52
- /*
53
- import dashboard from "Lesli/vue/shared/dashboards/apps/show.vue"
54
- import appUsersRegistrations from "CloudAudit/apps/users/registrations.vue"
55
- import appUsersWorkingHours from "CloudAudit/apps/users/workingHours.vue"
56
- import appUsersActivities from "CloudAudit/apps/users/activities.vue"
57
- import appUsersLogs from "CloudAudit/apps/users/logs.vue"
58
- import appUsersRoles from "CloudAudit/apps/users/roles.vue"
59
-
60
- import appAnalyticsVisitors from "CloudAudit/apps/analytics/visitors.vue"
61
- import appAnalyticsTrends from "CloudAudit/apps/analytics/trends.vue"
62
-
63
- import appAccountsActivities from "CloudAudit/apps/accounts/activities.vue"
64
-
65
- import appSecuritySessions from "CloudAudit/apps/security/sessions.vue"
66
- import appSecurityPasswords from "CloudAudit/apps/security/passwords.vue"
67
- */
68
-
69
-
70
- // ·
71
- import componentDashboardUsers from "LesliAudit/vue/apps/dashboards/components/users.vue"
72
- import componentDashboardRoles from "LesliAudit/vue/apps/dashboards/components/roles.vue"
73
-
74
-
75
- // ·
76
- const dashboardProps = {
77
- components: {
78
- // "audit-users": componentDashboardUsers,
79
- // "audit-roles": componentDashboardRoles
80
- }
81
- }
82
-
83
-
84
- // · Buil Lesli translations
85
- translation(translations)
86
-
87
-
88
- // · Build a new Lesli application
89
- application("LesliAudit", [{
90
- path: "/",
91
- component: appDashboardShow,
92
- props: dashboardProps
93
- }, {
94
- path: "/dashboard",
95
- component: appDashboardShow,
96
- props: dashboardProps
97
- }, {
98
- path: "/dashboards/:id/edit",
99
- component: appDashboardEdit,
100
- props: dashboardProps
101
- }, {
102
- path: "/analytics",
103
- component: appAnalytics,
104
- props: { engine: "audit" }
105
- }, {
106
- path: "/requests",
107
- component: appRequests
108
- }, {
109
- path: "/users",
110
- component: appUsers,
111
- }
112
- /*{
113
- path: "/",
114
- component: dashboard,
115
- props: { engine: "audit" }
116
- }, {
117
- path: "/users/working_hours",
118
- component: appUsersWorkingHours,
119
- }, {
120
- path: "/users/activities",
121
- component: appUsersActivities,
122
- }, {
123
- path: "/users/logs",
124
- component: appUsersLogs,
125
- }, {
126
- path: "/users/registrations",
127
- component: appUsersRegistrations,
128
- }, {
129
- path: "/users/roles",
130
- component: appUsersRoles,
131
- }, {
132
- path: "/accounts/activities",
133
- component: appAccountsActivities,
134
- }, {
135
- path: "/analytics/visitors",
136
- component: appAnalyticsVisitors,
137
- }, {
138
- path: "/analytics/trends",
139
- component: appAnalyticsTrends
140
- }, {
141
- path: "/security/sessions",
142
- component: appSecuritySessions
143
- }, {
144
- path: "/security/passwords",
145
- component: appSecurityPasswords
146
- }*/])
@@ -1,48 +0,0 @@
1
- <script setup>
2
- /*
3
- Copyright (c) 2022, all rights reserved.
4
-
5
- All the information provided by this platform is protected by international laws related to
6
- industrial property, intellectual property, copyright and relative international laws.
7
- All intellectual or industrial property rights of the code, texts, trade mark, design,
8
- pictures and any other information belongs to the owner of this platform.
9
-
10
- Without the written permission of the owner, any replication, modification,
11
- transmission, publication is strictly forbidden.
12
-
13
- For more information read the license file including with this software.
14
-
15
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
16
- // ·
17
- */
18
-
19
-
20
- // · import vue tools
21
- import { ref, reactive, onMounted, watch, computed } from "vue"
22
-
23
-
24
- // · import stores
25
- import { useAccountsActivities } from "CloudAudit/stores/accounts/activities"
26
-
27
-
28
- // · implement stores
29
- const storeAccountsActivities = useAccountsActivities()
30
-
31
-
32
- // · initializing
33
- onMounted(() => {
34
- storeAccountsActivities.fetchIfEmpty()
35
- })
36
-
37
- </script>
38
- <template>
39
- <section class="application-component">
40
- <lesli-header title="Account activities"></lesli-header>
41
- <lesli-toolbar @reload="storeAccountsActivities.fetch()" @search="storeAccountsActivities.search"></lesli-toolbar>
42
- <lesli-table
43
- :columns="storeAccountsActivities.columns"
44
- :records="storeAccountsActivities.records">
45
- </lesli-table>
46
- </section>
47
- </template>
48
-
@@ -1,56 +0,0 @@
1
- <script setup>
2
-
3
- // · import vue tools
4
- import { ref, reactive, onMounted, watch, computed } from "vue"
5
-
6
-
7
- // · import stores
8
- import { useAnalytics } from "LesliAudit/vue/stores/analytics"
9
-
10
-
11
- // · implement stores
12
- const storeAnalytics = useAnalytics()
13
-
14
-
15
- // ·
16
- import visitors from "../../components/visitors.vue";
17
- import requests from "../../components/requests.vue";
18
- //import trends from "./trends.vue";
19
-
20
-
21
- // ·
22
- function reload() {
23
- storeAnalytics.fetch()
24
- }
25
-
26
-
27
- // · initializing
28
- onMounted(() => {
29
- storeAnalytics.fetchVisits()
30
- setTimeout(() => storeAnalytics.fetchUsers(), 600)
31
- setTimeout(() => storeAnalytics.fetchControllers(), 1200)
32
- })
33
-
34
- </script>
35
- <template>
36
- <lesli-application-container>
37
- <lesli-header title="Analytics">
38
- <lesli-select :options="[
39
- { label: 'Today', value: 7 },
40
- { label: 'Yesterday', value: 7 },
41
- { label: 'This week', value: 7 },
42
- { label: 'Last 7 days', value: 7 },
43
- { label: 'Last 15 days', value: 7 },
44
- { label: 'Last 30 days', value: 7 },
45
- { label: 'Last 60 days', value: 7 },
46
- { label: 'Last 90 days', value: 7 },
47
- { label: 'Last 6 months', value: 7 },
48
- { label: 'Last 12 months', value: 7 },
49
- { label: 'This year (Jan - Today)', value: 7 }
50
- ]">
51
- </lesli-select>
52
- </lesli-header>
53
- <visitors class="mb-6"></visitors>
54
- <requests></requests>
55
- </lesli-application-container>
56
- </template>
@@ -1,148 +0,0 @@
1
- <script setup>
2
- /*
3
- Copyright (c) 2022, all rights reserved.
4
-
5
- All the information provided by this platform is protected by international laws related to
6
- industrial property, intellectual property, copyright and relative international laws.
7
- All intellectual or industrial property rights of the code, texts, trade mark, design,
8
- pictures and any other information belongs to the owner of this platform.
9
-
10
- Without the written permission of the owner, any replication, modification,
11
- transmission, publication is strictly forbidden.
12
-
13
- For more information read the license file including with this software.
14
-
15
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
16
- // ·
17
- */
18
-
19
-
20
- // · import vue tools
21
- import { ref, reactive, onMounted, watch, computed } from "vue"
22
-
23
-
24
- // . import Lesli components
25
- import { lesliChartBar, lesliChartLine } from "lesli-vue/components"
26
-
27
-
28
- // · import lesli stores
29
- import { useAnalytics } from "LesliAudit/vue/stores/analytics"
30
-
31
-
32
- // · implement stores
33
- const storeAnalytics = useAnalytics()
34
-
35
-
36
- // · define variables
37
- var daySeries = ref([]);
38
- var dayLabels = ref([]);
39
- var timeSeries = ref([]);
40
- var timeLabels = ref([]);
41
- var days = {"Monday":0,"Tuesday":0,"Wednesday":0,"Thursday":0,"Friday":0,"Saturday":0,"Sunday":0}
42
- var hours = {};
43
- var finalDate = ref("");
44
- var startDate = ref("");
45
-
46
-
47
- // · initializing
48
- onMounted(() => {
49
- storeAnalytics.time('day',startDate.value,finalDate.value)
50
- storeAnalytics.time('hour',startDate.value,finalDate.value)
51
- })
52
-
53
-
54
- // ·
55
- watch(() => storeAnalytics.trends.recordsDays, () => {
56
- days = {"Monday":0,"Tuesday":0,"Wednesday":0,"Thursday":0,"Friday":0,"Saturday":0,"Sunday":0}
57
-
58
- if(storeAnalytics.trends.recordsDays){
59
- storeAnalytics.trends.recordsDays.forEach((record) => {
60
- days[record.day] += record.count
61
- })
62
- } else {
63
- storeAnalytics.msg.info("There is no information for this date range")
64
- }
65
-
66
- dayLabels.value = Object.keys(days)
67
- daySeries.value = [{
68
- name: "Requests",
69
- data: Object.values(days)
70
- }]
71
-
72
- daySeries.value = Object.values(days)
73
-
74
- })
75
-
76
-
77
- // ·
78
- watch(() => storeAnalytics.trends.recordsHours, () => {
79
- hours = {}
80
- if(storeAnalytics.trends.recordsHours){
81
- storeAnalytics.trends.recordsHours.forEach((record) => {
82
- hours [record.hour+":00"] = record.count
83
- })
84
- }
85
-
86
- timeLabels.value = Object.keys(hours)
87
- timeSeries.value = [{
88
- name: "Requests",
89
- data: Object.values(hours)
90
- }]
91
- })
92
-
93
-
94
- // Update date range when date picker change
95
- function updateDates(){
96
- if (startDate.value != "" && finalDate.value != "") {
97
-
98
- if (startDate.value >= finalDate.value){
99
- storeAnalytics.msg.danger("Select valid range for date")
100
- } else {
101
- storeAnalytics.time('day',startDate.value,finalDate.value)
102
- storeAnalytics.time('hour',startDate.value,finalDate.value)
103
-
104
- }
105
- }
106
- }
107
-
108
- </script>
109
- <template>
110
- <section class="application-component">
111
- <lesli-header title="Trends">
112
- </lesli-header>
113
-
114
- <!--
115
- <div class="grid-container">
116
- <div class="grid-item">
117
- <label>From</label>
118
- <br/>
119
- <input class="input is-info" type="date" v-model="startDate" @change="updateDates">
120
- </div>
121
- <div class="grid-item">
122
- <label>To</label>
123
- <br/>
124
- <input class="input is-info" type="date" v-model="finalDate" @change="updateDates" />
125
- </div>
126
- </div>
127
- -->
128
- <div class="card mb-5">
129
- <div class="card-content">
130
- <chartBar
131
- title="Requests by day of the week"
132
- :series="daySeries"
133
- :labels="dayLabels">
134
- </chartBar>
135
- </div>
136
- </div>
137
-
138
- <div class="card">
139
- <div class="card-content">
140
- <chartLine
141
- title="Requests by time of the day"
142
- :series="timeSeries"
143
- :labels="timeLabels">
144
- </chartLine>
145
- </div>
146
- </div>
147
- </section>
148
- </template>
@@ -1,71 +0,0 @@
1
- <script setup>
2
- /*
3
- Lesli
4
-
5
- Copyright (c) 2023, Lesli Technologies, S. A.
6
-
7
- This program is free software: you can redistribute it and/or modify
8
- it under the terms of the GNU General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
10
- (at your option) any later version.
11
-
12
- This program is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- GNU General Public License for more details.
16
-
17
- You should have received a copy of the GNU General Public License
18
- along with this program. If not, see http://www.gnu.org/licenses/.
19
-
20
- Lesli · Ruby on Rails SaaS Development Framework.
21
-
22
- Made with ♥ by https://www.lesli.tech
23
- Building a better future, one line of code at a time.
24
-
25
- @contact hello@lesli.tech
26
- @website https://www.lesli.tech
27
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
-
29
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
- */
32
-
33
-
34
- // ·
35
- import { onMounted } from "vue"
36
-
37
-
38
- // ·
39
- import { useUsers } from "LesliSecurity/vue/stores/users"
40
-
41
-
42
- // ·
43
- const storeUsers = useUsers()
44
-
45
-
46
- // ·
47
- const props = defineProps({
48
- component: {
49
- type: Object,
50
- required: true
51
- }
52
- })
53
-
54
-
55
- // ·
56
- onMounted(() => {
57
- //storeUsers.getUsersList()
58
- })
59
-
60
- </script>
61
- <template>
62
- <lesli-card>
63
- <h6 class="title is-6 mb-4">{{ props.component.name }}</h6>
64
- <p>{ { storeUsers.list.length } }</p>
65
- </lesli-card>
66
- </template>
67
- <style scoped>
68
- p {
69
- font-size: 2rem;
70
- }
71
- </style>
@@ -1,71 +0,0 @@
1
- <script setup>
2
- /*
3
- Lesli
4
-
5
- Copyright (c) 2023, Lesli Technologies, S. A.
6
-
7
- This program is free software: you can redistribute it and/or modify
8
- it under the terms of the GNU General Public License as published by
9
- the Free Software Foundation, either version 3 of the License, or
10
- (at your option) any later version.
11
-
12
- This program is distributed in the hope that it will be useful,
13
- but WITHOUT ANY WARRANTY; without even the implied warranty of
14
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
- GNU General Public License for more details.
16
-
17
- You should have received a copy of the GNU General Public License
18
- along with this program. If not, see http://www.gnu.org/licenses/.
19
-
20
- Lesli · Ruby on Rails SaaS Development Framework.
21
-
22
- Made with ♥ by https://www.lesli.tech
23
- Building a better future, one line of code at a time.
24
-
25
- @contact hello@lesli.tech
26
- @website https://www.lesli.tech
27
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
-
29
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
- */
32
-
33
-
34
- // ·
35
- import { onMounted } from "vue"
36
-
37
-
38
- // ·
39
- import { useUsers } from "LesliSecurity/vue/stores/users"
40
-
41
-
42
- // ·
43
- const storeUsers = useUsers()
44
-
45
-
46
- // ·
47
- const props = defineProps({
48
- component: {
49
- type: Object,
50
- required: true
51
- }
52
- })
53
-
54
-
55
- // ·
56
- onMounted(() => {
57
- //storeUsers.getUsersList()
58
- })
59
-
60
- </script>
61
- <template>
62
- <lesli-card>
63
- <h6 class="title is-6 mb-4">{{ props.component.name }}</h6>
64
-
65
- </lesli-card>
66
- </template>
67
- <style scoped>
68
- p {
69
- font-size: 2rem;
70
- }
71
- </style>
@@ -1,8 +0,0 @@
1
- <script setup>
2
-
3
- import LesliDashboard from "Lesli/vue/shared/dashboards/apps/show.vue"
4
-
5
- </script>
6
- <template>
7
- <lesli-dashboard></lesli-dashboard>
8
- </template>
@@ -1,125 +0,0 @@
1
- <script setup>
2
- /*
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · Ruby on Rails SaaS Development Framework.
22
-
23
- Made with ♥ by https://www.lesli.tech
24
- Building a better future, one line of code at a time.
25
-
26
- @contact hello@lesli.tech
27
- @website https://www.lesli.tech
28
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
-
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
- // ·
32
- */
33
-
34
-
35
- // · import vue tools
36
- import { ref, reactive, onMounted, watch, computed } from "vue"
37
-
38
-
39
- // · import lesli stores
40
- import { useRequests } from "LesliAudit/vue/stores/request"
41
-
42
-
43
- // · implement stores
44
- const storeRequests = useRequests()
45
-
46
-
47
- // · define variables
48
- const columns = [{
49
- field: "id",
50
- label: "ID"
51
- }, {
52
- field: "request_controller",
53
- label: "Controller",
54
- sort: true
55
- }, {
56
- field: "request_action",
57
- label: "Action"
58
- }, {
59
- field: "request_count",
60
- align: "center",
61
- label: "Count"
62
- }, {
63
- field: "created_at",
64
- label: "Date"
65
- }]
66
-
67
-
68
- // · initializing
69
- onMounted(() => {
70
- storeRequests.fetch()
71
- })
72
-
73
- </script>
74
- <script>
75
- export default {
76
- methods: {
77
- showUser(user) {
78
- this.url.admin("users/:id", user.id).go()
79
- }
80
- }
81
- }
82
- </script>
83
- <template>
84
- <lesli-application-container>
85
- <lesli-header
86
- title="Account requests"
87
- @reload="storeRequests.fetchLogs()">
88
- </lesli-header>
89
- <lesli-toolbar @search="storeRequests.search">
90
- <!--
91
- <Autocomplete
92
- id="typeahead_id"
93
- placeholder="Start writing..."
94
- :items="[{
95
- 'id': 1,
96
- 'first_name': 'Geneva',
97
- 'last_name': 'Baniard',
98
- 'email': 'gbaniard0@tiny.cc',
99
- 'gender': 'Male',
100
- 'ip_address': '173.141.4.168'
101
- }]"
102
- :minInputLength="1"
103
- :itemProjection="
104
- (item) => {
105
- return item.email;
106
- }
107
- "
108
- @selectItem="selectItemEventHandler"
109
- @onInput="onInputEventHandler"
110
- @onFocus="onFocusEventHandler"
111
- @onBlur="onBlurEventHandler">
112
- </Autocomplete>
113
- -->
114
- </lesli-toolbar>
115
- <lesli-table
116
- @sort="storeRequests.sort"
117
- @paginate="storeRequests.paginate"
118
- :pagination="storeRequests.pagination"
119
- :loading="storeRequests.loading"
120
- :columns="columns"
121
- :records="storeRequests.records"
122
- @click="showUser">
123
- </lesli-table>
124
- </lesli-application-container>
125
- </template>