lesli_admin 0.6.1 → 1.0.1

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/lesli_admin/admin-logo.svg +1 -1
  3. data/app/assets/javascripts/lesli_admin/application.js +14 -1
  4. data/app/assets/stylesheets/lesli_admin/application.css +594 -0
  5. data/app/controllers/lesli_admin/abouts_controller.rb +9 -6
  6. data/app/controllers/lesli_admin/accounts_controller.rb +14 -42
  7. data/app/controllers/lesli_admin/settings_controller.rb +58 -0
  8. data/app/helpers/lesli_admin/settings_helper.rb +4 -0
  9. data/app/models/lesli_admin/account.rb +2 -2
  10. data/app/models/lesli_admin/dashboard.rb +1 -19
  11. data/app/models/lesli_admin/setting.rb +4 -0
  12. data/app/services/lesli_admin/account_service.rb +1 -0
  13. data/app/views/lesli_admin/abouts/show.html.erb +73 -1
  14. data/app/views/lesli_admin/accounts/show.html.erb +16 -33
  15. data/app/views/lesli_admin/accounts/update.turbo_stream.erb +3 -0
  16. data/app/views/lesli_admin/dashboards/_component-installed-engines.html.erb +5 -0
  17. data/app/views/lesli_admin/dashboards/show.html.erb +4 -3
  18. data/app/views/lesli_admin/partials/{_engine-navigation.html.erb → _navigation.html.erb} +1 -0
  19. data/app/views/lesli_admin/settings/_form.html.erb +17 -0
  20. data/app/views/lesli_admin/settings/_setting.html.erb +2 -0
  21. data/app/views/lesli_admin/settings/edit.html.erb +12 -0
  22. data/app/views/lesli_admin/settings/index.html.erb +16 -0
  23. data/app/views/lesli_admin/settings/new.html.erb +11 -0
  24. data/app/views/lesli_admin/settings/show.html.erb +11 -0
  25. data/config/locales/translations.en.yml +1 -40
  26. data/config/locales/translations.es.yml +1 -40
  27. data/config/locales/translations.fr.yml +1 -40
  28. data/config/locales/translations.it.yml +1 -40
  29. data/config/locales/translations.pt.yml +1 -40
  30. data/config/routes.rb +3 -1
  31. data/db/migrate/{0101050210_create_lesli_admin_dashboard_components.rb → v1/0101000110_create_lesli_admin_accounts.rb} +4 -20
  32. data/db/migrate/{0101000110_create_lesli_admin_accounts.rb → v1/0101003010_create_lesli_admin_dashboards.rb} +2 -7
  33. data/db/seeds.rb +4 -10
  34. data/lib/lesli_admin/version.rb +2 -2
  35. data/lib/scss/application.scss +4 -0
  36. data/lib/vue/apps/about/show.vue +6 -6
  37. data/lib/vue/apps/dashboards/components/lesli-version.vue +2 -0
  38. data/lib/vue/stores/translations.json +0 -100
  39. data/readme.md +26 -20
  40. metadata +24 -27
  41. data/app/views/layouts/lesli_admin/application.html.erb +0 -15
  42. data/db/migrate/0101050110_create_lesli_admin_dashboards.rb +0 -51
@@ -2,7 +2,7 @@
2
2
 
3
3
  Lesli
4
4
 
5
- Copyright (c) 2023, Lesli Technologies, S. A.
5
+ Copyright (c) 2025, Lesli Technologies, S. A.
6
6
 
7
7
  This program is free software: you can redistribute it and/or modify
8
8
  it under the terms of the GNU General Public License as published by
@@ -34,58 +34,29 @@ module LesliAdmin
34
34
  class AccountsController < ApplicationController
35
35
  before_action :set_account, only: %i[show update]
36
36
 
37
- # GET /accounts/1
38
- # GET /accounts/1.json
39
37
  def show
38
+ @account = AccountService.new(current_user, query).show
40
39
  respond_to do |format|
41
- format.html {}
40
+ format.html
41
+ format.turbo_stream do
42
+ render(turbo_stream: turbo_stream.replace("application-lesli-notifications", partial: "lesli/partials/application-lesli-notifications"))
43
+ end
42
44
  format.json do
43
- respond_with_successful(AccountService.new(current_user, query).show)
45
+ respond_with_successful(@account)
44
46
  end
