lesli 5.0.21 → 5.0.22

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b77188611c1a03101fb76722bdee1160ab61b1b4697ebe969e00704ca45c8934
4
- data.tar.gz: e25d29353f381df652227383dac086e0eda6b301438c93893b27899933409bc8
3
+ metadata.gz: 6745cdd0cef2e17bdfbcfbeaa98b764cc17a0e4a08973a1f0f9602437aa36f05
4
+ data.tar.gz: ced2199cfd580ff4b713088317764bac7b3c9c4c6b27011f1567abcc11d96171
5
5
  SHA512:
6
- metadata.gz: 193238561d87e317c8c3c9eccca9a3a8594542c7e915a38a53c50dfcc1ed84487b565024357de99a4a4c3375932331ca7ad0291c48bbf6cf91ae568657403301
7
- data.tar.gz: 259733aeb17b1a48d1f9274a1b4b0df88a252ce616eb1bcec94d91a281ad9314796a2c26ce212f3c85358abf629fdf5e7c577a9e8a462da99481a79fc9c00b33
6
+ metadata.gz: 7df7919455d0486fa70cd31dac4cb448bfe766b1b71707f243efca570a9197bd15f179e61d80bcc7f6f871426bf057e8575c0965d0d235109e69b4953e920a29
7
+ data.tar.gz: d94812f844319558b726d5f701091260ffaa3ccee39a12330f293fc8907c4fe745107a4eebb36b51ad740f536663066141202ee6be9684d32cc2a93f08cfadcd
data/Rakefile CHANGED
@@ -1,3 +1,8 @@
1
1
  require "bundler/setup"
2
2
 
3
+ APP_RAKEFILE = File.expand_path("test/dummy/Rakefile", __dir__)
4
+ load "rails/tasks/engine.rake"
5
+
6
+ load "rails/tasks/statistics.rake"
7
+
3
8
  require "bundler/gem_tasks"
