jinda 0.7.7.4 → 1.0.0

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 (311) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +46 -29
  3. data/Rakefile +103 -1
  4. data/app/assets/config/manifest.js +4 -1
  5. data/app/assets/javascripts/jinda_bootstrap.js +20 -0
  6. data/app/assets/stylesheets/_jinda_bootstrap_theme.scss +190 -0
  7. data/{lib/generators/jinda/templates/app/assets/stylesheets/jinda_jqm.css.scss → app/assets/stylesheets/jinda_bootstrap.css.scss} +12 -10
  8. data/app/config/routes.rb +38 -28
  9. data/app/controllers/concerns/jinda_general_concern.rb +86 -87
  10. data/app/controllers/concerns/jinda_run_concern.rb +184 -184
  11. data/app/controllers/jinda_controller.rb +23 -22
  12. data/bin/lint_modified +21 -0
  13. data/config/routes.rb +41 -22
  14. data/lib/generators/jinda/config_generator.rb +102 -81
  15. data/lib/generators/jinda/install_generator.rb +305 -148
  16. data/lib/generators/jinda/install_generator.rb.bak2 +268 -0
  17. data/lib/generators/jinda/installer/gems_install.rb +125 -127
  18. data/lib/generators/jinda/minitest_generator.rb +19 -18
  19. data/lib/generators/jinda/rspec_generator.rb +15 -14
  20. data/lib/generators/jinda/templates/DOCKER.md +188 -0
  21. data/lib/generators/jinda/templates/Dockerfile +15 -5
  22. data/lib/generators/jinda/templates/README.md +3 -3
  23. data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
  24. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +8 -8
  25. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +2 -0
  26. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +2 -0
  27. data/{test/dummy → lib/generators/jinda/templates}/app/controllers/adminltes_controller.rb +1 -0
  28. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +80 -78
  29. data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +4 -2
  30. data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +11 -9
  31. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +40 -44
  32. data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +10 -8
  33. data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +23 -24
  34. data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +3 -1
  35. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +25 -27
  36. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +16 -18
  37. data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +13 -14
  38. data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +4 -4
  39. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +14 -14
  40. data/lib/generators/jinda/templates/app/controllers/mindmap_editor_controller.rb +74 -0
  41. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  42. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +21 -20
  43. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  44. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  45. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  46. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  47. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  48. data/lib/generators/jinda/templates/app/helpers/mindmap_editor_helper.rb +3 -0
  49. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  50. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  51. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  52. data/lib/generators/jinda/templates/app/jinda/index.mm +276 -298
  53. data/lib/generators/jinda/templates/app/jinda/template/index.mm +1 -0
  54. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +5 -3
  55. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +6 -4
  56. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +5 -5
  57. data/lib/generators/jinda/templates/app/models/address.rb +10 -8
  58. data/lib/generators/jinda/templates/app/models/article.rb +8 -6
  59. data/lib/generators/jinda/templates/app/models/comment.rb +10 -8
  60. data/lib/generators/jinda/templates/app/models/identity.rb +11 -10
  61. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -33
  62. data/lib/generators/jinda/templates/app/models/jinda/jinda_module.rb +15 -0
  63. data/lib/generators/jinda/templates/app/models/jinda/module.rb +14 -10
  64. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +15 -11
  65. data/lib/generators/jinda/templates/app/models/jinda/role.rb +11 -7
  66. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +23 -20
  67. data/lib/generators/jinda/templates/app/models/jinda/service.rb +19 -15
  68. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +42 -36
  69. data/lib/generators/jinda/templates/app/models/note.rb +14 -10
  70. data/lib/generators/jinda/templates/app/models/param.rb +23 -20
  71. data/lib/generators/jinda/templates/app/models/person.rb +9 -7
  72. data/lib/generators/jinda/templates/app/models/user.rb +42 -41
  73. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +2 -2
  74. data/lib/generators/jinda/templates/app/views/identities/new.html.haml +13 -0
  75. data/lib/generators/jinda/templates/app/views/jinda/_static_bootstrap.haml +23 -0
  76. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +15 -13
  77. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +3 -2
  78. data/lib/generators/jinda/templates/app/views/layouts/application.haml +31 -4
  79. data/lib/generators/jinda/templates/app/views/layouts/lte/_header.haml +54 -0
  80. data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_sidebar.haml +1 -1
  81. data/lib/generators/jinda/templates/app/views/mindmap_editor/edit.html.haml +126 -0
  82. data/lib/generators/jinda/templates/app/views/mindmap_editor/save.html.haml +2 -0
  83. data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +13 -0
  84. data/lib/generators/jinda/templates/bin/lint_modified +21 -0
  85. data/lib/generators/jinda/templates/config/mongoid.yml +3 -3
  86. data/lib/generators/jinda/templates/config/mongoid.yml-docker +3 -3
  87. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +3 -3
  88. data/lib/generators/jinda/templates/docker-compose-mongodb.yml +13 -0
  89. data/lib/generators/jinda/templates/docker-compose-web.yml +36 -0
  90. data/lib/generators/jinda/templates/docker-compose.yml +10 -14
  91. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +15 -14
  92. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +9 -4
  93. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +4 -3
  94. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +82 -90
  95. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +12 -15
  96. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +5 -8
  97. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +3 -5
  98. data/lib/generators/jinda/templates/spec/models/note_spec.rb +36 -35
  99. data/lib/generators/jinda/templates/spec/models/user_spec.rb +10 -8
  100. data/lib/generators/jinda/templates/spec/rails_helper.rb +29 -31
  101. data/lib/generators/jinda/templates/spec/spec_helper.rb +19 -17
  102. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +8 -7
  103. data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +3 -1
  104. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +7 -5
  105. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +14 -19
  106. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +3 -1
  107. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +9 -8
  108. data/lib/generators/jinda/templates/test/application_system_test_case.rb +3 -1
  109. data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +16 -21
  110. data/lib/generators/jinda/templates/test/test_helper.rb +7 -3
  111. data/lib/jinda/date_helpers.rb +50 -41
  112. data/lib/jinda/gem_helpers.rb +10 -8
  113. data/lib/jinda/gen_class.rb +14 -12
  114. data/lib/jinda/gen_controller.rb +9 -8
  115. data/lib/jinda/gen_freemind.rb +33 -32
  116. data/lib/jinda/gen_helpers.rb +146 -139
  117. data/lib/jinda/gen_models.rb +125 -131
  118. data/lib/jinda/gen_modules.rb +21 -16
  119. data/lib/jinda/gen_runseq.rb +71 -67
  120. data/lib/jinda/gen_services.rb +74 -80
  121. data/lib/jinda/gen_xmain.rb +38 -36
  122. data/lib/jinda/get_app.rb +31 -29
  123. data/lib/jinda/helpers.rb +4 -4
  124. data/lib/jinda/init_vars.rb +41 -36
  125. data/lib/jinda/mindmap_converter.rb +196 -0
  126. data/lib/jinda/railtie.rb +10 -2
  127. data/lib/jinda/rake_views.rb +61 -60
  128. data/lib/jinda/refresh.rb +67 -61
  129. data/lib/jinda/themes.rb +80 -60
  130. data/lib/jinda/version.rb +3 -1
  131. data/lib/jinda.rb +2 -0
  132. data/lib/tasks/jinda.rake +25 -22
  133. data/test/INTEGRATION_TEST_README.md +374 -0
  134. data/test/LOCAL_DEVELOPMENT.md +345 -0
  135. data/test/README.md +243 -0
  136. data/test/TEST_INFRASTRUCTURE.md +412 -0
  137. data/test/TEST_INSTALLATION_SH_FIXES.md +205 -0
  138. data/test/UNIT_TESTS_README.md +366 -0
  139. data/test/api_notes_controller_test.rb +231 -0
  140. data/test/dummy/DOCKER.md +188 -0
  141. data/test/dummy/Dockerfile +15 -7
  142. data/test/dummy/Gemfile +38 -29
  143. data/test/dummy/Gemfile.lock +671 -292
  144. data/test/dummy/app/assets/config/manifest.js +4 -0
  145. data/test/dummy/app/channels/application_cable/channel.rb +2 -0
  146. data/test/dummy/app/channels/application_cable/connection.rb +2 -0
  147. data/test/dummy/app/controllers/admins_controller.rb +4 -2
  148. data/test/dummy/app/controllers/api/v1/notes_controller.rb +80 -78
  149. data/test/dummy/app/controllers/application_controller.rb +11 -9
  150. data/test/dummy/app/controllers/articles_controller.rb +40 -44
  151. data/test/dummy/app/controllers/comments_controller.rb +10 -8
  152. data/test/dummy/app/controllers/ctrs_controller.rb +2 -0
  153. data/test/dummy/app/controllers/devs_controller.rb +2 -0
  154. data/test/dummy/app/controllers/docs_controller.rb +23 -24
  155. data/test/dummy/app/controllers/identities_controller.rb +3 -1
  156. data/test/dummy/app/controllers/mindmap_editor_controller.rb +74 -0
  157. data/test/dummy/app/controllers/notes_controller.rb +25 -27
  158. data/test/dummy/app/controllers/password_resets_controller.rb +16 -18
  159. data/test/dummy/app/controllers/sessions_controller.rb +13 -14
  160. data/test/dummy/app/controllers/sitemap_controller.rb +4 -4
  161. data/test/dummy/app/controllers/users_controller.rb +14 -14
  162. data/test/dummy/app/helpers/admins_helper.rb +2 -0
  163. data/test/dummy/app/helpers/application_helper.rb +21 -20
  164. data/test/dummy/app/helpers/articles_helper.rb +2 -0
  165. data/test/dummy/app/helpers/basic_helper.rb +2 -0
  166. data/test/dummy/app/helpers/comments_helper.rb +2 -0
  167. data/test/dummy/app/helpers/ctrs_helper.rb +2 -0
  168. data/test/dummy/app/helpers/devs_helper.rb +2 -0
  169. data/test/dummy/app/helpers/mindmap_editor_helper.rb +3 -0
  170. data/test/dummy/app/helpers/pictures_helper.rb +2 -0
  171. data/test/dummy/app/helpers/sitemap_helper.rb +2 -0
  172. data/test/dummy/app/helpers/users_helper.rb +2 -0
  173. data/test/dummy/app/jinda/index.mm +384 -486
  174. data/test/dummy/app/jinda/template/index.mm +1 -0
  175. data/test/dummy/app/mailers/application_mailer.rb +2 -2
  176. data/test/dummy/app/mailers/application_mailer.rb-org +4 -0
  177. data/test/dummy/app/mailers/jinda_mailer.rb +5 -3
  178. data/test/dummy/app/mailers/note_mailer.rb +6 -4
  179. data/test/dummy/app/mailers/user_mailer.rb +5 -5
  180. data/test/dummy/app/models/address.rb +2 -0
  181. data/test/dummy/app/models/article.rb +2 -0
  182. data/test/dummy/app/models/comment.rb +3 -2
  183. data/test/dummy/app/models/identity.rb +11 -10
  184. data/test/dummy/app/models/jinda/doc.rb +36 -33
  185. data/test/dummy/app/models/jinda/jinda_module.rb +15 -0
  186. data/test/dummy/app/models/jinda/module.rb +14 -10
  187. data/test/dummy/app/models/jinda/notice.rb +15 -11
  188. data/test/dummy/app/models/jinda/role.rb +11 -7
  189. data/test/dummy/app/models/jinda/runseq.rb +23 -20
  190. data/test/dummy/app/models/jinda/service.rb +19 -15
  191. data/test/dummy/app/models/jinda/xmain.rb +42 -36
  192. data/test/dummy/app/models/note.rb +3 -8
  193. data/test/dummy/app/models/param.rb +23 -20
  194. data/test/dummy/app/models/person.rb +2 -0
  195. data/test/dummy/app/models/picture.rb +11 -0
  196. data/test/dummy/app/models/user.rb +42 -41
  197. data/test/dummy/app/views/admins/index.haml +21 -0
  198. data/test/dummy/app/views/api/v1/notes/delete/select_note.html.erb +21 -0
  199. data/test/dummy/app/views/api/v1/notes/edit/edit_note.html.erb +21 -0
  200. data/test/dummy/app/views/api/v1/notes/index.haml +21 -0
  201. data/test/dummy/app/views/api/v1/notes/new/new_note.html.erb +21 -0
  202. data/test/dummy/app/views/articles/show.html.haml +2 -2
  203. data/test/dummy/app/views/devs/index.haml +21 -0
  204. data/test/dummy/app/views/jinda/feed.rss.builder +15 -13
  205. data/test/dummy/app/views/jinda/index.html.haml +3 -2
  206. data/test/dummy/app/views/layouts/application.haml +2 -2
  207. data/test/dummy/app/views/mindmap_editor/edit.html.haml +126 -0
  208. data/test/dummy/app/views/mindmap_editor/save.html.haml +2 -0
  209. data/test/dummy/bin/docker-entrypoint +3 -0
  210. data/test/dummy/bin/lint_modified +21 -0
  211. data/test/dummy/bin/setup +1 -1
  212. data/test/dummy/config/application.rb +7 -2
  213. data/test/dummy/config/boot.rb +2 -1
  214. data/test/dummy/config/cable.yml +1 -1
  215. data/test/dummy/config/credentials.yml.enc +1 -1
  216. data/test/dummy/config/environments/development.rb +7 -1
  217. data/test/dummy/config/environments/production.rb +30 -26
  218. data/test/dummy/config/environments/test.rb +12 -8
  219. data/test/dummy/config/initializers/content_security_policy.rb +2 -2
  220. data/test/dummy/config/initializers/filter_parameter_logging.rb +3 -3
  221. data/test/dummy/config/initializers/mindmap_converter.rb +5 -0
  222. data/test/dummy/config/initializers/mongoid.rb +24 -9
  223. data/test/dummy/config/initializers/omniauth.rb +5 -0
  224. data/test/dummy/config/initializers/permissions_policy.rb +11 -9
  225. data/test/dummy/config/locales/en.yml +11 -13
  226. data/test/dummy/config/mongoid.yml +172 -53
  227. data/test/dummy/config/mongoid.yml-docker +3 -3
  228. data/test/dummy/config/mongoid.yml-localhost +3 -3
  229. data/test/dummy/config/puma.rb +21 -20
  230. data/test/dummy/config/routes.rb +7 -1
  231. data/test/dummy/docker-compose-mongodb.yml +13 -0
  232. data/test/dummy/docker-compose-web.yml +36 -0
  233. data/test/dummy/docker-compose.yml +10 -18
  234. data/test/dummy/log/development.log +5834 -2261
  235. data/test/dummy/spec/controllers/api/v1_get_index_spec.rb +15 -14
  236. data/test/dummy/spec/controllers/api/v1_get_my_spec.rb +9 -4
  237. data/test/dummy/spec/controllers/api/v1_post_spec.rb +4 -3
  238. data/test/dummy/spec/controllers/sessions_controller_spec.rb +82 -90
  239. data/test/dummy/spec/factories/pictures.rb +5 -0
  240. data/test/dummy/spec/features/userlogins_spec.rb +12 -15
  241. data/test/dummy/spec/mailers/note_spec.rb +5 -8
  242. data/test/dummy/spec/mailers/previews/note_preview.rb +3 -5
  243. data/test/dummy/spec/models/note_spec.rb +36 -35
  244. data/test/dummy/spec/models/picture_spec.rb +5 -0
  245. data/test/dummy/spec/models/user_spec.rb +10 -8
  246. data/test/dummy/spec/rails_helper.rb +29 -31
  247. data/test/dummy/spec/requests/ctrs_spec.rb +7 -0
  248. data/test/dummy/spec/requests/devs_spec.rb +7 -0
  249. data/test/dummy/spec/spec_helper.rb +19 -17
  250. data/test/dummy/spec/support/authentication_helper.rb +8 -7
  251. data/test/dummy/spec/support/databasecleaner.rb +3 -1
  252. data/test/dummy/spec/support/factory_bot.rb +7 -5
  253. data/test/dummy/spec/support/omniauth_macros.rb +14 -19
  254. data/test/dummy/spec/support/request_spec_helper.rb +3 -1
  255. data/test/dummy/spec/views/articles/_article.html.erb_spec.rbx +9 -8
  256. data/test/generated_app_test.rb +261 -0
  257. data/test/installation_test.rb +368 -0
  258. data/test/integration_test.rb +398 -0
  259. data/test/jenkins_stage_test.rb +182 -0
  260. data/test/note_model_test.rb +224 -0
  261. data/test/note_validation_integration_test.rb +292 -0
  262. data/test/run_unit_tests.sh +91 -0
  263. data/test/test_helper.rb +8 -16
  264. metadata +188 -60
  265. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +0 -15
  266. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +0 -28
  267. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +0 -10
  268. data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +0 -19
  269. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +0 -7
  270. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +0 -147
  271. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +0 -47
  272. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +0 -34
  273. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +0 -155
  274. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +0 -47
  275. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +0 -9
  276. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +0 -33
  277. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +0 -16
  278. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +0 -4
  279. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +0 -13
  280. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +0 -3
  281. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +0 -1
  282. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +0 -1
  283. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +0 -13
  284. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +0 -31
  285. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +0 -22
  286. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +0 -22
  287. data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +0 -14
  288. data/test/dummy/Guardfile +0 -96
  289. data/test/dummy/app/controllers/application_controller.rb.bak +0 -2
  290. data/test/dummy/app/controllers/password_resets.rb +0 -28
  291. data/test/dummy/app/helpers/application_helper.rb.bak +0 -2
  292. data/test/dummy/app/views/identities/new-bak.html.haml +0 -32
  293. data/test/dummy/app/views/layouts/application.haml.bak +0 -4
  294. data/test/dummy/app/views/layouts/application.html.erb.bak +0 -15
  295. data/test/dummy/app/views/layouts/lte/_header.haml +0 -111
  296. data/test/dummy/app/views/layouts/lte/_rightbar.haml +0 -123
  297. data/test/dummy/app/views/sessions/new-bak.html.haml +0 -22
  298. data/test/dummy/config/initializers/fix_mongoid_generator.rb-org +0 -14
  299. data/test/dummy/tmp/development_secret.txt +0 -1
  300. data/test/integration/navigation_test.rb +0 -7
  301. data/test/jinda_test.rb +0 -7
  302. /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/application.scss +0 -0
  303. /data/{test/dummy → lib/generators/jinda/templates}/app/assets/stylesheets/jinda.scss +0 -0
  304. /data/lib/generators/jinda/templates/app/mailers/{application_mailer.rb → application_mailer.rb-org} +0 -0
  305. /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard1.haml +0 -0
  306. /data/{test/dummy → lib/generators/jinda/templates}/app/views/adminltes/dashboard2.haml +0 -0
  307. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_flash.haml +0 -0
  308. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_footer.haml +0 -0
  309. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu.haml +0 -0
  310. /data/{test/dummy → lib/generators/jinda/templates}/app/views/layouts/lte/_menu_mm.haml +0 -0
  311. /data/lib/generators/jinda/templates/app/views/layouts/{bsb → lte}/_rightbar.haml +0 -0
