lesli_admin 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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>