lesli_admin 0.3.0 → 0.4.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 (49) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/lesli_admin/application.js +284 -841
  3. data/app/controllers/lesli_admin/accounts_controller.rb +3 -5
  4. data/app/controllers/lesli_admin/dashboard/components_controller.rb +60 -0
  5. data/app/controllers/lesli_admin/dashboards_controller.rb +26 -50
  6. data/app/models/lesli_admin/account.rb +6 -0
  7. data/app/{controllers/lesli_admin/profiles_controller.rb → models/lesli_admin/dashboard/component.rb} +13 -19
  8. data/app/models/lesli_admin/dashboard.rb +58 -0
  9. data/app/services/lesli_admin/account_service.rb +39 -0
  10. data/app/views/lesli_admin/dashboards/edit.html.erb +29 -7
  11. data/app/views/lesli_admin/dashboards/index.html.erb +29 -11
  12. data/app/views/lesli_admin/dashboards/new.html.erb +29 -6
  13. data/app/views/lesli_admin/dashboards/show.html.erb +31 -0
  14. data/app/views/lesli_admin/partials/_engine-navigation.html.erb +0 -1
  15. data/config/locales/translations.en.yml +26 -0
  16. data/config/locales/translations.es.yml +26 -0
  17. data/config/routes.rb +46 -5
  18. data/db/migrate/0101050110_create_lesli_admin_dashboards.rb +51 -0
  19. data/db/migrate/0101050210_create_lesli_admin_dashboard_components.rb +53 -0
  20. data/lib/lesli_admin/engine.rb +1 -0
  21. data/lib/lesli_admin/version.rb +1 -1
  22. data/lib/vue/application.js +28 -15
  23. data/lib/vue/apps/account/components/{address-form.vue → form-address.vue} +27 -42
  24. data/lib/vue/apps/account/components/form-contact.vue +122 -0
  25. data/lib/vue/apps/account/components/form-information.vue +12 -30
  26. data/lib/vue/apps/account/show.vue +13 -12
  27. data/lib/vue/apps/{users/components/integrations-information.vue → dashboards/components/lesli-version.vue} +36 -26
  28. data/lib/vue/apps/{profile/components/change-email.vue → dashboards/show.vue} +9 -6
  29. data/lib/vue/stores/translations.json +52 -18
  30. metadata +17 -30
  31. data/app/controllers/lesli_admin/users_controller.rb +0 -238
  32. data/app/services/lesli_admin/user_service.rb +0 -265
  33. data/app/views/lesli_admin/dashboards/_dashboard.html.erb +0 -2
  34. data/app/views/lesli_admin/dashboards/_form.html.erb +0 -17
  35. data/lib/vue/apps/account/components/contact-form.vue +0 -162
  36. data/lib/vue/apps/dashboard/show.vue +0 -30
  37. data/lib/vue/apps/profile/components/subscriptions.vue +0 -94
  38. data/lib/vue/apps/profile/show.vue +0 -152
  39. data/lib/vue/apps/users/components/information-card.vue +0 -116
  40. data/lib/vue/apps/users/components/information-form.vue +0 -177
  41. data/lib/vue/apps/users/components/management-roles.vue +0 -109
  42. data/lib/vue/apps/users/components/management-security.vue +0 -113
  43. data/lib/vue/apps/users/components/management-sessions.vue +0 -106
  44. data/lib/vue/apps/users/components/management-settings.vue +0 -94
  45. data/lib/vue/apps/users/index.vue +0 -206
  46. data/lib/vue/apps/users/new.vue +0 -181
  47. data/lib/vue/apps/users/show.vue +0 -116
  48. data/lib/vue/stores/user.js +0 -331
  49. data/lib/vue/stores/users.js +0 -175
@@ -0,0 +1,53 @@
1
+ =begin
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
+ =end
32
+
33
+ class CreateLesliAdminDashboardComponents < ActiveRecord::Migration[6.1]
34
+ def change
35
+ gem_path = Lesli::System.engine("Lesli", "dir")
36
+ table_base_structure = JSON.parse(File.read(File.join(gem_path, "db", "structure", "00000502_dashboard_components.json")))
37
+ create_table :lesli_admin_dashboard_components do |t|
38
+ table_base_structure.each do |column|
39
+ t.send(
40
+ column["type"].parameterize.underscore.to_sym,
41
+ column["name"].parameterize.underscore.to_sym
42
+ )
43
+ end
44
+ t.timestamps
45
+ end
46
+
47
+ add_reference(
48
+ :lesli_admin_dashboard_components, :dashboard,
49
+ foreign_key: { to_table: :lesli_admin_dashboards },
50
+ index: { name: "lesli_admin_dashboard_components_dashboards" }
51
+ )
52
+ end
53
+ end
@@ -29,6 +29,7 @@ Building a better future, one line of code at a time.
29
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
30
  // ·