@@ -1,71 +1,75 @@
1
+ # frozen_string_literal: true
1
2
 
3
+ # #######################################################################]
4
+ # Each xmain will create many run_seq as many as steps and form_steps
5
+ # #######################################################################]
6
+ #
7
+ ############################## @runseq ################################]
8
+ # @runseq => #<Jinda::Runseq _id: 5df31912a54d758417a7afc9,
9
+ # created_at: 2019-12-13 04:52:34 UTC,
10
+ # updated_at: 2019-12-13 04:52:43 UTC,
11
+ # user_id: nil,
12
+ # xmain_id: BSON::ObjectId('5df31912a54d758417a7afc7'),
13
+ # action: "do",
14
+ # status: "R",
15
+ # code: "create",
16
+ # name: "Create Article",
17
+ # role: "",
18
+ # rule: "true",
19
+ # rstep: 2,
20
+ # form_step: 1,
21
+ # start: 2019-12-13 04:52:43 UTC,
22
+ # stop: nil,
23
+ # end: true,
24
+ # xml: "<node CREATED='1493419491125' ID='ID_1687683396' MODIFIED='1493483244848' TEXT='create: Create Article'><icon BUILTIN='bookmark'/></node>",
25
+ # ip: nil>
26
+ # #######################################################################]
2
27
 
