lesli 5.0.7 → 5.0.9

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.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/config/lesli_manifest.js +10 -9
  3. data/app/assets/icons/lesli/engine-lesli.svg +1 -0
  4. data/app/assets/icons/lesli/locale-en.svg +1 -0
  5. data/app/assets/icons/lesli/locale-es.svg +1 -0
  6. data/app/assets/javascripts/lesli/users/sessions.js +1 -722
  7. data/app/assets/stylesheets/lesli/templates/application.css +1846 -0
  8. data/app/assets/stylesheets/lesli/templates/public.css +1 -0
  9. data/app/assets/stylesheets/lesli/users/sessions.css +1 -0
  10. data/app/helpers/lesli/navigation_helper.rb +9 -1
  11. data/app/lib/lesli/system.rb +2 -1
  12. data/app/models/concerns/account_initializer.rb +3 -3
  13. data/app/views/lesli/layouts/application-public.html.erb +1 -1
  14. data/app/views/lesli/partials/_application-data.html.erb +3 -1
  15. data/app/views/lesli/partials/_application-lesli-header.html.erb +7 -8
  16. data/app/views/lesli/partials/_application-lesli-icons.html.erb +1 -1
  17. data/app/views/lesli/partials/_application-lesli-javascript.html.erb +1 -1
  18. data/app/views/lesli/partials/_application-public-javascript.html.erb +1 -4
  19. data/app/views/lesli/wrappers/_application-devise.html.erb +2 -2
  20. data/config/initializers/lesli.rb +1 -1
  21. data/db/seeds.rb +2 -4
  22. data/lib/assets/javascripts/lesli/i18n.js +1037 -1037
  23. data/lib/lesli/engine.rb +7 -6
  24. data/lib/lesli/version.rb +2 -2
  25. data/lib/{sass/lesli → scss}/bulma/loader.scss +3 -1
  26. data/{app/assets/stylesheets/lesli/users → lib/scss/devise}/sessions.scss +3 -1
  27. data/lib/{sass/lesli → scss}/fonts/families.scss +3 -3
  28. data/lib/{sass/lesli → scss}/fonts/mdicons.scss +6 -8
  29. data/lib/{sass/lesli → scss}/fonts/remixicons.scss +2 -2
  30. data/lib/{sass/lesli → scss}/layouts/application-header.scss +4 -0
  31. data/lib/{sass/lesli → scss}/layouts/application-sidebar.scss +1 -1
  32. data/lib/{sass/lesli → scss}/pages/devise.scss +5 -1
  33. data/lib/{sass/lesli → scss}/settings/variables.scss +1 -1
  34. data/lib/{sass/lesli → scss}/templates/application.scss +46 -49
  35. data/lib/{sass/lesli → scss}/templates/component.scss +1 -1
  36. data/lib/{sass/lesli → scss}/templates/dashboards.scss +1 -1
  37. data/lib/{sass/lesli → scss}/templates/public.scss +6 -6
  38. data/lib/tasks/lesli/db.rake +42 -24
  39. data/lib/tasks/lesli/docs.rake +47 -0
  40. data/lib/vue/application.js +16 -15
  41. data/lib/vue/devise/sessions.js +1 -1
  42. data/lib/vue/layouts/application-announcements.vue +1 -1
  43. data/lib/vue/layouts/application-engines.vue +1 -1
  44. data/lib/vue/layouts/application-header.vue +9 -9
  45. data/lib/vue/layouts/application-search.vue +1 -1
  46. data/lib/vue/panels/panel-announcements.vue +2 -2
  47. data/lib/vue/panels/panel-files.vue +2 -2
  48. data/lib/vue/panels/panel-notifications.vue +1 -1
  49. data/lib/vue/panels/panel-profile.vue +2 -2
  50. data/lib/vue/panels/panel-tasks.vue +2 -2
  51. data/lib/vue/panels/panel-tickets.vue +2 -2
  52. data/lib/vue/public.js +3 -2
  53. data/lib/vue/{shared → refactor/shared}/cloudobjects/action.vue +1 -1
  54. data/lib/vue/{shared → refactor/shared}/cloudobjects/discussion/content.vue +2 -2
  55. data/lib/vue/{shared → refactor/shared}/cloudobjects/discussion/element.vue +2 -2
  56. data/lib/vue/{shared → refactor/shared}/cloudobjects/discussion/filters.vue +1 -1
  57. data/lib/vue/{shared → refactor/shared}/cloudobjects/discussion/new.vue +1 -1
  58. data/lib/vue/{shared → refactor/shared}/cloudobjects/discussion.vue +4 -4
  59. data/lib/vue/{shared → refactor/shared}/cloudobjects/file/grid.vue +2 -2
  60. data/lib/vue/{shared → refactor/shared}/cloudobjects/file/list.vue +2 -2
  61. data/lib/vue/{shared → refactor/shared}/cloudobjects/file.vue +4 -4
  62. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/form.vue +1 -1
  63. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/chatroom-form.vue +1 -1
  64. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/cloud-object-clone-form.vue +1 -1
  65. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/cloud-object-file-form.vue +1 -1
  66. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/email-form.vue +1 -1
  67. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/notification-form.vue +1 -1
  68. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/send-cloud-object-file.vue +1 -1
  69. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/forms/task-form.vue +1 -1
  70. data/lib/vue/{shared → refactor/shared}/workflows2/apps/actions/index.vue +1 -1
  71. data/lib/vue/{shared → refactor/shared}/workflows2/apps/checks/form.vue +1 -1
  72. data/lib/vue/{shared → refactor/shared}/workflows2/apps/checks/index.vue +1 -1
  73. data/lib/vue/{shared → refactor/shared}/workflows2/apps/index.vue +1 -1
  74. data/lib/vue/{shared → refactor/shared}/workflows2/apps/new.vue +1 -1
  75. data/lib/vue/{shared → refactor/shared}/workflows2/apps/show.vue +1 -1
  76. data/lib/vue/{shared → refactor/shared}/workflows2/components/associations.vue +1 -1
  77. data/lib/vue/{shared → refactor/shared}/workflows2/components/chart.vue +1 -1
  78. data/lib/vue/{shared → refactor/shared}/workflows2/components/workflow-form.vue +1 -1
  79. data/lib/vue/{shared → refactor/shared}/workflows2/components/workflow-status-dropdown.vue +1 -1
  80. data/lib/vue/refactor/stores/translations.json +60 -0
  81. data/lib/vue/shared/dashboards/apps/edit.vue +1 -1
  82. data/lib/vue/shared/dashboards/apps/index.vue +1 -1
  83. data/lib/vue/shared/dashboards/apps/new.vue +1 -1
  84. data/lib/vue/shared/dashboards/apps/show.vue +4 -2
  85. data/lib/vue/shared/dashboards/components/form.vue +1 -1
  86. data/lib/webpack/base.js +133 -132
  87. data/lib/webpack/core.js +9 -3
  88. data/lib/webpack/engines.js +7 -2
  89. data/lib/webpack/version.js +4 -1
  90. data/readme.md +7 -5
  91. metadata +135 -180
  92. data/app/assets/icons/lesli/cloud-development.svg +0 -1
  93. data/app/assets/icons/lesli/cloud-letter.svg +0 -1
  94. data/app/assets/icons/lesli/icon-module.svg +0 -1
  95. data/app/assets/icons/lesli/logo-android.svg +0 -1
  96. data/app/assets/icons/lesli/logo-bulma.svg +0 -1
  97. data/app/assets/icons/lesli/logo-ios.svg +0 -1
  98. data/app/assets/icons/lesli/logo-linux.svg +0 -1
  99. data/app/assets/icons/lesli/logo-mac.svg +0 -1
  100. data/app/assets/icons/lesli/logo-module.svg +0 -1
  101. data/app/assets/icons/lesli/logo-postgresql.svg +0 -1
  102. data/app/assets/icons/lesli/logo-rails.svg +0 -1
  103. data/app/assets/icons/lesli/logo-ruby.svg +0 -1
  104. data/app/assets/icons/lesli/logo-sass.svg +0 -1
  105. data/app/assets/icons/lesli/logo-vue.svg +0 -1
  106. data/app/assets/icons/lesli/logo-web.svg +0 -1
  107. data/app/assets/icons/lesli/logo-windows.svg +0 -1
  108. data/app/assets/images/lesli/brand/app-logo2.svg +0 -52
  109. data/app/assets/javascripts/lesli/users/confirmations.js +0 -32
  110. data/app/assets/javascripts/lesli/users/passwords.js +0 -742
  111. data/app/assets/javascripts/lesli/users/registrations.js +0 -742
  112. data/lib/assets/javascripts/lesli/translations.js +0 -15
  113. data/lib/sass/lesli/elements/form.scss +0 -43
  114. data/lib/sass/lesli/elements/header.scss +0 -44
  115. data/lib/sass/lesli/elements/panel.scss +0 -65
  116. data/lib/sass/lesli/elements/tab.scss +0 -48
  117. /data/app/assets/fonts/lesli/Domine/{Domine-VariableFont_wght.ttf → Domine-Variable.ttf} +0 -0
  118. /data/app/assets/icons/lesli/{cloud-admin.svg → engine-admin.svg} +0 -0
  119. /data/app/assets/icons/lesli/{cloud-audit.svg → engine-audit.svg} +0 -0
  120. /data/app/assets/icons/lesli/{cloud-babel.svg → engine-babel.svg} +0 -0
  121. /data/app/assets/icons/lesli/{cloud-bell.svg → engine-bell.svg} +0 -0
  122. /data/app/assets/icons/lesli/{cloud-books.svg → engine-books.svg} +0 -0
  123. /data/app/assets/icons/lesli/{cloud-lesli.svg → engine-dashboard.svg} +0 -0
  124. /data/app/assets/icons/lesli/{cloud-dispatcher.svg → engine-dispatcher.svg} +0 -0
  125. /data/app/assets/icons/lesli/{cloud-driver.svg → engine-driver.svg} +0 -0
  126. /data/app/assets/icons/lesli/{cloud-focus.svg → engine-focus.svg} +0 -0
  127. /data/app/assets/icons/lesli/{cloud-guard.svg → engine-guard.svg} +0 -0
  128. /data/app/assets/icons/lesli/{cloud-kb.svg → engine-kb.svg} +0 -0
  129. /data/app/assets/icons/lesli/{cloud-leaf.svg → engine-leaf.svg} +0 -0
  130. /data/app/assets/icons/lesli/{cloud-word.svg → engine-letter.svg} +0 -0
  131. /data/app/assets/icons/lesli/{cloud-mailer.svg → engine-mailer.svg} +0 -0
  132. /data/app/assets/icons/lesli/{cloud-one.svg → engine-one.svg} +0 -0
  133. /data/app/assets/icons/lesli/{cloud-profile.svg → engine-profile.svg} +0 -0
  134. /data/app/assets/icons/lesli/{cloud-proposal.svg → engine-proposal.svg} +0 -0
  135. /data/app/assets/icons/lesli/{cloud-scraper.svg → engine-scraper.svg} +0 -0
  136. /data/app/assets/icons/lesli/{cloud-shared.svg → engine-shared.svg} +0 -0
  137. /data/app/assets/icons/lesli/{cloud-storage.svg → engine-storage.svg} +0 -0
  138. /data/app/assets/icons/lesli/{cloud-support.svg → engine-support.svg} +0 -0
  139. /data/app/assets/icons/lesli/{cloud-talk.svg → engine-talk.svg} +0 -0
  140. /data/app/assets/icons/lesli/{cloud-team.svg → engine-team.svg} +0 -0
  141. /data/app/assets/icons/lesli/{cloud-time.svg → engine-time.svg} +0 -0
  142. /data/lib/{sass/lesli → scss}/cloud-objects/discussion.scss +0 -0
  143. /data/lib/{sass/lesli → scss}/cloud-objects/file.scss +0 -0
  144. /data/lib/{sass/lesli → scss}/components/editor-richtext.scss +0 -0
  145. /data/lib/{sass/lesli → scss}/components/keypad.scss +0 -0
  146. /data/{app/assets/stylesheets/lesli/users → lib/scss/devise}/confirmations.scss +0 -0
  147. /data/{app/assets/stylesheets/lesli/users → lib/scss/devise}/oauth.scss +0 -0
  148. /data/{app/assets/stylesheets/lesli/users → lib/scss/devise}/passwords.scss +0 -0
  149. /data/{app/assets/stylesheets/lesli/users → lib/scss/devise}/registrations.scss +0 -0
  150. /data/lib/{sass/lesli → scss}/elements/autocomplete.scss +0 -0
  151. /data/lib/{sass/lesli → scss}/elements/avatar.scss +0 -0
  152. /data/lib/{sass/lesli → scss}/elements/calendar.scss +0 -0
  153. /data/lib/{sass/lesli → scss}/elements/card.scss +0 -0
  154. /data/lib/{sass/lesli → scss}/elements/empty.scss +0 -0
  155. /data/lib/{sass/lesli → scss}/elements/file-uploader.scss +0 -0
  156. /data/lib/{sass/lesli → scss}/elements/gallery.scss +0 -0
  157. /data/lib/{sass/lesli → scss}/elements/input-tag.scss +0 -0
  158. /data/lib/{sass/lesli → scss}/elements/loading.scss +0 -0
  159. /data/lib/{sass/lesli → scss}/elements/map.scss +0 -0
  160. /data/lib/{sass/lesli → scss}/elements/msg.scss +0 -0
  161. /data/lib/{sass/lesli → scss}/elements/navbar.scss +0 -0
  162. /data/lib/{sass/lesli → scss}/elements/table.scss +0 -0
  163. /data/lib/{sass/lesli → scss}/elements/toggle.scss +0 -0
  164. /data/lib/{sass/lesli → scss}/elements/toolbar.scss +0 -0
  165. /data/lib/{sass/lesli → scss}/helpers/display.scss +0 -0
  166. /data/lib/{sass/lesli → scss}/helpers/tooltip.scss +0 -0
  167. /data/lib/{sass/lesli → scss}/layouts/application-announcements.scss +0 -0
  168. /data/lib/{sass/lesli → scss}/layouts/application-component.scss +0 -0
  169. /data/lib/{sass/lesli → scss}/layouts/application-container.scss +0 -0
  170. /data/lib/{sass/lesli → scss}/layouts/application-engines.scss +0 -0
  171. /data/lib/{sass/lesli → scss}/layouts/application-footer.scss +0 -0
  172. /data/lib/{sass/lesli → scss}/layouts/application-navbar.scss +0 -0
  173. /data/lib/{sass/lesli → scss}/layouts/application-search.scss +0 -0
  174. /data/lib/{sass/lesli → scss}/overrides/sweetalert.scss +0 -0
  175. /data/lib/{sass/lesli → scss}/pages/devise-simple.scss +0 -0
  176. /data/lib/{sass/lesli → scss}/pages/invites.scss +0 -0
  177. /data/lib/{sass/lesli → scss}/panels/panel-announcements.scss +0 -0
  178. /data/lib/{sass/lesli → scss}/panels/panel-notification.scss +0 -0
  179. /data/lib/{sass/lesli → scss}/panels/panel-profile.scss +0 -0
  180. /data/lib/{sass/lesli → scss}/panels/panel-tasks.scss +0 -0
  181. /data/lib/{sass/lesli → scss}/panels/panel-ticket.scss +0 -0
  182. /data/lib/{sass/lesli → scss}/shared/workflow-status-progress.scss +0 -0
  183. /data/lib/{sass/lesli → scss}/templates/empty.scss +0 -0
  184. /data/lib/{sass/lesli → scss}/templates/pdf.scss +0 -0
  185. /data/lib/vue/{stores → refactor/stores}/cloudobjects/action.js +0 -0
  186. /data/lib/vue/{stores → refactor/stores}/cloudobjects/discussion.js +0 -0
  187. /data/lib/vue/{stores → refactor/stores}/cloudobjects/file.js +0 -0
  188. /data/lib/vue/{stores → refactor/stores}/entities/announcements.js +0 -0
  189. /data/lib/vue/{stores → refactor/stores}/entities/dashboard.js +0 -0
  190. /data/lib/vue/{stores → refactor/stores}/entities/workflow.js +0 -0
  191. /data/lib/vue/{stores → refactor/stores}/panels/announcements.js +0 -0
  192. /data/lib/vue/{stores → refactor/stores}/panels/notification.js +0 -0
  193. /data/lib/vue/{stores → refactor/stores}/panels/task.js +0 -0
  194. /data/lib/vue/{stores → refactor/stores}/panels/tickets.js +0 -0
  195. /data/lib/vue/{stores → refactor/stores}/role.js +0 -0
  196. /data/lib/vue/{stores → refactor/stores}/users.js +0 -0
  197. /data/lib/vue/{stores → shared}/services/firebase.js +0 -0
  198. /data/lib/vue/{stores → shared}/services/translator.js +0 -0
  199. /data/lib/vue/{stores → shared/stores}/account.js +0 -0
  200. /data/lib/vue/{stores/search.js → shared/stores/command.js} +0 -0
  201. /data/lib/vue/{stores → shared/stores}/layout.js +0 -0