45
47
  end
46
48
  end
47
49
 
48
- # # GET /accounts/new
49
- # def new
50
- # end
51
-
52
- # # GET /accounts/1/edit
53
- # def edit
54
- # end
55
-
56
- # # POST /accounts
57
- # # POST /accounts.json
58
- # def create
59
- # current_user.account.company_name = account_params[:company_name]
60
- # current_user.account.status = 'active'
61
- # current_user.account.save
62
- # if current_user.account.errors.any?
63
- # return respond_with_error(current_user.errors.full_messages.to_sentence)
64
- # end
65
- # respond_with_successful
66
- # end
67
-
68
- # PATCH/PUT /accounts/1
69
- # PATCH/PUT /accounts/1.json
70
50
  def update
51
+
52
+ # check saved
71
53
  if @account.update(account_params)
72
- respond_with_successful(@account)
73
- else
74
- respond_with_error(@account)
54
+ success("Account updated successfully!")
55
+ else
56
+ #respond_with_error(@account.errors)
75
57
  end
76
58
  end
77
-
78
- # DELETE /accounts/1
79
- # DELETE /accounts/1.json
80
- # def destroy
81
- # return respond_with_not_found unless @account
82
-
83
- # @account.destroy
84
- # respond_to do |format|
85
- # format.html { redirect_to accounts_url, notice: 'Account was successfully destroyed.' }
86
- # format.json { head :no_content }
87
- # end
88
- # end
59
+
89
60
 
90
61
  private
91
62
 
