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.
- checksums.yaml +4 -4
- data/app/assets/javascripts/lesli_admin/application.js +284 -841
- data/app/controllers/lesli_admin/accounts_controller.rb +3 -5
- data/app/controllers/lesli_admin/dashboard/components_controller.rb +60 -0
- data/app/controllers/lesli_admin/dashboards_controller.rb +26 -50
- data/app/models/lesli_admin/account.rb +6 -0
- data/app/{controllers/lesli_admin/profiles_controller.rb → models/lesli_admin/dashboard/component.rb} +13 -19
- data/app/models/lesli_admin/dashboard.rb +58 -0
- data/app/services/lesli_admin/account_service.rb +39 -0
- data/app/views/lesli_admin/dashboards/edit.html.erb +29 -7
- data/app/views/lesli_admin/dashboards/index.html.erb +29 -11
- data/app/views/lesli_admin/dashboards/new.html.erb +29 -6
- data/app/views/lesli_admin/dashboards/show.html.erb +31 -0
- data/app/views/lesli_admin/partials/_engine-navigation.html.erb +0 -1
- data/config/locales/translations.en.yml +26 -0
- data/config/locales/translations.es.yml +26 -0
- data/config/routes.rb +46 -5
- data/db/migrate/0101050110_create_lesli_admin_dashboards.rb +51 -0
- data/db/migrate/0101050210_create_lesli_admin_dashboard_components.rb +53 -0
- data/lib/lesli_admin/engine.rb +1 -0
- data/lib/lesli_admin/version.rb +1 -1
- data/lib/vue/application.js +28 -15
- data/lib/vue/apps/account/components/{address-form.vue → form-address.vue} +27 -42
- data/lib/vue/apps/account/components/form-contact.vue +122 -0
- data/lib/vue/apps/account/components/form-information.vue +12 -30
- data/lib/vue/apps/account/show.vue +13 -12
- data/lib/vue/apps/{users/components/integrations-information.vue → dashboards/components/lesli-version.vue} +36 -26
- data/lib/vue/apps/{profile/components/change-email.vue → dashboards/show.vue} +9 -6
- data/lib/vue/stores/translations.json +52 -18
- metadata +17 -30
- data/app/controllers/lesli_admin/users_controller.rb +0 -238
- data/app/services/lesli_admin/user_service.rb +0 -265
- data/app/views/lesli_admin/dashboards/_dashboard.html.erb +0 -2
- data/app/views/lesli_admin/dashboards/_form.html.erb +0 -17
- data/lib/vue/apps/account/components/contact-form.vue +0 -162
- data/lib/vue/apps/dashboard/show.vue +0 -30
- data/lib/vue/apps/profile/components/subscriptions.vue +0 -94
- data/lib/vue/apps/profile/show.vue +0 -152
- data/lib/vue/apps/users/components/information-card.vue +0 -116
- data/lib/vue/apps/users/components/information-form.vue +0 -177
- data/lib/vue/apps/users/components/management-roles.vue +0 -109
- data/lib/vue/apps/users/components/management-security.vue +0 -113
- data/lib/vue/apps/users/components/management-sessions.vue +0 -106
- data/lib/vue/apps/users/components/management-settings.vue +0 -94
- data/lib/vue/apps/users/index.vue +0 -206
- data/lib/vue/apps/users/new.vue +0 -181
- data/lib/vue/apps/users/show.vue +0 -116
- data/lib/vue/stores/user.js +0 -331
- 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
|
data/lib/lesli_admin/engine.rb
CHANGED
data/lib/lesli_admin/version.rb
CHANGED
data/lib/vue/application.js
CHANGED
@@ -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
|
-
|
46
|
-
|
47
|
-
|
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: "/
|
57
|
-
component:
|
58
|
-
|
59
|
-
path: "/account",
|
60
|
-
component: applicationAccountShow
|
69
|
+
path: "/",
|
70
|
+
component: appDashboardShow,
|
71
|
+
props: dashboardProps
|
61
72
|
}, {
|
62
|
-
path: "/
|
63
|
-
component:
|
73
|
+
path: "/dashboard",
|
74
|
+
component: appDashboardShow,
|
75
|
+
props: dashboardProps
|
64
76
|
}, {
|
65
|
-
path: "/
|
66
|
-
component:
|
77
|
+
path: "/dashboards/:id/edit",
|
78
|
+
component: appDashboardEdit,
|
79
|
+
props: dashboardProps
|
67
80
|
}, {
|
68
|
-
path: "/
|
69
|
-
component:
|
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 ·
|
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 "
|
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:
|
48
|
-
|
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
|
65
|
+
<lesli-form flat @submit="storeAccount.update">
|
64
66
|
<div class="field">
|
65
|
-
<label class="label">{{ translations.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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:
|
49
|
-
|
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
|
54
|
+
<lesli-form flat @submit="storeAccount.update">
|
55
|
+
|
59
56
|
<div class="field">
|
60
|
-
<label class="label">{{ translations.
|
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.
|
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.
|
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.
|
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
|
-
|
45
|
-
|
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="
|
74
|
+
<lesli-header :title="translations.admin.view_title">
|
74
75
|
</lesli-header>
|
75
76
|
<lesli-tabs v-model="tab">
|
76
|
-
<lesli-tab-item title="
|
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 ·
|
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
|
+
// ·
|
35
|
+
import { onMounted, inject, ref } from "vue"
|
36
|
+
|
37
|
+
|
38
|
+
// ·
|
39
|
+
const url = inject("url")
|
40
|
+
const http = inject("http")
|
41
|
+
|
37
42
|
|
38
|
-
|
43
|
+
// ·
|
44
|
+
const lesliVersion = ref({
|
45
|
+
name: "",
|
46
|
+
code: "",
|
47
|
+
path: "",
|
48
|
+
version: "",
|
49
|
+
build: ""
|
50
|
+
})
|
39
51
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
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
|
-
<
|
50
|
-
<
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
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 ·
|
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
|
-
|
40
|
+
<lesli-dashboard></lesli-dashboard>
|
41
|
+
</template>
|