31
31
  =end
32
+
32
33
  module LesliAdmin
33
34
  class Engine < ::Rails::Engine
34
35
  isolate_namespace LesliAdmin
@@ -1,4 +1,4 @@
1
1
  module LesliAdmin
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  BUILD = "1697000148"
4
4
  end
@@ -40,11 +40,24 @@ import translations from "LesliAdmin/stores/translations.json"
40
40
 
41
41
 
42
42
  // · Import engine applications
43
- import applicationDashboardShow from "LesliAdmin/apps/dashboard/show.vue"
44
43
  import applicationAccountShow from "LesliAdmin/apps/account/show.vue"
45
- import applicationUsersIndex from "LesliAdmin/apps/users/index.vue"
46
- import applicationUsersShow from "LesliAdmin/apps/users/show.vue"
47
- import applicationProfile from "LesliAdmin/apps/profile/show.vue"
44
+
45
+
46
+ // ·
47
+ import appDashboardShow from "Lesli/shared/dashboards/apps/show.vue"
48
+ import appDashboardEdit from "Lesli/shared/dashboards/apps/edit.vue"
49
+
50
+
51
+ // ·
52
+ import componentDashboardLesliVersion from "LesliAdmin/apps/dashboards/components/lesli-version.vue"
53
+
54
+
55
+ // ·
56
+ const dashboardProps = {
57
+ components: {
58
+ "admin-lesli-version": componentDashboardLesliVersion
59
+ }
60
+ }
48
61
 
49
62
 
50
63
  // · Buil Lesli translations
@@ -53,18 +66,18 @@ translation(translations)
53
66
 
54
67
  // · Build a new Lesli application
55
68
  application("LesliAdmin", [{
56
- path: "/dashboard",
57
- component: applicationDashboardShow
58
- },{
59
- path: "/account",
60
- component: applicationAccountShow
69
+ path: "/",
70
+ component: appDashboardShow,
71
+ props: dashboardProps
61
72
  }, {
62
- path: "/users",
63
- component: applicationUsersIndex
73
+ path: "/dashboard",
74
+ component: appDashboardShow,
75
+ props: dashboardProps
64
76
  }, {
65
- path: "/users/:id",
66
- component: applicationUsersShow
77
+ path: "/dashboards/:id/edit",
78
+ component: appDashboardEdit,
79
+ props: dashboardProps
67
80
  }, {
68
- path: "/profile",
69
- component: applicationProfile
81
+ path: "/account",
82
+ component: applicationAccountShow
70
83
  }])
@@ -1,6 +1,5 @@
1
1
  <script setup>
2
2
  /*
3
-
4
3
  Lesli
5
4
 
6
5
  Copyright (c) 2023, Lesli Technologies, S. A.
@@ -18,103 +17,89 @@ GNU General Public License for more details.
18
17
  You should have received a copy of the GNU General Public License
19
18
  along with this program. If not, see http://www.gnu.org/licenses/.
20
19
 
21
- Lesli · Your Smart Business Assistant.
20
+ Lesli · Ruby on Rails SaaS Development Framework.
22
21
 
23
22
  Made with ♥ by https://www.lesli.tech
24
23
  Building a better future, one line of code at a time.
25
24
 
26
25
  @contact hello@lesli.tech
27
- @website https://lesli.tech
26
+ @website https://www.lesli.tech
28
27
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
28
 
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
30
  // ·
32
-
33
31
  */
34
32
 
35
33
 
36
34
  // · import vue tools
37
35
  import { onMounted, computed, ref } from "vue"
38
36
 
37
+
39
38
  // · import lesli stores
40
- import { useAccount } from "CloudAdmin/stores/account"
39
+ import { useAccount } from "Lesli/stores/account"
40
+
41
41
 
42
42
  // · implement stores
43
43
  const storeAccount = useAccount()
44
44
 
45
+
45
46
  // · translations
46
47
  const translations = {
47
- shared: I18n.t("core.shared"),
48
- core: {
49
- onboardings: I18n.t("core.onboardings"),
50
- accounts: I18n.t("core.accounts"),
51
- }
48
+ shared: i18n.t("lesli.shared"),
49
+ admin: i18n.t("lesli_admin.accounts"),
52
50
  }
53
51
 
52
+
53
+ // ·
54
54
  const streetNumber = ref("")