@@ -1 +1,191 @@
1
- body.lesli.apps.show .lesli-element-header{margin-bottom:5rem !important}body.lesli.apps.show .engines{gap:24px;margin-inline-end:auto;margin-inline-start:auto}body.lesli.apps.show .engines a{flex-basis:318px;text-align:center;padding:2rem .4rem 2.8rem;border:#fff 1px solid;border-radius:6px;background-color:#fff;transition:all ease-in-out .2s;box-shadow:rgba(9,30,66,.25) 0px 4px 8px -2px,rgba(9,30,66,.08) 0px 0px 0px 1px}body.lesli.apps.show .engines a:hover{border-color:var(--lesli-color-primary);transform:translateY(-2px)}body.lesli.apps.show .engines a.is-active{background-color:#f0f4ff;border-color:var(--lesli-color-primary)}body.lesli.apps.show .engines a svg{margin-right:.4rem;fill:var(--lesli-color-primary)}body.lesli.apps.show .engines a p{font-size:14}body.lesli.apps.show .engines a span{font-weight:600;font-size:20px}body.lesli.apps.show .engines a span,body.lesli.apps.show .engines a p{color:var(--lesli-color-primary)}
1
+ @charset "UTF-8";
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
+ Lesli
34
+
35
+ Copyright (c) 2025, Lesli Technologies, S. A.
36
+
37
+ This program is free software: you can redistribute it and/or modify
38
+ it under the terms of the GNU General Public License as published by
39
+ the Free Software Foundation, either version 3 of the License, or
40
+ (at your option) any later version.
41
+
42
+ This program is distributed in the hope that it will be useful,
43
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
44
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
45
+ GNU General Public License for more details.
46
+
47
+ You should have received a copy of the GNU General Public License
48
+ along with this program. If not, see http://www.gnu.org/licenses/.
49
+
50
+ Lesli · Ruby on Rails SaaS Development Framework.
51
+
52
+ Made with ♥ by LesliTech
53
+ Building a better future, one line of code at a time.
54
+
55
+ @contact hello@lesli.tech
56
+ @website https://www.lesli.tech
57
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
58
+
59
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
60
+ // ·
61
+ */
62
+ /**
63
+ Lesli
64
+
65
+ Copyright (c) 2025, Lesli Technologies, S. A.
66
+
67
+ This program is free software: you can redistribute it and/or modify
68
+ it under the terms of the GNU General Public License as published by
69
+ the Free Software Foundation, either version 3 of the License, or
70
+ (at your option) any later version.
71
+
72
+ This program is distributed in the hope that it will be useful,
73
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
74
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
75
+ GNU General Public License for more details.
76
+
77
+ You should have received a copy of the GNU General Public License
78
+ along with this program. If not, see http://www.gnu.org/licenses/.
79
+
80
+ Lesli - SCSS Utilities for websites, apps and web applications
81
+
82
+ Made with ♥ by LesliTech
83
+ Building a better future, one line of code at a time.
84
+
85
+ @contact hello@lesli.tech
86
+ @website https://www.lesli.tech
87
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
88
+
89
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
90
+ // ·
91
+ */
92
+ /*
93
+ Lesli
94
+
95
+ Copyright (c) 2025, Lesli Technologies, S. A.
96
+
97
+ This program is free software: you can redistribute it and/or modify
98
+ it under the terms of the GNU General Public License as published by
99
+ the Free Software Foundation, either version 3 of the License, or
100
+ (at your option) any later version.
101
+
102
+ This program is distributed in the hope that it will be useful,
103
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
104
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
105
+ GNU General Public License for more details.
106
+
107
+ You should have received a copy of the GNU General Public License
108
+ along with this program. If not, see http://www.gnu.org/licenses/.
109
+
110
+ Lesli - SCSS Utilities for websites, apps and web applications
111
+
112
+ Made with ♥ by LesliTech
113
+ Building a better future, one line of code at a time.
114
+
115
+ @contact hello@lesli.tech
116
+ @website https://www.lesli.tech
117
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
118
+
119
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
120
+ // ·
121
+ */
122
+ /**
123
+ Lesli
124
+
125
+ Copyright (c) 2025, Lesli Technologies, S. A.
126
+
127
+ This program is free software: you can redistribute it and/or modify
128
+ it under the terms of the GNU General Public License as published by
129
+ the Free Software Foundation, either version 3 of the License, or
130
+ (at your option) any later version.
131
+
132
+ This program is distributed in the hope that it will be useful,
133
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
134
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
135
+ GNU General Public License for more details.
136
+
137
+ You should have received a copy of the GNU General Public License
138
+ along with this program. If not, see http://www.gnu.org/licenses/.
139
+
140
+ Lesli - SCSS Utilities for websites, apps and web applications
141
+
142
+ Made with ♥ by LesliTech
143
+ Building a better future, one line of code at a time.
144
+
145
+ @contact hello@lesli.tech
146
+ @website https://www.lesli.tech
147
+ @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
148
+
149
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
150
+ // ·
151
+ */
152
+ body.lesli.apps.show .lesli-element-header {
153
+ margin-bottom: 5rem !important;
154
+ }
155
+ body.lesli.apps.show .engines {
156
+ gap: 24px;
157
+ margin-inline-end: auto;
158
+ margin-inline-start: auto;
159
+ }
160
+ body.lesli.apps.show .engines a {
161
+ flex-basis: 318px;
162
+ text-align: center;
163
+ padding: 2rem 0.4rem 2.8rem;
164
+ border: white 1px solid;
165
+ border-radius: 6px;
166
+ background-color: white;
167
+ transition: all ease-in-out 0.2s;
168
+ box-shadow: rgba(9, 30, 66, 0.25) 0px 4px 8px -2px, rgba(9, 30, 66, 0.08) 0px 0px 0px 1px;
169
+ }
170
+ body.lesli.apps.show .engines a:hover {
171
+ border-color: var(--lesli-color-primary);
172
+ transform: translateY(-2px);
173
+ }
174
+ body.lesli.apps.show .engines a.is-active {
175
+ background-color: #F0F4FF;
176
+ border-color: var(--lesli-color-primary);
177
+ }
178
+ body.lesli.apps.show .engines a svg {
179
+ margin-right: 0.4rem;
180
+ fill: var(--lesli-color-primary);
181
+ }
182
+ body.lesli.apps.show .engines a p {
183
+ font-size: 14;
184
+ }
185
+ body.lesli.apps.show .engines a span {
186
+ font-weight: 600;
187
+ font-size: 20px;
188
+ }
189
+ body.lesli.apps.show .engines a span, body.lesli.apps.show .engines a p {
190
+ color: var(--lesli-color-primary);
191
+ }
@@ -34,77 +34,41 @@ module Lesli
34
34
  module AssetsHelper
35
35
  # Return a string path to load the template stylesheet
36
36
  # by default we always return the latest version of the template
37
- # lesli_application_stylesheet_path() -> stylesheet from main app
38
- # lesli_application_stylesheet_path(:lesli) -> stylesheet from Lesli
39
- # lesli_application_stylesheet_path(:engine) (TODO) -> stylesheet from engine current
40
- # lesli_application_stylesheet_path(:cloud_driver) -> stylesheet from engine specific
41
- def lesli_application_stylesheet_path(engine = nil)
37
+ #
38
+ # stylesheet from main App
39
+ # lesli_asset_path()
40
+ # /assets/application.css
41
+ #
42
+ # Specific stylesheet from Engine
43
+ # lesli_asset_path(:lesli, 'application')
44
+ # /assets/lesli/application.css
45
+ #
46
+ # Specific stylesheet from gem
47
+ # lesli_asset_path(:lesli_assets, 'templates/application')
48
+ # /assets/lesli_assets/templates/application.css
49
+ def lesli_asset_path(engine = nil, stylesheet = 'application')
42
50
 
43
51
  # Stylesheets from specific engine
44
- return "#{engine}/templates/application" if engine
52
+ return "#{engine}/#{stylesheet}" if engine.present?
45
53
 
46
54
  # Get current engine information
47
- lesli_engine_code = lesli_engine(:code)
55
+ engine_code = lesli_engine(:code)
48
56
 
49
57
  # Rails main host app stylesheets
50
- return "application" if lesli_engine_code == "root"
58
+ return 'application' if engine_code == 'root'
51
59
 
52
60
  # Rails engines stylesheets
53
- "#{lesli_engine_code}/application"
54
- end
55
-
56
- # Return a string path to load the main engine stylesheet
57
- def application_stylesheet_engine_path
58
- lesli_engine = lesli_engine(:code)
59
- return "administration/application" if is_lesli_administration?
60
- return "onboardings/application" if is_lesli_onboarding?
61
-
62
- "#{lesli_engine}/application"
63
- end
64
-
65
- # Return a string path to load the main javascript app of the engine
66
- def lesli_application_javascript_path
67
- # get the namespace to load specific javascript file
68
- # for engine or specific javascript file for core controller
69
- # path_segments = controller_path.split("/")
70
- # lesli_engine = path_segments.shift
71
-
72
- # return "onboardings/application" if is_lesli_onboarding?
73
-
74
-
75
-
76
- # Get current engine information
77
- lesli_engine_code = lesli_engine(:code)
78
-
79
- # Rails main host app stylesheets
80
- return "application" if lesli_engine_code == "root"
81
-
82
- # Rails engines stylesheets
83
- "#{lesli_engine_code}/application"
84
- end
85
-
86
- def javascript_googlemaps_sdk
87
- "<script type=\"application/javascript\" src=\"https://maps.googleapis.com/maps/api/js?key=#{Rails.application.credentials.dig(
88
- :providers, :google, :maps_sdk_token
89
- )}\"></script>".html_safe
90
- end
91
-
92
- def javascript_apple_mapkit_js
93
- token = Rails.application.credentials.dig(:providers, :apple, :mapkit_token)
94
-
95
- "<script type=\"application/javascript\" src=\"https://cdn.apple-mapkit.com/mk/5.45.0/mapkit.js\"></script>
96
- <script type=\"application/javascript\">
97
- const ampkt = \"#{token}\"
98
- </script>".html_safe
61
+ "#{engine_code}/#{stylesheet}"
99
62
  end