3
- ########################################################################]
4
- # Each xmain will create many run_seq as many as steps and form_steps
5
- ########################################################################]
6
- #
7
- ############################## @runseq ################################]
8
- # @runseq => #<Jinda::Runseq _id: 5df31912a54d758417a7afc9,
9
- # created_at: 2019-12-13 04:52:34 UTC,
10
- # updated_at: 2019-12-13 04:52:43 UTC,
11
- # user_id: nil,
12
- # xmain_id: BSON::ObjectId('5df31912a54d758417a7afc7'),
13
- # action: "do",
14
- # status: "R",
15
- # code: "create",
16
- # name: "Create Article",
17
- # role: "",
18
- # rule: "true",
19
- # rstep: 2,
20
- # form_step: 1,
21
- # start: 2019-12-13 04:52:43 UTC,
22
- # stop: nil,
23
- # end: true,
24
- # xml: "<node CREATED='1493419491125' ID='ID_1687683396' MODIFIED='1493483244848' TEXT='create: Create Article'><icon BUILTIN='bookmark'/></node>",
25
- # ip: nil>
26
- ########################################################################]
28
+ def create_runseq(xmain)
29
+ @xvars = xmain.xvars
30
+ default_role = get_default_role
31
+ xml = xmain.service.xml
32
+ root = REXML::Document.new(xml).root
33
+ i = 0
34
+ j = 0 # i= step, j= form_step
35
+ root.elements.each('node') do |activity|
36
+ text = activity.attributes['TEXT']
37
+ next if ma_comment?(text)
38
+ next if /^rule:\s*/.match?(text)
27
39
 