55
55
  const postalCode = ref("")
56
56
 
57
+
58
+ // ·
57
59
  onMounted(() => {
58
- storeAccount.getOptions()
60
+ //storeAccount.getOptions()
59
61
  })
60
62
 
61
63
  </script>
62
64
  <template>
63
- <form @submit.prevent="storeAccount.updateInfo">
65
+ <lesli-form flat @submit="storeAccount.update">
64
66
  <div class="field">
65
- <label class="label">{{ translations.core.onboardings.view_text_column_street }}</label>
67
+ <label class="label">{{ translations.admin.column_address }}</label>
66
68
  <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
- />
69
+ <input class="input" type="text" v-model="storeAccount.accountInfo.address" />
73
70
  </div>
74
71
  </div>
75
72
 
76
73
  <div class="field">
77
- <label class="label">{{ translations.core.onboardings.view_text_column_postal_code }}</label>
74
+ <label class="label">{{ translations.admin.column_postal_code }}</label>
78
75
  <div class="control">
79
- <input
80
- class="input"
81
- type="text"
82
- placeholder="XXXXXX"
83
- v-model="storeAccount.accountInfo.postal_code"
84
- />
76
+ <input class="input" type="text" v-model="storeAccount.accountInfo.postal_code" />
85
77
  </div>
86
78
  </div>
87
79
 
88
80
  <div class="field">
89
- <label class="label">{{ translations.core.onboardings.view_text_column_city }}</label>
81
+ <label class="label">{{ translations.admin.column_city }}</label>
90
82
  <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
- />
83
+ <input class="input" type="text" v-model="storeAccount.accountInfo.city" />
97
84
  </div>
98
85
  </div>
99
86
 
100
87
  <div class="field">
101
- <label class="label">{{ translations.core.accounts.column_country }}</label>
88
+ <label class="label">{{ translations.admin.column_country }}</label>
102
89
  <div class="control">
103
90
  <lesli-select
104
91
  :options="storeAccount.options.countries"
105
- v-model="storeAccount.accountInfo.country"
106
- >
92
+ v-model="storeAccount.accountInfo.country">
107
93
  </lesli-select>
108
94
  </div>
109
95
  </div>
110
96
 
111
97
  <div class="field">
112
- <label class="label">{{ translations.core.accounts.column_region }}</label>
98
+ <label class="label">{{ translations.admin.column_region }}</label>
113
99
  <div class="control">
114
100
  <lesli-select
115
101
  :options="storeAccount.options.regions"
116
- v-model="storeAccount.accountInfo.region"
117
- >
102
+ v-model="storeAccount.accountInfo.region">
118
103
  </lesli-select>
119
104
  </div>
120
105
  </div>
@@ -124,11 +109,11 @@ onMounted(() => {
124
109
  <div class="field">
125
110
  <div class="control">
126
111
  <lesli-button icon="save">
127
- {{ translations.shared.view_btn_save }}
112
+ {{ translations.shared.button_save }}
128
113
  </lesli-button>
129
114
  </div>
130
115
  </div>
131
116
  </div>
132
117
  </div>
133
- </form>
118
+ </lesli-form>
134
119
  </template>
@@ -0,0 +1,122 @@
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 } from "vue"
36
+
37
+
38
+ // · import lesli stores
39
+ import { useAccount } from "Lesli/stores/account"
40
+
41
+
42
+ // · implement stores
43
+ const storeAccount = useAccount()
44
+
45
+
46
+ // · translations
47
+ const translations = {
48
+ shared: i18n.t("lesli.shared"),
49
+ admin: i18n.t("lesli_admin.accounts"),
50
+ }
51
+
52
+
53
+ // . get reactive info from onboarding store
54
+ const companyInfo = computed(()=> storeOnboarding.companyInfo)
55
+
56
+ </script>
57
+ <template>
58
+ <lesli-form flat @submit="storeAccount.update">
59
+ <div class="field">
60
+ <label class="label">{{ translations.admin.column_public_email }}</label>
61
+ <div class="control">
62
+ <input class="input" type="text" v-model="storeAccount.accountInfo.public_email" />
63
+ </div>
64
+ </div>
65
+
66
+ <div class="field">
67
+ <label class="label">{{translations.admin.column_phone_number}}</label>
68
+ <div class="control">
69
+ <input class="input" type="text" v-model="storeAccount.accountInfo.phone_number_1" />
70
+ </div>
71
+ </div>
72
+
73
+ <p class="my-5">{{translations.admin.view_subtitle_social_media }}</p>
74
+
75
+ <div class="field">
76
+ <label class="label">Github</label>
77
+ <div class="control">
78
+ <input class="input" type="text" v-model="storeAccount.accountInfo.github" />
79
+ </div>
80
+ </div>
81
+
82
+ <div class="field">
83
+ <label class="label">Twitter</label>
84
+ <div class="control">
85
+ <input class="input" type="text" v-model="storeAccount.accountInfo.twitter" />
86
+ </div>
87
+ </div>
88
+
89
+ <div class="field">
90
+ <label class="label">YouTube</label>
91
+ <div class="control">
92
+ <input class="input" type="text" v-model="storeAccount.accountInfo.youtube" />
93
+ </div>
94
+ </div>
95
+
96
+ <div class="field">
97
+ <label class="label">Linkedin</label>
98
+ <div class="control">
99
+ <input class="input" type="text" v-model="storeAccount.accountInfo.linkedin" />
100
+ </div>
101
+ </div>
102
+
103
+ <div class="field">
104
+ <label class="label">Facebook</label>
105
+ <div class="control">
106
+ <input class="input" type="text" v-model="storeAccount.accountInfo.facebook" />
107
+ </div>
108
+ </div>
109
+
110
+ <div class="field">
111
+ <div class="field-body">
112
+ <div class="field">
113
+ <div class="control">
114
+ <lesli-button icon="save">
115
+ {{ translations.shared.button_save }}
116
+ </lesli-button>
117
+ </div>
118
+ </div>
119
+ </div>
120
+ </div>
121
+ </lesli-form>
122
+ </template>
@@ -45,50 +45,32 @@ const storeAccount = useAccount()
45
45
 
46
46
  // ·
47
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
- }
48
+ shared: i18n.t("lesli.shared"),
49
+ admin: i18n.t("lesli_admin.accounts"),
54
50
  }