@@ -99,6 +70,7 @@ module LesliAdmin
99
70
  params.require(:account).permit(
100
71
  :id,
101
72
  :name,
73
+ :email,
102
74
  detail_attributes: [
103
75
  :company_name_legal,
104
76
  :company_tagline
@@ -0,0 +1,58 @@
1
+ module LesliAdmin
2
+ class SettingsController < ApplicationController
3
+ before_action :set_setting, only: %i[ show edit update destroy ]
4
+
5
+ # GET /settings
6
+ def index
7
+ end
8
+
9
+ # GET /settings/1
10
+ def show
11
+ end
12
+
13
+ # GET /settings/new
14
+ def new
15
+ @setting = Setting.new
16
+ end
17
+
18
+ # GET /settings/1/edit
19
+ def edit
20
+ end
21
+
22
+ # POST /settings
23
+ def create
24
+ @setting = Setting.new(setting_params)
25
+
26
+ if @setting.save
27
+ redirect_to @setting, notice: "Setting was successfully created."
28
+ else
29
+ render :new, status: :unprocessable_entity
30
+ end
31
+ end
32
+
33
+ # PATCH/PUT /settings/1
34
+ def update
35
+ if @setting.update(setting_params)
36
+ redirect_to @setting, notice: "Setting was successfully updated.", status: :see_other
37
+ else
38
+ render :edit, status: :unprocessable_entity
39
+ end
40
+ end
41
+
42
+ # DELETE /settings/1
43
+ def destroy
44
+ @setting.destroy!
45
+ redirect_to settings_path, notice: "Setting was successfully destroyed.", status: :see_other
46
+ end
47
+
48
+ private
49
+ # Use callbacks to share common setup or constraints between actions.
50
+ def set_setting
51
+ end
52
+
53
+ # Only allow a list of trusted parameters through.
54
+ def setting_params
55
+ params.fetch(:setting, {})
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,4 @@
1
+ module LesliAdmin
2
+ module SettingsHelper
3
+ end
4
+ end
@@ -33,12 +33,12 @@ Building a better future, one line of code at a time.
33
33
  module LesliAdmin
34
34
  class Account < ApplicationRecord
35
35
  belongs_to :account, class_name: "Lesli::Account"
36
- has_many :users, class_name: "Lesli::User"
36
+ has_many :dashboards
37
37
 
38
38
  after_create :initialize_account
39
39
 
40
40
  def initialize_account
41
- Dashboard.initialize_account(self)
41
+ Dashboard.initialize_dashboard(self)
42
42
  end
43
43
  end
44
44
  end
@@ -35,24 +35,6 @@ module LesliAdmin
35
35
  self.table_name = "lesli_admin_dashboards"
36
36
  belongs_to :account
37
37
 
38
- has_many :components, inverse_of: :dashboard, autosave: true, dependent: :destroy
39
- accepts_nested_attributes_for :components, allow_destroy: true
40
-
41
- def self.initialize_account(account)
42
- self.create_with(
43
- default: true,
44
- main: false,
45
- components_attributes: [{
46
- name: "Lesli version",
47
- component_id: "admin-lesli-version",
48
- layout: 3,
49
- query_configuration: {},
50
- custom_configuration: {}
51
- }]
52
- ).find_or_create_by!(
53
- account: account,
54
- name: "Admin Default Dashboard"
55
- )
56
- end
38
+ COMPONENTS = %i[installed_engines]
57
39
  end
58
40
  end
@@ -0,0 +1,4 @@
1
+ module LesliAdmin
2
+ class Setting < ApplicationRecord
3
+ end
4
+ end
@@ -50,6 +50,7 @@ module LesliAdmin
50
50
  }
51
51
 
52
52
  #current_user.account.joins(:detail)
53
+ return account
53
54
  end
54
55
  end
55
56
  end
@@ -1 +1,73 @@
1
- <router-view></router-view>
1
+ <%#
2
+
3
+ Lesli
4
+
5
+ Copyright (c) 2025, 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 LesliTech
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
+ <script>
34
+ function engineManager() {
35
+ return {
36
+ data: { engines: [] },
37
+
38
+ init() {
39
+ const stored = localStorage.getItem('engineData')
40
+ this.data = stored ? JSON.parse(stored) : { engines: [] }
41
+ },
42
+
43
+ toggleEngine(engine) {
44
+ const index = this.data.engines.indexOf(engine)
45
+ if (index === -1) {
46
+ this.data.engines.push(engine)
47
+ } else {
48
+ this.data.engines.splice(index, 1)
49
+ }
50
+ localStorage.setItem('engineData', JSON.stringify(this.data))
51
+ }
52
+ }
53
+ }
54
+ </script>
55
+
56
+ <%= render LesliView::Layout::Container.new("admin-accounts") do %>
57
+ <%= render LesliView::Components::Header.new("About") %>
58
+
59
+ <div class="box" x-data="engineManager()">
60
+ <% @lesli_engines.each do |engine| %>
61
+ <div>
62
+ <%= render(LesliView::Partials::EngineSpec.new(engine)) %>
63
+ <hr class="mt-4 mb-4" />
64
+ <button
65
+ @click="toggleEngine('<%= engine[:path].gsub("/","") %>')"
66
+ :class="data.engines.includes('<%= engine[:path].gsub("/","") %>') ? 'button is-small is-info' : 'button is-small is-danger'"
67
+ x-text="data.engines.includes('<%= engine[:path].gsub("/","") %>') ? 'Activar módulo' : 'Desactivar módulo'">
68
+ </button>
69
+ </div>
70
+ <hr class="my-6 has-background-grey">
71
+ <% end %>
72
+ </div>
73
+ <% end %>
@@ -1,34 +1,17 @@
1
- <%
2
- =begin
3
1
 
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · Ruby on Rails SaaS development platform.
22
-
23
- Made with ♥ by https://www.lesli.tech
24
- Building a better future, one line of code at a time.
25
-
26
- @contact hello@lesli.tech
27
- @website https://www.lesli.tech
28
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
-
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
- // ·
32
- =end
33
- %>
34
- <router-view></router-view>
2
+ <%= render(LesliView::Layout::Container.new("test")) do %>
3
+
4
+ <%= render(LesliView::Components::Header.new("Account information")) %>
5
+
6
+ <%= render LesliView::Components::Tabs.new do |tabs| %>
7
+ <% tabs.with_tab(title: "General Information", icon: "business") do %>
8
+ <%= form_with(model: @account, builder: LesliView::Forms::Builder) do |form| %>
9
+ <%= form.fieldset do %>
10
+ <%= form.field_control(:name, label: "Company name")%>
11
+ <%= form.field_control(:email, label: "Iva por pagar") %>
12
+ <%= form.field_control_submit %>
13
+ <% end %>
14
+ <% end %>
15
+ <% end %>
16
+ <% end %>
17
+ <% end %>
@@ -0,0 +1,3 @@
1
+ <%= turbo_stream.replace "application-lesli-notifications" do %>
2
+ <%= render "lesli/partials/application-lesli-notifications" %>
3
+ <% end %>
@@ -0,0 +1,5 @@
1
+ <div class="box">
2
+ <span class="is-title is-4">
3
+ 4 installed engines
4
+ </span>
5
+ </div>
@@ -2,7 +2,7 @@
2
2
 
3
3
  Lesli
4
4
 
5
- Copyright (c) 2023, Lesli Technologies, S. A.
5
+ Copyright (c) 2025, Lesli Technologies, S. A.
6
6
 
7
7
  This program is free software: you can redistribute it and/or modify
8
8
  it under the terms of the GNU General Public License as published by
@@ -19,7 +19,7 @@ along with this program. If not, see http://www.gnu.org/licenses/.
19
19
 
20
20
  Lesli · Ruby on Rails SaaS Development Framework.
21
21
 
22
- Made with ♥ by https://www.lesli.tech
22
+ Made with ♥ by LesliTech
23
23
  Building a better future, one line of code at a time.
24
24
 
25
25
  @contact hello@lesli.tech
@@ -29,4 +29,5 @@ Building a better future, one line of code at a time.
29
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
30
  // ·
31
31
  %>
32
- <router-view></router-view>
32
+
33
+ <%= render("/lesli/shared/dashboards/show") %>
@@ -35,6 +35,7 @@ Building a better future, one line of code at a time.
35
35
  <%= navigation_item(lesli_admin.dashboard_path, "Dashboard", "ri-dashboard-3-line"); %>
36
36
  <%= navigation_item(lesli_admin.account_path, "Account", "ri-building-4-line"); %>
37
37
  <%= navigation_item(lesli_admin.about_path, "About", "ri-star-line"); %>
38
+ <%= navigation_item(lesli_admin.settings_path, "Settings", "ri-settings-4-line"); %>
38
39
 
39
40
  <%#= navigation_item(lesli.account_path, "Localization", "ri-time-line"); %>
40
41
  <%#= navigation_item(lesli.account_path, "Theming", "ri-paint-brush-line"); %>
@@ -0,0 +1,17 @@
1
+ <%= form_with(model: setting) do |form| %>
2
+ <% if setting.errors.any? %>
3
+ <div style="color: red">
4
+ <h2><%= pluralize(setting.errors.count, "error") %> prohibited this setting from being saved:</h2>
5
+
6
+ <ul>
7
+ <% setting.errors.each do |error| %>
8
+ <li><%= error.full_message %></li>
9
+ <% end %>
10
+ </ul>
11
+ </div>
12
+ <% end %>
13
+
14
+ <div>
15
+ <%= form.submit %>
16
+ </div>
17
+ <% end %>
@@ -0,0 +1,2 @@
1
+ <div id="<%= dom_id setting %>">
2
+ </div>
@@ -0,0 +1,12 @@
1
+ <% content_for :title, "Editing setting" %>
2
+
3
+ <h1>Editing setting</h1>
4
+
5
+ <%= render "form", setting: @setting %>
6
+
7
+ <br>
8
+
9
+ <div>
10
+ <%= link_to "Show this setting", @setting %> |
11
+ <%= link_to "Back to settings", settings_path %>
12
+ </div>
@@ -0,0 +1,16 @@
1
+ <p style="color: green"><%= notice %></p>
2
+
3
+ <% content_for :title, "Settings" %>
4
+
5
+ <h1>Settings</h1>
6
+
7
+ <div id="settings">
8
+ <% @settings.each do |setting| %>
9
+ <%= render setting %>
10
+ <p>
11
+ <%= link_to "Show this setting", setting %>
12
+ </p>
13
+ <% end %>
14
+ </div>
15
+
16
+ <%= link_to "New setting", new_setting_path %>
@@ -0,0 +1,11 @@
1
+ <% content_for :title, "New setting" %>
2
+
3
+ <h1>New setting</h1>
4
+
5
+ <%= render "form", setting: @setting %>
6
+
7
+ <br>
8
+
9
+ <div>
10
+ <%= link_to "Back to settings", settings_path %>
11
+ </div>
@@ -0,0 +1,11 @@
1
+
2
+ <%= render(LesliView::Layout::Container.new("settings")) do %>
3
+
4
+ <%= render(LesliView::Components::Header.new("Settings")) %>
5
+
6
+ <%= render LesliView::Components::Tabs.new(:vertical => true) do |tabs| %>
7
+ <% tabs.with_tab(title: "About", icon: "star") do %>
8
+ <%= render(LesliView::Partials::EngineSpec.new(LesliSystem.engine(@lesli[:engine_name]))) %>
9
+ <% end %>
10
+ <% end %>
11
+ <% end %>
@@ -1,41 +1,2 @@
1
1
  ---
2
- :en:
3
- lesli_admin:
4
- accounts:
5
- view_title: Account information
6
- tab_general_information: General Information
7
- column_company_name: Company name
8
- column_company_name_legal: Legal name
9
- view_subtitle_social_media: Social media
10
- column_city: City
11
- column_tag_line: Slogan
12
- column_postal_code: Postal code
13
- column_region: Region
14
- tab_contact: Contact
15
- tab_address: Address
16
- column_country: Country
17
- column_address: Address
18
- column_public_email: Public email
19
- column_phone_number: Phonenumber
20
- column_website: Website
21
- lesli:
22
- shared:
23
- view_discussions: Discussions
24
- button_add_new: Add new
25
- button_reload: Reload
26
- view_files: Files
27
- view_quick_actions: Quick actions
28
- button_list: List
29
- button_save: Save
30
- button_delete: Delete
31
- button_edit: Edit
32
- view_status_active: Active
33
- view_status_inactive: Inactive
34
- button_settings: Settings
35
- button_show: Show
36
- toolbar_search: Search...
37
- message_operation_success: Operation completed successfully
38
- message_operation_error: Operation failed. Please try again.
39
- application:
40
- navigation_logout: Logout
41
- navigation_my_profile: My profile
2
+ :en: {}
@@ -1,41 +1,2 @@
1
1
  ---
2
- :es:
3
- lesli_admin:
4
- accounts:
5
- view_title: Informacion de cuenta
6
- tab_general_information: Información General
7
- column_company_name: Nombre de Empresa
8
- column_company_name_legal: Razon social
9
- view_subtitle_social_media: Redes sociales
10
- column_city: Ciudad
11
- column_tag_line: Slogan
12
- column_postal_code: Código postal
13
- column_region: Región
14
- tab_contact: Contacto
15
- tab_address: Dirección
16
- column_country: País
17
- column_address: Dirección
18
- column_public_email: Email publico
19
- column_phone_number: Teléfono
20
- column_website: Sitio web
21
- lesli:
22
- shared:
23
- view_discussions: Discusiones
24
- button_add_new: Agregar nuevo
25
- button_reload: Recargar
26
- view_files: Archivos
27
- view_quick_actions: Acciones rapidas
28
- button_list: Lista
29
- button_save: Guardar
30
- button_delete: Eliminar
31
- button_edit: Editar
32
- view_status_active: Activo
33
- view_status_inactive: Inactivo
34
- button_settings: Configuración
35
- button_show: Ver
36
- toolbar_search: Buscar...
37
- message_operation_success: Operacion realizada satisfactoriamente
38
- message_operation_error: Operación fallida. Por favor, inténtelo de nuevo.
39
- application:
40
- navigation_logout: Cerrar sesión
41
- navigation_my_profile: Mi perfil
2
+ :es: {}
@@ -1,41 +1,2 @@
1
1
  ---
2
- :fr:
3
- lesli_admin:
4
- accounts:
5
- view_title: ":lesli_admin.accounts.view_title:"
6
- tab_general_information: ":lesli_admin.accounts.tab_general_information:"
7
- column_company_name: ":lesli_admin.accounts.column_company_name:"
8
- column_company_name_legal: ":lesli_admin.accounts.column_company_name_legal:"
9
- view_subtitle_social_media: ":lesli_admin.accounts.view_subtitle_social_media:"
10
- column_city: ":lesli_admin.accounts.column_city:"
11
- column_tag_line: ":lesli_admin.accounts.column_tag_line:"
12
- column_postal_code: ":lesli_admin.accounts.column_postal_code:"
13
- column_region: ":lesli_admin.accounts.column_region:"
14
- tab_contact: ":lesli_admin.accounts.tab_contact:"
15
- tab_address: ":lesli_admin.accounts.tab_address:"
16
- column_country: ":lesli_admin.accounts.column_country:"
17
- column_address: ":lesli_admin.accounts.column_address:"
18
- column_public_email: ":lesli_admin.accounts.column_public_email:"
19
- column_phone_number: ":lesli_admin.accounts.column_phone_number:"
20
- column_website: ":lesli_admin.accounts.column_website:"
21
- lesli:
22
- shared:
23
- view_discussions: ":lesli.shared.view_discussions:"
24
- button_add_new: ":lesli.shared.button_add_new:"
25
- button_reload: ":lesli.shared.button_reload:"
26
- view_files: ":lesli.shared.view_files:"
27
- view_quick_actions: ":lesli.shared.view_quick_actions:"
28
- button_list: ":lesli.shared.button_list:"
29
- button_save: ":lesli.shared.button_save:"
30
- button_delete: ":lesli.shared.button_delete:"
31
- button_edit: ":lesli.shared.button_edit:"
32
- view_status_active: ":lesli.shared.view_status_active:"
33
- view_status_inactive: ":lesli.shared.view_status_inactive:"
34
- button_settings: ":lesli.shared.button_settings:"
35
- button_show: ":lesli.shared.button_show:"
36
- toolbar_search: ":lesli.shared.toolbar_search:"
37
- message_operation_success: ":lesli.shared.message_operation_success:"
38
- message_operation_error: ":lesli.shared.message_operation_error:"
39
- application:
40
- navigation_logout: ":lesli.application.navigation_logout:"
41
- navigation_my_profile: ":lesli.application.navigation_my_profile:"
2
+ :fr: {}
@@ -1,41 +1,2 @@
1
1
  ---
2
- :it:
3
- lesli_admin:
4
- accounts:
5
- view_title: ":lesli_admin.accounts.view_title:"
6
- tab_general_information: ":lesli_admin.accounts.tab_general_information:"
7
- column_company_name: ":lesli_admin.accounts.column_company_name:"
8
- column_company_name_legal: ":lesli_admin.accounts.column_company_name_legal:"
9
- view_subtitle_social_media: ":lesli_admin.accounts.view_subtitle_social_media:"
10
- column_city: ":lesli_admin.accounts.column_city:"
11
- column_tag_line: ":lesli_admin.accounts.column_tag_line:"
12
- column_postal_code: ":lesli_admin.accounts.column_postal_code:"
13
- column_region: ":lesli_admin.accounts.column_region:"
14
- tab_contact: ":lesli_admin.accounts.tab_contact:"
15
- tab_address: ":lesli_admin.accounts.tab_address:"
16
- column_country: ":lesli_admin.accounts.column_country:"
17
- column_address: ":lesli_admin.accounts.column_address:"
18
- column_public_email: ":lesli_admin.accounts.column_public_email:"
19
- column_phone_number: ":lesli_admin.accounts.column_phone_number:"
20
- column_website: ":lesli_admin.accounts.column_website:"
21
- lesli:
22
- shared:
23
- view_discussions: ":lesli.shared.view_discussions:"
24
- button_add_new: ":lesli.shared.button_add_new:"
25
- button_reload: ":lesli.shared.button_reload:"
26
- view_files: ":lesli.shared.view_files:"
27
- view_quick_actions: ":lesli.shared.view_quick_actions:"
28
- button_list: ":lesli.shared.button_list:"
29
- button_save: ":lesli.shared.button_save:"
30
- button_delete: ":lesli.shared.button_delete:"
31
- button_edit: ":lesli.shared.button_edit:"
32
- view_status_active: ":lesli.shared.view_status_active:"
33
- view_status_inactive: ":lesli.shared.view_status_inactive:"
34
- button_settings: ":lesli.shared.button_settings:"
35
- button_show: ":lesli.shared.button_show:"
36
- toolbar_search: ":lesli.shared.toolbar_search:"
37
- message_operation_success: ":lesli.shared.message_operation_success:"
38
- message_operation_error: ":lesli.shared.message_operation_error:"
39
- application:
40
- navigation_logout: ":lesli.application.navigation_logout:"
41
- navigation_my_profile: ":lesli.application.navigation_my_profile:"
2
+ :it: {}