28
- def create_runseq(xmain)
29
- @xvars= xmain.xvars
30
- default_role= get_default_role
31
- xml= xmain.service.xml
32
- root = REXML::Document.new(xml).root
33
- i= 0; j= 0 # i= step, j= form_step
34
- root.elements.each('node') do |activity|
35
- text= activity.attributes['TEXT']
36
- next if ma_comment?(text)
37
- next if text =~/^rule:\s*/
38
- action= freemind2action(activity.elements['icon'].attributes['BUILTIN']) if activity.elements['icon']
39
- return false unless action
40
- i= i + 1
41
- output_ma_display= false
42
- if action== ('output'|| 'list' ||'folder')
43
- ma_display= get_option_xml("display", activity)
44
- if ma_display && !affirm(ma_display)
45
- output_ma_display= false
46
- else
47
- output_ma_display= true
48
- end
49
- end
50
- j= j + 1 if (action=='form' || output_ma_display)
51
- @xvars['referer'] = activity.attributes['TEXT'] if action=='redirect'
52
- if action!= 'if' && !text.blank?
53
- scode, name= text.split(':', 2)
54
- name ||= scode; name.strip!
55
- code= name2code(scode)
56
- else
57
- code= text
58
- name= text
59
- end
60
- role= get_option_xml("role", activity) || default_role
61
- rule= get_option_xml("rule", activity) || "true"
62
- runseq= Jinda::Runseq.create :xmain=>xmain.id,
63
- :name=> name, :action=> action,
64
- :code=> code, :role=>role.upcase, :rule=> rule,
65
- :rstep=> i, :form_step=> j, :status=>'I',
66
- :xml=>activity.to_s
67
- xmain.current_runseq= runseq.id if i==1
68
- end
69
- @xvars['total_steps']= i
70
- @xvars['total_form_steps']= j
40
+ action = freemind2action(activity.elements['icon'].attributes['BUILTIN']) if activity.elements['icon']
41
+ return false unless action
42
+
43
+ i += 1
44
+ output_ma_display = false
45
+ if action == ('output' || 'list' || 'folder')
46
+ ma_display = get_option_xml('display', activity)
47
+ output_ma_display = if ma_display && !affirm(ma_display)
48
+ false
49
+ else
50
+ true
51
+ end
52
+ end
53
+ j += 1 if action == 'form' || output_ma_display
54
+ @xvars['referer'] = activity.attributes['TEXT'] if action == 'redirect'
55
+ if action != 'if' && text.present?
56
+ scode, name = text.split(':', 2)
57
+ name ||= scode
58
+ name.strip!
59
+ code = name2code(scode)
60
+ else
61
+ code = text
62
+ name = text
71
63
  end
