lesli_admin 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +7 -0
  2. data/Rakefile +5 -0
  3. data/app/assets/config/lesli_admin_manifest.js +38 -0
  4. data/app/assets/javascripts/lesli_admin/application.js +3713 -0
  5. data/app/assets/stylesheets/lesli_admin/application.css +15 -0
  6. data/app/controllers/lesli_admin/accounts_controller.rb +125 -0
  7. data/app/controllers/lesli_admin/application_controller.rb +4 -0
  8. data/app/controllers/lesli_admin/dashboards_controller.rb +60 -0
  9. data/app/controllers/lesli_admin/users_controller.rb +244 -0
  10. data/app/helpers/lesli_admin/application_helper.rb +4 -0
  11. data/app/helpers/lesli_admin/dashboards_helper.rb +4 -0
  12. data/app/jobs/lesli_admin/application_job.rb +4 -0
  13. data/app/mailers/lesli_admin/application_mailer.rb +6 -0
  14. data/app/models/lesli_admin/account.rb +66 -0
  15. data/app/models/lesli_admin/application_record.rb +5 -0
  16. data/app/models/lesli_admin/dashboard.rb +4 -0
  17. data/app/models/lesli_admin/user.rb +4 -0
  18. data/app/services/lesli_admin/user_service.rb +300 -0
  19. data/app/views/layouts/lesli_admin/application.html.erb +15 -0
  20. data/app/views/lesli_admin/accounts/_account.html.erb +2 -0
  21. data/app/views/lesli_admin/accounts/_form.html.erb +17 -0
  22. data/app/views/lesli_admin/accounts/edit.html.erb +10 -0
  23. data/app/views/lesli_admin/accounts/index.html.erb +34 -0
  24. data/app/views/lesli_admin/accounts/new.html.erb +9 -0
  25. data/app/views/lesli_admin/accounts/show.html.erb +34 -0
  26. data/app/views/lesli_admin/dashboards/_dashboard.html.erb +2 -0
  27. data/app/views/lesli_admin/dashboards/_form.html.erb +17 -0
  28. data/app/views/lesli_admin/dashboards/edit.html.erb +10 -0
  29. data/app/views/lesli_admin/dashboards/index.html.erb +14 -0
  30. data/app/views/lesli_admin/dashboards/new.html.erb +9 -0
  31. data/app/views/lesli_admin/dashboards/show.html.erb +1 -0
  32. data/app/views/lesli_admin/partials/_engine-navigation.html.erb +52 -0
  33. data/app/views/lesli_admin/users/edit.html.erb +10 -0
  34. data/app/views/lesli_admin/users/index.html.erb +34 -0
  35. data/app/views/lesli_admin/users/new.html.erb +34 -0
  36. data/app/views/lesli_admin/users/show.html.erb +10 -0
  37. data/config/routes.rb +13 -0
  38. data/lib/lesli_admin/engine.rb +18 -0
  39. data/lib/lesli_admin/version.rb +3 -0
  40. data/lib/lesli_admin.rb +6 -0
  41. data/lib/tasks/lesli_admin_tasks.rake +4 -0
  42. data/lib/vue/application.js +153 -0
  43. data/lib/vue/apps/account/components/address-form.vue +134 -0
  44. data/lib/vue/apps/account/components/contact-form.vue +162 -0
  45. data/lib/vue/apps/account/components/form-information.vue +107 -0
  46. data/lib/vue/apps/account/show.vue +89 -0
  47. data/lib/vue/apps/dashboard/show.vue +33 -0
  48. data/lib/vue/apps/profile/components/change-email.vue +38 -0
  49. data/lib/vue/apps/profile/components/subscriptions.vue +94 -0
  50. data/lib/vue/apps/profile/show.vue +141 -0
  51. data/lib/vue/apps/users/components/information-card.vue +119 -0
  52. data/lib/vue/apps/users/components/information-form.vue +180 -0
  53. data/lib/vue/apps/users/components/integrations-information.vue +61 -0
  54. data/lib/vue/apps/users/components/management-roles.vue +109 -0
  55. data/lib/vue/apps/users/components/management-security.vue +113 -0
  56. data/lib/vue/apps/users/components/management-sessions.vue +106 -0
  57. data/lib/vue/apps/users/components/management-settings.vue +94 -0
  58. data/lib/vue/apps/users/index.vue +201 -0
  59. data/lib/vue/apps/users/new.vue +181 -0
  60. data/lib/vue/apps/users/show.vue +101 -0
  61. data/lib/vue/stores/account.js +113 -0
  62. data/lib/vue/stores/accountSettings.js +342 -0
  63. data/lib/vue/stores/descriptor.js +116 -0
  64. data/lib/vue/stores/descriptors.js +167 -0
  65. data/lib/vue/stores/integration.js +103 -0
  66. data/lib/vue/stores/role.js +243 -0
  67. data/lib/vue/stores/roles.js +89 -0
  68. data/lib/vue/stores/systemController.js +67 -0
  69. data/lib/vue/stores/user.js +319 -0
  70. data/lib/vue/stores/users.js +150 -0
  71. data/readme.md +28 -0
  72. metadata +130 -0
