lesli 5.0.14 → 5.0.16

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: e263589d96d2eba1edcd75463c595ec8862626c6ca044f418bba462fe681e17f
4
- data.tar.gz: 255ea3108a0a2c8102f89808aa9fd560becd962e85cdbcd3e938e8e9df50fd84
3
+ metadata.gz: 3df5368cbe7fef596fc11570d2b55dca003982b551fb55c46a4c492a4913e7e0
4
+ data.tar.gz: cc51e2812cad505575e7d1f131eb7d23ec59d45ba153d8b7c654c4a20fe5d0e4
5
5
  SHA512:
6
- metadata.gz: 0f63e07db9f952946a3c78833125b4c432d920ea0c6e5d0800ea93f2104463f31b843c052d47b7b8ae707e93348df7605d43cd4900b5ed0073cda37ed7575e2e
7
- data.tar.gz: 802ab7f0cccd22808fd648c2f9468b9980db314ada31b4e2972047ea475be6257d63d67c521f0e3cb1533d1b9c73383a23e61bdd3ae515624abd95ef804c5559
6
+ metadata.gz: e50d7980d7380551ae202e58f5285b64e4dc97534950c30d81347a2ae9e85c82b3475f7435946ae20c34a2f473b7c10771f7b434f057043a84649d9fcfa2ba03
7
+ data.tar.gz: 9c316b8a9127f40f1b637f943eaec9299c532fb1bd91a5d1cb914bd599480499f5096c3eeb1064e4939a9e2a3888b7a77f6ab3f7e14d05cd5c138f329053c3e6
@@ -32,11 +32,15 @@ Building a better future, one line of code at a time.
32
32
 
33
33
  module Lesli
34
34
  class AboutsController < ApplicationLesliController
35
+ layout "lesli/layouts/application-public", only: [:welcome]
35
36
 
36
37
  # def status
37
38
  # respond_with_successful({ :Lesli => "Ruby on Rails SaaS Development Framework." })
38
39
  # end
39
40
 
41
+ def welcome
42
+ end
43
+
40
44
  # GET /status
41
45
  def show
42
46
  respond_to do |format|