64
+ role = get_option_xml('role', activity) || default_role
65
+ rule = get_option_xml('rule', activity) || 'true'
66
+ runseq = Jinda::Runseq.create xmain: xmain.id,
67
+ name: name, action: action,
68
+ code: code, role: role.upcase, rule: rule,
69
+ rstep: i, form_step: j, status: 'I',
70
+ xml: activity.to_s
71
+ xmain.current_runseq = runseq.id if i == 1
72
+ end
73
+ @xvars['total_steps'] = i
74
+ @xvars['total_form_steps'] = j
75
+ end
@@ -1,90 +1,84 @@
1
+ # frozen_string_literal: true
1
2
 
3
+ # ##########################################################################
4
+ #
5
+ # Create / Update Modules, Runseqs, Services from XML
6
+ #
7
+ # ##########################################################################
8
+ def process_services
9
+ # TODO: persist mm_md5
10
+ xml = @app || get_app
11
+ if defined? session
12
+ md5 = Digest::MD5.hexdigest(xml.to_s)
13
+ if session[:mm_md5]
14
+ return if session[:mm_md5] == md5
15
+ else
16
+ session[:mm_md5] = md5
17
+ end
18
+ end
19
+ protected_services = []
20
+ protected_modules = []
21
+ mseq = 0
22
+ @services = xml.elements["//node[@TEXT='services']"] || REXML::Document.new
23
+ @services.each_element('node') do |m|
24
+ # get icon for service menu
25
+ ss = m.attributes['TEXT']
26
+ code, name = ss.split(':', 2)
27
+ next if code.blank?
28
+ next if code.comment?
29
+
30
+ module_code = code.to_code
31
+ menu_icon = m_icon(m)
2
32
 
