cob-cli 2.25.0 → 2.27.1

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 (221) hide show
  1. package/bin/cob-cli.js +6 -7
  2. package/bin/handleAutoComplete.js +3 -4
  3. package/lib/commands/customize.js +216 -63
  4. package/package.json +3 -2
  5. package/.gitmodules +0 -27
  6. package/.vscode/launch.json +0 -106
  7. package/README.Development.md +0 -294
  8. package/README.publish.md +0 -10
  9. package/customizations/backend.email.js +0 -10
  10. package/customizations/backend.js +0 -14
  11. package/customizations/backend.updateField.js +0 -11
  12. package/customizations/backend.vuepress.js +0 -35
  13. package/customizations/dashboard.dash.js +0 -14
  14. package/customizations/dashboard.js +0 -14
  15. package/customizations/dashboard.simple.js +0 -12
  16. package/customizations/dashboard.vue.empty.js +0 -12
  17. package/customizations/dashboard.vue.grid.js +0 -10
  18. package/customizations/dashboard.vue.js +0 -14
  19. package/customizations/dashboard.vue.menuAndGrid.js +0 -10
  20. package/customizations/frontend.common.js +0 -16
  21. package/customizations/frontend.easy.js +0 -16
  22. package/customizations/frontend.formatList.currency.js +0 -17
  23. package/customizations/frontend.formatList.js +0 -13
  24. package/customizations/frontend.js +0 -14
  25. package/customizations/importer.js +0 -10
  26. package/customizations/keywords.audit.js +0 -18
  27. package/customizations/keywords.calc.js +0 -18
  28. package/customizations/keywords.image.js +0 -16
  29. package/customizations/keywords.js +0 -17
  30. package/customizations/keywords.kibana.js +0 -16
  31. package/customizations/keywords.log.js +0 -18
  32. package/customizations/keywords.styleResults.js +0 -18
  33. package/lib/task_lists/customize_copy.js +0 -51
  34. package/lib/task_lists/customize_mergeFiles.js +0 -42
  35. package/lib/task_lists/customize_questions.js +0 -40
  36. package/templates/backend/vuepress/integrationm/actions/getVuePressDoc.groovy +0 -74
  37. package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarConfig.groovy +0 -42
  38. package/templates/backend/vuepress/integrationm/actions/getVuePressSidebarRootElements.groovy +0 -17
  39. package/templates/backend/vuepress/others/vuepress/definition_contents_v234.json +0 -619
  40. package/templates/backend/vuepress/others/vuepress/nginx/README.md +0 -28
  41. package/templates/backend/vuepress/others/vuepress/package-lock.json +0 -29656
  42. package/templates/backend/vuepress/others/vuepress/package.json +0 -24
  43. package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/DescriptVideo.vue +0 -22
  44. package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/Graph.vue +0 -124
  45. package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/ReadingTime.vue +0 -26
  46. package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/References.vue +0 -228
  47. package/templates/backend/vuepress/others/vuepress/src/.vuepress/components/RestrictedContent.vue +0 -77
  48. package/templates/backend/vuepress/others/vuepress/src/.vuepress/config.js +0 -101
  49. package/templates/backend/vuepress/others/vuepress/src/.vuepress/config.json +0 -31
  50. package/templates/backend/vuepress/others/vuepress/src/.vuepress/enhanceApp.js +0 -14
  51. package/templates/backend/vuepress/others/vuepress/src/.vuepress/nav/getNavTranslated.js +0 -52
  52. package/templates/backend/vuepress/others/vuepress/src/.vuepress/plugins/References.js +0 -96
  53. package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/Logo-Cult-of-Bits-400x400-1.png +0 -0
  54. package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/favicon-cob.png +0 -0
  55. package/templates/backend/vuepress/others/vuepress/src/.vuepress/public/logo.png +0 -0
  56. package/templates/backend/vuepress/others/vuepress/src/.vuepress/styles/index.styl +0 -39
  57. package/templates/backend/vuepress/others/vuepress/src/.vuepress/styles/palette.styl +0 -17
  58. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/LICENSE +0 -21
  59. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/README.md +0 -11
  60. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/AlgoliaSearchBox.vue +0 -172
  61. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/DropdownLink.vue +0 -252
  62. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/DropdownTransition.vue +0 -33
  63. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Home.vue +0 -134
  64. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/NavLink.vue +0 -98
  65. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/NavLinks.vue +0 -165
  66. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Navbar.vue +0 -140
  67. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Page.vue +0 -31
  68. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/PageEdit.vue +0 -119
  69. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/PageNav.vue +0 -163
  70. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/Sidebar.vue +0 -64
  71. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarButton.vue +0 -40
  72. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarGroup.vue +0 -144
  73. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarLink.vue +0 -140
  74. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/components/SidebarLinks.vue +0 -114
  75. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/Badge.vue +0 -44
  76. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/CodeBlock.vue +0 -41
  77. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/global-components/CodeGroup.vue +0 -120
  78. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/index.js +0 -59
  79. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/layouts/404.vue +0 -30
  80. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/layouts/Layout.vue +0 -151
  81. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/noopModule.js +0 -1
  82. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/package.json +0 -44
  83. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/arrow.styl +0 -22
  84. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/code.styl +0 -137
  85. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/config.styl +0 -1
  86. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/custom-blocks.styl +0 -44
  87. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/index.styl +0 -202
  88. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/mobile.styl +0 -37
  89. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/toc.styl +0 -3
  90. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/styles/wrapper.styl +0 -10
  91. package/templates/backend/vuepress/others/vuepress/src/.vuepress/theme/util/index.js +0 -244
  92. package/templates/dashboards/cob-dashboard-html/demoDashboard.html +0 -18
  93. package/templates/dashboards/cob-dashboard-vue/package-lock.json +0 -25020
  94. package/templates/dashboards/cob-dashboard-vue/package.json +0 -21
  95. package/templates/dashboards/cob-dashboard-vue/src/App.vue +0 -26
  96. package/templates/dashboards/cob-dashboard-vue/src/dashboard.html +0 -31
  97. package/templates/dashboards/cob-dashboard-vue/src/main.js +0 -12
  98. package/templates/dashboards/cob-dashboard-vue/src/plugins/cobUiVueComponents.js +0 -6
  99. package/templates/dashboards/cob-dashboard-vue/src/plugins/vuetify.js +0 -9
  100. package/templates/dashboards/cob-dashboard-vue/vue.config.js +0 -104
  101. package/templates/dashboards/dash/dist/css/app.7b16c01a.css +0 -11
  102. package/templates/dashboards/dash/dist/dashboard.html +0 -25
  103. package/templates/dashboards/dash/dist/fonts/fa-brands-400.a78ffbbe.ttf +0 -0
  104. package/templates/dashboards/dash/dist/fonts/fa-brands-400.cd2b4095.woff2 +0 -0
  105. package/templates/dashboards/dash/dist/fonts/fa-regular-400.b1a1bebb.ttf +0 -0
  106. package/templates/dashboards/dash/dist/fonts/fa-regular-400.e8a1ba41.woff2 +0 -0
  107. package/templates/dashboards/dash/dist/fonts/fa-solid-900.55b416a8.woff2 +0 -0
  108. package/templates/dashboards/dash/dist/fonts/fa-solid-900.73820155.ttf +0 -0
  109. package/templates/dashboards/dash/dist/fonts/fa-v4compatibility.0d6f5f18.ttf +0 -0
  110. package/templates/dashboards/dash/dist/fonts/fa-v4compatibility.786e6b33.woff2 +0 -0
  111. package/templates/dashboards/dash/dist/js/app.13b950c8.js +0 -199
  112. package/templates/dashboards/dash/dist/js/app.13b950c8.js.map +0 -1
  113. package/templates/dashboards/dash/package-lock.json +0 -22646
  114. package/templates/dashboards/dash/package.json +0 -27
  115. package/templates/dashboards/dash/src/App.vue +0 -124
  116. package/templates/dashboards/dash/src/assets/css/all.min.css +0 -6
  117. package/templates/dashboards/dash/src/assets/webfonts/fa-brands-400.ttf +0 -0
  118. package/templates/dashboards/dash/src/assets/webfonts/fa-brands-400.woff2 +0 -0
  119. package/templates/dashboards/dash/src/assets/webfonts/fa-regular-400.ttf +0 -0
  120. package/templates/dashboards/dash/src/assets/webfonts/fa-regular-400.woff2 +0 -0
  121. package/templates/dashboards/dash/src/assets/webfonts/fa-solid-900.ttf +0 -0
  122. package/templates/dashboards/dash/src/assets/webfonts/fa-solid-900.woff2 +0 -0
  123. package/templates/dashboards/dash/src/assets/webfonts/fa-v4compatibility.ttf +0 -0
  124. package/templates/dashboards/dash/src/assets/webfonts/fa-v4compatibility.woff2 +0 -0
  125. package/templates/dashboards/dash/src/collector.js +0 -222
  126. package/templates/dashboards/dash/src/components/Attention.vue +0 -30
  127. package/templates/dashboards/dash/src/components/Board.vue +0 -35
  128. package/templates/dashboards/dash/src/components/Calendar.vue +0 -422
  129. package/templates/dashboards/dash/src/components/Dashboard.vue +0 -27
  130. package/templates/dashboards/dash/src/components/Filter.vue +0 -68
  131. package/templates/dashboards/dash/src/components/Kibana.vue +0 -138
  132. package/templates/dashboards/dash/src/components/Label.vue +0 -15
  133. package/templates/dashboards/dash/src/components/Menu.vue +0 -44
  134. package/templates/dashboards/dash/src/components/Totals.vue +0 -49
  135. package/templates/dashboards/dash/src/components/TotalsValue.vue +0 -59
  136. package/templates/dashboards/dash/src/components/shared/Instance.vue +0 -64
  137. package/templates/dashboards/dash/src/components/shared/Waiting.vue +0 -25
  138. package/templates/dashboards/dash/src/dashboard.html +0 -39
  139. package/templates/dashboards/dash/src/definition_dashboard_v0.json +0 -924
  140. package/templates/dashboards/dash/src/definition_dashboard_v1.json +0 -1
  141. package/templates/dashboards/dash/src/input.css +0 -9
  142. package/templates/dashboards/dash/src/main.js +0 -11
  143. package/templates/dashboards/dash/src/model/ComponentStatePersistence.js +0 -66
  144. package/templates/dashboards/dash/src/output.css +0 -314245
  145. package/templates/dashboards/dash/src/test_collector.js +0 -3719
  146. package/templates/dashboards/dash/src/utils/EsInstanceUtils.js +0 -8
  147. package/templates/dashboards/dash/tailwind.config.js +0 -12
  148. package/templates/dashboards/dash/vue.config.js +0 -104
  149. package/templates/frontend/common/templates/frontend/common/css/_dualColumn.css +0 -46
  150. package/templates/frontend/common/templates/frontend/common/css/_global.css +0 -19
  151. package/templates/frontend/common/templates/frontend/common/css/_hidden.css +0 -13
  152. package/templates/frontend/common/templates/frontend/common/css/_history.css +0 -13
  153. package/templates/frontend/common/templates/frontend/common/css/_mobile.css +0 -125
  154. package/templates/frontend/common/templates/frontend/common/css/customizations.__MERGE__.css +0 -5
  155. package/templates/frontend/common/templates/frontend/common/js/cob/_disable_save_onSubdetail.js +0 -11
  156. package/templates/frontend/common/templates/frontend/common/js/cob/_group_references.js +0 -22
  157. package/templates/frontend/common/templates/frontend/common/js/cob/_show_hidden.js +0 -35
  158. package/templates/frontend/common/templates/frontend/common/js/customizations2.__MERGE__.js +0 -3
  159. package/templates/frontend/common/templates/frontend/common/package.json +0 -3
  160. package/templates/frontend/easy/css/_easy/googlefonts.css +0 -360
  161. package/templates/frontend/easy/css/_easy/vuetify.cob-scoped.css +0 -10488
  162. package/templates/frontend/easy/js/_easy/lib/axios.min.js +0 -9
  163. package/templates/frontend/easy/js/_easy/lib/marked.min.js +0 -6
  164. package/templates/frontend/easy/js/_easy/lib/vue.js +0 -11912
  165. package/templates/frontend/easy/js/_easy/lib/vue.min.js +0 -6
  166. package/templates/frontend/easy/js/_easy/lib/vuetify.min.js +0 -6
  167. package/templates/frontend/easy/js/customizations2.__MERGE__.js +0 -22
  168. package/templates/frontend/easy/webapp/.browserslistrc +0 -2
  169. package/templates/frontend/easy/webapp/.eslintrc.js +0 -17
  170. package/templates/frontend/easy/webapp/README.md +0 -60
  171. package/templates/frontend/easy/webapp/babel.config.js +0 -5
  172. package/templates/frontend/easy/webapp/dist/css/app.a4fb91f8.css +0 -1
  173. package/templates/frontend/easy/webapp/dist/dashboard.html +0 -13
  174. package/templates/frontend/easy/webapp/dist/js/app.63a57dcd.js +0 -2
  175. package/templates/frontend/easy/webapp/dist/js/app.63a57dcd.js.map +0 -1
  176. package/templates/frontend/easy/webapp/package-lock.json +0 -32986
  177. package/templates/frontend/easy/webapp/package.json +0 -32
  178. package/templates/frontend/easy/webapp/postcss.config.js +0 -5
  179. package/templates/frontend/easy/webapp/public/dashboard.html +0 -13
  180. package/templates/frontend/easy/webapp/src/App.vue +0 -181
  181. package/templates/frontend/easy/webapp/src/assets/logo.png +0 -0
  182. package/templates/frontend/easy/webapp/src/components/HelloWorld.vue +0 -59
  183. package/templates/frontend/easy/webapp/src/components/PermBuilder.vue +0 -163
  184. package/templates/frontend/easy/webapp/src/components/PlanExecutor.vue +0 -225
  185. package/templates/frontend/easy/webapp/src/components/ProductPermBuilder.vue +0 -95
  186. package/templates/frontend/easy/webapp/src/components/RmDefinitionChooser.vue +0 -59
  187. package/templates/frontend/easy/webapp/src/components/RmDomainChooser.vue +0 -60
  188. package/templates/frontend/easy/webapp/src/components/RoleBuilder.vue +0 -73
  189. package/templates/frontend/easy/webapp/src/main.js +0 -19
  190. package/templates/frontend/easy/webapp/src/perm-templates.js +0 -189
  191. package/templates/frontend/easy/webapp/src/perms.js +0 -197
  192. package/templates/frontend/easy/webapp/vue.config.js +0 -66
  193. package/templates/frontend/formatList/currency/css/_format_currency.css +0 -11
  194. package/templates/frontend/formatList/currency/css/customizations.__MERGE__.css +0 -1
  195. package/templates/frontend/formatList/currency/js/cob/_format_currency.js +0 -11
  196. package/templates/frontend/formatList/currency/js/customizations2.__MERGE__.js +0 -1
  197. package/templates/frontend/formatList/currency/package.json +0 -3
  198. package/templates/gitignore +0 -14
  199. package/templates/keywords/audit/backend/scripts/_audit.groovy +0 -78
  200. package/templates/keywords/audit/frontend/js/cob/_audit.js +0 -24
  201. package/templates/keywords/audit/frontend/js/customizations2.__MERGE__.js +0 -1
  202. package/templates/keywords/audit/package.json +0 -3
  203. package/templates/keywords/calc/backend/scripts/_calc.groovy +0 -151
  204. package/templates/keywords/calc/frontend/js/cob/_calc.js +0 -193
  205. package/templates/keywords/calc/frontend/js/customizations2.__MERGE__.js +0 -1
  206. package/templates/keywords/calc/package.json +0 -3
  207. package/templates/keywords/image/frontend/js/cob/_image.js +0 -30
  208. package/templates/keywords/image/frontend/js/customizations2.__MERGE__.js +0 -1
  209. package/templates/keywords/image/package.json +0 -3
  210. package/templates/keywords/kibana/frontend/js/cob/_kibana.js +0 -58
  211. package/templates/keywords/kibana/frontend/js/customizations2.__MERGE__.js +0 -1
  212. package/templates/keywords/kibana/package.json +0 -3
  213. package/templates/keywords/log/backend/scripts/_log.groovy +0 -95
  214. package/templates/keywords/log/frontend/css/_log.css +0 -5
  215. package/templates/keywords/log/frontend/css/customizations.__MERGE__.css +0 -1
  216. package/templates/keywords/log/package.json +0 -3
  217. package/templates/keywords/styleResults/frontend/css/_styleResults.css +0 -86
  218. package/templates/keywords/styleResults/frontend/css/customizations.__MERGE__.css +0 -1
  219. package/templates/keywords/styleResults/frontend/js/cob/_styleResults.js +0 -38
  220. package/templates/keywords/styleResults/frontend/js/customizations2.__MERGE__.js +0 -1
  221. package/templates/keywords/styleResults/package.json +0 -3
