lesli 5.0.4 → 5.0.5
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 +4 -4
- data/app/assets/images/lesli/brand/app-logo2.svg +52 -0
- data/app/assets/javascripts/lesli/users/passwords.js +3 -3
- data/app/assets/javascripts/lesli/users/registrations.js +3 -3
- data/app/assets/javascripts/lesli/users/sessions.js +3 -3
- data/app/controllers/lesli/application_controller.rb +3 -3
- data/app/controllers/lesli/application_lesli_controller.rb +2 -2
- data/app/controllers/lesli/interfaces/application/authorization.rb +1 -1
- data/app/controllers/lesli/interfaces/application/requester.rb +1 -1
- data/app/controllers/lesli/shared/dashboards_controller.rb +308 -0
- data/app/controllers/users/confirmations_controller.rb +1 -1
- data/app/controllers/users/passwords_controller.rb +7 -10
- data/app/helpers/lesli/general_helper.rb +1 -1
- data/app/helpers/lesli/navigation_helper.rb +17 -16
- data/app/lib/lesli/system.rb +2 -1
- data/app/mailers/lesli/devise_mailer.rb +1 -1
- data/app/models/concerns/account_initializer.rb +9 -0
- data/app/models/lesli/account.rb +1 -0
- data/app/models/lesli/application_lesli_record.rb +1 -1
- data/app/models/lesli/shared/dashboard.rb +162 -0
- data/app/models/lesli/system_controller.rb +1 -0
- data/app/operators/lesli/controller_operator.rb +148 -0
- data/app/views/devise/passwords/new.html.erb +1 -1
- data/app/views/lesli/partials/_application-lesli-engines.html.erb +1 -1
- data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
- data/config/locales/translations.en.yml +17 -0
- data/config/locales/translations.es.yml +17 -0
- data/config/routes.rb +4 -2
- data/db/seed/development/users.rb +0 -1
- data/db/seeds.rb +16 -29
- data/lib/lesli/version.rb +1 -1
- data/lib/mailer_previews/devise_mailer_preview.rb +7 -0
- data/lib/sass/lesli/layouts/application-navbar.scss +1 -1
- data/lib/tasks/lesli/controllers.rake +1 -91
- data/lib/tasks/lesli/db.rake +36 -6
- data/lib/tasks/lesli/dev.rake +66 -0
- data/lib/tasks/lesli/engine.rake +59 -0
- data/lib/tasks/lesli/{role.rake → privileges.rake} +3 -3
- data/lib/tasks/lesli_tasks.rake +5 -0
- data/lib/vue/application.js +2 -1
- data/lib/vue/devise/passwords.js +8 -8
- data/lib/vue/devise/registrations.js +2 -2
- data/lib/vue/devise/sessions.js +11 -6
- data/lib/vue/layouts/application-header.vue +6 -1
- data/lib/vue/shared/dashboards/apps/edit.vue +215 -0
- data/lib/vue/{apps → shared}/dashboards/apps/index.vue +3 -5
- data/lib/vue/{apps → shared}/dashboards/apps/show.vue +26 -16
- data/lib/vue/{apps → shared}/dashboards/components/form.vue +31 -43
- data/lib/vue/shared/stores/dashboard.js +251 -0
- data/lib/vue/stores/translations.json +24 -72
- data/lib/vue/stores/{user.js → users.js} +1 -1
- data/lib/webpack/base.js +3 -2
- data/readme.md +1 -1
- metadata +46 -52
- data/lib/vue/apps/dashboards/apps/edit.vue +0 -105
- data/lib/vue/apps/dashboards/components/preview.vue +0 -172
- /data/app/assets/icons/lesli/{cloud-vault.svg → cloud-guard.svg} +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/action.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/content.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/element.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/filters.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion/new.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/discussion.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/file/grid.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/file/list.vue +0 -0
- /data/lib/vue/{apps → shared}/cloudobjects/file.vue +0 -0
- /data/lib/vue/{apps → shared}/dashboards/apps/new.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/chatroom-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/cloud-object-clone-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/cloud-object-file-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/email-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/notification-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/send-cloud-object-file.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/forms/task-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/actions/index.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/checks/form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/checks/index.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/index.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/new.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/apps/show.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/associations.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/chart.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/workflow-form.vue +0 -0
- /data/lib/vue/{apps → shared}/workflows2/components/workflow-status-dropdown.vue +0 -0
data/db/seeds.rb
CHANGED
@@ -31,32 +31,19 @@ Building a better future, one line of code at a time.
|
|
31
31
|
=end
|
32
32
|
|
33
33
|
|
34
|
-
#
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
#
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
#
|
49
|
-
|
50
|
-
# "Version: #{instance_klass::VERSION} - Build: #{instance_klass::BUILD}"
|
51
|
-
# )
|
52
|
-
|
53
|
-
# # dynamic load seeds from installed engines
|
54
|
-
# instance_klass::Engine.load_seed
|
55
|
-
# end
|
56
|
-
|
57
|
-
|
58
|
-
# # exec maintenance tasks
|
59
|
-
#Rake.application.invoke_task("app:maintenance")
|
60
|
-
|
61
|
-
|
62
|
-
#L2.cow("Seed process completed!")
|
34
|
+
# IMPORTANT:
|
35
|
+
# Seed files are only for development, if you need to create default resources
|
36
|
+
# for production you must use the initializer method in the Engine account model
|
37
|
+
if Rails.env.development?
|
38
|
+
L2.msg(
|
39
|
+
"Lesli",
|
40
|
+
"Version: #{Lesli::VERSION}",
|
41
|
+
"Build: #{Lesli::BUILD}")
|
42
|
+
|
43
|
+
# including tools for seeders
|
44
|
+
load Lesli::Engine.root.join("db", "seed", "tools.rb")
|
45
|
+
|
46
|
+
|
47
|
+
# loading core seeders
|
48
|
+
load Lesli::Engine.root.join("db", "seed", "#{Rails.env.downcase}.rb")
|
49
|
+
end
|
data/lib/lesli/version.rb
CHANGED
@@ -32,6 +32,13 @@ Building a better future, one line of code at a time.
|
|
32
32
|
|
33
33
|
class DeviseMailerPreview < ActionMailer::Preview
|
34
34
|
|
35
|
+
def reset_password_instructions
|
36
|
+
record = Lesli::User.first
|
37
|
+
token = "abcdef12345"
|
38
|
+
opts = {}
|
39
|
+
Lesli::DeviseMailer.reset_password_instructions(record, token, opts)
|
40
|
+
end
|
41
|
+
|
35
42
|
def confirmation_instructions
|
36
43
|
record = Lesli::User.first
|
37
44
|
token = "abcdef12345"
|
@@ -36,98 +36,8 @@ namespace :lesli do
|
|
36
36
|
|
37
37
|
desc "Scan new routes added and create role privileges"
|
38
38
|
task build: :environment do
|
39
|
-
|
40
39
|
L2.msg("Registering engines, controllers and actions")
|
41
|
-
|
42
|
-
# get all the engines, controllers and actions
|
43
|
-
engines = scan_for_engine_controllers
|
44
|
-
|
45
|
-
# Register descriptors and privileges for all the accounts
|
46
|
-
engines.each do |engine, controllers|
|
47
|
-
|
48
|
-
controllers.each do |controller_route, controller_actions|
|
49
|
-
|
50
|
-
# Build a strig with the standard name of a Rails controller from the standard routes
|
51
|
-
# Examples:
|
52
|
-
# users converts to Users
|
53
|
-
# cloud_bell/notifications converts to CloudBell::Notifications
|
54
|
-
# sometimes we need a second split to deal with third level deep of controllers
|
55
|
-
# Example: "Account::Currency::ExchangeRatesController" from "account/currency/exchange_rates"
|
56
|
-
reference = controller_route
|
57
|
-
.split('/') # split the controller path by namespace
|
58
|
-
.collect(&:capitalize) # uppercase the first letter to match the class name convention of Rails
|
59
|
-
.join("::") # join by ruby class separator for namespaces
|
60
|
-
.split('_') # work with compound words like "exchange_rates"
|
61
|
-
.collect { |x| x[0] = x[0].upcase; x } # convert ['exchange', 'rates'] to ['Exchange', 'Rates']
|
62
|
-
.join('') # joins everything in a single string
|
63
|
-
|
64
|
-
name = reference.sub('::',' ')
|
65
|
-
|
66
|
-
controller = Lesli::SystemController.create_with({
|
67
|
-
name: name,
|
68
|
-
:engine => engine,
|
69
|
-
:reference => reference
|
70
|
-
}).find_or_create_by!(route: controller_route)
|
71
|
-
|
72
|
-
controller_actions.each do |action_name|
|
73
|
-
controller.actions.find_or_create_by!(name: action_name)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
def scan_for_engine_controllers
|
80
|
-
|
81
|
-
# Global container
|
82
|
-
controller_list = {
|
83
|
-
"app" => {}
|
84
|
-
}
|
85
|
-
|
86
|
-
# Get the list of controllers and actions of the core
|
87
|
-
Rails.application.routes.routes.each do |route|
|
88
|
-
route = route.defaults
|
89
|
-
|
90
|
-
# filter the non-used core routes
|
91
|
-
next if route[:controller].blank?
|
92
|
-
next if route[:controller].include? "rails"
|
93
|
-
next if route[:controller].include? "action_mailbox"
|
94
|
-
next if route[:controller].include? "active_storage"
|
95
|
-
|
96
|
-
# create a container for the actions related to a controller
|
97
|
-
controller_list["app"][route[:controller]] = [] unless controller_list["app"][route[:controller]]
|
98
|
-
|
99
|
-
# assign and group all the actions related to the controller
|
100
|
-
controller_list["app"][route[:controller]].push(route[:action])
|
101
|
-
|
102
|
-
end
|
103
|
-
|
104
|
-
# Get the list of controllers and actions from engines
|
105
|
-
Lesli::System.engines.each do |engine, engine_info|
|
106
|
-
|
107
|
-
# load and retrieve the list of controllers and actions from an engine
|
108
|
-
routes = "#{engine}::Engine".constantize.routes.routes.each do |route|
|
109
|
-
route = route.defaults
|
110
|
-
|
111
|
-
# validate if route has information, some special routes like redirects
|
112
|
-
# can generate an empty entry in the route hash
|
113
|
-
next if route.empty?
|
114
|
-
|
115
|
-
# get the engine code
|
116
|
-
engine_code = engine_info[:code]
|
117
|
-
|
118
|
-
# create a container for the controllers related to the engine
|
119
|
-
controller_list[engine_code] = {} if controller_list[engine_code].blank?
|
120
|
-
|
121
|
-
# assign and group all the actions related to the controller
|
122
|
-
controller_list[engine_code][route[:controller]] = [] if controller_list[engine_code][route[:controller]].blank?
|
123
|
-
|
124
|
-
# assign and group all the actions related to the controller
|
125
|
-
controller_list[engine_code][route[:controller]].push(route[:action])
|
126
|
-
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
return controller_list
|
40
|
+
Lesli::ControllerOperator.new.build
|
131
41
|
end
|
132
42
|
end
|
133
43
|
end
|
data/lib/tasks/lesli/db.rake
CHANGED
@@ -48,21 +48,35 @@ namespace :lesli do
|
|
48
48
|
task :seed => :environment do |task, args|
|
49
49
|
seed()
|
50
50
|
end
|
51
|
+
|
52
|
+
desc "Build, migrate & seed Lesli database"
|
53
|
+
task :start => :environment do |task, args|
|
54
|
+
start()
|
55
|
+
end
|
51
56
|
end
|
52
57
|
|
53
58
|
# Drop, build, migrate & seed database (development only)
|
54
59
|
def reset
|
60
|
+
|
61
|
+
# do not execute this task if we are at production level
|
55
62
|
return if Rails.env.production?
|
56
|
-
|
63
|
+
|
64
|
+
# print a message to let the users show the action running
|
65
|
+
L2.m("Reset Lesli database for development")
|
57
66
|
|
58
67
|
Rake::Task['db:drop'].invoke
|
68
|
+
|
59
69
|
setup()
|
60
70
|
end
|
61
71
|
|
62
72
|
# Build, migrate & seed database (development only)
|
63
73
|
def setup
|
74
|
+
|
75
|
+
# do not execute this task if we are at production level
|
64
76
|
return if Rails.env.production?
|
65
|
-
|
77
|
+
|
78
|
+
# print a message to let the users show the action running
|
79
|
+
L2.m("Setup Lesli database for development")
|
66
80
|
|
67
81
|
Rake::Task['db:create'].invoke
|
68
82
|
Rake::Task['db:migrate'].invoke
|
@@ -76,23 +90,39 @@ namespace :lesli do
|
|
76
90
|
# do not execute this task if we are at production level
|
77
91
|
return if Rails.env.production?
|
78
92
|
|
93
|
+
# print a message to let the users show the action running
|
79
94
|
L2.msg("Seed Lesli database for development")
|
80
95
|
|
81
|
-
# scan rails routes to build the controllers index
|
82
|
-
Rake::Task['lesli:controllers:build'].invoke
|
83
|
-
|
84
96
|
# load main app seeders
|
85
97
|
Rake::Task['db:seed'].invoke
|
86
98
|
|
87
99
|
# load Lesli* gems seeders
|
88
100
|
Lesli::Engine.load_seed
|
89
101
|
LesliBell::Engine.load_seed if defined?(LesliBell)
|
102
|
+
LesliHelp::Engine.load_seed if defined?(LesliHelp)
|
90
103
|
LesliAudit::Engine.load_seed if defined?(LesliAudit)
|
91
104
|
|
105
|
+
start()
|
106
|
+
end
|
107
|
+
|
108
|
+
def start
|
109
|
+
|
110
|
+
# do not execute this task if we are at production level
|
111
|
+
return if Rails.env.production?
|
112
|
+
|
113
|
+
# print a message to let the users show the action running
|
114
|
+
L2.msg("Start Lesli database for development")
|
115
|
+
|
116
|
+
# scan rails routes to build the controllers index
|
117
|
+
Rake::Task['lesli:controllers:build'].invoke
|
118
|
+
|
119
|
+
# scan rails routes to build the controllers index
|
120
|
+
Rake::Task['lesli:privileges:build'].invoke
|
121
|
+
|
92
122
|
# scan rails routes to build the base of translations
|
93
123
|
Rake::Task['lesli:babel:build'].invoke if defined?(LesliBabel)
|
94
124
|
|
95
125
|
# print the lesli gems
|
96
126
|
Rake::Task['lesli:status'].invoke
|
97
|
-
end
|
127
|
+
end
|
98
128
|
end
|
@@ -0,0 +1,66 @@
|
|
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
|
+
# ·
|
34
|
+
namespace :lesli do
|
35
|
+
namespace :dev do
|
36
|
+
|
37
|
+
desc "Print a welcome message with some basic instructions"
|
38
|
+
task :welcome => :environment do |task, args|
|
39
|
+
welcome()
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Seed database (development only)
|
44
|
+
def welcome
|
45
|
+
|
46
|
+
# do not execute this task if we are at production level
|
47
|
+
return if Rails.env.production?
|
48
|
+
|
49
|
+
L2.br(4)
|
50
|
+
|
51
|
+
# print the lesli gems
|
52
|
+
Rake::Task['lesli:status'].invoke
|
53
|
+
|
54
|
+
password = Lesli.config.security.dig(:password)
|
55
|
+
password = password + Time.now.year.to_s + "$"
|
56
|
+
user = Lesli::User.first
|
57
|
+
|
58
|
+
L2.line
|
59
|
+
L2.m(" Owner user credentials (demo):")
|
60
|
+
L2.m(" username: #{ user.email }")
|
61
|
+
L2.m(" password: #{ password }")
|
62
|
+
L2.line
|
63
|
+
|
64
|
+
L2.cow "Enjoy your Lesli demo"
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,59 @@
|
|
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
|
+
# ·
|
34
|
+
namespace :lesli do
|
35
|
+
namespace :engine do
|
36
|
+
|
37
|
+
desc "Initialize model data for new installed engines"
|
38
|
+
task :install => :environment do |task, args|
|
39
|
+
engine_install
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
# Initialize model data for new installed engines
|
44
|
+
def engine_install
|
45
|
+
|
46
|
+
L2.msg("Initialize model data for new installed engines")
|
47
|
+
|
48
|
+
# scan rails routes to build the controllers index
|
49
|
+
Rake::Task['lesli:controllers:build'].invoke
|
50
|
+
|
51
|
+
Rake::Task['lesli:role:privileges'].invoke
|
52
|
+
|
53
|
+
# scan rails routes to build the base of translations
|
54
|
+
Rake::Task['lesli:babel:build'].invoke if defined?(LesliBabel)
|
55
|
+
|
56
|
+
# print the lesli gems
|
57
|
+
Rake::Task['lesli:status'].invoke
|
58
|
+
end
|
59
|
+
end
|
@@ -32,10 +32,10 @@ Building a better future, one line of code at a time.
|
|
32
32
|
|
33
33
|
# ·
|
34
34
|
namespace :lesli do
|
35
|
-
namespace :
|
35
|
+
namespace :privileges do
|
36
36
|
|
37
|
-
desc "
|
38
|
-
task :
|
37
|
+
desc "Syncing privileges for all the available roles"
|
38
|
+
task :build => :environment do |task, args|
|
39
39
|
role_sync_privileges()
|
40
40
|
end
|
41
41
|
end
|
data/lib/tasks/lesli_tasks.rake
CHANGED
@@ -36,6 +36,11 @@ require "i18n-js"
|
|
36
36
|
namespace :lesli do
|
37
37
|
namespace :babel do
|
38
38
|
|
39
|
+
desc "Scan and register labels"
|
40
|
+
task :load => :environment do |task, args|
|
41
|
+
Rake::Task['lesli_babel:load'].invoke
|
42
|
+
end
|
43
|
+
|
39
44
|
desc "Scan and register labels"
|
40
45
|
task :build => :environment do |task, args|
|
41
46
|
Rake::Task['lesli_babel:build'].invoke
|
data/lib/vue/application.js
CHANGED
@@ -65,6 +65,7 @@ import {
|
|
65
65
|
lesliElementAutocomplete,
|
66
66
|
lesliElementAvatar,
|
67
67
|
lesliElementButton,
|
68
|
+
lesliElementButtonLink,
|
68
69
|
lesliElementCalendar,
|
69
70
|
lesliElementCard,
|
70
71
|
lesliElementCollapse,
|
@@ -204,7 +205,6 @@ export default (engine, routes=[]) => {
|
|
204
205
|
application.provide('url', useLesliUrl())
|
205
206
|
application.provide('http', useLesliHttp())
|
206
207
|
application.provide('date', useLesliDate())
|
207
|
-
application.provide('date', useLesliDate())
|
208
208
|
application.provide('utils', useLesliUtils())
|
209
209
|
application.provide('dialog', useLesliDialog())
|
210
210
|
|
@@ -236,6 +236,7 @@ export default (engine, routes=[]) => {
|
|
236
236
|
application.component("lesli-tabs", lesliElementTabs)
|
237
237
|
application.component("lesli-panel", lesliElementPanel)
|
238
238
|
application.component("lesli-button", lesliElementButton)
|
239
|
+
application.component("lesli-button-link", lesliElementButtonLink)
|
239
240
|
application.component("lesli-calendar", lesliElementCalendar)
|
240
241
|
application.component("lesli-input-tag", lesliElementInputTag)
|
241
242
|
application.component("lesli-file-uploader", lesliElementFileUploader)
|
data/lib/vue/devise/passwords.js
CHANGED
@@ -16,16 +16,16 @@ GNU General Public License for more details.
|
|
16
16
|
You should have received a copy of the GNU General Public License
|
17
17
|
along with this program. If not, see http://www.gnu.org/licenses/.
|
18
18
|
|
19
|
-
Lesli ·
|
19
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
20
20
|
|
21
21
|
Made with ♥ by https://www.lesli.tech
|
22
22
|
Building a better future, one line of code at a time.
|
23
23
|
|
24
24
|
@contact hello@lesli.tech
|
25
|
-
@website https://lesli.tech
|
25
|
+
@website https://www.lesli.tech
|
26
26
|
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
27
27
|
|
28
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
28
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
29
29
|
// ·
|
30
30
|
*/
|
31
31
|
|
@@ -51,13 +51,13 @@ application({
|
|
51
51
|
password: ""
|
52
52
|
},
|
53
53
|
password_edit: {
|
54
|
-
new_password: "
|
55
|
-
new_password_confirmation: "
|
54
|
+
new_password: "",
|
55
|
+
new_password_confirmation: ""
|
56
56
|
},
|
57
57
|
notification: {
|
58
58
|
message: "",
|
59
59
|
show: false,
|
60
|
-
type: "
|
60
|
+
type: ""
|
61
61
|
}
|
62
62
|
}
|
63
63
|
},
|
@@ -79,7 +79,7 @@ application({
|
|
79
79
|
};
|
80
80
|
|
81
81
|
this.http.post("/password", data).then(response => {
|
82
|
-
this.showNotification(this.translations.main.notification_reset_password_instructions_sent, "success")
|
82
|
+
this.showNotification("this.translations.main.notification_reset_password_instructions_sent", "success")
|
83
83
|
}).catch(error => {
|
84
84
|
this.showNotification(error.message)
|
85
85
|
}).finally(() => {
|
@@ -128,7 +128,7 @@ application({
|
|
128
128
|
|
129
129
|
showNotification(message, type="danger"){
|
130
130
|
this.notification.message = message;
|
131
|
-
this.notification.type = type;
|
131
|
+
this.notification.type = "is-"+type;
|
132
132
|
this.notification.show = true;
|
133
133
|
}
|
134
134
|
|
data/lib/vue/devise/sessions.js
CHANGED
@@ -16,16 +16,16 @@ GNU General Public License for more details.
|
|
16
16
|
You should have received a copy of the GNU General Public License
|
17
17
|
along with this program. If not, see http://www.gnu.org/licenses/.
|
18
18
|
|
19
|
-
Lesli ·
|
19
|
+
Lesli · Ruby on Rails SaaS Development Framework.
|
20
20
|
|
21
21
|
Made with ♥ by https://www.lesli.tech
|
22
22
|
Building a better future, one line of code at a time.
|
23
23
|
|
24
24
|
@contact hello@lesli.tech
|
25
|
-
@website https://lesli.tech
|
25
|
+
@website https://www.lesli.tech
|
26
26
|
@license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
|
27
27
|
|
28
|
-
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
28
|
+
// · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
|
29
29
|
// ·
|
30
30
|
*/
|
31
31
|
|
@@ -41,19 +41,24 @@ application({
|
|
41
41
|
return {
|
42
42
|
loading: false,
|
43
43
|
sign_in: {
|
44
|
-
email: "
|
45
|
-
password: "
|
44
|
+
email: "",
|
45
|
+
password: ""
|
46
46
|
},
|
47
47
|
notification: {
|
48
48
|
message: "",
|
49
49
|
show: false,
|
50
50
|
type: "default"
|
51
51
|
},
|
52
|
-
errors: [
|
52
|
+
errors: []
|
53
53
|
}
|
54
54
|
},
|
55
55
|
mounted() {
|
56
56
|
this.$refs?.email?.focus()
|
57
|
+
|
58
|
+
if (lesli_application_development) {
|
59
|
+
this.sign_in.email = "hello@lesli.tech"
|
60
|
+
this.sign_in.password = "tardis2023$"
|
61
|
+
}
|
57
62
|
},
|
58
63
|
methods: {
|
59
64
|
|
@@ -115,11 +115,16 @@ function toggleEngines() {
|
|
115
115
|
document.addEventListener('keydown', onEscape)
|
116
116
|
}
|
117
117
|
|
118
|
+
// ·
|
119
|
+
function safeEngineUrl() {
|
120
|
+
return encodeURI(props.enginePath);
|
121
|
+
}
|
122
|
+
|
118
123
|
</script>
|
119
124
|
<template>
|
120
125
|
<header ref="lesliApplicationHeader" class="lesli-application-header">
|
121
126
|
<div class="lesli-application-header-container container">
|
122
|
-
<a :href="
|
127
|
+
<a :href="safeEngineUrl()">
|
123
128
|
<figure class="image lesli-brand">
|
124
129
|
<img alt="App logo" class="is-hidden-touch" src="/assets/lesli/brand/app-logo.svg">
|
125
130
|
</figure>
|