3
33
  # ##########################################################################
4
- #
5
- # Create / Update Modules, Runseqs, Services from XML
6
- #
34
+ # First Node eg: Module Name
7
35
  # ##########################################################################
8
- def process_services
9
- # todo: persist mm_md5
10
- xml= @app||get_app
11
- if defined? session
12
- md5= Digest::MD5.hexdigest(xml.to_s)
13
- if session[:mm_md5]
14
- return if session[:mm_md5]==md5
15
- else
16
- session[:mm_md5]= md5
17
- end
18
- end
19
- protected_services = []
20
- protected_modules = []
21
- mseq= 0
22
- @services= xml.elements["//node[@TEXT='services']"] || REXML::Document.new
23
- @services.each_element('node') do |m|
24
- # get icon for service menu
25
- ss= m.attributes["TEXT"]
26
- code, name= ss.split(':', 2)
27
- next if code.blank?
28
- next if code.comment?
29
- module_code= code.to_code
30
- menu_icon = m_icon(m)
36
+ # create or update to Jinda::Module model
37
+ ma_module = Jinda::Module.find_or_create_by code: module_code
38
+ ma_module.update uid: ma_module.id.to_s, icon: menu_icon
39
+ protected_modules << ma_module.uid
40
+ name = module_code if name.blank?
41
+ ma_module.update name: name.strip, seq: mseq
42
+ mseq += 1
43
+ seq = 0
31
44
 
32
- # ##########################################################################
33
- # First Node eg: Module Name
34
- # ##########################################################################
35
- # create or update to Jinda::Module model
36
- ma_module= Jinda::Module.find_or_create_by :code=>module_code
37
- ma_module.update_attributes :uid=>ma_module.id.to_s, :icon=>menu_icon
38
- protected_modules << ma_module.uid
39
- name = module_code if name.blank?
40
- ma_module.update_attributes :name=> name.strip, :seq=> mseq
41
- mseq += 1
42
- seq= 0
45
+ # ##########################################################################
46
+ # Second Nodes eg: Role, Link otherwise Services
47
+ # ##########################################################################
48
+ m.each_element('node') do |s|
49
+ service_name = s.attributes['TEXT'].to_s
50
+ scode, sname = service_name.split(':', 2)
51
+ sname ||= scode
52
+ sname.strip!
53
+ scode = scode.to_code
54
+ if scode == 'role'
55
+ ma_module.update_attribute :role, sname
56
+ next
57
+ end
58
+ if scode.casecmp('link').zero?
59
+ role = get_option_xml('role', s) || ''
60
+ rule = get_option_xml('rule', s) || ''
61
+ ma_service = Jinda::Service.find_or_create_by module_code: ma_module.code, code: scode, name: sname
62
+ else
43
63
 
44
64
  # ##########################################################################
45
- # Second Nodes eg: Role, Link otherwise Services
65
+ # Second and Third Nodes eg: Role, Normal Services
46
66
  # ##########################################################################
47
- m.each_element('node') do |s|
48
- service_name= s.attributes["TEXT"].to_s
49
- scode, sname= service_name.split(':', 2)
50
- sname ||= scode; sname.strip!
51
- scode= scode.to_code
52
- if scode=="role"
53
- ma_module.update_attribute :role, sname
54
- next
55
- end
56
- if scode.downcase=="link"
57
- role= get_option_xml("role", s) || ""
58
- rule= get_option_xml("rule", s) || ""
59
- ma_service= Jinda::Service.find_or_create_by :module_code=> ma_module.code, :code=> scode, :name=> sname
60
- ma_service.update_attributes :xml=>s.to_s, :name=>sname,
61
- :list=>listed(s), :ma_secured=>ma_secured?(s),
62
- :module_id=>ma_module.id, :seq => seq,
63
- :confirm=> get_option_xml("confirm", xml),
64
- :role => role, :rule => rule, :uid=> ma_service.id.to_s
65
- seq += 1
66
- protected_services << ma_service.uid
67
- else
68
-
69
- # ##########################################################################
70
- # Second and Third Nodes eg: Role, Normal Services
71
- # ##########################################################################
72
- # normal service
73
- step1 = s.elements['node']
74
- role= get_option_xml("role", step1) || ""
75
- rule= get_option_xml("rule", step1) || ""
76
- ma_service= Jinda::Service.find_or_create_by :module_code=> ma_module.code, :code=> scode
77
- ma_service.update_attributes :xml=>s.to_s, :name=>sname,
78
- :list=>listed(s), :ma_secured=>ma_secured?(s),
79
- :module_id=>ma_module.id, :seq => seq,
80
- :confirm=> get_option_xml("confirm", xml),
81
- :role => role, :rule => rule, :uid=> ma_service.id.to_s
82
- seq += 1
83
- protected_services << ma_service.uid
84
- end
85
- end
67
+ # normal service
68
+ step1 = s.elements['node']
69
+ role = get_option_xml('role', step1) || ''
70
+ rule = get_option_xml('rule', step1) || ''
71
+ ma_service = Jinda::Service.find_or_create_by module_code: ma_module.code, code: scode
86
72
  end