data/lib/webpack/base.js CHANGED
@@ -37,148 +37,149 @@ var dayjs = require("dayjs")
37
37
  var webpack = require("webpack")
38
38
  var TerserPlugin = require("terser-webpack-plugin")
39
39
  var { VueLoaderPlugin } = require("vue-loader")
40
+ const MiniCssExtractPlugin = require('mini-css-extract-plugin');
41
+ const RemoveEmptyScriptsPlugin = require('webpack-remove-empty-scripts');
40
42
 
41
43
 
42
44
  // ·
43
- module.exports = env => {
45
+ module.exports = env => ({
44
46
 
45
- return {
47
+ watch: env.watch == "true",
48
+ mode: env.production ? "production" : "development",
46
49
 
47
- watch: env.watch == "true",
48
- mode: env.production ? "production" : "development",
49
50
 
51
+ // Show only necessary stats when compiling
52
+ stats: {
53
+ all: false,
54
+ assets: true,
55
+ assetsSort: '!size',
56
+ env: true,
57
+ errors: true,
58
+ errorDetails: true,
59
+ errorsCount: true,
60
+ warnings: true,
61
+ },
50
62
 
51
- // Show only necessary stats when compiling
52
- stats: {
53
- all: false,
54
- assets: true,
55
- assetsSort: '!size',
56
- env: true,
57
- errors: true,
58
- errorDetails: true,
59
- errorsCount: true,
60
- warnings: true,
61
- },
62
-
63
63
 
64
- // Set max size limit for JS bundles to 0.98 MB
65
- performance: {
66
- maxAssetSize: 1100000,
67
- maxEntrypointSize: 1100000,
68
- assetFilter: function(assetFilename) {
69
- return !(['cloud_development/application.js'].includes(assetFilename));
70
- }
71
- },
64
+ // Set max size limit for JS bundles to 0.98 MB
65
+ performance: {
66
+ maxAssetSize: 1100000,
67
+ maxEntrypointSize: 1100000
68
+ },
69
+
72
70
 
73
-
74
- // Use a custom plugin to remove all the comments
75
- // from the javascript files
76
- optimization: {
77
- minimize: env.production,
78
- minimizer: [
79
- new TerserPlugin({
80
- terserOptions: {
81
- format: {
82
- comments: false,
83
- },
71
+ // Use a custom plugin to remove all the comments
72
+ // from the javascript files
73
+ optimization: {
74
+ minimize: env.production,
75
+ minimizer: [
76
+ new TerserPlugin({
77
+ terserOptions: {
78
+ format: {
79
+ comments: false,
84
80
  },
85
- extractComments: false,
86
- parallel: true
87
- })
88
- ]
89
- },
90
-
91
-
92
- // Defined the core apps as main entry apps
93
- // engine javascript apps are defined dynamically
94
- entry: { },
95
-
96
-
97
- // Set the name of the compiled javascript files
98
- output: {
99
- path: "",
100
- filename: "[name].js"
101
- },
102
-
103
-
104
- // resolvers & path alias
105
- resolve: {
106
-
107
- // include folder so we can import direct from node modules
108
- modules: [path.resolve("node_modules")],
109
- alias: {
110
-
111
- vue: "vue/dist/vue.esm-bundler.js",
112
-
113
- // Set aliases as shortcuts to import modules
114
- Lesli: path.resolve("lib", "vue"),
115
- LesliBell: path.resolve("../", "LesliBell", "lib", "vue"),
116
- LesliAdmin: path.resolve("../", "LesliAdmin", "lib", "vue"),
117
- LesliAudit: path.resolve("../", "LesliAudit", "lib", "vue"),
118
- LesliBabel: path.resolve("../", "LesliBabel", "lib", "vue"),
119
- LesliGuard: path.resolve("../", "LesliGuard", "lib", "vue"),
120
- LesliLetter: path.resolve("../", "LesliLetter", "lib", "vue"),
121
- LesliDriver: path.resolve("../", "LesliDriver", "lib", "vue"),
122
- LesliSupport: path.resolve("../", "LesliSupport", "lib", "vue"),
123
-
124
-
125
-
126
- CloudAdmin: path.resolve("app", "vue", "admin"),
127
- CloudTalk: path.resolve("engines", "cloud_talk", "lib", "vue"),
128
- CloudTeam: path.resolve("engines", "cloud_team", "lib", "vue"),
129
- CloudTime: path.resolve("engines", "cloud_time", "lib", "vue"),
130
- CloudWork: path.resolve("engines", "cloud_work", "lib", "vue"),
131
- CloudBabel: path.resolve("engines", "cloud_babel", "lib", "vue"),
132
- CloudFocus: path.resolve("engines", "cloud_focus", "lib", "vue"),
133
- CloudMailer: path.resolve("engines", "cloud_mailer", "lib", "vue"),
134
- CloudSocial: path.resolve("engines", "cloud_social", "lib", "vue"),
135
- CloudShared: path.resolve("engines", "cloud_shared", "lib", "vue"),
136
- CloudScraper: path.resolve("engines", "cloud_scraper", "lib", "vue"),
137
- CloudAuthority: path.resolve("engines", "cloud_authority", "lib", "vue"),
138
-
139
- LesliBuilder: path.resolve("engines", "lesli_builder", "lib", "vue")
140
- }
141
- },
142
- module: {
143
- rules: [{
144
- test: /\.vue$/,
145
- use: {
146
- loader: "vue-loader",
147
- options: {
148
- compilerOptions: {
149
- // ignore custom html components & elements
150
- isCustomElement: tag => tag === 'trix-editor'
151
- }
81
+ },
82
+ extractComments: false,
83
+ parallel: true
84
+ })
85
+ ]
86
+ },
87
+
88
+
89
+ // Defined the core apps as main entry apps
90
+ // engine javascript apps are defined dynamically
91
+ entry: { },
92
+
93
+
94
+ // Set the name of the compiled javascript files
95
+ output: {
96
+ path: "",
97
+ filename: "[name].js"
98
+ },
99
+
100
+
101
+ // resolvers & path alias
102
+ resolve: {
103
+
104
+ // include folder so we can import direct from node modules
105
+ modules: [path.resolve("node_modules")],
106
+ alias: {
107
+
108
+ vue: "vue/dist/vue.esm-bundler.js",
109
+
110
+ // Set aliases as shortcuts to import modules
111
+ Lesli: path.resolve("lib"),
112
+ LesliVue: path.resolve("lib", "vue"),
113
+ LesliStyle: path.resolve("lib", "scss"),
114
+
115
+ LesliBell: path.resolve("../", "LesliBell", "lib"),
116
+ LesliAdmin: path.resolve("../", "LesliAdmin", "lib"),
117
+ LesliAudit: path.resolve("../", "LesliAudit", "lib"),
118
+ LesliBabel: path.resolve("../", "LesliBabel", "lib"),
119
+ LesliGuard: path.resolve("../", "LesliGuard", "lib"),
120
+ LesliLetter: path.resolve("../", "LesliLetter", "lib"),
121
+ LesliDriver: path.resolve("../", "LesliDriver", "lib"),
122
+ LesliSupport: path.resolve("../", "LesliSupport", "lib"),
123
+ LesliDashboard: path.resolve("../", "LesliDashboard", "lib"),
124
+
125
+ LesliBuilder: path.resolve("engines", "lesli_builder", "lib", "vue")
126
+ }
127
+ },
128
+ module: {
129
+ rules: [{
130
+ test: /\.vue$/,
131
+ use: {
132
+ loader: "vue-loader",
133
+ options: {
134
+ compilerOptions: {
135
+ // ignore custom html components & elements
136
+ isCustomElement: tag => tag === 'trix-editor'
152
137
  }
153
138
  }
154
- }, {
155
- test: /\.css$/,
156
- use: [
157
- "style-loader", // creates style nodes from JS strings
158
- "css-loader", // translates CSS into CommonJS
159
- ]
160
- }, {
161
- test: /\.m?js$/,
162
- exclude: /(node_modules)/,
163
- use: {
164
- loader: "babel-loader",
165
- options: {
166
- presets: [["@babel/preset-env", { "targets": "defaults" }]]
167
- }
139
+ }
140
+ }, {
141
+ test: /\.css$/,
142
+ use: [
143
+ "style-loader", // creates style nodes from JS strings
144
+ "css-loader", // translates CSS into CommonJS
145
+ ]
146
+ }, {
147
+ test: /\.m?js$/,
148
+ exclude: /(node_modules)/,
149
+ use: {
150
+ loader: "babel-loader",
151
+ options: {
152
+ presets: [["@babel/preset-env", { "targets": "defaults" }]]
168
153
  }
169
- }]
170
- },
171
- plugins: [
172
- new VueLoaderPlugin(),
173
-
174
- // custom constants
175
- new webpack.DefinePlugin({
176
- lesli_application_production: JSON.stringify(env.production),
177
- lesli_application_development: JSON.stringify(!env.production),
178
- lesli_application_version: JSON.stringify(dayjs().format("YYMMDD.HHmm")),
179
- __VUE_OPTIONS_API__: true,
180
- __VUE_PROD_DEVTOOLS__: true
181
- })
182
- ]
183
- }
184
- }
154
+ }
155
+ },{
156
+ test: /\.(scss)$/,
157
+ use: [
158
+ MiniCssExtractPlugin.loader,
159
+ {
160
+ loader:'css-loader',
161
+ options: { url: false }
162
+ },
163
+ 'sass-loader'
164
+ ]
165
+ }]
166
+ },
167
+ plugins: [
168
+ new VueLoaderPlugin(),
169
+
170
+ new RemoveEmptyScriptsPlugin(),
171
+
172
+ new MiniCssExtractPlugin({
173
+ filename: 'stylesheets/[name].css'
174
+ }),
175
+
176
+ // custom constants
177
+ new webpack.DefinePlugin({
178
+ lesli_application_production: JSON.stringify(env.production),
179
+ lesli_application_development: JSON.stringify(!env.production),
180
+ lesli_application_version: JSON.stringify(dayjs().format("YYMMDD.HHmm")),
181
+ __VUE_OPTIONS_API__: true,
182
+ __VUE_PROD_DEVTOOLS__: true
183
+ })
184
+ ]
185
+ })
data/lib/webpack/core.js CHANGED
@@ -65,11 +65,17 @@ module.exports = (env, requestedEngines) => {
65
65
  entry: {
66
66
  "lesli/users/registrations": "Lesli/devise/registrations.js",
67
67
  "lesli/users/confirmations": "Lesli/devise/confirmations.js",
68
- "lesli/users/passwords": "Lesli/devise/passwords.js",
69
-
68
+ "lesli/users/passwords": "Lesli/devise/passwords.js"
69
+ },
70
+ entry: {
71
+ "lesli/templates/public": "Lesli/scss/templates/public.scss",
72
+ "lesli/templates/application": "Lesli/scss/templates/application.scss",
73
+ "lesli/users/sessions": ["Lesli/vue/devise/sessions.js", "Lesli/scss/devise/sessions.scss"]
70
74
  },
71
75
  output: {
72
- path: path.resolve("app", "assets", "javascripts")
76
+ // the output for stylesheets is defined in the webpack file itself
77
+ path: path.resolve("app", "assets"),
78
+ filename: 'javascripts/[name].js'
73
79
  }
74
80
  }
75
81
 
@@ -116,7 +116,9 @@ module.exports = (env, requestedEngines) => {
116
116
  var config = {
117
117
  entry: {},
118
118
  output: {
119
- path: path.resolve(pathEngines, engine.dir, "app", "assets", "javascripts")
119
+ // the output for stylesheets is defined in the webpack file itself
120
+ path: path.resolve(pathEngines, engine.dir, "app", "assets"),
121
+ filename: 'javascripts/[name].js'
120
122
  }
121
123
  }
122
124
 
@@ -143,7 +145,10 @@ module.exports = (env, requestedEngines) => {
143
145
  const appname = path.parse(file).name
144
146
 
145
147
  // add vue apps found into the webpack compilation pipeline
146
- config.entry[(`${engine.code}/${appname}`)] = `${engine.dir}/${appname}`
148
+ config.entry[(`${engine.code}/${appname}`)] = [
149
+ `${engine.dir}/vue/${appname}.js`,
150
+ `${engine.dir}/scss/${appname}.scss`
151
+ ]
147
152
 
148
153
  })
149
154
 
@@ -1,9 +1,11 @@
1
1
 
2
2
  const fs = require("fs")
3
- const debug = require("lesli-js/debug/nodejs")
4
3
  const dayjs = require("dayjs")
4
+ const { useLesliDebug } = require("lesli-vue/composables")
5
5
  const advancedFormat = require("dayjs/plugin/advancedFormat")
6
6
  dayjs.extend(advancedFormat)
7
+ const debug = useLesliDebug()
8
+
7
9
 
8
10
  // · Update compilation version for frontend and backend
9
11
  module.exports = (env, engine) => {
@@ -23,6 +25,7 @@ module.exports = (env, engine) => {
23
25
  return console.log(err)
24
26
  }
25
27
 
28
+ // Unix Timestamp in second
26
29
  let build = dayjs().format("X")
27
30
 
28
31
  data = data.split("\n")
data/readme.md CHANGED
@@ -56,16 +56,15 @@ Lesli is officially released and will be supported as of version 5.1
56
56
  ### Demo
57
57
 
58
58
  * online demo (soon)
59
- * docker run leslitech/lesli-demo:5.0
59
+ * [docker demo](https://github.com/LesliTech/lesli-docker-demo)
60
60
 
61
61
 
62
62
  <br />
63
63
 
64
64
  ### Documentation
65
- * [Website](https://www.lesli.dev/lesli/)
66
- * [Roadmap](./docs/roadmap.md)
65
+ * [Website](https://www.lesli.dev/)
67
66
  * [Database](./docs/database.md)
68
- * [Documentation](https://www.lesli.dev/documentation/)
67
+ * [Documentation](https://www.lesli.dev/docs.html)
69
68
 
70
69
 
71
70
  <br />
@@ -78,8 +77,11 @@ bundle add lesli
78
77
  ```
79
78
 
80
79
  ```shell
81
- # Setup database
80
+ # Setup database for production
82
81
  rake lesli:db:setup
82
+
83
+ # Setup database for development
84
+ rake lesli:db:dev
83
85
  ```
84
86
 
85
87
  ```ruby