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
@@ -1,47 +0,0 @@
1
- /*
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 platform.
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
-
32
- */
33
-
34
- .lesli-calendar {
35
- .input {
36
- position: relative;
37
- }
38
- .icons {
39
- position: absolute;
40
- top: 50%;
41
- right: 0%;
42
- transform: translate(-50%, -50%);
43
- width: 20px;
44
- height: 20px;
45
- color: #b4b4b4;
46
- }
47
- }
@@ -1,102 +0,0 @@
1
- /*
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 platform.
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
-
32
- */
33
-
34
- .lesli-toggle {
35
- position: relative;
36
- display: inline-block;
37
- width: 100px;
38
- height: 34px;
39
- font-size: small;
40
- input {
41
- opacity: 0;
42
- width: 0;
43
- height: 0;
44
- &:checked + .slider {
45
- background-color: $primary;
46
- }
47
- &:focus + .slider {
48
- box-shadow: 0 0 1px $primary;
49
- }
50
- &:checked + .slider:before {
51
- -webkit-transform: translateX(26px);
52
- -ms-transform: translateX(26px);
53
- transform: translateX(65px);
54
- }
55
- }
56
- .slider {
57
- position: absolute;
58
- cursor: pointer;
59
- top: 0;
60
- left: 0;
61
- right: 0;
62
- bottom: 0;
63
- background-color: lesli-css-color(silver, 500);
64
- -webkit-transition: .4s;
65
- transition: .4s;
66
- border-radius: 34px;
67
- &:before {
68
- position: absolute;
69
- content: "";
70
- height: 26px;
71
- width: 26px;
72
- left: 4px;
73
- bottom: 4px;
74
- background-color: white;
75
- -webkit-transition: .4s;
76
- transition: .4s;
77
- border-radius: 50%;
78
- }
79
- div{
80
- padding: 6px;
81
- }
82
- .enabled-text{
83
- position: absolute;
84
- left: 20%;
85
- top: 10%;
86
- color: white;
87
- font-weight: bold;
88
- }
89
- .disabled-text{
90
- position: absolute;
91
- right: 20%;
92
- top: 10%;
93
- color: white;
94
- font-weight: bold;
95
- }
96
- }
97
- }
98
-
99
-
100
-
101
-
102
-
@@ -1,33 +0,0 @@
1
- /*
2
- Lesli
3
-
4
- Copyright (c) 2023, Lesli Technologies, S. A.
5
-
6
- This program is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program. If not, see http://www.gnu.org/licenses/.
18
-
19
- Lesli · Your Smart Business Assistant.
20
-
21
- Made with ♥ by https://www.lesli.tech
22
- Building a better future, one line of code at a time.
23
-
24
- @contact hello@lesli.tech
25
- @website https://lesli.tech
26
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
27
-
28
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
- // ·
30
- */
31
-
32
-
33
- // ·
@@ -1,137 +0,0 @@
1
- /*
2
- Lesli
3
-
4
- Copyright (c) 2023, Lesli Technologies, S. A.
5
-
6
- This program is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program. If not, see http://www.gnu.org/licenses/.
18
-
19
- Lesli · Ruby on Rails SaaS Development Framework.
20
-
21
- Made with ♥ by https://www.lesli.tech
22
- Building a better future, one line of code at a time.
23
-
24
- @contact hello@lesli.tech
25
- @website https://www.lesli.tech
26
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
27
-
28
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
- // ·
30
- */
31
-
32
-
33
- // ·
34
-
35
-
36
- // ·
37
- import application from "Lesli/public"
38
-
39
-
40
- // ·
41
- application({
42
-
43
- data() {
44
- return {
45
- loading: false,
46
- translations: {
47
- main: I18n.t("core.users/passwords")
48
- },
49
- sign_in: {
50
- email: "",
51
- password: ""
52
- },
53
- password_edit: {
54
- new_password: "",
55
- new_password_confirmation: ""
56
- },
57
- notification: {
58
- message: "",
59
- show: false,
60
- type: ""
61
- }
62
- }
63
- },
64
- methods: {
65
-
66
- postPasswordNew(event) {
67
-
68
- this.notification.show = false
69
-
70
- this.loading = true
71
-
72
- event.preventDefault();
73
-
74
- let data = {
75
- user: {
76
- email: this.sign_in.email.toLowerCase(),
77
- password: this.sign_in.password
78
- }
79
- };
80
-
81
- this.http.post("/password", data).then(response => {
82
- this.showNotification("this.translations.main.notification_reset_password_instructions_sent", "success")
83
- }).catch(error => {
84
- this.showNotification(error.message)
85
- }).finally(() => {
86
- this.loading = false
87
- })
88
- },
89
-
90
- putPasswordEdit(event) {
91
-
92
- this.notification.show = false
93
-
94
- this.loading = true
95
-
96
- event.preventDefault();
97
-
98
- // check if passwords match
99
- if (this.password_edit.new_password != this.password_edit.new_password_confirmation) {
100
- this.showNotification(this.translations.main.error_passwords_do_not_match, "danger")
101
- return
102
- }
103
-
104
- var token=null
105
-
106
- try {
107
- token = Object.fromEntries(new URLSearchParams(window.location.search)).reset_password_token
108
- } catch (error) {
109
- token=null
110
- }
111
-
112
- this.http.put("/password", {
113
- user: {
114
- password: this.password_edit.new_password,
115
- password_confirmation: this.password_edit.new_password_confirmation,
116
- reset_password_token: token
117
- }
118
- }).then(response => {
119
- this.showNotification(this.translations.main.notification_password_updated, "success")
120
- //setTimeout(() => { this.url.go("/login") }, 2000)
121
- }).catch(error => {
122
- this.showNotification(error.message, "danger")
123
- }).finally(() => {
124
- this.loading = false
125
- })
126
-
127
- },
128
-
129
- showNotification(message, type="danger"){
130
- this.notification.message = message;
131
- this.notification.type = "is-"+type;
132
- this.notification.show = true;
133
- }
134
-
135
- }
136
-
137
- })
@@ -1,157 +0,0 @@
1
- /*
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
- */
32
-
33
-
34
- // ·
35
- import application from "Lesli/public"
36
-
37
-
38
- // ·
39
- application({
40
-
41
- data(){
42
- return {
43
- translations: {},
44
- password_uppercase: 0,
45
- password_symbol: 0,
46
- password_number: 0,
47
- telephone_code: "+49",
48
- telephone_codes: null,
49
- sign_up: {
50
- email: "",
51
- password: "",
52
- password_confirmation: '',
53
- // first_name: null,
54
- // last_name: null,
55
- // telephone: null,
56
- },
57
- progress_bar_active: false,
58
- notification: {
59
- show: false,
60
- message: '',
61
- type: 'is-danger'
62
- }
63
-
64
- }
65
- },
66
- mounted() {
67
- this.$refs.email.focus()
68
- },
69
- methods: {
70
-
71
- /**
72
- * @param {*} event that triggers the function
73
- * @description this function is triggered when the user submits the form to sign up
74
- */
75
- postRegistration(event) {
76
-
77
- this.notification.show = false;
78
-
79
- event.preventDefault();
80
-
81
- const user = this.validateFields()
82
-
83
- this.http.post(this.url.to(), user).then(response => {
84
-
85
- //setTimeout(() => { this.url.go("/login") }, 5000)
86
-
87
- }).catch((err)=>{
88
- this.showNotification(err.message)
89
- })
90
-
91
- },
92
-
93
- typing() {
94
- this.notification.message= ""
95
- this.notification.show= false
96
- this.notification.type= "default"
97
- this.verifyPasswords()
98
- },
99
-
100
- showNotification(message,type = "danger") {
101
- this.notification.message = message
102
- this.notification.type = type
103
- this.notification.show = true
104
- },
105
-
106
- /**
107
- * @description validates the password strength
108
- */
109
- verifyPasswords() {
110
-
111
- this.password_uppercase = 0
112
- this.password_number = 0
113
- this.password_symbol = 0
114
-
115
- if (this.sign_up.password.length <= 0) {
116
- return
117
- }
118
-
119
- if (this.sign_up.password.search(/[A-Z]/) < 0) {
120
- this.password_uppercase = 1
121
- } else {
122
- this.password_uppercase = 2
123
- }
124
-
125
- if (this.sign_up.password.search(/[0-9]/) < 0) {
126
- this.password_number = 1
127
- } else {
128
- this.password_number = 2
129
- }
130
-
131
- if (this.sign_up.password.search(/[!#$%&]/) < 0) {
132
- this.password_symbol = 1
133
- } else {
134
- this.password_symbol = 2
135
- }
136
-
137
- },
138
-
139
- /**
140
- * @description this function validates if the fields are correct
141
- * @returns object with the user to be registered
142
- */
143
- validateFields() {
144
-
145
- // · copy object without reference
146
- const user = JSON.parse(JSON.stringify(this.sign_up))
147
-
148
- if (user.password_confirmation == "") {
149
- user.password_confirmation = user.password
150
- }
151
-
152
-
153
- return user
154
- }
155
-
156
- }
157
- })
@@ -1,148 +0,0 @@
1
- /*
2
- Lesli
3
-
4
- Copyright (c) 2023, Lesli Technologies, S. A.
5
-
6
- This program is free software: you can redistribute it and/or modify
7
- it under the terms of the GNU General Public License as published by
8
- the Free Software Foundation, either version 3 of the License, or
9
- (at your option) any later version.
10
-
11
- This program is distributed in the hope that it will be useful,
12
- but WITHOUT ANY WARRANTY; without even the implied warranty of
13
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
- GNU General Public License for more details.
15
-
16
- You should have received a copy of the GNU General Public License
17
- along with this program. If not, see http://www.gnu.org/licenses/.
18
-
19
- Lesli · Ruby on Rails SaaS Development Framework.
20
-
21
- Made with ♥ by https://www.lesli.tech
22
- Building a better future, one line of code at a time.
23
-
24
- @contact hello@lesli.tech
25
- @website https://www.lesli.tech
26
- @license GPLv3 http://www.gnu.org/licenses/gpl-3.0.en.html
27
-
28
- // · ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~ ~·~
29
- // ·
30
- */
31
-
32
-
33
- // ·
34
- import application from "LesliVue/public"
35
-
36
-
37
- // ·
38
- application({
39
-
40
- data(){
41
- return {
42
- loading: false,
43
- sign_in: {
44
- email: "",
45
- password: ""
46
- },
47
- notification: {
48
- message: "",
49
- show: false,
50
- type: "default"
51
- },
52
- errors: []
53
- }
54
- },
55
- mounted() {
56
- this.$refs?.email?.focus()
57
-
58
- if (lesli_application_development) {
59
- this.sign_in.email = "hello@lesli.tech"
60
- this.sign_in.password = "Tardis2024$"
61
- }
62
- },
63
- methods: {
64
-
65
- togglePasswordInput() {
66
- if (this.$refs.password.type === "password") {
67
- this.$refs.password.type = "text";
68
- } else {
69
- this.$refs.password.type = "password";
70
- }
71
- },
72
-
73
- validateEmail() {
74
- if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(this.sign_in.email)) {
75
- console.log("error")
76
- }
77
- },
78
-
79
- build_redirect_url(default_path = null) {
80
-
81
- // redirect to the root of the domain by default
82
- let redirect_url = "/"
83
-
84
- try {
85
-
86
- // search for a redirection route in the url params
87
- redirect_url = Object.fromEntries(new URLSearchParams(window.location.search)).r
88
-
89
- } catch (error) {
90
-
91
- }
92
-
93
- // redirect to the default path if:
94
- // - there is no query params with redirection
95
- if (!redirect_url && default_path) {
96
- redirect_url = default_path
97
- }
98
-
99
- // redirect to the root if:
100
- // - error parsing redirection route
101
- // - there is no query params with redirection
102
- if (!redirect_url) {
103
- redirect_url = "/"
104
- }
105
-
106
- return redirect_url
107
-
108
- },
109
-
110
- postLogin(event) {
111
-
112
- this.loading = true
113
-
114
- event.preventDefault();
115
-
116
- this.notification.show = false
117
-
118
- let data = {
119
- user: {
120
- email: this.sign_in.email.toLowerCase(),
121
- password: this.sign_in.password
122
- }
123
- };
124
-
125
- this.http.post("/login", data).then(response => {
126
- this.url.go(this.build_redirect_url(response.default_path))
127
- }).catch(error => {
128
- this.showNotification(error.message)
129
- }).finally(() => {
130
- this.loading = false
131
- })
132
-
133
- },
134
-
135
- typing() {
136
- this.notification.message= ""
137
- this.notification.show= false
138
- this.notification.type= "default"
139
- },
140
-
141
- showNotification(message, type="danger"){
142
- this.notification.message = message;
143
- this.notification.type = type;
144
- this.notification.show = true;
145
- }
146
-
147
- }
148
- })