@@ -0,0 +1,6 @@
1
+ require "lesli_admin/version"
2
+ require "lesli_admin/engine"
3
+
4
+ module LesliAdmin
5
+ # Your code goes here...
6
+ end
@@ -0,0 +1,4 @@
1
+ # desc "Explaining what the task does"
2
+ # task :lesli_admin do
3
+ # # Task goes here
4
+ # end
@@ -0,0 +1,153 @@
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
+ // ·
34
+ import application from "Lesli/application"
35
+
36
+
37
+ // ·
38
+ import applicationDashboardShow from "LesliAdmin/apps/dashboard/show.vue"
39
+ import applicationAccountShow from "LesliAdmin/apps/account/show.vue"
40
+
41
+ //import applicationUsersProfile from "LesliApp/administration/apps/profile/show.vue"
42
+ import applicationUsersIndex from "LesliAdmin/apps/users/index.vue"
43
+ ///import applicationUsersShow from "LesliApp/administration/apps/users/show.vue"
44
+ //import applicationUsersNew from "LesliAdmin/apps/users/new.vue"
45
+
46
+
47
+ // ·
48
+ application("LesliAdmin", [{
49
+ path: "/dashboard",
50
+ component: applicationDashboardShow
51
+ },{
52
+ path: "/account",
53
+ component: applicationAccountShow
54
+ }, {
55
+ path: "/users",
56
+ component: applicationUsersIndex
57
+ }/*, {
58
+ path: "/users/new",
59
+ component: applicationUsersNew
60
+ }*/])
61
+
62
+ /*
63
+ // ·
64
+ import applicationAccountDashboard from "CloudAdmin/apps/accounts/dashboard.vue"
65
+
66
+
67
+
68
+ import applicationDescriptorsPrivileges from "LesliApp/administration/apps/descriptors/privileges.vue"
69
+ import applicationDescriptorsIndex from "LesliApp/administration/apps/descriptors/index.vue"
70
+ import applicationDescriptorsEdit from "LesliApp/administration/apps/descriptors/edit.vue"
71
+ import applicationDescriptorsShow from "LesliApp/administration/apps/descriptors/show.vue"
72
+ import applicationDescriptorsNew from "LesliApp/administration/apps/descriptors/new.vue"
73
+
74
+ import applicationRolesIndex from "LesliApp/administration/apps/roles/index.vue"
75
+ import applicationRolesShow from "LesliApp/administration/apps/roles/show.vue"
76
+ import applicationRolesEdit from "LesliApp/administration/apps/roles/edit.vue"
77
+ import applicationRolesNew from "LesliApp/administration/apps/roles/new.vue"
78
+
79
+ import applicationIntegrationsIndex from "LesliApp/administration/apps/integrations/index.vue"
80
+ import applicationIntegrationsNew from "LesliApp/administration/apps/integrations/new.vue"
81
+ import applicationSecurity from "LesliApp/administration/apps/security/index.vue"
82
+ import applicationDatetime from "LesliApp/administration/apps/date_time/index.vue"
83
+ import applicationBranding from "LesliApp/administration/apps/branding/index.vue"
84
+ import applicationTheme from "LesliApp/administration/apps/theme/index.vue"
85
+ import applicationAccountShow from "LesliApp/administration/apps/accounts/show.vue"
86
+
87
+
88
+ // ·
89
+ application("Lesli", [{
90
+ path: "/",
91
+ component: applicationAccountDashboard
92
+ }, {
93
+ path: "/account",
94
+ component: applicationAccountShow
95
+ }, {
96
+ path: "/users/:id",
97
+ component: applicationUsersShow
98
+ }, {
99
+ path: "/users/new",
100
+ component: applicationUsersNew
101
+ },{
102
+ path: "/profile",
103
+ component: applicationUsersProfile
104
+ }, {
105
+ path: "/descriptors",
106
+ component: applicationDescriptorsIndex
107
+ }, {
108
+ path: "/descriptors/:id/edit",
109
+ component: applicationDescriptorsEdit
110
+ }, {
111
+ path: "/descriptors/:id",
112
+ component: applicationDescriptorsShow
113
+ }, {
114
+ path: "/descriptors/:id/privileges",
115
+ component: applicationDescriptorsPrivileges
116
+ }, {
117
+ path: "/descriptors/new",
118
+ component: applicationDescriptorsNew
119
+ }, {
120
+ path: "/roles",
121
+ component: applicationRolesIndex
122
+ }, {
123
+ path: "/roles/new",
124
+ component: applicationRolesNew
125
+ }, {
126
+ path: "/roles/:id",
127
+ component: applicationRolesShow
128
+ }, {
129
+ path: "/roles/:id/edit",
130
+ component: applicationRolesEdit
131
+ }, {
132
+ path: "/account/integrations",
133
+ component: applicationIntegrationsIndex
134
+ }, {
135
+ path: "/account/integrations/new",
136
+ component: applicationIntegrationsNew
137
+ }, {
138
+ path: "/account/settings/security",
139
+ component: applicationSecurity
140
+ }, {
141
+ path: "/account/settings/date_time",
142
+ component: applicationDatetime
143
+ }, {
144
+ path: "/account/settings/branding",
145
+ component: applicationBranding
146
+ }, {
147
+ path: "/account/settings/theme",
148
+ component: applicationTheme
149
+ }, {
150
+ path: "/account/settings/theme",
151
+ component: applicationTheme
152
+ }])
153
+ */
@@ -0,0 +1,134 @@
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 · Your Smart Business Assistant.
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://lesli.tech
28
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
+
30
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
+ // ·
32
+
33
+ */
34
+
35
+
36
+ // · import vue tools
37
+ import { onMounted, computed, ref } from "vue"
38
+
39
+ // · import lesli stores
40
+ import { useAccount } from "CloudAdmin/stores/account"
41
+
42
+ // · implement stores
43
+ const storeAccount = useAccount()
44
+
45
+ // · translations
46
+ const translations = {
47
+ shared: I18n.t("core.shared"),
48
+ core: {
49
+ onboardings: I18n.t("core.onboardings"),
50
+ accounts: I18n.t("core.accounts"),
51
+ }
52
+ }
53
+
54
+ const streetNumber = ref("")
55
+ const postalCode = ref("")
56
+
57
+ onMounted(() => {
58
+ storeAccount.getOptions()
59
+ })
60
+
61
+ </script>
62
+ <template>
63
+ <form @submit.prevent="storeAccount.updateInfo">
64
+ <div class="field">
65
+ <label class="label">{{ translations.core.onboardings.view_text_column_street }}</label>
66
+ <div class="control">
67
+ <input
68
+ class="input"
69
+ type="text"
70
+ :placeholder="translations.core.onboardings.view_placeholder_street_number"
71
+ v-model="storeAccount.accountInfo.address"
72
+ />
73
+ </div>
74
+ </div>
75
+
76
+ <div class="field">
77
+ <label class="label">{{ translations.core.onboardings.view_text_column_postal_code }}</label>
78
+ <div class="control">
79
+ <input
80
+ class="input"
81
+ type="text"
82
+ placeholder="XXXXXX"
83
+ v-model="storeAccount.accountInfo.postal_code"
84
+ />
85
+ </div>
86
+ </div>
87
+
88
+ <div class="field">
89
+ <label class="label">{{ translations.core.onboardings.view_text_column_city }}</label>
90
+ <div class="control">
91
+ <input
92
+ class="input"
93
+ type="text"
94
+ :placeholder="translations.core.onboardings.view_placeholder_city"
95
+ v-model="storeAccount.accountInfo.city"
96
+ />
97
+ </div>
98
+ </div>
99
+
100
+ <div class="field">
101
+ <label class="label">{{ translations.core.accounts.column_country }}</label>
102
+ <div class="control">
103
+ <lesli-select
104
+ :options="storeAccount.options.countries"
105
+ v-model="storeAccount.accountInfo.country"
106
+ >
107
+ </lesli-select>
108
+ </div>
109
+ </div>
110
+
111
+ <div class="field">
112
+ <label class="label">{{ translations.core.accounts.column_region }}</label>
113
+ <div class="control">
114
+ <lesli-select
115
+ :options="storeAccount.options.regions"
116
+ v-model="storeAccount.accountInfo.region"
117
+ >
118
+ </lesli-select>
119
+ </div>
120
+ </div>
121
+
122
+ <div class="field">
123
+ <div class="field-body">
124
+ <div class="field">
125
+ <div class="control">
126
+ <lesli-button icon="save">
127
+ {{ translations.shared.view_btn_save }}
128
+ </lesli-button>
129
+ </div>
130
+ </div>
131
+ </div>
132
+ </div>
133
+ </form>
134
+ </template>
@@ -0,0 +1,162 @@
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 · Your Smart Business Assistant.
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://lesli.tech
28
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
+
30
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
+ // ·
32
+
33
+ */
34
+
35
+
36
+ // · import vue tools
37
+ import { computed } from "vue"
38
+
39
+ // · import lesli stores
40
+ import { useAccount } from "CloudAdmin/stores/account"
41
+
42
+ // · implement stores
43
+ const storeAccount = useAccount()
44
+
45
+ // · translations
46
+ const translations = {
47
+ shared: I18n.t("core.shared"),
48
+ core: {
49
+ onboardings: I18n.t("core.onboardings"),
50
+ accounts: I18n.t("core.accounts"),
51
+ }
52
+ }
53
+
54
+ // . get reactive info from onboarding store
55
+ const companyInfo = computed(()=> storeOnboarding.companyInfo)
56
+
57
+ </script>
58
+ <template>
59
+ <form @submit.prevent="storeAccount.updateInfo">
60
+ <div class="field">
61
+ <label class="label">{{ translations.core.onboardings.view_text_email }}</label>
62
+ <div class="control">
63
+ <input
64
+ class="input"
65
+ type="text"
66
+ :placeholder="translations.core.onboardings.view_placeholder_email"
67
+ v-model="storeAccount.accountInfo.public_email"
68
+ />
69
+ </div>
70
+ </div>
71
+
72
+ <div class="field">
73
+ <label class="label">{{translations.shared.view_text_telephone}}</label>
74
+ <div class="control">
75
+ <input
76
+ class="input"
77
+ type="text"
78
+ :placeholder= "translations.core.onboardings.view_placeholder_phone"
79
+ v-model="storeAccount.accountInfo.phone_number_1"
80
+ />
81
+ </div>
82
+ </div>
83
+
84
+ <p>{{translations.core.onboardings.view_title_social_profiles}}</p>
85
+
86
+ <div class="field">
87
+ <label class="label">{{ translations.core.accounts.column_github }}</label>
88
+ <div class="control">
89
+ <input
90
+ class="input"
91
+ type="text"
92
+ :placeholder="translations.core.onboardings.view_placeholder_github"
93
+ v-model="storeAccount.accountInfo.github"
94
+ />
95
+ </div>
96
+ </div>
97
+
98
+
99
+ <div class="field">
100
+ <label class="label">{{ translations.core.accounts.column_twitter }}</label>
101
+ <div class="control">
102
+ <input
103
+ class="input"
104
+ type="text"
105
+ :placeholder="translations.core.onboardings.view_placeholder_twitter"
106
+ v-model="storeAccount.accountInfo.twitter"
107
+ />
108
+ </div>
109
+ </div>
110
+
111
+
112
+ <div class="field">
113
+ <label class="label">{{ translations.core.accounts.column_youtube }}</label>
114
+ <div class="control">
115
+ <input
116
+ class="input"
117
+ type="text"
118
+ :placeholder="translations.core.onboardings.view_placeholder_youtube"
119
+ v-model="storeAccount.accountInfo.youtube"
120
+ />
121
+ </div>
122
+ </div>
123
+
124
+
125
+ <div class="field">
126
+ <label class="label">{{ translations.core.accounts.column_linkedin }}</label>
127
+ <div class="control">
128
+ <input
129
+ class="input"
130
+ type="text"
131
+ :placeholder="translations.core.onboardings.view_placeholder_linkedin"
132
+ v-model="storeAccount.accountInfo.linkedin"
133
+ />
134
+ </div>
135
+ </div>
136
+
137
+
138
+ <div class="field">
139
+ <label class="label">{{ translations.core.accounts.column_facebook }}</label>
140
+ <div class="control">
141
+ <input
142
+ class="input"
143
+ type="text"
144
+ :placeholder="translations.core.onboardings.view_placeholder_facebook"
145
+ v-model="storeAccount.accountInfo.facebook"
146
+ />
147
+ </div>
148
+ </div>
149
+
150
+ <div class="field">
151
+ <div class="field-body">
152
+ <div class="field">
153
+ <div class="control">
154
+ <lesli-button icon="save">
155
+ {{ translations.shared.view_btn_save }}
156
+ </lesli-button>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ </div>
161
+ </form>
162
+ </template>
@@ -0,0 +1,107 @@
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
+ // · import vue tools
35
+ import { ref, reactive, onMounted, watch, computed } from "vue"
36
+
37
+
38
+ // · import lesli stores
39
+ import { useAccount } from "LesliAdmin/stores/account"
40
+
41
+
42
+ // · implement stores
43
+ const storeAccount = useAccount()
44
+
45
+
46
+ // ·
47
+ const translations = {
48
+ shared: I18n.t("core.shared"),
49
+ passwords: I18n.t("core.users/passwords"),
50
+ core: {
51
+ accounts: I18n.t("core.accounts"),
52
+ onboardings: I18n.t("core.onboardings")
53
+ }
54
+ }
55
+
56
+ </script>
57
+ <template>
58
+ <form @submit.prevent="storeAccount.update">
59
+ <div class="field">
60
+ <label class="label">{{ translations.core.accounts.column_company_name }}</label>
61
+ <div class="control">
62
+ <input
63
+ class="input"
64
+ type="text"
65
+ :placeholder="translations.core.onboardings.view_placeholder_company_name"
66
+ v-model="storeAccount.accountInfo.company_name"
67
+ >
68
+ </div>
69
+ </div>
70
+
71
+ <div class="field">
72
+ <label class="label">{{ translations.core.accounts.column_company_legal_name }}</label>
73
+ <div class="control">
74
+ <input
75
+ class="input"
76
+ type="text"
77
+ :placeholder="translations.core.onboardings.view_placeholder_company_legal_name"
78
+ v-model="storeAccount.accountInfo.company_name_legal"
79
+ >
80
+ </div>
81
+ </div>
82
+
83
+ <div class="field">
84
+ <label class="label">{{ translations.core.accounts.column_tag_line }}</label>
85
+ <div class="control">
86
+ <input
87
+ class="input"
88
+ type="text"
89
+ :placeholder="translations.core.onboardings.view_placeholder_company_slogan"
90
+ v-model="storeAccount.accountInfo.company_tagline"
91
+ >
92
+ </div>
93
+ </div>
94
+
95
+ <div class="field">
96
+ <div class="field-body">
97
+ <div class="field">
98
+ <div class="control">
99
+ <lesli-button icon="save">
100
+ {{ translations.shared.view_btn_save }}
101
+ </lesli-button>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ </div>
106
+ </form>
107
+ </template>
@@ -0,0 +1,89 @@
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
+ // · import vue tools
35
+ import { computed, onMounted } from "vue"
36
+
37
+
38
+ // · import lesli stores
39
+ import { useAccount } from "LesliAdmin/stores/account"
40
+
41
+
42
+ // · import account components
43
+ import formInformation from "./components/form-information.vue"
44
+ // import addressForm from "./components/address-form.vue"
45
+ // import contactForm from "./components/contact-form.vue"
46
+
47
+
48
+ // · implement stores
49
+ const storeAccount = useAccount()
50
+
51
+
52
+ // · translations
53
+ const translations = {
54
+ core: {
55
+ onboardings: I18n.t("core.onboardings"),
56
+ accounts: I18n.t("core.accounts")
57
+ }
58
+ }
59
+
60
+
61
+ // . get reactive info from onboarding store
62
+ const companyInfo = computed(()=> storeOnboarding.companyInfo)
63
+
64
+
65
+ // .
66
+ onMounted(() => {
67
+ storeAccount.fetch()
68
+ })
69
+
70
+ </script>
71
+ <template>
72
+ <lesli-content>
73
+ <lesli-header title="Account information">
74
+ </lesli-header>
75
+ <lesli-tabs v-model="tab">
76
+ <lesli-tab-item title="General Information" icon="business">
77
+ <form-information></form-information>
78
+ </lesli-tab-item>
79
+ </lesli-tabs>
80
+ </lesli-content>
81
+ <!--
82
+ <lesli-tab-item title="Address" icon="location_on">
83
+ <address-form></address-form>
84
+ </lesli-tab-item>
85
+ <lesli-tab-item title="Contact" icon="contact_page">
86
+ <contact-form></contact-form>
87
+ </lesli-tab-item>
88
+ -->
89
+ </template>
@@ -0,0 +1,33 @@
1
+ <script setup>
2
+
3
+
4
+ import dashboardComponent from "Lesli/layouts/dashboard-component.vue"
5
+ import { lesliChartLine } from "lesli-vue/components"
6
+
7
+ </script>
8
+ <template>
9
+ <lesli-application>
10
+ <lesli-header title="Dashboard"></lesli-header>
11
+
12
+ <div class="columns">
13
+ <div class="column">
14
+ <lesli-content>
15
+ <lesli-chart-line
16
+ title="My daily activity graph"
17
+ :series="[{ data:[4, 1, 4, 2, 5] }]"
18
+ :labels="['Monday','Tuesday','Wednesday', 'Thursday', 'Friday']">
19
+ </lesli-chart-line>
20
+ </lesli-content>
21
+ </div>
22
+ <div class="column">
23
+ <lesli-content>
24
+ <lesli-chart-line
25
+ title="My daily activity graph"
26
+ :series="[{ name: 'Last week', data:[4, 1, 4, 2, 5] }, { name: 'Current week', data:[3, 2, 5, 4, 2] }]"
27
+ :labels="['Monday','Tuesday','Wednesday', 'Thursday', 'Friday']">
28
+ </lesli-chart-line>
29
+ </lesli-content>
30
+ </div>
31
+ </div>
32
+ </lesli-application>
33
+ </template>