100
63
 
101
64
  def favicon
102
65
  icon_path = customization_instance_logo_url(logo: "favicon")
103
- "
104
- <link href=\"#{icon_path}\" rel=\"alternate icon\">
105
- <link href=\"#{icon_path}\" rel=\"icon\" type=\"image/svg+xml\">
106
- <link href=\"#{icon_path}\" rel=\"mask-icon\" color=\"#ff8a01\">
107
- ".html_safe
66
+
67
+ safe_join([
68
+ tag.link(href: icon_path, rel: "alternate icon"),
69
+ tag.link(href: icon_path, rel: "icon", type: "image/svg+xml"),
70
+ tag.link(href: icon_path, rel: "mask-icon", color: "#ff8a01")
71
+ ])
108
72
  end
109
73
  end
110
74
  end
@@ -33,73 +33,19 @@ Building a better future, one line of code at a time.
33
33
 
34
34
  # User Activities methods
35
35
  # Methods related to cloudobject/activities and user_logs
36
- module UserActivities
37
- extend ActiveSupport::Concern
38
-
39
-
40
- # @return [void]
41
- # @description Register a new log for the current user
42
- # @param description String Details about the process
43
- # @param session String Current or active session id
44
- def log description, session=nil
45
- self.logs.create(session, description)
46
- end
47
-
48
- def log_activity_update(current_user, user, old_attributes, new_attributes)
49
- old_attributes.except!("id", "users_id", "created_at", "updated_at", "deleted_at")
50
- old_attributes.each do |key, value|
51
- if value != new_attributes[key]
52
- value_from = value
53
- value_to = new_attributes[key]
54
- value_from = Courier::Core::Date.to_string_datetime(value_from) if value_from.is_a?(Time) || value_from.is_a?(Date)
55
- value_to = Courier::Core::Date.to_string_datetime(value_to) if value_to.is_a?(Time) || value_to.is_a?(Date)
56
-
57
- user.activities.create!(
58
- assigned: current_user,
59
- category: "action_update",
60
- field_name: key,
61
- value_from: value_from,
62
- value_to: value_to
63
- )
64
- end
65
- end
66
- end
67
-
68
-
69
- # Define class methods from given block
70
- # This allows to inject class methods to the User model, so we can use:
71
- # User.log_activity_create
72
- class_methods do
36
+ module Lesli
37
+ module UserActivities
38
+ extend ActiveSupport::Concern
73
39
 
74
40
 
75
41
  # @return [void]
76
- # @param current_user [::User] The user that created the user
77
- # @param [User] The user that was created
78
- # @description Creates an activity for this user indicating who created it.
79
- # Example
80
- # params = {...}
81
- # user = User.create(params)
82
- # User.log_activity_create(User.find(1), user)
83
- def log_activity_create(current_user, user)
84
- user.activities.create(
85
- assigned: current_user,
86
- category: "action_create"
87
- )
42
+ # @description Register a new log for the current user
43
+ # @param description String Details about the process
44
+ # @param session String Current or active session id
45
+ def log description, session=nil
46
+ self.logs.create(session, description)
88
47
  end
89
48
 
90
-
91
- # @return [void]
92
- # @param current_user [::User] The user that created the user
93
- # @param user [User] The User that was created
94
- # @param old_attributes[Hash] The data of the record before update
95
- # @param new_attributes[Hash] The data of the record after update
96
- # @description Creates an activity for this user if someone changed any of this values
97
- # Example
98
- # user = User.find(1)
99
- # old_attributes = user.attributes.merge({detail_attributes: user.detail.attributes})
100
- # user.update(main_employee: User.find(33))
101
- # new_attributes = user.attributes.merge({detail_attributes: user.detail.attributes})
102
- # User.log_activity_update(User.find(1), user, old_attributes, new_attributes)
103
49
  def log_activity_update(current_user, user, old_attributes, new_attributes)