@@ -0,0 +1,144 @@
1
+ <style>
2
+ html, body {
3
+ margin: 0;
4
+ padding: 0;
5
+ }
6
+
7
+ html, body, * {
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ .page-welcome {
12
+ display: flex;
13
+ flex-direction: column;
14
+ justify-content: center;
15
+ align-content: center;
16
+ align-items: center;
17
+ height: 100vh;
18
+ padding-bottom: 4rem;
19
+ background-size: 115px 115px;
20
+ background-color: #ffffff;
21
+ background-position: 0 0,55px 55px;
22
+ background-image:
23
+ radial-gradient(#0d52bf 2px, transparent 2px),
24
+ radial-gradient(#0d52bf 2px, #ffffff 2px);
25
+ animation: rotateBackground 12s linear infinite;
26
+ }
27
+
28
+ .page-welcome svg {
29
+ width: 320px;
30
+ background-color: white;
31
+ }
32
+
33
+ .page-welcome h1 {
34
+ font-size: 4rem;
35
+ max-width: 960px;
36
+ font-weight: 900;
37
+ text-align: center;
38
+ line-height: 1.1;
39
+ margin: 0px auto 2rem;
40
+ letter-spacing: -.5px;
41
+ background-color: white;
42
+ color: #4d4d4d;
43
+ }
44
+
45
+ .page-welcome h1 span {
46
+ background: -webkit-linear-gradient(315deg,#0D52Bf 25%,#001F66);
47
+ background-clip: border-box;
48
+ background-clip: text;
49
+ -webkit-background-clip: text;
50
+ -webkit-text-fill-color: transparent;
51
+ }
52
+
53
+ .page-welcome a {
54
+ font-size: 1.4rem;
55
+ font-family: "OpenSans", "Ubuntu", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
56
+ background-color: white;
57
+ color: #001F66;
58
+ display: flex;
59
+ align-items: center;
60
+ }
61
+
62
+ .buttons {
63
+ margin-bottom: 2rem;
64
+ }
65
+
66
+ .buttons a {
67
+ border: none;
68
+ display: inline-block;
69
+ text-decoration: none;
70
+ border-radius: 8px;
71
+ box-shadow: 0 2px 8px -1px rgba(10, 22, 50, .24);
72
+
73
+ margin: 0;
74
+ color: #ffffff;
75
+ padding: 14px 40px;
76
+ text-align: center;
77
+ font-size: 1rem;
78
+ font-weight: 500;
79
+ line-height: 28px;
80
+ }
81
+
82
+ .buttons a.doc {
83
+ background: #184fee;
84
+ }
85
+
86
+ .buttons a.start {
87
+ background: #444444;
88
+ }
89
+
90
+ @media only screen and (max-width: 600px) {
91
+ .page-welcome svg {
92
+ width: 250px;
93
+ }
94
+
95
+ .page-welcome h1 {
96
+ padding: 0 1rem;
97
+ font-size: 2.7rem;
98
+ }
99
+
100
+ .buttons a {
101
+ padding: 14px 20px;
102
+ }
103
+ }
104
+
105
+ @keyframes rotateBackground {
106
+ to {
107
+ background-position: 115px 115px, 170px 170px;
108
+ }
109
+ }
110
+ </style>
111
+
112
+ <section class="page-welcome">
113
+ <svg xmlns="http://www.w3.org/2000/svg" fill="#0d52bf" data-name="Layer 1" viewBox="0 0 716.56 292.44">
114
+ <path d="M214.181 204.066v40.883H105.328V59.095h42.48v144.97zM294.859 213.088c10.885 0 20.18-4.242 25.49-10.09l31.86 18.324c-13.014 18.051-32.656 27.346-57.916 27.346-45.404 0-73.546-30.535-73.546-70.092s28.756-70.099 70.685-70.099c38.762 0 67.44 30.005 67.44 70.099a77.279 77.279 0 0 1-1.59 15.93h-94.256c5.045 13.802 17.256 18.582 31.833 18.582zm24.422-48.321c-4.243-15.4-16.196-20.975-28.142-20.975-15.134 0-25.224 7.438-28.936 20.975zM476.476 205.126c0 30.528-26.515 43.542-55.222 43.542-26.515 0-46.751-10.09-57.085-31.596l34.519-19.649c3.447 10.09 10.885 15.665 22.566 15.665 9.56 0 14.332-2.917 14.332-8.227 0-14.604-65.312-6.908-65.312-52.836 0-28.943 24.423-43.548 52.04-43.548 21.506 0 40.625 9.56 51.776 28.414L440.1 155.207c-3.72-6.9-9.022-11.68-17.786-11.68-6.901 0-11.165 2.658-11.165 7.43.014 15.136 65.326 5.046 65.326 54.17zM493.725 51.134h39.823v193.815h-39.823zM560.091 112.196h39.83V244.95h-39.83z" class="cls-1"/>
115
+ <circle cx="580.006" cy="69.932" r="25.322" class="cls-1"/>
116
+ </svg>
117
+ <h1>
118
+ The Open Source Ruby on Rails <span>SaaS Development Framework</span>
119
+ </h1>
120
+ <div class="buttons">
121
+ <a class="doc" target="blank" href="https://www.lesli.dev/">
122
+ Documentation
123
+ </a>
124
+ <a class="start" target="blank" href="https://www.lesli.dev/start/">
125
+ Getting started
126
+ </a>
127
+ </div>
128
+ <% if defined?(LesliShield) %>
129
+ <%= link_to("Dashboard", "/dashboard") if user_signed_in? && defined?(LesliDashboard) %>
130
+ <%= link_to("Logout", "/logout") if user_signed_in? %>
131
+ <%= link_to("Login", "/login") unless user_signed_in? %>
132
+ <% end %>
133
+ </section>
134
+
135
+ <% if Rails.env.production? %>
136
+ <!-- Google tag (gtag.js) -->
137
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-LJRTGWVRCC"></script>
138
+ <script>
139
+ window.dataLayer = window.dataLayer || [];
140
+ function gtag(){dataLayer.push(arguments);}
141
+ gtag('js', new Date());
142
+ gtag('config', 'G-LJRTGWVRCC');
143
+ </script>
144
+ <% end %>
@@ -51,8 +51,7 @@ Building a better future, one line of code at a time.
51
51
  </head>
52
52
  <body class="<%= application_body_class() %>">
53
53
  <%#= yield :application_public_custom_header %>
54
- <h1>public layout</h1>
55
- <%#= yield %>
54
+ <%= yield %>
56
55
  <%= render partial: "lesli/partials/application-public-javascript" %>
57
56
  <%= render partial: "lesli/partials/application-analytics" %>
58
57
  </body>
@@ -32,4 +32,4 @@ Building a better future, one line of code at a time.
32
32
  =end
33
33
  %>
34
34
 
35
- <%= stylesheet_link_tag("lesli/#{controller_path}", media: "all") %>
35
+ <%#= stylesheet_link_tag(controller_path, media: "all") %>
@@ -53,11 +53,13 @@ end
53
53
  </div>
54
54
  </section>
55
55
 
56
- <%= render(LesliView::Elements::Empty.new(text: "Empty dashboard")) if @dashboard[:components].blank? %>
56
+ <%#= render(LesliView::Elements::Empty.new(text: "Empty dashboard")) if @dashboard[:components].blank? %>
57
+
58
+ <%= dd @dashboard %>
57
59
 
58
60
  <div class="columns is-multiline is-variable is-4 dashboard-components">
59
- <% @dashboard[:components].each do |component| %>
60
- <%= render("#{controller.controller_path}/component-#{component}", { :component => component }) %>
61
- <% end %>
61
+ <%# @dashboard[:components].each do |component| %>
62
+ <%#= render("#{controller.controller_path}/component-#{component}", { :component => component }) %>
63
+ <%# end %>
62
64
  </div>
63
65
  <% end %>
data/lib/lesli/engine.rb CHANGED
@@ -40,8 +40,13 @@ require "ancestry"
40
40
  require "useragent"
41
41
  require "acts_as_paranoid"
42
42
 
43
- require "turbo-rails"
43
+ require "lesli_date"
44
+ require "lesli_view"
45
+ require "lesli_assets"
46
+ require "lesli_system"
47
+
44
48
  require "importmap-rails"
49
+ require "turbo-rails"
45
50
 
46
51
  module Lesli
47
52
  class Engine < ::Rails::Engine
data/lib/lesli/routing.rb CHANGED
@@ -40,7 +40,7 @@ module Lesli
40
40
  LesliShield::Routing.mount_login_at(path) if defined?(LesliShield);
41
41
 
42
42
  # Load generic yet standard routes if LesliShield is not installed
43
- unless defined?(LesliShield);
43
+ if !defined?(LesliShield) && defined?(Devise)
44
44
  Rails.application.routes.draw do
45
45
  devise_for(:users, class_name: "Lesli::User", module: :devise)
46
46
  end
@@ -50,6 +50,7 @@ module Lesli
50
50
  def self.mount
51
51
  self.login
52
52
  Rails.application.routes.draw do
53
+ root to: "lesli/abouts#welcome", as: :welcome
53
54
  mount Lesli::Engine => "/lesli" if defined?(Lesli)
54
55
  mount LesliBell::Engine => "/bell" if defined?(LesliBell)
55
56
  mount LesliAdmin::Engine => "/admin" if defined?(LesliAdmin)
@@ -62,7 +63,6 @@ module Lesli
62
63
  mount LesliSecurity::Engine => "/security" if defined?(LesliSecurity)
63
64
  mount LesliCalendar::Engine => "/calendar" if defined?(LesliCalendar)
64
65
  mount LesliDashboard::Engine => "/dashboard" if defined?(LesliDashboard)
65
-
66
66
  end
67
67
  end
68
68
 
data/lib/lesli/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  module Lesli
2
- VERSION = "5.0.14"
3
- BUILD = "1751166982"
2
+ VERSION = "5.0.16"
3
+ BUILD = "1751336586"
4
4
  end
@@ -43,24 +43,9 @@ namespace :lesli do
43
43
  # Seed database (development only)
44
44
  def welcome
45
45
 
46
- # do not execute this task if we are at production level
47
- return if Rails.env.production?
48
-
49
46
  L2.br(4)
50
47
 
51
48
  # print the lesli gems
52
49
  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
50
  end
66
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lesli
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.14
4
+ version: 5.0.16
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Lesli Development Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-06-29 00:00:00.000000000 Z
11
+ date: 2025-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n-js
@@ -136,6 +136,20 @@ dependencies:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
138
  version: '1.0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: lesli_system
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: '1.0'
146
+ type: :runtime
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: '1.0'
139
153
  - !ruby/object:Gem::Dependency
140
154
  name: L2
141
155
  requirement: !ruby/object:Gem::Requirement
@@ -231,6 +245,7 @@ files:
231
245
  - app/services/lesli/user_service.rb
232
246
  - app/validators/lesli/application_lesli_validator.rb
233
247
  - app/validators/lesli/users_validator.rb
248
+ - app/views/lesli/abouts/welcome.html.erb
234
249
  - app/views/lesli/apps/show.html.erb
235
250
  - app/views/lesli/emails/user_mailer/invitation.html.erb
236
251
  - app/views/lesli/layouts/application-devise.html.erb