87
- Jinda::Module.not_in(:uid=>protected_modules).delete_all
88
- Jinda::Service.not_in(:uid=>protected_services).delete_all
73
+ ma_service.update xml: s.to_s, name: sname,
74
+ list: listed(s), ma_secured: ma_secured?(s),
75
+ module_id: ma_module.id, seq: seq,
76
+ confirm: get_option_xml('confirm', xml),
77
+ role: role, rule: rule, uid: ma_service.id.to_s
78
+ seq += 1
79
+ protected_services << ma_service.uid
89
80
  end
90
-
81
+ end
82
+ Jinda::Module.not_in(uid: protected_modules).delete_all
83
+ Jinda::Service.not_in(uid: protected_services).delete_all
84
+ end
@@ -1,38 +1,40 @@
1
+ # frozen_string_literal: true
1
2
 
3
+ # #######################################################################]
4
+ # Each Service at one moment will create one xmain
5
+ # #######################################################################]
6
+ def create_xmain(service)
7
+ c = name2camel(service.module.code)
8
+ custom_controller = "#{c}Controller"
9
+ params['return'] = request.env['HTTP_REFERER']
10
+ Jinda::Xmain.create service: service,
11
+ start: Time.zone.now,
12
+ name: service.name,
13
+ ip: get_ip,
14
+ status: 'I', # init
15
+ user: current_ma_user,
16
+ xvars: {
17
+ service_id: service.id,
18
+ p: params.to_unsafe_h,
19
+ id: params[:id],
20
+ user_id: current_ma_user.try(:id),
21
+ custom_controller: custom_controller,
22
+ host: request.host,
23
+ referer: request.env['HTTP_REFERER']
24
+ }
25
+ end
2
26
 
3
- ########################################################################]
4
- # Each Service at one moment will create one xmain
5
- ########################################################################]
6
- def create_xmain(service)
7
- c = name2camel(service.module.code)
8
- custom_controller= "#{c}Controller"
9
- params["return"] = request.env['HTTP_REFERER']
10
- Jinda::Xmain.create :service=>service,
11
- :start=>Time.now,
12
- :name=>service.name,
13
- :ip=> get_ip,
14
- :status=>'I', # init
15
- :user=>current_ma_user,
16
- :xvars=> {
17
- :service_id=>service.id,
18
- :p=>params.to_unsafe_h,
19
- :id=>params[:id],
20
- :user_id=>current_ma_user.try(:id),
21
- :custom_controller=>custom_controller,
22
- :host=>request.host,
23
- :referer=>request.env['HTTP_REFERER']
24
- }
25
- end
26
- def clear_xmains
27
- Jinda::Xmain.where(:status =>{'$in'=>['R','I']}).update_all(:status=>'X')
28
- redirect_to action:"pending"
29
- end
30
- def ajax_notice
31
- if notice=Jinda::Notice.recent(current_ma_user, request.env["REMOTE_ADDR"])
32
- notice.update_attribute :unread, false
33
- js = "notice('#{notice.message}');"
34
- else
35
- js = ""
36
- end
37
- render plain: "<script>#{js}</script>"
38
- end
27
+ def clear_xmains
28
+ Jinda::Xmain.where(status: { '$in' => %w[R I] }).update_all(status: 'X')
29
+ redirect_to action: 'pending'
30
+ end
31
+
32
+ def ajax_notice
33
+ if (notice = Jinda::Notice.recent(current_ma_user, request.env['REMOTE_ADDR']))
34
+ notice.update_attribute :unread, false
35
+ js = "notice('#{notice.message}');"
36
+ else
37
+ js = ''
38
+ end
39
+ render plain: "<script>#{js}</script>"
40
+ end
data/lib/jinda/get_app.rb CHANGED
@@ -1,34 +1,36 @@
1
+ # frozen_string_literal: true
1
2
 
3
+ # ##########################################################################
4
+ # Load index.mm from Rails
5
+ # ##########################################################################
6
+ def get_app
7
+ # MM was defined in Rails: config/initializer/jinda.rb
8
+ f = MM || Rails.root.join('app/jinda/index.mm').to_s
9
+ dir = File.dirname(f)
10
+ t = REXML::Document.new(File.read(MM).delete("\n")).root
11
+ recheck = true
12
+ first_pass = true
13
+ while recheck
14
+ recheck = false
15
+ t.elements.each('//node') do |n|
16
+ next unless n.attributes['LINK'] # has attached file
2
17
 
3
- # ##########################################################################
4
- # Load index.mm from Rails
5
- # ##########################################################################
6
- def get_app
7
- # MM was defined in Rails: config/initializer/jinda.rb
8
- f= MM || "#{Rails.root}/app/jinda/index.mm"
9
- dir= File.dirname(f)
10
- t= REXML::Document.new(File.read(MM).gsub("\n","")).root
11
- recheck= true ; first_pass= true
12
- while recheck
13
- recheck= false
14
- t.elements.each("//node") do |n|
15
- if n.attributes['LINK'] # has attached file
16
- if first_pass
17
- f= "#{dir}/#{n.attributes['LINK']}"
18
- else
19
- f= n.attributes['LINK']
20
- end
21
- next unless File.exists?(f)
22
- tt= REXML::Document.new(File.read(f).gsub("\n","")).root.elements["node"]
23
- make_folders_absolute(f,tt)
24
- tt.elements.each("node") do |tt_node|
25
- n.parent.insert_before n, tt_node
26
- end
27
- recheck= true
28
- n.parent.delete_element n
18
+ f = if first_pass
19
+ "#{dir}/#{n.attributes['LINK']}"
20
+ else
21
+ n.attributes['LINK']
29
22
  end
