lesli 5.0.7 → 5.0.9

Sign up to get free protection for your applications and to get access to all the features.
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