104
50
  old_attributes.except!("id", "users_id", "created_at", "updated_at", "deleted_at")
105
51
  old_attributes.each do |key, value|
@@ -109,8 +55,8 @@ module UserActivities
109
55
  value_from = Courier::Core::Date.to_string_datetime(value_from) if value_from.is_a?(Time) || value_from.is_a?(Date)
110
56
  value_to = Courier::Core::Date.to_string_datetime(value_to) if value_to.is_a?(Time) || value_to.is_a?(Date)
111
57
 
112
- user.activities.create(
113
- owner: current_user,
58
+ user.activities.create!(
59
+ assigned: current_user,
114
60
  category: "action_update",
115
61
  field_name: key,
116
62
  value_from: value_from,
@@ -118,46 +64,102 @@ module UserActivities
118
64
  )
119
65
  end
120
66
  end
121
- end
67
+ end
122
68
 
123
69
 
124
- # @return [void]
125
- # @param current_user [::User] The user that created the user
126
- # @param user [User] The User that was created
127
- # @param user [Role] The Role assigned to the user
128
- # @description Creates an activity for this user if someone adds a new role
129
- # Example
130
- # user = User.find(1)
131
- # role = User.find(1)
132
- # User.log_activity_create_user_role(current_user, user, role)
133
- def log_activity_create_user_role(current_user, user, role)
134
- role_name = role.name
135
-
136
- user.activities.create(
137
- assigned: current_user,
138
- category: "action_create_user_role",
139
- value_to: role_name
140
- )
141
- end
70
+ # Define class methods from given block
71
+ # This allows to inject class methods to the User model, so we can use:
72
+ # User.log_activity_create
73
+ class_methods do
142
74
 
143
-
144
- # @return [void]
145
- # @param current_user [::User] The user that created the user
146
- # @param user [User] The User that was created
147
- # @param user [Role] The Role assigned to the user
148
- # @description Creates an activity for this user if someone removes a role
149
- # Example
150
- # user = User.find(1)
151
- # role = User.find(1)
152
- # User.log_activity_destroy_user_role(current_user, user, role)
153
- def log_activity_destroy_user_role(current_user, user, role)
154
- role_name = role.name
155
-
156
- user.activities.create(
157
- assigned: current_user,
158
- category: "action_destroy_user_role",
159
- value_to: role_name
160
- )
75
+
76
+ # @return [void]
77
+ # @param current_user [::User] The user that created the user
78
+ # @param [User] The user that was created
79
+ # @description Creates an activity for this user indicating who created it.
80
+ # Example
81
+ # params = {...}
82
+ # user = User.create(params)
83
+ # User.log_activity_create(User.find(1), user)
84
+ def log_activity_create(current_user, user)
85
+ user.activities.create(
86
+ assigned: current_user,
87
+ category: "action_create"
88
+ )
89
+ end
90
+
91
+
92
+ # @return [void]
93
+ # @param current_user [::User] The user that created the user
94
+ # @param user [User] The User that was created
95
+ # @param old_attributes[Hash] The data of the record before update
96
+ # @param new_attributes[Hash] The data of the record after update
97
+ # @description Creates an activity for this user if someone changed any of this values
98
+ # Example
99
+ # user = User.find(1)
100
+ # old_attributes = user.attributes.merge({detail_attributes: user.detail.attributes})
101
+ # user.update(main_employee: User.find(33))
102
+ # new_attributes = user.attributes.merge({detail_attributes: user.detail.attributes})
103
+ # User.log_activity_update(User.find(1), user, old_attributes, new_attributes)
104
+ def log_activity_update(current_user, user, old_attributes, new_attributes)
105
+ old_attributes.except!("id", "users_id", "created_at", "updated_at", "deleted_at")
106
+ old_attributes.each do |key, value|
107
+ if value != new_attributes[key]
108
+ value_from = value
109
+ value_to = new_attributes[key]
110
+ value_from = Courier::Core::Date.to_string_datetime(value_from) if value_from.is_a?(Time) || value_from.is_a?(Date)
111
+ value_to = Courier::Core::Date.to_string_datetime(value_to) if value_to.is_a?(Time) || value_to.is_a?(Date)
112
+
113
+ user.activities.create(
114
+ owner: current_user,
115
+ category: "action_update",
116
+ field_name: key,
117
+ value_from: value_from,
118
+ value_to: value_to
119
+ )
120
+ end
121
+ end
122
+ end
123
+
124
+
125
+ # @return [void]
126
+ # @param current_user [::User] The user that created the user
127
+ # @param user [User] The User that was created
128
+ # @param user [Role] The Role assigned to the user
129
+ # @description Creates an activity for this user if someone adds a new role
130
+ # Example
131
+ # user = User.find(1)
132
+ # role = User.find(1)
133
+ # User.log_activity_create_user_role(current_user, user, role)
134
+ def log_activity_create_user_role(current_user, user, role)
135
+ role_name = role.name
136
+
137
+ user.activities.create(
138
+ assigned: current_user,
139
+ category: "action_create_user_role",
140
+ value_to: role_name
141
+ )
142
+ end
143
+
144
+
145
+ # @return [void]
146
+ # @param current_user [::User] The user that created the user
147
+ # @param user [User] The User that was created
148
+ # @param user [Role] The Role assigned to the user
149
+ # @description Creates an activity for this user if someone removes a role
150
+ # Example
151
+ # user = User.find(1)
152
+ # role = User.find(1)
153
+ # User.log_activity_destroy_user_role(current_user, user, role)
154
+ def log_activity_destroy_user_role(current_user, user, role)
155
+ role_name = role.name
156
+
157
+ user.activities.create(
158
+ assigned: current_user,
159
+ category: "action_destroy_user_role",
160
+ value_to: role_name
161
+ )
162
+ end
161
163
  end
162
164
  end
163
165
  end
@@ -42,7 +42,7 @@ module Lesli
42
42
  # according to object level permission
43
43
  def list(params)
44
44
  current_user.account.roles
45
- .where("permission_level <= ?", current_user.max_object_level_permission)
45
+ .where("permission_level <= ?", current_user.max_level_permission)
46
46
  .order(permission_level: :desc, name: :asc)
47
47
  .select(:id, :name, :permission_level)
48
48
  end
@@ -1,13 +1,13 @@
1
1
  <style>
2
+ html, body, * {
3
+ box-sizing: border-box;
4
+ }
5
+
2
6
  html, body {
3
7
  margin: 0;
4
8
  padding: 0;
5
9
  }
6
10
 
7
- html, body, * {
8
- box-sizing: border-box;
9
- }
10
-
11
11
  .page-welcome {
12
12
  display: flex;
13
13
  flex-direction: column;
@@ -59,11 +59,11 @@ html, body, * {
59
59
  align-items: center;
60
60
  }
61
61
 
62
- .buttons {
62
+ .page-welcome .buttons {
63
63
  margin-bottom: 2rem;
64
64
  }
65
65
 
66
- .buttons a {
66
+ .page-welcome .buttons a {
67
67
  border: none;
68
68
  display: inline-block;
69
69
  text-decoration: none;
@@ -79,25 +79,25 @@ html, body, * {
79
79
  line-height: 28px;
80
80
  }
81
81
 
82
- .buttons a.doc {
82
+ .page-welcome .buttons a.doc {
83
83
  background: #184fee;
84
84
  }
85
85
 
86
- .buttons a.start {
86
+ .page-welcome .buttons a.start {
87
87
  background: #444444;
88
88
  }
89
89
 
90
90
  @media only screen and (max-width: 600px) {
91
- .page-welcome svg {
91
+ .page-welcome .page-welcome svg {
92
92
  width: 250px;
93
93
  }
94
94
 
95
- .page-welcome h1 {
95
+ .page-welcome .page-welcome h1 {
96
96
  padding: 0 1rem;
97
97
  font-size: 2.7rem;
98
98
  }
99
99
 
100
- .buttons a {
100
+ .page-welcome .buttons a {
101
101
  padding: 14px 20px;
102
102
  }
103
103
  }
@@ -30,15 +30,13 @@ Building a better future, one line of code at a time.
30
30
  // ·
31
31
  %>
32
32
 
33
- <% devise_controller = controller_path.split('/')[1] %>
33
+ <% public_app_controller = controller_path.split('/')[1] || controller_path %>
34
34
 
35
35
  <!DOCTYPE html>
36
36
  <html>
37
37
  <head>
38
- <script>const Lesli = <%= @lesli.to_json.html_safe %></script>
39
38
  <%= render(partial: "lesli/partials/application-head") %>
40
- <%# render(partial: "lesli/partials/application-data") %>
41
- <%= stylesheet_link_tag("lesli_shield/#{devise_controller}", media: "all") %>
39
+ <%= stylesheet_link_tag(lesli_asset_path(:lesli_shield, public_app_controller), media: "all") %>
42
40
  <%# Disable back button in browser after Logout using JavaScript %>
43
41
  <% if flash[:logout] == true %>
44
42
  <script>
@@ -51,7 +49,6 @@ Building a better future, one line of code at a time.
51
49
  </head>
52
50
  <body class="<%= application_body_class() %>">
53
51
  <%= yield %>
54
- <%= javascript_include_tag("lesli_shield/#{devise_controller}") %>
55
52
  <%= render(partial: "lesli/partials/application-analytics") %>
56
53
  </body>
57
54
  </html>
@@ -34,11 +34,10 @@ Building a better future, one line of code at a time.
34
34
  <html>
35
35
  <head>
36
36
  <%= render(partial: "lesli/partials/application-head") %>
37
- <%= render(partial: "lesli/partials/application-data") %>
38
- <%= render(partial: "lesli/partials/application-lesli-scss") %>
39
- <%= render(partial: "lesli/partials/application-lesli-javascript") %>
37
+ <%= render(partial: "lesli/partials/application-lesli-css") %>
38
+ <%= render(partial: "lesli/partials/application-lesli-data") %>
40
39
  </head>
41
- <body class="<%= application_body_class %>">
40
+ <body class="<%= application_body_class() %>">
42
41
  <%= render(partial: "lesli/partials/application-lesli-header") %>
43
42
  <%= render(partial: "lesli/partials/application-lesli-notifications") %>
44
43
  <main class="lesli-application-app">
@@ -46,7 +45,7 @@ Building a better future, one line of code at a time.
46
45
  <%= render(partial: "lesli/partials/application-lesli-content") %>
47
46
  </main>
48
47
  <%= render(partial: "lesli_assets/partials/application-lesli-icons-engines") %>
48
+ <%= render(partial: "lesli/partials/application-lesli-javascript") %>
49
49
  <%= render(partial: "lesli/partials/application-analytics") %>
50
- <%= yield(:application_lesli_body_bottom) %>
51
50
  </body>
52
51
  </html>
@@ -35,24 +35,10 @@ Building a better future, one line of code at a time.
35
35
  <!DOCTYPE html>
36
36
  <html>
37
37
  <head>
38
- <%= render partial: "lesli/partials/application-head" %>
39
- <%#= render partial: "lesli/partials/application-data" %>
40
- <%= render partial: "lesli/partials/application-public-scss" %>
41
- <%= yield :application_custom_assets %>
42
- <%# Disable back button in browser after Logout using JavaScript %>
43
- <% if flash[:logout] == true %>
44
- <script>
45
- history.pushState(null, null, null);
46
- window.addEventListener('popstate', function () {
47
- history.pushState(null, null, null);
48
- });
49
- </script>
50
- <% end %>
38
+ <%= render(partial: "lesli/partials/application-head") %>
51
39
  </head>
52
40
  <body class="<%= application_body_class() %>">
53
- <%#= yield :application_public_custom_header %>
54
41
  <%= yield %>
55
- <%= render partial: "lesli/partials/application-public-javascript" %>
56
- <%= render partial: "lesli/partials/application-analytics" %>
42
+ <%= render(partial: "lesli/partials/application-analytics") %>
57
43
  </body>
58
44
  </html>
@@ -1,9 +1,8 @@
1
- <%
2
- =begin
1
+ <%#
3
2
 
4
3
  Lesli
5
4
 
6
- Copyright (c) 2023, Lesli Technologies, S. A.
5
+ Copyright (c) 2025, Lesli Technologies, S. A.
7
6
 
8
7
  This program is free software: you can redistribute it and/or modify
9
8
  it under the terms of the GNU General Public License as published by
@@ -18,9 +17,9 @@ 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 · Ruby on Rails SaaS development platform.
20
+ Lesli · Ruby on Rails SaaS Development Framework.
22
21
 
23
- Made with ♥ by https://www.lesli.tech
22
+ Made with ♥ by LesliTech
24
23
  Building a better future, one line of code at a time.
25
24
 
26
25
  @contact hello@lesli.tech
@@ -29,7 +28,6 @@ Building a better future, one line of code at a time.
29
28
 
30
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
30
  // ·
32
- =end
33
31
  %>
34
32
 
35
33
 
@@ -1,9 +1,8 @@
1
- <%
2
- =begin
1
+ <%#
3
2
 
4
3
  Lesli
5
4
 
6
- Copyright (c) 2023, Lesli Technologies, S. A.
5
+ Copyright (c) 2025, Lesli Technologies, S. A.
7
6
 
8
7
  This program is free software: you can redistribute it and/or modify
9
8
  it under the terms of the GNU General Public License as published by
@@ -29,12 +28,8 @@ Building a better future, one line of code at a time.
29
28
 
30
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
30
  // ·
32
- =end
33
31
  %>
34
32
 
35
- <%# Hide vue until vue finishes compilation %>
36
- <%# <style>[v-cloak] { display: none !important; }</style> %>
37
-
38
33
 
39
34
  <%
40
35
  # Defining color customization
@@ -55,6 +50,5 @@ Building a better future, one line of code at a time.
55
50
 
56
51
 
57
52
  <%# Loading stylesheets %>
58
- <%= stylesheet_link_tag lesli_application_stylesheet_path(:lesli_assets), media: "all" %>
59
- <%= stylesheet_link_tag lesli_application_stylesheet_path(), media: "all" %>
60
-
53
+ <%= stylesheet_link_tag(lesli_asset_path(:lesli_assets, 'templates/application'), media: "all") %>
54
+ <%= stylesheet_link_tag(lesli_asset_path(), media: "all") %>
@@ -32,6 +32,10 @@ Building a better future, one line of code at a time.
32
32
 
33
33
  <%
34
34
 
35
+ # Defining color customization
36
+ # colors will be override with the ones defined in the database if custom colors exists
37
+ # if there is no custom colors defined, the var() function will return the lesli colors
38
+ #@lesli.dig(:customization, :colors) || {}
35
39
  @lesli[:notifications] = Lesli::Courier.new(:lesli_bell, 0).from(:notification_service, current_user).call(:count)
36
40
 
37
41
  %>
@@ -1,9 +1,8 @@
1
- <%
2
- =begin
1
+ <%#
3
2
 
4
3
  Lesli
5
4
 
6
- Copyright (c) 2023, Lesli Technologies, S. A.
5
+ Copyright (c) 2025, Lesli Technologies, S. A.
7
6
 
8
7
  This program is free software: you can redistribute it and/or modify
9
8
  it under the terms of the GNU General Public License as published by
@@ -29,11 +28,10 @@ Building a better future, one line of code at a time.
29
28
 
30
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
30
  // ·
32
- =end
33
31
  %>
34
32
 
35
33
  <%= javascript_importmap_tags %>
36
- <%= javascript_include_tag("lesli_assets/application.js", :defer => "defer") %>
34
+ <%= javascript_include_tag(lesli_asset_path(:lesli_assets, 'application'), :defer => "defer") %>
37
35
  <%= yield(:application_lesli_javascript) %>
38
36
  <%#
39
37
  <script src="https://js.honeybadger.io/v3.2/honeybadger.min.js" type="text/javascript"></script>
data/lib/lesli/engine.rb CHANGED
@@ -36,9 +36,11 @@ require "kaminari"
36
36
 
37
37
  # · Tools used to build the Lesli Framework
38
38
  require "L2"
39
- require "useragent"
39
+ #require "useragent"
40
40
  require "acts_as_paranoid"
41
41
 
42
+ # The hole Lesli ecosystem depends on current_user, so we
43
+ # include the dependency in the core
42
44
  require "devise"
43
45
 
44
46
  require "lesli_date"
@@ -73,9 +75,6 @@ module Lesli
73
75
  end
74
76
  end
75
77
 
76
-
77
- #config.view_component.view_component_path = root.join("app","components")
78
-
79
78
 
80
79
  # Lesli Framework configuration
81
80
 
data/lib/lesli/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Lesli
2
- VERSION = "5.0.21"
3
- BUILD = "1754919086"
2
+ VERSION = "5.0.22"
3
+ BUILD = "1755006918"
4
4
  end
@@ -52,3 +52,14 @@ module LesliHelper
52
52
  Rack::Test::UploadedFile.new(Rails.root.join(path))
53
53
  end
54
54
  end
55
+
56
+ # Devise Rails 8 patch
57
+
58
+ require 'devise'
59
+
60
+ module Devise
61
+ def self.mappings
62
+ Rails.application.try(:reload_routes_unless_loaded)
63
+ @@mappings
64
+ end
65
+ end
@@ -30,8 +30,6 @@ Building a better future, one line of code at a time.
30
30
  // ·
31
31
  =end
32
32
 
33
- require "i18n-js"
34
-
35
33
  # ·
36
34
  namespace :lesli do
37
35
  namespace :babel do
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lesli
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.21
4
+ version: 5.0.22
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Lesli Development Team
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2025-08-11 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rails
@@ -25,47 +24,33 @@ dependencies:
25
24
  - !ruby/object:Gem::Version
26
25
  version: '8.0'
27
26
  - !ruby/object:Gem::Dependency
28
- name: i18n-js
27
+ name: turbo-rails
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: 4.2.3
32
+ version: '2.0'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: 4.2.3
39
+ version: '2.0'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: importmap-rails
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: 2.2.0
46
+ version: '2.2'
48
47
  type: :runtime
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: 2.2.0
55
- - !ruby/object:Gem::Dependency
56
- name: turbo-rails
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: '0'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ">="
67
- - !ruby/object:Gem::Version
68
- version: '0'
53
+ version: '2.2'
69
54
  - !ruby/object:Gem::Dependency
70
55
  name: acts_as_paranoid
71
56
  requirement: !ruby/object:Gem::Requirement
@@ -178,8 +163,8 @@ dependencies:
178
163
  - - "~>"
179
164
  - !ruby/object:Gem::Version
180
165
  version: '0.6'
181
- description: Lesli is a SaaS development framework designed to build highly scalable,
182
- secure and customizable software products.
166
+ description: "Lesli is a SaaS development framework designed to build highly scalable,
167
+ \nsecure and customizable software products.\n"
183
168
  email:
184
169
  - hello@lesli.tech
185
170
  executables: []
@@ -271,29 +256,23 @@ files:
271
256
  - app/views/lesli/layouts/mailer.html.erb
272
257
  - app/views/lesli/layouts/mailer.text.erb
273
258
  - app/views/lesli/partials/_application-analytics.html.erb
274
- - app/views/lesli/partials/_application-data.html.erb
275
259
  - app/views/lesli/partials/_application-head.html.erb
276
260
  - app/views/lesli/partials/_application-lesli-annoouncements.html.erb
277
- - app/views/lesli/partials/_application-lesli-chatbox.html.erb
278
261
  - app/views/lesli/partials/_application-lesli-content.html.erb
262
+ - app/views/lesli/partials/_application-lesli-css.html.erb
263
+ - app/views/lesli/partials/_application-lesli-data.html.erb
279
264
  - app/views/lesli/partials/_application-lesli-footer.html.erb
280
265
  - app/views/lesli/partials/_application-lesli-header.html.erb
281
266
  - app/views/lesli/partials/_application-lesli-javascript.html.erb
282
267
  - app/views/lesli/partials/_application-lesli-navigation.html.erb
283
268
  - app/views/lesli/partials/_application-lesli-notifications.html.erb
284
- - app/views/lesli/partials/_application-lesli-panels.html.erb
285
- - app/views/lesli/partials/_application-lesli-scss.html.erb
286
269
  - app/views/lesli/partials/_application-lesli-sidebar.html.erb
287
- - app/views/lesli/partials/_application-public-footer.html.erb
288
- - app/views/lesli/partials/_application-public-javascript.html.erb
289
- - app/views/lesli/partials/_application-public-scss.html.erb
290
270
  - app/views/lesli/shared/dashboards/_edit.html.erb
291
271
  - app/views/lesli/shared/dashboards/_show.html.erb
292
272
  - app/views/lesli/wrappers/_application-devise-simple.erb
293
273
  - app/views/lesli/wrappers/_application-devise.html.erb
294
274
  - config/importmap.rb
295
275
  - config/initializers/devise.rb
296
- - config/initializers/devise_rails_8_patch.rb
297
276
  - config/initializers/lesli.rb
298
277
  - config/initializers/lesli_migration_helpers.rb
299
278
  - config/locales/devise.en.yml
@@ -394,10 +373,10 @@ files:
394
373
  - readme.md
395
374
  homepage: https://www.lesli.dev/
396
375
  licenses:
397
- - GPL-3.0
376
+ - GPL-3.0-or-later
398
377
  metadata:
399
378
  homepage_uri: https://www.lesli.dev/
400
- changelog_uri: https://github.com/LesliTech/Lesli
379
+ changelog_uri: https://github.com/LesliTech/Lesli/releases
401
380
  source_code_uri: https://github.com/LesliTech/Lesli
402
381
  bug_tracker_uri: https://github.com/LesliTech/Lesli/issues
403
382
  documentation_uri: https://www.lesli.dev/lesli/
@@ -416,8 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
416
395
  - !ruby/object:Gem::Version
417
396
  version: '0'
418
397
  requirements: []
419
- rubygems_version: 3.4.19
420
- signing_key:
398
+ rubygems_version: 3.7.1
421
399
  specification_version: 4
422
400
  summary: Ruby on Rails SaaS Development Framework.
423
401
  test_files: []
@@ -1,35 +0,0 @@
1
- <%
2
- =begin
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · 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
-
35
- <application-component-chatbox></application-component-chatbox>
@@ -1,58 +0,0 @@
1
- <%
2
- =begin
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · 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
-
35
- <%# Loading standard focus panel %>
36
- <% if defined?(CloudFocus) %>
37
- <application-component-panel-tasks>
38
- </application-component-panel-tasks>
39
- <% end %>
40
-
41
-
42
- <%# Loading standar bell panels %>
43
- <% if defined?(LesliBell) %>
44
- <application-panel-bell-notifications></application-panel-bell-notifications>
45
- <%# <application-panel-announcements></application-component-panel-announcements> %>
46
- <% end %>
47
-
48
-
49
- <%# Loading standar help panels %>
50
- <% if defined?(LesliSupport) %>
51
- <application-panel-support-tickets></application-panel-support-tickets>
52
- <% end %>
53
-
54
- <%# Loading user profile panel %>
55
- <%# <application-component-panel-profile></application-component-panel-profile> %>
56
-
57
- <%# Loading cloud object files panel %>
58
- <%# <application-component-panel-files></application-component-panel-files> %>
@@ -1,51 +0,0 @@
1
- <%
2
- =begin
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · 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
-
35
- <footer>
36
- <nav aria-label="main navigation" class="navbar" role="navigation">
37
- <div class="navbar-brand">
38
- <a class="navbar-item" href="https://lesli.cloud">
39
- LesliCloud
40
- </a>
41
- </div>
42
- <div class="navbar-menu">
43
- <div class="navbar-start"></div>
44
- <div class="navbar-end">
45
- <a class="navbar-item">
46
- Privacy
47
- </a>
48
- </div>
49
- </div>
50
- </nav>
51
- </footer>
@@ -1,49 +0,0 @@
1
- <%
2
- =begin
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · Ruby on Rails SaaS Development Framework.
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
-
35
-
36
- <% is_devise = controller_path.split('/')[0] == "users" %>
37
-
38
- <%# Load specific javascript files for devise actions (login,register,etc) %>
39
- <%#= javascript_include_tag("lesli/#{controller_path}") if is_devise %>
40
-
41
- <%# Load standard files %>
42
- <%#= javascript_include_tag(application_javascript_path()) unless is_devise %>
43
-
44
- <%# Set language for JavaScript apps %>
45
- <script>
46
- if (typeof i18n !== "undefined") {
47
- i18n.locale = "<%= I18n.locale %>"
48
- }
49
- </script>
@@ -1,35 +0,0 @@
1
- <%
2
- =begin
3
-
4
- Lesli
5
-
6
- Copyright (c) 2023, Lesli Technologies, S. A.
7
-
8
- This program is free software: you can redistribute it and/or modify
9
- it under the terms of the GNU General Public License as published by
10
- the Free Software Foundation, either version 3 of the License, or
11
- (at your option) any later version.
12
-
13
- This program is distributed in the hope that it will be useful,
14
- but WITHOUT ANY WARRANTY; without even the implied warranty of
15
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
- GNU General Public License for more details.
17
-
18
- You should have received a copy of the GNU General Public License
19
- along with this program. If not, see http://www.gnu.org/licenses/.
20
-
21
- Lesli · 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
-
35
- <%#= stylesheet_link_tag(controller_path, media: "all") %>
@@ -1,8 +0,0 @@
1
- require 'devise'
2
-
3
- module Devise
4
- def self.mappings
5
- Rails.application.try(:reload_routes_unless_loaded)
6
- @@mappings
7
- end
8
- end