30
- end
31
- first_pass = false
23
+ next unless File.exist?(f)
24
+
25
+ tt = REXML::Document.new(File.read(f).delete("\n")).root.elements['node']
26
+ make_folders_absolute(f, tt)
27
+ tt.elements.each('node') do |tt_node|
28
+ n.parent.insert_before n, tt_node
32
29
  end
33
- return t
30
+ recheck = true
31
+ n.parent.delete_element n
34
32
  end
33
+ first_pass = false
34
+ end
35
+ t
36
+ end
data/lib/jinda/helpers.rb CHANGED
@@ -1,11 +1,13 @@
1
- # -*- encoding : utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  require 'active_support'
3
4
  require 'active_support/core_ext'
4
5
 
5
6
  module Jinda
6
7
  module Helpers
7
- require "rexml/document"
8
+ require 'rexml/document'
8
9
  include REXML
10
+
9
11
  require_relative 'date_helpers'
10
12
  require_relative 'gen_helpers'
11
13
  require_relative 'gen_class'
@@ -16,7 +18,6 @@ module Jinda
16
18
  require_relative 'themes'
17
19
  require_relative 'gen_xmain'
18
20
  require_relative 'gen_models'
19
- require_relative 'date_helpers'
20
21
  require_relative 'rake_views'
21
22
  require_relative 'gen_runseq'
22
23
  require_relative 'gen_services'
@@ -24,4 +25,3 @@ module Jinda
24
25
  require_relative 'get_app'
25
26
  end
26
27
  end
27
-
@@ -1,36 +1,41 @@
1
- def init_vars_by_runseq(runseq_id)
2
- @runseq= Jinda::Runseq.find runseq_id
3
- @xmain= @runseq.xmain
4
- @xvars= @xmain.xvars
5
- #@xvars[:current_step]= @runseq.rstep
6
- @runseq.start ||= Time.now
7
- @runseq.status= 'R' # running
8
- @runseq.save
9
- end
10
- def init_vars(xmain)
11
- @xmain= Jinda::Xmain.find xmain
12
- @xvars= @xmain.xvars
13
- @runseq= @xmain.runseqs.find @xmain.current_runseq
14
- # authorize?
15
- @xvars['current_step']= @runseq.rstep
16
- @xvars['referrer']= request.referrer
17
- session[:xmain_id]= @xmain.id
18
- session[:runseq_id]= @runseq.id
19
- unless params[:action]=='run_call'
20
- @runseq.start ||= Time.now
21
- @runseq.status= 'R' # running
22
- @runseq.save
23
- end
24
- $xmain= @xmain; $xvars= @xvars
25
- $runseq_id= @runseq.id
26
- $user_id= current_ma_user.try(:id)
27
- end
28
- def init_vars_by_runseq(runseq_id)
29
- @runseq= Jinda::Runseq.find runseq_id
30
- @xmain= @runseq.xmain
31
- @xvars= @xmain.xvars
32
- #@xvars[:current_step]= @runseq.rstep
33
- @runseq.start ||= Time.now
34
- @runseq.status= 'R' # running
35
- @runseq.save
36
- end
1
+ # frozen_string_literal: true
2
+
3
+ def init_vars_by_runseq(runseq_id)
4
+ @runseq = Jinda::Runseq.find runseq_id
5
+ @xmain = @runseq.xmain
6
+ @xvars = @xmain.xvars
7
+ # @xvars[:current_step]= @runseq.rstep
8
+ @runseq.start ||= Time.zone.now
9
+ @runseq.status = 'R' # running
10
+ @runseq.save
11
+ end
12
+
13
+ def init_vars(xmain)
14
+ @xmain = Jinda::Xmain.find xmain
15
+ @xvars = @xmain.xvars
16
+ @runseq = @xmain.runseqs.find @xmain.current_runseq
17
+ # authorize?
18
+ @xvars['current_step'] = @runseq.rstep
19
+ @xvars['referrer'] = request.referer
20
+ session[:xmain_id] = @xmain.id
21
+ session[:runseq_id] = @runseq.id
22
+ unless params[:action] == 'run_call'
23
+ @runseq.start ||= Time.zone.now
24
+ @runseq.status = 'R' # running
25
+ @runseq.save
26
+ end
27
+ $xmain = @xmain
28
+ $xvars = @xvars
29
+ $runseq_id = @runseq.id
30
+ $user_id = current_ma_user.try(:id)
31
+ end
32
+
33
+ def init_vars_by_runseq(runseq_id)
34
+ @runseq = Jinda::Runseq.find runseq_id
35
+ @xmain = @runseq.xmain
36
+ @xvars = @xmain.xvars
37
+ # @xvars[:current_step]= @runseq.rstep
38
+ @runseq.start ||= Time.zone.now
39
+ @runseq.status = 'R' # running
40
+ @runseq.save
41
+ end