lesli 5.0.11 → 5.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (152) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/lesli_manifest.js +0 -13
  3. data/app/assets/icons/lesli/engine-security.svg +1 -0
  4. data/app/assets/icons/lesli/engine-shield.svg +1 -0
  5. data/app/assets/images/lesli/lesli-logo.svg +4 -0
  6. data/app/assets/stylesheets/lesli/templates/application.css +21862 -209
  7. data/app/assets/stylesheets/lesli/templates/public.css +19098 -1
  8. data/app/assets/stylesheets/lesli/users/confirmations.css +19219 -0
  9. data/app/assets/stylesheets/lesli/users/passwords.css +19202 -0
  10. data/app/assets/stylesheets/lesli/users/registrations.css +19594 -0
  11. data/app/assets/stylesheets/lesli/users/sessions.css +19594 -1
  12. data/app/controllers/lesli/abouts_controller.rb +12 -18
  13. data/app/controllers/lesli/application_controller.rb +25 -25
  14. data/app/controllers/lesli/application_lesli_controller.rb +5 -6
  15. data/app/controllers/lesli/interfaces/application/authorization.rb +1 -1
  16. data/app/controllers/lesli/interfaces/application/customization.rb +1 -1
  17. data/app/controllers/lesli/interfaces/application/requester.rb +2 -2
  18. data/app/controllers/lesli/interfaces/application/responder.rb +8 -8
  19. data/app/controllers/lesli/interfaces/controllers/actions.rb +250 -0
  20. data/app/controllers/lesli/interfaces/controllers/activities.rb +215 -0
  21. data/app/controllers/lesli/interfaces/controllers/discussions.rb +270 -0
  22. data/app/controllers/lesli/interfaces/controllers/files.rb +467 -0
  23. data/app/controllers/lesli/interfaces/controllers/subscribers.rb +234 -0
  24. data/app/helpers/lesli/assets_helper.rb +4 -4
  25. data/app/helpers/lesli/navigation_helper.rb +38 -81
  26. data/app/lib/lesli/system.rb +4 -3
  27. data/app/models/concerns/account_initializer.rb +46 -42
  28. data/{lib/scss/devise/registrations.scss → app/models/lesli/account/detail.rb} +7 -3
  29. data/app/models/lesli/account.rb +12 -5
  30. data/app/models/lesli/cloud_object/action.rb +70 -0
  31. data/app/models/lesli/cloud_object/activity.rb +311 -0
  32. data/app/models/lesli/cloud_object/custom_field.rb +158 -0
  33. data/app/models/lesli/cloud_object/discussion.rb +219 -0
  34. data/app/models/lesli/cloud_object/subscriber.rb +186 -0
  35. data/app/models/lesli/shared/dashboard.rb +16 -5
  36. data/app/models/lesli/user/session.rb +0 -2
  37. data/app/models/lesli/user.rb +13 -13
  38. data/app/operators/lesli/user_registration_operator.rb +3 -3
  39. data/app/views/lesli/layouts/application-devise.html.erb +6 -6
  40. data/app/views/lesli/layouts/application-lesli.html.erb +1 -1
  41. data/app/views/lesli/partials/_application-data.html.erb +2 -1
  42. data/app/views/lesli/partials/_application-lesli-engines.html.erb +14 -39
  43. data/app/views/lesli/partials/_application-lesli-header.html.erb +4 -4
  44. data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
  45. data/app/views/lesli/partials/_application-lesli-panels.html.erb +7 -7
  46. data/app/views/lesli/wrappers/_application-devise.html.erb +5 -7
  47. data/config/initializers/devise.rb +335 -335
  48. data/config/initializers/lesli.rb +2 -1
  49. data/config/locales/translations.en.yml +4 -0
  50. data/config/locales/translations.es.yml +4 -0
  51. data/config/locales/translations.fr.yml +28 -0
  52. data/config/locales/translations.it.yml +28 -0
  53. data/config/locales/translations.pt.yml +28 -0
  54. data/config/routes.rb +1 -10
  55. data/db/migrate/{v1.0/0010003010_create_lesli_user_details.rb → v1/0010000110_create_lesli_accounts.rb} +19 -13
  56. data/db/migrate/{v1.0/0010000110_create_lesli_accounts.rb → v1/0010001010_create_lesli_account_details.rb} +5 -7
  57. data/db/migrate/{v1.0/0010001010_create_lesli_account_settings.rb → v1/0010001110_create_lesli_account_settings.rb} +2 -2
  58. data/db/seed/development/accounts.rb +10 -7
  59. data/db/seed/development/users.rb +20 -20
  60. data/db/seed/production/accounts.rb +10 -7
  61. data/lib/lesli/engine.rb +2 -12
  62. data/lib/lesli/version.rb +2 -2
  63. data/lib/lesli.rb +0 -1
  64. data/lib/scss/cloud-objects/discussion.scss +8 -5
  65. data/lib/scss/layouts/application-header.scss +3 -1
  66. data/lib/scss/layouts/application-navbar.scss +2 -1
  67. data/lib/scss/{elements/msg.scss → overrides/notification.scss} +16 -18
  68. data/lib/scss/pages/devise-simple.scss +4 -2
  69. data/lib/scss/pages/devise.scss +111 -107
  70. data/lib/scss/panels/panel-notification.scss +1 -1
  71. data/lib/scss/panels/{panel-ticket.scss → panel-support-ticket.scss} +3 -4
  72. data/lib/scss/templates/application.scss +7 -5
  73. data/lib/tasks/lesli/controllers.rake +1 -1
  74. data/lib/tasks/lesli/db.rake +24 -12
  75. data/lib/tasks/lesli_tasks.rake +6 -6
  76. data/lib/vue/application.js +13 -12
  77. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/content.vue +10 -8
  78. data/lib/vue/cloudobjects/discussion/element.vue +170 -0
  79. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/filters.vue +1 -1
  80. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion/new.vue +20 -16
  81. data/lib/vue/{refactor/shared/cloudobjects → cloudobjects}/discussion.vue +25 -24
  82. data/lib/vue/{refactor/stores/cloudobjects → cloudobjects/stores}/discussion.js +7 -16
  83. data/lib/vue/layouts/application-header.vue +5 -5
  84. data/lib/vue/panels/{panel-notifications.vue → panel-bell-notifications.vue} +15 -19
  85. data/lib/vue/panels/panel-support-tickets.vue +161 -0
  86. data/lib/vue/panels/stores/bell-notifications.js +46 -0
  87. data/lib/vue/panels/stores/support-tickets.js +103 -0
  88. data/lib/vue/shared/dashboards/apps/edit.vue +10 -10
  89. data/lib/vue/shared/dashboards/components/form.vue +31 -40
  90. data/lib/vue/shared/stores/dashboard.js +2 -0
  91. data/lib/vue/shared/stores/layout.js +2 -1
  92. data/lib/{scss/devise/confirmations.scss → vue/shared/stores/users.js} +22 -21
  93. data/lib/vue/stores/translations.json +109 -2
  94. data/lib/webpack/base.js +9 -8
  95. data/lib/webpack/core.js +8 -6
  96. data/readme.md +16 -15
  97. metadata +49 -76
  98. data/app/assets/icons/lesli/engine-guard.svg +0 -1
  99. data/app/assets/javascripts/lesli/users/sessions.js +0 -1
  100. data/app/controllers/users/confirmations_controller.rb +0 -66
  101. data/app/controllers/users/omniauth_callbacks_controller.rb +0 -30
  102. data/app/controllers/users/passwords_controller.rb +0 -71
  103. data/app/controllers/users/registrations_controller.rb +0 -141
  104. data/app/controllers/users/sessions_controller.rb +0 -141
  105. data/app/controllers/users/unlocks_controller.rb +0 -30
  106. data/app/views/devise/confirmations/new.html.erb +0 -2
  107. data/app/views/devise/confirmations/show.html.erb +0 -63
  108. data/app/views/devise/mailer/confirmation_instructions.html.erb +0 -5
  109. data/app/views/devise/mailer/email_changed.html.erb +0 -7
  110. data/app/views/devise/mailer/password_change.html.erb +0 -3
  111. data/app/views/devise/mailer/reset_password_instructions.html.erb +0 -8
  112. data/app/views/devise/mailer/unlock_instructions.html.erb +0 -7
  113. data/app/views/devise/passwords/edit.html.erb +0 -79
  114. data/app/views/devise/passwords/new.html.erb +0 -75
  115. data/app/views/devise/registrations/edit.html.erb +0 -43
  116. data/app/views/devise/registrations/new.html.erb +0 -147
  117. data/app/views/devise/sessions/new.html.erb +0 -114
  118. data/app/views/devise/shared/_demo.html.erb +0 -7
  119. data/app/views/devise/shared/_error_messages.html.erb +0 -15
  120. data/app/views/devise/shared/_links.html.erb +0 -96
  121. data/app/views/devise/unlocks/new.html.erb +0 -16
  122. data/db/migrate/v1.0/0010000210_create_lesli_roles.rb +0 -59
  123. data/db/migrate/v1.0/0010000310_create_lesli_users.rb +0 -97
  124. data/db/migrate/v1.0/0010003110_create_lesli_user_settings.rb +0 -44
  125. data/db/migrate/v1.0/0010003210_create_lesli_user_sessions.rb +0 -55
  126. data/db/migrate/v1.0/0010003410_create_lesli_user_powers.rb +0 -43
  127. data/db/migrate/v1.0/0010004010_create_lesli_user_logs.rb +0 -45
  128. data/db/migrate/v1.0/0010005010_create_lesli_descriptors.rb +0 -44
  129. data/db/migrate/v1.0/0010005110_create_lesli_descriptor_privileges.rb +0 -45
  130. data/db/migrate/v1.0/0010005210_create_lesli_descriptor_activities.rb +0 -49
  131. data/db/migrate/v1.0/0010005510_create_lesli_role_powers.rb +0 -51
  132. data/db/migrate/v1.0/0010005710_create_lesli_role_privileges.rb +0 -45
  133. data/lib/lesli/routing.rb +0 -26
  134. data/lib/scss/components/editor-richtext.scss +0 -88
  135. data/lib/scss/devise/oauth.scss +0 -34
  136. data/lib/scss/devise/passwords.scss +0 -33
  137. data/lib/scss/devise/sessions.scss +0 -35
  138. data/lib/scss/elements/avatar.scss +0 -48
  139. data/lib/scss/elements/calendar.scss +0 -47
  140. data/lib/scss/elements/toggle.scss +0 -102
  141. data/lib/vue/devise/confirmations.js +0 -33
  142. data/lib/vue/devise/passwords.js +0 -137
  143. data/lib/vue/devise/registrations.js +0 -157
  144. data/lib/vue/devise/sessions.js +0 -148
  145. data/lib/vue/panels/panel-tickets.vue +0 -181
  146. data/lib/vue/refactor/shared/cloudobjects/discussion/element.vue +0 -132
  147. data/lib/vue/shared/stores/account.js +0 -113
  148. /data/app/assets/icons/lesli/{engine-driver.svg → engine-calendar.svg} +0 -0
  149. /data/db/migrate/{v1.0 → v1}/0010000610_create_lesli_system_controllers.rb +0 -0
  150. /data/db/migrate/{v1.0 → v1}/0010000710_create_lesli_system_controller_actions.rb +0 -0
  151. /data/db/migrate/{v1.0 → v1}/0010001210_create_lesli_account_activities.rb +0 -0
  152. /data/db/migrate/{v1.0 → v1}/0010001410_create_lesli_account_logs.rb +0 -0