@@ -1,16 +0,0 @@
1
- exports.option = {
2
- name: 'Kibana - Allows for $kibana[dashboardId [,heigth])',
3
- short: "Kibana",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying Kibana keyword customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
11
- const fe_target = "./recordm/customUI/"
12
- await copy("../../templates/keywords/kibana/frontend",fe_target)
13
- await mergeFiles("Keyword.Kibana")
14
- return require("../templates/keywords/kibana/package.json").version
15
- }
16
- }
@@ -1,18 +0,0 @@
1
- exports.option = {
2
- name: 'Log - Allows for $log in definitions (https://learning.cultofbits.com/docs/cob-platform/admins/managing-information/available-customizations/log/)',
3
- short: "Log",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying Log keyword customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
11
- const fe_target = "./recordm/customUI/"
12
- await copy("../../templates/keywords/log/frontend",fe_target)
13
- const be_target = "./integrationm/"
14
- await copy("../../templates/keywords/log/backend",be_target)
15
- await mergeFiles("Keyword.Log")
16
- return require("../templates/keywords/log/package.json").version
17
- }
18
- }
@@ -1,18 +0,0 @@
1
- exports.option = {
2
- name: 'StyleResult - Allows for $styleResults in definitions (https://learning.cultofbits.com/docs/cob-platform/admins/managing-information/available-customizations/styleResults/)',
3
- short: "StyleResults",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying StyleResults keyword customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
11
- const fe_target = "./recordm/customUI/"
12
- await copy("../../templates/keywords/styleResults/frontend",fe_target)
13
- const be_target = "./integrationm/"
14
- await copy("../../templates/keywords/styleResults/backend",be_target)
15
- await mergeFiles("Keyword.StyleResults")
16
- return require("../templates/keywords/styleResults/package.json").version
17
- }
18
- }
@@ -1,51 +0,0 @@
1
- const ncp = require('ncp');
2
- const path = require('path');
3
- const {Transform} = require('stream')
4
-
5
- // https://www.npmtrends.com/copyfiles-vs-cpx-vs-ncp-vs-npm-build-tools
6
- // https://www.npmjs.com/package/ncp
7
- // https://www.npmjs.com/package/copyfiles
8
-
9
- function copy(source, target, substitutions = {}) {
10
- console.log(" Copying template files to '" + target + "'...")
11
-
12
- let srcPath = path.resolve(__dirname,source)
13
- let nodeModuleRegex = RegExp(srcPath+".*/node_modules/")
14
-
15
- return new Promise(async (resolve) => {
16
- // Source is on cob-cli repo and Destination on the server repo
17
- await ncp(path.resolve(__dirname,source),
18
- target,
19
- {
20
- clobber: true,
21
- filter: (src) => src.match(nodeModuleRegex) == null,
22
- // TODO: comentado porque não funciona a copiar os ficheiros binários (em concreto as font no template/dashboards/dash)
23
- // transform(read, write) {
24
- // const replaceVars = new Transform({
25
- // transform: (chunk, encoding, done) => done(null,chunk.toString().replace(/__.+__/g, m => substitutions[m]))
26
- // })
27
- // read.pipe(replaceVars).pipe(write)
28
- // }
29
- },
30
- (error,x) => {
31
- if (error) {
32
- // Error is an array of problems
33
- resolve(error.map(e => e.message).join("\n"));
34
- } else {
35
- resolve();
36
- }
37
- }
38
- );
39
-
40
- const { renameSync } = require('fs');
41
- const fg = require('fast-glob');
42
-
43
- const files = await fg(['**/*.__*__.*'], { onlyFiles: true, dot: true });
44
- files
45
- .forEach(file => {
46
- if(file.match(/__MERGE__/)) return
47
- renameSync(file, file.replace(/__.+__/g, m => substitutions[m]));
48
- });
49
- });
50
- }
51
- exports.copy = copy;
@@ -1,42 +0,0 @@
1
-
2
- async function mergeFiles(block) {
3
- const fg = require('fast-glob');
4
- const fs = require('fs-extra');
5
- const mergeFiles = await fg(['**/*.__MERGE__.*'], { onlyFiles: false, dot: true });
6
- for (let mergeFile of mergeFiles) {
7
- let prodFile = mergeFile.replace(/\.__MERGE__/, "");
8
- let blockMark = (block == undefined ? "" : block)
9
- if (!fs.existsSync(prodFile)) {
10
- // If prod file does not exist creates it
11
- console.log(" Creating " + prodFile)
12
- fs.closeSync(fs.openSync(prodFile, 'w'));
13
- } else {
14
- console.log(" Merging " + prodFile + " " + block)
15
- }
16
- let prodFileContent = fs.readFileSync(prodFile).toString();
17
- let mergeFileContent = fs.readFileSync(mergeFile).toString();
18
- let startStr = '/* COB-CLI START Customization ' + blockMark + ' */\n';
19
- let endStr = '\n/* COB-CLI END Customization ' + blockMark + ' */\n';
20
-
21
- if (prodFileContent.indexOf(startStr) < 0) {
22
- // If previous customization does not exist
23
- prodFileContent = startStr
24
- + mergeFileContent
25
- + endStr
26
- + prodFileContent;
27
- } else {
28
- // If previous customization exists
29
- let beforeMerge = prodFileContent.indexOf(startStr);
30
- let afterMerge = prodFileContent.indexOf(endStr) + endStr.length;
31
- prodFileContent = prodFileContent.substring(0, beforeMerge)
32
- + startStr
33
- + mergeFileContent
34
- + endStr
35
- + prodFileContent.substring(afterMerge);
36
- }
37
- fs.writeFileSync(prodFile, prodFileContent);
38
-
39
- fs.unlinkSync(mergeFile);
40
- }
41
- }
42
- exports.mergeFiles = mergeFiles;
@@ -1,40 +0,0 @@
1
- exports.definitionNameQuestion = {
2
- type: 'input',
3
- name: 'name',
4
- message: 'What\'s the name of the definition?',
5
- description: 'the name of the definition listing to customize'
6
- };
7
-
8
- exports.dashboardNameQuestion = {
9
- type: 'input',
10
- name: 'name',
11
- message: 'What name for the url?',
12
- description: 'a valid name consist of one Word composed of letters and numbers',
13
- validate: function (value) {
14
- var pass = value.match(
15
- /^[-0-9a-bA-Z]+$/i
16
- );
17
- if (pass) {
18
- return true;
19
- }
20
-
21
- return 'Only letters and numbers name, at least one';
22
- }
23
- };
24
-
25
- exports.dashboardNameQuestion2 = {
26
- type: 'input',
27
- name: 'name2',
28
- message: 'What name for the url2?',
29
- description: 'a valid name consist of one Word composed of letters and numbers',
30
- validate: function (value) {
31
- var pass = value.match(
32
- /^[-0-9a-bA-Z]+$/i
33
- );
34
- if (pass) {
35
- return true;
36
- }
37
-
38
- return 'Only letters and numbers name, at least one';
39
- }
40
- };
@@ -1,74 +0,0 @@
1
- import groovy.transform.Field;
2
- import org.apache.commons.logging.*;
3
-
4
- import static utils.CobUtils.*;
5
- import groovy.json.JsonOutput
6
-
7
-
8
- @Field log = LogFactory.getLog(getClass());
9
- log.info("Building VuePress e-learning content part")
10
- return JsonOutput.prettyPrint(JsonOutput.toJson( getVuePressDocs() ))
11
-
12
- /********************************************************************************************/
13
-
14
- def getVuePressDocs() {
15
- def docs = [];
16
-
17
- def contents = registosPaginadosAsMap(66,"*", actionPacks.get("rmRest"), "sortablefield", true)
18
- contents.each { content ->
19
- def langs = ["","pt","es"]
20
- def contentLink = content["path"][0]
21
- if( contentLink == "/site/home/" ) contentLink = "/";
22
-
23
- if(!content["type"] || content["type"][0] == "SiteItem" && content["siteitemtype"][0] == "directory" ) return // No page for directories
24
-
25
- langs.each { lang ->
26
- def langPostfix = lang ? "-" + lang : ""
27
- def contentMD = content["content"+langPostfix] ? content["content"+langPostfix][0] : content["content"] ? content["content"][0] : content["content-pt"] ? content["content-pt"][0] : content["content-es"] ? content["content-es"][0] : "";
28
-
29
- contentMD = addToFrontmatter(contentMD, "id: " + content.id)
30
-
31
- def isSitePath = contentLink =~ /^\/site\/([^\/]*)s\//
32
- def isSolutionPath = contentLink =~ /^\/solutions\//
33
- if( isSolutionPath ) {
34
- contentMD = addToFrontmatter(contentMD, "target: Solution")
35
- } else if( isSitePath ) {
36
- // If the content link starts with /site/ then use the next path part as the type. This will enable NavBar activeLink.
37
- // Notice we expect Types to be in the singular so we remove the 's' from the match on the type
38
- contentMD = addToFrontmatter(contentMD, "target: " + isSitePath[0][1])
39
- } else {
40
- def target = ""
41
- if(content && content["target"]) target = content["target"][0]
42
- contentMD = addToFrontmatter(contentMD, "target: " + target)
43
- }
44
-
45
- if(content["visibility"][0] != "Public") {
46
- contentMD = getJustFrontmatter(contentMD) + "<RestrictedContent/>"
47
- }
48
-
49
- def langPath = lang ? "/" + lang : ""
50
- docs.push(["path": langPath + contentLink, "content": contentMD])
51
- }
52
- }
53
- return docs
54
- }
55
-
56
- def addToFrontmatter(content,expression) {
57
- // Acrescentado um \n à avaliação do conteúdo para compensar o caso em que,
58
- // quando só há frontmatter no conteúdo, o RM remove os trailing \n
59
- // (terminando o conteúdo em --- e por isso depois não fazia match no split)
60
- def frontmatterEval = (content+"\n")?.split("---")
61
- if(frontmatterEval?.size()>2) {
62
- frontmatterEval[1] += expression + "\n"
63
- content = frontmatterEval.join("---\n")
64
- } else {
65
- content = "---\n" + expression + "\n---\n" + content
66
- }
67
- return content
68
- }
69
-
70
- def getJustFrontmatter(content) {
71
- def splitContent = content?.split("---\n")
72
- if(splitContent?.size()<=2) return ""
73
- return splitContent[0..1].join("---\n") + "---\n"
74
- }
@@ -1,42 +0,0 @@
1
- import groovy.transform.Field;
2
- import org.apache.commons.logging.*;
3
-
4
- import static utils.CobUtils.*;
5
- import groovy.json.JsonOutput
6
-
7
-
8
- @Field log = LogFactory.getLog(getClass());
9
- log.info("Building VuePress e-learning sidebar...")
10
-
11
- def path = argsMap.path ;
12
- def lang = (!argsMap.lang || argsMap.lang == "en") ? "" : argsMap.lang ;
13
- def sidebarConfig = getVuePressSidebarConfig(path, lang, true)
14
- return JsonOutput.prettyPrint(JsonOutput.toJson( sidebarConfig ))
15
-
16
-
17
- /********************************************************************************************/
18
-
19
- def getVuePressSidebarConfig(path, lang, isRoot) {
20
- def sidebar = [];
21
- def pathField = isRoot ? "path.raw" : "parent_path.raw"; // no caso dos conteúdos de topo é necessário processar o próprio primeiro e depois os seus filhos
22
- def contents = registosPaginadosAsMap(66, pathField+":\""+path+"\"", actionPacks.get("rmRest"), "sortablefield", true)
23
-
24
- contents.each { content ->
25
- def node = [:]
26
- def nameSufixForLang = (lang && content["name-"+lang]) ? ("-"+lang) : content["name"] ? "" : content["name-pt"] ? "-pt" : "-es" ; // sufix shoud be the one specified in lang, unless it's content does not exist and, in that case, it will defaul to EN, then PT, then ES
27
- def pathForLang = (lang ? "/" + lang : "") + content["path"][0]
28
- def titleForLang = content["name"+nameSufixForLang][0]
29
-
30
- def children = getVuePressSidebarConfig(content["path"][0], lang, false)
31
- if(children.size == 0) {
32
- node = [ pathForLang, titleForLang ]
33
- } else {
34
- node["title"] = titleForLang
35
- node["path"] = pathForLang
36
- node["children"] = [ pathForLang, *children ] // o truque de ter um grupo com conteúdo está em adicionar o próprio como filho mas depois esconder no html e mostrar o link do grupo com estilo de conteúdo normal
37
- node["sidebarDepth"] = isRoot ? 1 : 0
38
- }
39
- sidebar.push(node)
40
- }
41
- return sidebar
42
- }
@@ -1,17 +0,0 @@
1
-
2
- import static utils.CobUtils.*;
3
- import groovy.json.JsonOutput
4
-
5
- return JsonOutput.prettyPrint(JsonOutput.toJson( getVuePressSidebarRootElements() ))
6
-
7
- /********************************************************************************************/
8
-
9
- def getVuePressSidebarRootElements() {
10
- def sidebarRootElements = [];
11
-
12
- def contents = registosPaginadosAsMap(66, "format.raw:Book", actionPacks.get("rmRest"), "sortablefield", true)
13
- contents.each { content ->
14
- sidebarRootElements.push(content["path"][0])
15
- }
16
- return sidebarRootElements
17
- }