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,294 +0,0 @@
1
- # Templates
2
-
3
- Mainly for `cob-cli customize` purposes, the `templates` directory has all necessary files to customize a CoB application in standard/predefined ways.
4
-
5
- ---
6
- ## cob-dashboard-template
7
-
8
- These are the base files needed to have our recomend dashboard infra-structure. It's preconfigured with **vue**, **vuetify** , **@cob/rest-api-wrapper** and **@cob/dashboard-info** dependencies.
9
-
10
- The steps necessary to achieve this final configuration are the following:
11
-
12
- ### 1. `vue create cob-dashboard-template`
13
-
14
- The only option to select is *use version 2* of vue, ie, no babel, no lint, no test, etc.
15
-
16
- From the resulting directory we will only use 1 file, `package.json`.
17
-
18
- In 2021.04.14 the result was:
19
- ```json
20
- {
21
- "name": "cob-dashboard-template",
22
- "version": "0.1.0",
23
- "private": true,
24
- "scripts": {
25
- "serve": "vue-cli-service serve",
26
- "build": "vue-cli-service build"
27
- },
28
- "dependencies": {
29
- "vue": "^2.6.11"
30
- },
31
- "devDependencies": {
32
- "@vue/cli-service": "~4.5.0",
33
- "vue-template-compiler": "^2.6.11"
34
- },
35
- "browserslist": [
36
- "> 1%",
37
- "last 2 versions",
38
- "not dead"
39
- ]
40
- }
41
- ```
42
-
43
-
44
- ### 2. `vue add vuetify`
45
-
46
- The choosen options were:
47
- ```
48
- ? Choose a preset: Configure (advanced)
49
- ? Use a pre-made template? (will replace App.vue and HelloWorld.vue) Yes
50
- ? Use custom theme? No
51
- ? Use custom properties (CSS variables)? No
52
- ? Select icon font Material Design Icons
53
- ? Use fonts as a dependency (for Electron or offline)? No
54
- ? Use a-la-carte components? No
55
- ? Use babel/polyfill? No
56
- ? Select locale English
57
- ```
58
- This command will add the following lines to `package.json`
59
-
60
- ```json
61
- "vuetify": "^2.4.0"
62
- "vue-cli-plugin-vuetify": "~2.3.1",
63
- ```
64
- with the following end result
65
- ```json
66
- {
67
- "name": "cob-dashboard-template",
68
- "version": "0.1.0",
69
- "private": true,
70
- "scripts": {
71
- "serve": "vue-cli-service serve",
72
- "build": "vue-cli-service build"
73
- },
74
- "dependencies": {
75
- "vue": "^2.6.11",
76
- "vuetify": "^2.4.0"
77
- },
78
- "devDependencies": {
79
- "@vue/cli-service": "~4.5.0",
80
- "vue-cli-plugin-vuetify": "~2.3.1",
81
- "vue-template-compiler": "^2.6.11"
82
- },
83
- "browserslist": [
84
- "> 1%",
85
- "last 2 versions",
86
- "not dead",
87
- "not ie <= 10"
88
- ]
89
- }
90
- ```
91
-
92
- Two other files are relevant for the end result:
93
-
94
- `src/main.js`
95
- ```javascript
96
- import Vue from 'vue'
97
- import App from './App.vue'
98
- import vuetify from './plugins/vuetify';
99
-
100
- Vue.config.productionTip = false
101
-
102
- new Vue({
103
- vuetify,
104
- render: function (h) { return h(App) }
105
- }).$mount('#app')
106
- ```
107
-
108
- `src/plugins/vuetify.js`
109
- ```javascript
110
- import Vue from 'vue';
111
- import Vuetify from 'vuetify';
112
- import 'vuetify/dist/vuetify.min.css';
113
-
114
- Vue.use(Vuetify);
115
-
116
- export default new Vuetify({
117
- });
118
- ```
119
-
120
- ### 3. Delete all files irrelevant files
121
- For our app we only need the files we specified above (`package.json`, `src/main.js` and `src/plugins/vuetify.js`)
122
-
123
- ### 4. Add the cob dependencies
124
- ```
125
- npm i --save @cob/rest-api-wrapper
126
- npm i --save @cob/dashboard-info
127
- npm i --save @cob/ui-vue-components
128
- ```
129
-
130
- This adds the following lines to `package.json` (in 2021.04.14):
131
- ```json
132
- "dependencies": {
133
- "@cob/dashboard-info": "^2.2.5",
134
- "@cob/rest-api-wrapper": "^2.1.6",
135
- "@cob/ui-vue-components": "^4.1.0",
136
- ```
137
- `@cob/ui-vue-components` needs to be loaded by vue. For this add `src/plugins/cobUiVueComponents.js` and change `src/main.js`:
138
-
139
- `src/plugins/cobUiVueComponents.js`
140
- ```javascript
141
- import Vue from 'vue';
142
- import CobUiVueComponents from '@cob/ui-vue-components';
143
-
144
- Vue.use(CobUiVueComponents);
145
-
146
- export default CobUiVueComponents
147
- ```
148
-
149
- `src/main.js`
150
- ```javascript
151
- import Vue from 'vue'
152
- import App from './App.vue'
153
- import vuetify from './plugins/vuetify';
154
- import cobUiVueComponents from './plugins/cobUiVueComponents';
155
-
156
- Vue.config.productionTip = false
157
-
158
- new Vue({
159
- vuetify,
160
- cobUiVueComponents,
161
- render: function (h) { return h(App) }
162
- }).$mount('#app')
163
- ```
164
-
165
- ### 5. Add an `App.vue` example
166
- A simple page that uses all libs and adds a splash screen with the relevant links.
167
- ```html
168
- <template>
169
- <v-app>
170
- <v-main>
171
- <HelloWorld
172
- :msg='"Welcome " + userInfo.username'
173
- :extraInfo='domainCount.value ? "(your domain 1 has " + domainCount.value + " instances)" : "(no backend info)"'
174
- />
175
- </v-main>
176
- </v-app>
177
- </template>
178
-
179
- <script>
180
- import { umLoggedin } from '@cob/rest-api-wrapper';
181
- import { domainCount } from '@cob/dashboard-info';
182
-
183
- export default {
184
- name: 'App',
185
- data: () => ({
186
- userInfo : {},
187
- domainCount: domainCount(1),
188
- }),
189
- created() {
190
- umLoggedin().then( userInfo => this.userInfo = userInfo )
191
- }
192
- };
193
- </script>
194
- ```
195
-
196
- ### 6. Add webpack configuration
197
- To run any (known) vue aplication in a CoB server there are only two files necessary to add to an existing vue project:
198
- * `vue.config.js` - this file is the vue version os `webpack.config.js` and it has 2 purposes:
199
- 1. serve a version of the app with hot-reload, during development.
200
-
201
- You can start serving the app directly on the app directory, using `npm run serve`, or on the top cob-cli project directory, with `cob-cli test -d <app dir name>`. This file will support both methods and will get the server to proxy the requests to from the top directory `.server` file. If this file is not present the `learning.cultofbits.com` server will be used.
202
-
203
- The entry point is the `http://localhost:8041/<app dir name>/dashboard.html` and all requests for `/<app dir name>/**` will be served locally. All CoB urls will be proxied to the specified server.
204
-
205
- 1. build the files necessary to deploy the aplication to production
206
-
207
- The build process is done by `npm run build` and it will produce in `./dist` all the files that need to be copied to the server (which will be done by `cob-cli deploy`).
208
-
209
- While being executed this code will also set a `rmIntegrated` variable that flags if it's building the final files or serving the files (to be usedby the `dashboard.html`).
210
-
211
- * `src/dashboard.html`
212
-
213
- because CoB servers will look at a `#/cob.custom-resource/<...>/<dashboard name>` URL and try to load `/recordm/localresource/<dashboard name>/dist/dashboard.html` this file will suport both be built for that purpose and, simultaneasly, be served locally, with the extra HTML necessary tags.
214
-
215
- It will produce an output for serving localy or production based on the `rmIntegrated` webpack variable.
216
-
217
- ### 7. Test the end result
218
- After these steps you can:
219
- ```
220
- $ cd templates/cob-dashboard-template
221
- $ npm i
222
- $ npm run serve
223
- ```
224
- it will use the `learning.cultofbits.com` site as backend and display the inteded example.
225
-
226
-
227
-
228
- # Debugging
229
- Using VSCode you can debug the command line behaviour. The file `.vscode/launch.json` has the commands and arguments that will be used. Note that the `cob-cli` command will run on the on the directories specified in this file.
230
-
231
- # TODO:
232
- * Support manual mode deploy (basically the copy intructions and a deploy process script)
233
- * Consider adding autocomplete to cob-cli (see package [commander-auto-complete](https://www.npmjs.com/package/commander-auto-complete)), specifically:
234
- > _If you want this done automatically for you, you could add that script to npm lifecycle hooks_
235
-
236
-
237
- # References:
238
-
239
- ## Packages
240
- * Used:
241
- * https://www.npmjs.com/package/commander
242
- * https://www.npmjs.com/package/inquirer
243
- * https://www.npmjs.com/package/listr
244
- * https://www.npmjs.com/package/simple-git
245
- * https://www.npmjs.com/package/execa
246
- * https://www.npmjs.com/package/fs-extra
247
-
248
- * Potentials:
249
- * https://www.npmjs.com/package/copy-template-dir
250
- * https://www.npmjs.com/package/commander-auto-complete
251
-
252
- ## About npm cli
253
- * Base info about adding node cmds to path environment :
254
- * https://medium.com/@thatisuday/creating-cli-executable-global-npm-module-5ef734febe32
255
- * Additional info about supporting multiple commands and parsing arguments:
256
- * https://itnext.io/making-cli-app-with-ease-using-commander-js-and-inquirer-js-f3bbd52977ac
257
- * About inquirer e listr
258
- * https://www.twilio.com/blog/how-to-build-a-cli-with-node-js
259
- * NPM package publishing:
260
- * https://zellwk.com/blog/publish-to-npm/
261
- * Others:
262
- * https://www.sitepoint.com/javascript-command-line-interface-cli-node-js/
263
- * https://www.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/
264
- * https://nodesource.com/blog/node-js-powerful-beautiful-clis
265
-
266
- ## About using commit messages to manage semantic-release:
267
- * https://www.conventionalcommits.org/en/v1.0.0/
268
- * https://github.com/semantic-release/semantic-release
269
- * https://github.com/semantic-release/semantic-release/blob/master/docs/extending/plugins-list.md
270
- * https://github.com/oleg-koval/semantic-release-npm-github-publish (from [Shareable configurations list](https://github.com/semantic-release/semantic-release/blob/master/docs/extending/shareable-configurations-list.md))
271
- * https://marketplace.visualstudio.com/items?itemName=vivaxy.vscode-conventional-commits
272
- * https://blog.usejournal.com/semantic-release-with-nodejs-full-gitlab-ci-flow-dfee9639f20f
273
-
274
- ## About using git for production deployments
275
- * About deploys:
276
- * https://dev.to/becodeorg/deploy-an-application-automatically-using-github-hooks-50fd
277
- * https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
278
- * https://devcenter.heroku.com/articles/git
279
- * https://wpengine.com/support/git/
280
- * https://wpengine.com/support/deploying-code-with-bitbucket-pipelines-wp-engine/
281
- * https://security.stackexchange.com/questions/45452/is-using-git-for-deploying-a-bad-practice
282
- * https://www.git-scm.com/docs/githooks
283
- * Proposed git Workflow:
284
- * https://githubflow.github.io (in contrast with https://nvie.com/posts/a-successful-git-branching-model/)
285
- * https://gist.github.com/cjsteel/5bdab49c97ecacb67904056ccdcb956d
286
-
287
- ## Improving vue boilerplate
288
- * https://gitlab.com/cob/vue-cli-preset
289
- * https://gitlab.com/cob/solutions-template
290
- * https://gitlab.com/cob/vue-cli-plugin-dashboard
291
- * https://medium.com/justfrontendthings/how-to-create-and-publish-your-own-vuejs-component-library-on-npm-using-vue-cli-28e60943eed3
292
- * https://cli.vuejs.org/dev-guide/plugin-dev.html#discoverability
293
- * https://javascript.info/promise-chaining#tasks
294
- * https://github.com/vuejs/vue-cli/tree/9c1e797ac6c25b5827403693e018eb199300d067/packages/%40vue/cli-service/generator/template/src
package/README.publish.md DELETED
@@ -1,10 +0,0 @@
1
- Para avançar a versão e publicar:
2
-
3
- `npm version [<newversion> | major | minor | patch | premajor | preminor | prepatch | prerelease | from-git]`
4
-
5
- Exemplo:
6
- ```
7
- npm version patch
8
- git push
9
- npm publish
10
- ```
@@ -1,10 +0,0 @@
1
- exports.option = {
2
- name: 'Send an email after something happens (https://learning.cultofbits.com)',
3
- short: "Send Email",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion
6
- ],
7
- customization: function (answers) {
8
- console.log("TODO - SendEmail:" + JSON.stringify(answers, null, ' '));
9
- }
10
- }
@@ -1,14 +0,0 @@
1
- exports.option = {
2
- name: 'Backend - Add a server event based behaviour (https://learning.cultofbits.com)',
3
- short: "Backend",
4
- followUp: [ {
5
- type: 'list',
6
- name: 'choosenFollowUp',
7
- message: 'Select one?',
8
- choices: [
9
- require("./backend.vuepress").option,
10
- require("./backend.email").option,
11
- require("./backend.updateField").option
12
- ]}
13
- ]
14
- }
@@ -1,11 +0,0 @@
1
- exports.option = {
2
- name: 'Update a field (https://learning.cultofbits.com)',
3
- short: "Update",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion,
6
- require("../lib/task_lists/customize_questions").dashboardNameQuestion2
7
- ],
8
- customization: function (answers) {
9
- console.log("TODO - updateField:" + JSON.stringify(answers, null, ' '));
10
- }
11
- }
@@ -1,35 +0,0 @@
1
- exports.option = {
2
- name: 'Vuepress - Recordm based CMS ',
3
- short: "Dash",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- const { copy } = require("../lib/task_lists/customize_copy");
8
- await copy("../../templates/backend/vuepress/others/vuepress/","./others/vuepress/")
9
- await copy("../../templates/backend/vuepress/integrationm/actions/","./integrationm/actions/")
10
- //TODO: ln -s /opt/others/vuepress/nginx/dist/ /usr/share/nginx/html/docs
11
- //TODO: create/update definition (original na learning)
12
- //TODO: create/update permissions
13
- //TODO: criar instância .site. e .site.home.
14
- //TODO: perguntar id da definição de conteúdo e substituir onde necessário (actions e References.vue e graph.vue)
15
- //TODO: deploy (to have content actions)
16
- //TODO: indicar que é necessário configurar o ./other/vuepress/config.json
17
- //TODO: indicar que é necessário configurar o ./other/vuepress/config.js
18
- //TODO: build
19
- //TODO: deploy
20
- /*
21
- Sequência:
22
- 1. cob-cli customize backend.vuepress
23
- 2. git add .; git commit -m “chore: cob-cli customize backend.vuepress"
24
- 2. cob-cli deploy
25
- 2. ln -s /opt/others/vuepress/nginx/dist/ /usr/share/nginx/html/docs (na máquina)
26
- 3. install Contents definition
27
- 4. add permissions
28
- 5. config server.json
29
- 6. create contents:
30
- .site.
31
- .site.home.
32
- .site.home.sitemap
33
- */
34
- }
35
- }
@@ -1,14 +0,0 @@
1
- exports.option = {
2
- name: 'Dash - Dynamic Dashboard based on instances from a specific definition',
3
- short: "Dash",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying Dash keyword customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const target = "./recordm/customUI/dash/"
11
- await copy("../../templates/dashboards/dash/",target)
12
- return require("../templates/dashboards/dash/package.json").version
13
- }
14
- }
@@ -1,14 +0,0 @@
1
- exports.option = {
2
- name: 'Dashboards - Create or change dashboards (https://learning.cultofbits.com)',
3
- short: "Dashboards",
4
- followUp: [ {
5
- type: 'list',
6
- name: 'choosenFollowUp',
7
- message: 'Which type of dashboard?',
8
- choices: [
9
- require("./dashboard.dash").option,
10
- require("./dashboard.simple").option,
11
- require("./dashboard.vue").option
12
- ]}
13
- ]
14
- }
@@ -1,12 +0,0 @@
1
- exports.option = {
2
- name: 'Simple - Just HTML code and cob libs',
3
- short: "Simple",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion
6
- ],
7
- customization: function (answers) {
8
- const { copy } = require("../lib/task_lists/customize_copy");
9
- const target = "./recordm/customUI/"+answers.name+".html"
10
- return copy("../../templates/dashboards/cob-dashboard-html/demoDashboard.html",target)
11
- }
12
- }
@@ -1,12 +0,0 @@
1
- exports.option = {
2
- name: 'Simple - basic files to start from scratch',
3
- short: "Simple",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion
6
- ],
7
- customization: function (answers) {
8
- const { copy } = require("../lib/task_lists/customize_copy");
9
- const target = "./recordm/customUI/"+answers.name+"/"
10
- return copy("../../templates/dashboard/cob-dashboard-vue/",target)
11
- }
12
- }
@@ -1,10 +0,0 @@
1
- exports.option = {
2
- name: "Grid - simple grid structure",
3
- short: "Grid",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion
6
- ],
7
- customization: function (answers) {
8
- console.log("TODO - vueGrid:" + JSON.stringify(answers, null, ' '));
9
- }
10
- }
@@ -1,14 +0,0 @@
1
- exports.option = {
2
- name: 'Vue - Vue + Vuetify + cob libs',
3
- short: "Vue",
4
- followUp: [ {
5
- type: 'list',
6
- name: 'choosenFollowUp',
7
- message: 'Which template do you want to start with?',
8
- choices: [
9
- require("./dashboard.vue.empty").option,
10
- require("./dashboard.vue.grid").option,
11
- require("./dashboard.vue.menuAndGrid").option,
12
- ]}
13
- ]
14
- }
@@ -1,10 +0,0 @@
1
- exports.option = {
2
- name: "Menu+Grid - menu column and simple grid structure",
3
- short: "GrMenu+Gridid",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion
6
- ],
7
- customization: function (answers) {
8
- console.log("TODO - vueMenuGrid:" + JSON.stringify(answers, null, ' '));
9
- }
10
- }
@@ -1,16 +0,0 @@
1
- exports.option = {
2
- name: 'Common - Typical frontend customizations (https://learning.cultofbits.com)',
3
- short: "Common",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying common frontend customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
11
- const target = "./recordm/customUI/"
12
- await copy("../../templates/frontend/common/",target)
13
- await mergeFiles("Frontend.Common")
14
- return require("../templates/frontend/common/package.json").version
15
- }
16
- }
@@ -1,16 +0,0 @@
1
- exports.option = {
2
- name: 'Easy - Permission management helper',
3
- short: "Easy",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying easy customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
11
- await copy("../../templates/frontend/easy/webapp/", "./userm/customUI/easy/")
12
- await copy("../../templates/frontend/easy/css/", "./userm/customUI/css/")
13
- await copy("../../templates/frontend/easy/js/", "./userm/customUI/js/")
14
- await mergeFiles("Frontend.Easy")
15
- }
16
- }
@@ -1,17 +0,0 @@
1
- exports.option = {
2
- name: 'FormatCurrency - Make $style[currency] available on definitions',
3
- short: "Simple",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying FormatCurrency frontend customizations ...")
8
-
9
- const { copy } = require("../lib/task_lists/customize_copy");
10
- const { mergeFiles } = require("../lib/task_lists/customize_mergeFiles");
11
-
12
- const target = "./recordm/customUI/"
13
- await copy("../../templates/frontend/formatList/currency/",target)
14
- await mergeFiles("frontend.formatList.currency.js")
15
- return require("../templates/frontend/formatList/currency/package.json").version
16
- }
17
- }
@@ -1,13 +0,0 @@
1
- exports.option = {
2
- name: 'FormatList - Add classes to change the style of specified columns in search results',
3
- short: "FormatList",
4
- followUp: [ {
5
- type: 'list',
6
- name: 'choosenFollowUp',
7
- message: 'Select one?',
8
- choices: [
9
- require("./frontend.formatList.currency").option//,
10
- // require("./frontend.formatList.percentage").option
11
- ]}
12
- ]
13
- }
@@ -1,14 +0,0 @@
1
- exports.option = {
2
- name: 'Frontend - Change behaviour of standard interface (https://learning.cultofbits.com)',
3
- short: "Frontend",
4
- followUp: [ {
5
- type: 'list',
6
- name: 'choosenFollowUp',
7
- message: 'Select one?',
8
- choices: [
9
- require("./frontend.common").option,
10
- require("./frontend.easy").option,
11
- require("./frontend.formatList").option
12
- ]}
13
- ]
14
- }
@@ -1,10 +0,0 @@
1
- exports.option = {
2
- name: 'Importer - Add a server event based behaviour (https://learning.cultofbits.com)',
3
- short: "Backend",
4
- questions: [
5
- require("../lib/task_lists/customize_questions").dashboardNameQuestion
6
- ],
7
- customization: function (answers) {
8
- console.log("TODO - importer:" + JSON.stringify(answers, null, ' '));
9
- }
10
- }
@@ -1,18 +0,0 @@
1
- exports.option = {
2
- name: 'Audit - Allows for $user in definitions (https://learning.cultofbits.com/docs/cob-platform/admins/managing-information/available-customizations/audit/)',
3
- short: "Audit",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying Audit 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/audit/frontend",fe_target)
13
- const be_target = "./integrationm/"
14
- await copy("../../templates/keywords/audit/backend",be_target)
15
- await mergeFiles("Keyword.Audit")
16
- return require("../templates/keywords/audit/package.json").version
17
- }
18
- }
@@ -1,18 +0,0 @@
1
- exports.option = {
2
- name: 'Calc - Allows for $calc in definitions (https://learning.cultofbits.com)',
3
- short: "Calc",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying Calc 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/calc/frontend",fe_target)
13
- const be_target = "./integrationm/"
14
- await copy("../../templates/keywords/calc/backend/",be_target)
15
- await mergeFiles("Keyword.Calc")
16
- return require("../templates/keywords/calc/package.json").version
17
- }
18
- }
@@ -1,16 +0,0 @@
1
- exports.option = {
2
- name: 'Image - Allows for $image[.replace|.add][(width)]',
3
- short: "Image",
4
- questions: [
5
- ],
6
- customization: async function (answers) {
7
- console.log("\nApplying Image 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/image/frontend",fe_target)
13
- await mergeFiles("Keyword.Image")
14
- return require("../templates/keywords/image/package.json").version
15
- }
16
- }
@@ -1,17 +0,0 @@
1
- exports.option = {
2
- name: 'Keywords - Add a keyword for use in definitions (https://learning.cultofbits.com/docs/cob-platform/admins/managing-information/available-customizations/)',
3
- short: "Keywords",
4
- followUp: [ {
5
- type: 'list',
6
- name: 'choosenFollowUp',
7
- message: 'Select one?',
8
- choices: [
9
- require("./keywords.calc").option,
10
- require("./keywords.audit").option,
11
- require("./keywords.styleResults").option,
12
- require("./keywords.image").option,
13
- require("./keywords.kibana").option,
14
- require("./keywords.log").option
15
- ]}
16
- ]
17
- }