@@ -17,9 +17,9 @@ GNU General Public License for more details.
17
17
  You should have received a copy of the GNU General Public License
18
18
  along with this program. If not, see http://www.gnu.org/licenses/.
19
19
 
20
- Lesli · Ruby on Rails SaaS development platform.
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
@@ -27,7 +27,7 @@ Building a better future, one line of code at a time.
27
27
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
28
 
29
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
30
+ // ·
31
31
  */
32
32
 
33
33
 
@@ -36,7 +36,27 @@ Building a better future, one line of code at a time.
36
36
 
37
37
 
38
38
  // ·
39
- @import "LesliStyle/templates/public";
39
+ @import "Lesli/scss/templates/public";
40
+
41
+
42
+ // · reusable background styles
43
+ @mixin lesli-login-background() {
44
+ background: linear-gradient(0deg,
45
+ rgba(49, 106, 255, 0.4),
46
+ rgba(49, 106, 255, 0.4)),
47
+ url("lesli/brand/login-background.jpg");
48
+ background-position: center;
49
+ background-size: cover;
50
+ }
51
+
52
+
53
+ // ·
54
+ h1,
55
+ .links,
56
+ .terms {
57
+ width: 100%;
58
+ max-width: 320px;
59
+ }
40
60
 
41
61
 