55
51
 
56
52
  </script>
57
53
  <template>
58
- <form @submit.prevent="storeAccount.update">
54
+ <lesli-form flat @submit="storeAccount.update">
55
+
59
56
  <div class="field">
60
- <label class="label">{{ translations.core.accounts.column_company_name }}</label>
57
+ <label class="label">{{ translations.admin.column_company_name }}</label>
61
58
  <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
- >
59
+ <input class="input" type="text" v-model="storeAccount.accountInfo.company_name" >
68
60
  </div>
69
61
  </div>
70
62
 
71
63
  <div class="field">
72
- <label class="label">{{ translations.core.accounts.column_company_legal_name }}</label>
64
+ <label class="label">{{ translations.admin.column_company_name_legal }}</label>
73
65
  <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
- >
66
+ <input class="input" type="text" v-model="storeAccount.accountInfo.company_name_legal">
80
67
  </div>
81
68
  </div>
82
69
 
83
70
  <div class="field">
84
- <label class="label">{{ translations.core.accounts.column_tag_line }}</label>
71
+ <label class="label">{{ translations.admin.column_tag_line }}</label>
85
72
  <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
- >
73
+ <input class="input" type="text" v-model="storeAccount.accountInfo.company_tagline">
92
74
  </div>
93
75
  </div>
94
76
 