42
62
  // ·
@@ -47,129 +67,113 @@ h1 {
47
67
  }
48
68
 
49
69
 
50
- // ·
51
- body {
52
- background-color: #FAFAFA;
53
-
54
- .columns {
55
- width: 100%;
56
- }
70
+ // column container
71
+ .column.login-form {
72
+ max-width: 550px;
73
+ margin: 0 auto;
57
74
 
58
- .column:first-child {
59
- max-width: 550px;
60
- margin: 0 auto;
75
+ // logo container
76
+ .logo {
77
+ img {
78
+ width: initial;
79
+ height: initial;
80
+ }
81
+ p {
82
+ font-weight: 600;
83
+ text-align: left;
84
+ }
61
85
  }
62
86
 
63
- .column .hero {
64
- min-height: 100vh;
87
+ form {
65
88
 
66
- form,
67
- .logo,
68
- .links {
69
- width: 100%;
70
- margin: 0 auto;
71
- max-width: 320px;
72
- }
73
-
74
- // logo container
75
- .logo {
76
- img {
77
- width: initial;
78
- height: initial;
79
- }
80
- p {
81
- font-weight: 600;
82
- text-align: left;
89
+ .demo {
90
+ fieldset {
91
+ padding: 4px 8px;
92
+ border-radius: 4px;
93
+ border: 1px solid silver;
83
94
  }
84
95
  }
85
96
 
86
- form {
97
+ label {
98
+ font-weight: 400;
99
+ font-size: 15px;
100
+ line-height: 150%;
101
+ }
87
102
 
88
- .demo {
89
- fieldset {
90
- padding: 4px 8px;
91
- border-radius: 4px;
92
- border: 1px solid silver;
93
- }
94
- }
103
+ input {
104
+ border-radius: 6px;
105
+ box-shadow: none;
106
+ }
107
+
108
+ input[type="password"] {
109
+ font-family: Verdana;
110
+ letter-spacing: 0.1rem;
111
+ }
95
112
 
96
- label {
97
- font-weight: 400;
98
- font-size: 15px;
99
- line-height: 150%;
100
- }
101
- input {
102
- border-radius: 6px;
103
- box-shadow: none;
104
- }
105
- input[type="submit"] {
106
- font-weight: 600;
107
- }
108
- input[type="password"] {
109
- font-family: Verdana;
110
- letter-spacing: 0.125em;
111
- }
112
- p.help {
113
- font-weight: 600;
114
- }
115
- p.account {
116
- font-size: 15px;
117
- font-weight: 400;
118
- }
113
+ p.help {
114
+ font-weight: 600;
119
115
  }
120
116
 
121
- .message {
122
- font-weight: 500;
123
- line-height: 24px;
124
- font-family: "Exo";
117
+ p.account {
118
+ font-size: 15px;
119
+ font-weight: 400;
125
120
  }
121
+ }
126
122
 
127
- .links {
128
- a {
129
- width: 100%;
130
- display: flex;
131
- flex-grow: 1;
132
- padding: .8rem 0;
133
- &:not(:last-child) {
134
- border-bottom: 1px solid lesli-css-color(silver, 300);
135
- }
136
- }
137
- span {
138
- font-family: "Domine";
139
- font-weight: 500;
140
- font-size: 14px;
141
- //color: lesli-css-color(lesli, navy);
123
+ .links {
124
+
125
+ a {
126
+ width: 100%;
127
+ display: flex;
128
+ flex-grow: 1;
129
+ padding: .8rem 0;
130
+ &:not(:last-child) {
131
+ border-bottom: 1px solid lesli-css-color(silver, 300);
142
132
  }
143
133
  }
144
134
 
145
- .terms {
135
+ span {
146
136
  font-family: "Domine";
147
- font-weight: 400;
148
- font-size: 12px;
149
- line-height: 19px;
150
- letter-spacing: -44%;
137
+ font-weight: 500;
138
+ font-size: 14px;
151
139
  }
140
+ }
152
141
 
153
- .hero-foot {
154
- ul {
155
- height: 100px;
156
- align-items: center;
157
- }
158
- a {
159
- font-family: "Exo";
160
- font-weight: 600;
161
- font-size: 12px;
162
- line-height: 18px;
163
- }
164
- }
142
+ .terms {
143
+ font-family: "Domine";
144
+ font-weight: 400;
145
+ font-size: 12px;
146
+ line-height: 19px;
147
+ letter-spacing: -44%;
165
148
  }
149
+ }
150
+
151
+
152
+ // column with image background right side
153
+ .column.background {
154
+ @include lesli-login-background;
155
+ }
156
+
157
+
158
+ @include lesli-css-breakpoint-until-tablet() {
166
159
 
167
- .column.is-hidden-touch {
168
- background: linear-gradient(0deg,
169
- rgba(49, 106, 255, 0.4),
170
- rgba(49, 106, 255, 0.4)),
171
- url("lesli/brand/login-background.jpg");
172
- background-position: center;
173
- background-size: cover;
160
+ // login column must be full width on mobile
161
+ .column.login-form {
162
+ width: 100%;
163
+ max-width: 100%;
164
+ @include lesli-login-background;
165
+
166
+ .hero {
167
+ padding: 2rem 0;
168
+ }
169
+
170
+ // center the form
171
+ .hero-body {
172
+ margin: 0 auto;
173
+ max-width: 500px;
174
+ background-color: white;
175
+ border-radius: 6px;
176
+ padding: 1rem 3rem;
177
+ }
174
178
  }
175
179
  }
@@ -33,7 +33,7 @@ Building a better future, one line of code at a time.
33
33
 
34
34
 
35
35
  // ·
36
- .lesli-panel-notifications {
36
+ .lesli-panel-bell-notifications {
37
37
 
38
38
  .lesli-panel-content{
39
39
  overflow-y: scroll;
@@ -17,9 +17,9 @@ GNU General Public License for more details.
17
17
  You should have received a copy of the GNU General Public License
18
18
  along with this program. If not, see http://www.gnu.org/licenses/.
19
19
 
20
- Lesli · Ruby on Rails SaaS development platform.
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
@@ -27,8 +27,7 @@ Building a better future, one line of code at a time.
27
27
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
28
28
 
29
29
  // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
- // ·
31
-
30
+ // ·
32
31
  */
33
32
 
34
33
 
@@ -33,7 +33,8 @@ Building a better future, one line of code at a time.
33
33
 
34
34
  // ·
35
35
  @import "lesli-css";
36
- @import "lesli-vue/dist/elements.css";
36
+ @import "lesli-vue/elements.css";
37
+ @import "lesli-vue/components.css";
37
38
 
38
39
  // · Configuration & variables
39
40
  @import "Lesli/scss/settings/variables";
@@ -68,9 +69,9 @@ Building a better future, one line of code at a time.
68
69
 
69
70
  // · Lesli core panels
70
71
  // @import "lesli/panels/panel-tasks";
71
- // @import "lesli/panels/panel-ticket";
72
+ @import "Lesli/scss/panels/panel-support-ticket";
72
73
  // @import "lesli/panels/panel-profile";
73
- // @import "lesli/panels/panel-notification";
74
+ @import "Lesli/scss/panels/panel-notification";
74
75
  // @import "lesli/panels/panel-announcements";
75
76
 
76
77
 
@@ -83,17 +84,18 @@ Building a better future, one line of code at a time.
83
84
 
84
85
 
85
86
  // · Lesli cloud objects
86
- // @import "lesli/cloud-objects/discussion";
87
+ @import "Lesli/scss/cloud-objects/discussion";
87
88
  // @import "lesli/cloud-objects/file";
88
89
 
89
90
 
90
91
  // · Overrides for vendor libraries
91
92
  // @import "lesli/overrides/sweetalert";
93
+ @import "Lesli/scss/overrides/notification";
92
94
 
93
95
 
94
96
  // · Lesli vue components
95
97
  // @import "lesli/elements/autocomplete";
96
- // @import "lesli/elements/avatar";
98
+ // @import "Lesli/scss/elements/avatar";
97
99
  // @import "lesli/elements/empty";
98
100
  // @import "lesli/elements/file-uploader";
99
101
  // @import "lesli/elements/gallery";
@@ -36,7 +36,7 @@ namespace :lesli do
36
36
 
37
37
  desc "Scan new routes added and create role privileges"
38
38
  task build: :environment do
39
- L2.msg("Registering engines, controllers and actions")
39
+ L2.msg("Lesli: Registering engines, controllers and actions")
40
40
  Lesli::ControllerOperator.new.build
41
41
  end
42
42
  end
@@ -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
@@ -41,11 +41,13 @@ namespace :lesli do
41
41
  migrate()
42
42
  prepare()
43
43
  seed()
44
+ status()
44
45
  end
45
46
 
46
47
  desc "Seed & prepare Lesli database (development only)"
47
48
  task :seed => :environment do |task, args|
48
49
  seed()
50
+ status()
49
51
  end
50
52
 
51
53
  desc "Migrate, seed & prepare the Lesli database (development only)"
@@ -53,20 +55,22 @@ namespace :lesli do
53
55
  migrate()
54
56
  prepare()
55
57
  seed()
58
+ status()
56
59
  end
57
60
 
58
- desc "Migrate & prepare the Lesli database"
59
- task :setup => :environment do |task, args|
61
+ desc "Migrate, prepare && user the Lesli database"
62
+ task :deploy => :environment do |task, args|
63
+ create()
60
64
  migrate()
61
65
  prepare()
66
+ status()
62
67
  end
63
68
 
64
- desc "Migrate, prepare && user the Lesli database"
65
- task :deploy => :environment do |task, args|
66
- create()
69
+ desc "Migrate & prepare the Lesli database"
70
+ task :setup => :environment do |task, args|
67
71
  migrate()
68
72
  prepare()
69
- Lesli::Engine.load_seed
73
+ status()
70
74
  end
71
75
  end
72
76
 
@@ -100,7 +104,6 @@ namespace :lesli do
100
104
  Rake::Task['db:migrate'].invoke
101
105
  end
102
106
 
103
- desc "Seed the Lesli database"
104
107
  def seed
105
108
 
106
109
  # print a message to let the users show the action running
@@ -113,26 +116,35 @@ namespace :lesli do
113
116
  Lesli::Engine.load_seed
114
117
  LesliBell::Engine.load_seed if defined?(LesliBell)
115
118
  LesliHelp::Engine.load_seed if defined?(LesliHelp)
119
+ LesliAdmin::Engine.load_seed if defined?(LesliAdmin)
116
120
  LesliAudit::Engine.load_seed if defined?(LesliAudit)
117
121
  LesliLetter::Engine.load_seed if defined?(LesliLetter)
122
+ LesliSupport::Engine.load_seed if defined?(LesliSupport)
123
+ LesliCalendar::Engine.load_seed if defined?(LesliCalendar)
118
124
  end
119
125
 
120
- desc "Prepare the Lesli database"
121
126
  def prepare
122
127
 
123
128
  # print a message to let the users show the action running
124
129
  L2.msg("Prepare the Lesli database")
125
130
 
131
+ Lesli::Account.all.each do |account|
132
+ account.initialize_account
133
+ account.initialize_engines
134
+ end
135
+
126
136
  # scan rails routes to build the controllers index
127
137
  Rake::Task['lesli:controllers:build'].invoke
128
138
 
129
139
  # scan rails routes to build the controllers index
130
- Rake::Task['lesli:guard:privileges'].invoke
140
+ Rake::Task['lesli:security:privileges'].invoke if defined?(LesliSecurity)
131
141
 
132
142
  # scan rails routes to build the base of translations
133
- Rake::Task['lesli:babel:build'].invoke if defined?(LesliBabel)
143
+ Rake::Task['lesli:babel:scan'].invoke if defined?(LesliBabel)
144
+ end
134
145
 
146
+ def status
135
147
  # print the lesli gems
136
148
  Rake::Task['lesli:status'].invoke
137
- end
149
+ end
138
150
  end
@@ -37,13 +37,13 @@ namespace :lesli do
37
37
  namespace :babel do
38
38
 
39
39
  desc "Scan and register labels"
40
- task :load => :environment do |task, args|
41
- Rake::Task['lesli_babel:load'].invoke
40
+ task :scan => :environment do |task, args|
41
+ Rake::Task['lesli_babel:scan'].invoke
42
42
  end
43
43
 
44
44
  desc "Scan and register labels"
45
- task :build => :environment do |task, args|
46
- Rake::Task['lesli_babel:build'].invoke
45
+ task :load => :environment do |task, args|
46
+ Rake::Task['lesli_babel:load'].invoke
47
47
  end
48
48
 
49
49
  desc "Export translations to json files"
@@ -52,11 +52,11 @@ namespace :lesli do
52
52
  end
53
53
  end
54
54
 
55
- namespace :guard do
55
+ namespace :security do
56
56
 
57
57
  desc "Syncing privileges for all the available roles"
58
58
  task :privileges => :environment do |task, args|
59
- Rake::Task['lesli_guard:privileges'].invoke
59
+ Rake::Task['lesli_security:privileges'].invoke
60
60
  end
61
61
  end
62
62
 
@@ -56,20 +56,22 @@ import componentApplicationSidebar from "Lesli/vue/layouts/application-sidebar.v
56
56
  import componentApplicationAnnouncement from "Lesli/vue/layouts/application-announcements.vue"
57
57
  import componentApplicationPanelTasks from "Lesli/vue/panels/panel-tasks.vue"
58
58
  import componentApplicationPanelFiles from "Lesli/vue/panels/panel-files.vue"
59
- import componentApplicationPanelTickets from "Lesli/vue/panels/panel-tickets.vue"
60
59
  import componentApplicationPanelProfile from "Lesli/vue/panels/panel-profile.vue"
61
60
  import componentApplicationPanelNotifications from "Lesli/vue/panels/panel-notifications.vue"
62
61
  import componentApplicationPanelAnnouncements from "Lesli/vue/panels/panel-announcements.vue"
63
62
  */
64
63
 
64
+ import componentApplicationPanelSupportTickets from "Lesli/vue/panels/panel-support-tickets.vue"
65
+ import componentApplicationPanelBellNotifications from "Lesli/vue/panels/panel-bell-notifications.vue"
66
+
65
67
 
66
68
  // · Loading global layout components
67
69
  import {
68
70
  // lesliElementAutocomplete,
69
- // lesliElementAvatar,
71
+ LesliAvatar,
70
72
  LesliButton,
71
73
  // lesliElementButtonLink,
72
- // lesliElementCalendar,
74
+ LesliCalendar,
73
75
  LesliCard,
74
76
  // lesliElementCollapse,
75
77
  LesliColumn,
@@ -113,9 +115,8 @@ import {
113
115
 
114
116
 
115
117
 
116
- // · engine: List of controllers apps loaded
118
+ // · engine: Engine name
117
119
  // · routes: Array of routes for Vue
118
- // · example: app("CloudAudit", [])
119
120
  export default (engine, routes=[]) => {
120
121
 
121
122
  // · Base path for the engines/core url's
@@ -130,6 +131,8 @@ export default (engine, routes=[]) => {
130
131
  appbuilder["components"] = {
131
132
  "lesli-application-header": lesliApplicationHeader,
132
133
  "lesli-application-engines": lesliApplicationEngines,
134
+ "application-panel-support-tickets": componentApplicationPanelSupportTickets,
135
+ "application-panel-bell-notifications": componentApplicationPanelBellNotifications
133
136
  /*
134
137
  "application-component-footer": componentApplicationFooter,
135
138
  "application-component-search": componentApplicationSearch,
@@ -137,10 +140,8 @@ export default (engine, routes=[]) => {
137
140
  "application-component-announcements": componentApplicationAnnouncement,
138
141
  "application-component-panel-tasks": componentApplicationPanelTasks,
139
142
  "application-component-panel-files": componentApplicationPanelFiles,
140
- "application-component-panel-tickets": componentApplicationPanelTickets,
141
143
  "application-component-panel-profile": componentApplicationPanelProfile,
142
- "application-component-panel-announcements": componentApplicationPanelAnnouncements,
143
- "application-component-panel-notifications": componentApplicationPanelNotifications
144
+ "application-component-panel-announcements": componentApplicationPanelAnnouncements
144
145
  */
145
146
  }
146
147
 
@@ -207,7 +208,7 @@ export default (engine, routes=[]) => {
207
208
  application.provide('msg', useLesliMsg())
208
209
  application.provide('url', useLesliUrl())
209
210
  application.provide('http', useLesliHttp())
210
- application.provide('date', useLesliDate())
211
+ application.provide('date', useLesliDate()())
211
212
  application.provide('utils', useLesliUtils())
212
213
  application.provide('dialog', useLesliDialog())
213
214
 
@@ -224,6 +225,7 @@ export default (engine, routes=[]) => {
224
225
 
225
226
  // · Loading Lesli handmade global components
226
227
  // application.component("lesli-icon", lesliElementIcon)
228
+ application.component("lesli-avatar", LesliAvatar)
227
229
  application.component("lesli-empty", LesliEmpty)
228
230
  application.component("lesli-header", LesliHeader)
229
231
  application.component("lesli-select", LesliSelect)
@@ -240,11 +242,11 @@ export default (engine, routes=[]) => {
240
242
  application.component("lesli-panel", LesliPanel)
241
243
  application.component("lesli-button", LesliButton)
242
244
  // application.component("lesli-button-link", lesliElementButtonLink)
243
- // application.component("lesli-calendar", lesliElementCalendar)
245
+ application.component("lesli-calendar", LesliCalendar)
244
246
  // application.component("lesli-input-tag", lesliElementInputTag)
245
247
  // application.component("lesli-file-uploader", lesliElementFileUploader)
246
248
  // application.component("lesli-navigation-list", lesliElementNavigationList)
247
- // application.component("lesli-avatar", lesliElementAvatar)
249
+
248
250
  application.component("lesli-toggle", LesliToggle)
249
251
  // application.component("lesli-dropdown", lesliElementDropdown)
250
252
  // application.component("lesli-map", lesliElementMap)
@@ -255,7 +257,6 @@ export default (engine, routes=[]) => {
255
257
  // application.component("lesli-input", lesliElementInput)
256
258
  application.component("lesli-link", LesliLink)
257
259
 
258
-
259
260
 
260
261
 
261
262
  // · Mount app once DOM is ready
@@ -18,30 +18,32 @@ GNU General Public License for more details.
18
18
  You should have received a copy of the GNU General Public License
19
19
  along with this program. If not, see http://www.gnu.org/licenses/.
20
20
 
21
- Lesli · Your Smart Business Assistant.
21
+ Lesli · Ruby on Rails SaaS Development Framework.
22
22
 
23
- Made with ♥ by https://www.lesli.tech
23
+ Made with ♥ by LesliTech
24
24
  Building a better future, one line of code at a time.
25
25
 
26
26
  @contact hello@lesli.tech
27
- @website https://lesli.tech
27
+ @website https://www.lesli.tech
28
28
  @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
29
29
 
30
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
30
+ // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
31
31
  // ·
32
-
33
32
  */
34
33
 
35
34
 
36
35
  // · import store
37
- import { useCloudObjectDiscussionStore } from "Lesli/vue/cloudobjects/stores/discussion"
36
+ import { useCloudObjectDiscussionStore } from "../stores/discussion.js"
37
+
38
+
39
+ // ·
40
+ import DiscussionElement from "./element.vue"
38
41
 
39
- import DiscussionElement from "Lesli/vue/cloudobjects/components/discussion/element.vue"
40
42
 
43
+ // ·
41
44
  const discussionStore = useCloudObjectDiscussionStore()
42
45
 
43
46
  </script>
44
-
45
47
  <template>
46
48
  <div class="discussion-content mt-6">
47
49
  <discussion-element v-for="discussion in discussionStore.mergedArray" :key="discussion.id" :discussion="discussion">