@@ -97,11 +79,11 @@ const translations = {
97
79
  <div class="field">
98
80
  <div class="control">
99
81
  <lesli-button icon="save">
100
- {{ translations.shared.view_btn_save }}
82
+ {{ translations.shared.button_save }}
101
83
  </lesli-button>
102
84
  </div>
103
85
  </div>
104
86
  </div>
105
87
  </div>
106
- </form>
88
+ </lesli-form>
107
89
  </template>
@@ -41,8 +41,8 @@ import { useAccount } from "Lesli/stores/account"
41
41
 
42
42
  // · import account components
43
43
  import formInformation from "./components/form-information.vue"
44
- // import addressForm from "./components/address-form.vue"
45
- // import contactForm from "./components/contact-form.vue"
44
+ import formAddress from "./components/form-address.vue"
45
+ import formContact from "./components/form-contact.vue"
46
46
 
47
47
 
48
48
  // · implement stores
@@ -51,6 +51,7 @@ const storeAccount = useAccount()
51
51
 
52
52
  // · translations
53
53
  const translations = {
54
+ admin: i18n.t("lesli_admin.accounts"),
54
55
  core: {
55
56
  onboardings: I18n.t("core.onboardings"),
56
57
  accounts: I18n.t("core.accounts")
@@ -70,20 +71,20 @@ onMounted(() => {
70
71
  </script>
71
72
  <template>
72
73
  <lesli-application-container>
73
- <lesli-header title="Account information">
74
+ <lesli-header :title="translations.admin.view_title">
74
75
  </lesli-header>
75
76
  <lesli-tabs v-model="tab">
76
- <lesli-tab-item title="General Information" icon="business">
77
+ <lesli-tab-item :title="translations.admin.tab_general_information" icon="business">
77
78
  <form-information></form-information>
78
79
  </lesli-tab-item>
80
+
81
+ <lesli-tab-item :title="translations.admin.tab_address" icon="location_on">
82
+ <form-address></form-address>
83
+ </lesli-tab-item>
84
+
85
+ <lesli-tab-item :title="translations.admin.tab_contact" icon="contact_page">
86
+ <form-contact></form-contact>
87
+ </lesli-tab-item>
79
88
  </lesli-tabs>
80
89
  </lesli-application-container>
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
90
  </template>
@@ -1,6 +1,5 @@
1
1
  <script setup>
2
2
  /*
3
-
4
3
  Lesli
5
4
 
6
5
  Copyright (c) 2023, Lesli Technologies, S. A.
@@ -18,44 +17,55 @@ GNU General Public License for more details.
18
17
  You should have received a copy of the GNU General Public License
19
18
  along with this program. If not, see http://www.gnu.org/licenses/.
20
19
 
21
- Lesli · Your Smart Business Assistant.
20
+ Lesli · Ruby on Rails SaaS Development Framework.
22
21
 
23
22
  Made with ♥ by https://www.lesli.tech
24
23
  Building a better future, one line of code at a time.
25
24
 
26
25
  @contact hello@lesli.tech
27
- @website https://lesli.tech
26
+ @website https://www.lesli.tech
28
27
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
28
 
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
30
  // ·
32
-
33
31
  */
34
32
 
35
33
 
36
- import { useProfile } from "Lesli/shared/stores/profile"
34
+ // ·
35
+ import { onMounted, inject, ref } from "vue"
36
+
37
+
38
+ // ·
39
+ const url = inject("url")
40
+ const http = inject("http")
41
+
37
42
 
38
- const storeProfile = useProfile()
43
+ // ·
44
+ const lesliVersion = ref({
45
+ name: "",
46
+ code: "",
47
+ path: "",
48
+ version: "",
49
+ build: ""
50
+ })
39
51
 
40
- const translations = {
41
- core: {
42
- roles: I18n.t("core.roles"),
43
- users: I18n.t("core.users"),
44
- shared: I18n.t("core.shared")
45
- }
46
- }
52
+
53
+ // ·
54
+ onMounted(() => {
55
+ http.get(url.lesli("about")).then(result => {
56
+ lesliVersion.value = result.find(engine => engine.name == "Lesli")
57
+ }).catch(error => {
58
+ console.log(error)
59
+ })
60
+ })
47
61
  </script>
48
62
  <template>
49
- <section class="application-component">
50
- <div class="field is-horizontal">
51
- <div class="field-label is-normal">
52
- <label class="label">Google account</label>
53
- </div>
54
- <div class="field-body">
55
- <lesli-button icon="google">
56
- <a href="/auth/google_oauth2">Connect</a>
57
- </lesli-button>
58
- </div>
59
- </div>
60
- </section>
63
+ <lesli-card>
64
+ <h6 class="title is-6 mb-2">
65
+ {{ lesliVersion.name }}
66
+ </h6>
67
+ <p class="p-0 m-0">version: {{ lesliVersion.version }}</p>
68
+ <p class="p-0 m-0">buid: {{ lesliVersion.build }}</p>
69
+ <p class="p-0 m-0">path: {{ lesliVersion.path }}</p>
70
+ </lesli-card>
61
71
  </template>
@@ -18,21 +18,24 @@ GNU General Public License for more details.
18
18
  You should have received a copy of the GNU General Public License
19
19
  along with this program. If not, see http://www.gnu.org/licenses/.
20
20
 
21
- Lesli · Your Smart Business Assistant.
21
+ Lesli · Ruby on Rails SaaS Development Framework.
22
22
 
23
23
  Made with ♥ by https://www.lesli.tech
24
24
  Building a better future, one line of code at a time.
25
25
 
26
26
  @contact hello@lesli.tech
27
- @website https://lesli.tech
27
+ @website https://www.lesli.tech
28
28
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
29
 
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
31
  // ·
32
-
33
32
  */
34
33
 
35
- </script>
36
34
 
35
+ // ·
36
+ import LesliDashboard from "Lesli/shared/dashboards/apps/show.vue"
37
+
38
+ </script>
37
39
  <template>
38
- </template>
40
+ <lesli-dashboard></lesli-dashboard>
41
+ </template>