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,4 +1,8 @@
1
1
  //= link_tree ../images
2
2
  //= link_directory ../stylesheets .css
3
3
  //= link application.js
4
+ //= link logo_jinda.png
5
+ //= link favicon.ico
6
+ //= link jinda.css
7
+ //= link sarabun.css
4
8
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ApplicationCable
2
4
  class Channel < ActionCable::Channel::Base
3
5
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ApplicationCable
2
4
  class Connection < ActionCable::Connection::Base
3
5
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class AdminsController < ApplicationController
2
4
  def update_role
3
- user = User.find_by :code=> $xvars["select_user"]["code"]
4
- user.update_attribute :role, $xvars["edit_role"]["role"]
5
+ user = User.find_by code: $xvars['select_user']['code']
6
+ user.update_attribute :role, $xvars['edit_role']['role']
5
7
  end
6
8
  end
@@ -1,81 +1,83 @@
1
- class Api::V1::NotesController < ApplicationController
2
- before_action :load_note, only: [:show, :destroy]
3
- # before_action :xload_current_ma_user, only: [:destroy]
4
-
5
- def index
6
- @notes = Note.desc(:created_at).page(params[:page]).per(10)
7
- render json: @notes
8
- end
9
-
10
- def my
11
- @notes = Note.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
12
- render json: @notes
13
- end
14
-
15
- def show
16
- end
17
-
18
- def edit
19
- @note = Note.find(params[:id])
20
- @page_title = 'Edit Note'
21
- end
22
-
23
- def create
24
- @note = Note.new(
25
- title: params[:title],
26
- body: params[:body],
27
- user_id: params[:user])
28
-
29
- @note.save!
30
- render json: @note, status: :created
31
- end
32
-
33
-
34
- def update
35
- # $xvars["select_note"] and $xvars["edit_note"]
36
- # These are variables.
37
- # They contain everything that we get their forms select_note and edit_note
38
- note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
39
- @note = Note.find(note_id)
40
- @note.update(title: $xvars["edit_note"]["title"],
41
- body: $xvars["edit_note"]["body"])
42
- redirect_to @note
43
-
44
- end
45
-
46
- def delete
47
- # called by freemind
48
- # Tobe called from other controller:jinda
49
- @note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
50
- @note = Note.find(@note_id)
51
- @note.destroy
52
- end
53
-
54
- def destroy
55
- # called by rails menu my
56
- if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @note.user
57
- @note.destroy
1
+ # frozen_string_literal: true
2
+
3
+ module Api
4
+ module V1
5
+ class NotesController < ApplicationController
6
+ before_action :load_note, only: %i[show destroy]
7
+ # before_action :xload_current_ma_user, only: [:destroy]
8
+
9
+ def index
10
+ @notes = Note.desc(:created_at).page(params[:page]).per(10)
11
+ render json: @notes
12
+ end
13
+
14
+ def my
15
+ @notes = Note.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
16
+ render json: @notes
17
+ end
18
+
19
+ def show; end
20
+
21
+ def edit
22
+ @note = Note.find(params[:id])
23
+ @page_title = 'Edit Note'
24
+ end
25
+
26
+ def create
27
+ @note = Note.new(
28
+ title: params[:title],
29
+ body: params[:body],
30
+ user_id: params[:user]
31
+ )
32
+
33
+ @note.save!
34
+ render json: @note, status: :created
35
+ end
36
+
37
+ def update
38
+ # $xvars["select_note"] and $xvars["edit_note"]
39
+ # These are variables.
40
+ # They contain everything that we get their forms select_note and edit_note
41
+ note_id = $xvars['select_note'] ? $xvars['select_note']['id'] : $xvars['p']['note_id']
42
+ @note = Note.find(note_id)
43
+ @note.update(title: $xvars['edit_note']['title'],
44
+ body: $xvars['edit_note']['body'])
45
+ redirect_to @note
46
+ end
47
+
48
+ def delete
49
+ # called by freemind
50
+ # Tobe called from other controller:jinda
51
+ @note_id = $xvars['select_note'] ? $xvars['select_note']['id'] : $xvars['p']['note_id']
52
+ @note = Note.find(@note_id)
53
+ @note.destroy
54
+ end
55
+
56
+ def destroy
57
+ # called by rails menu my
58
+ @note.destroy if current_ma_user.role.upcase.split(',').include?('A') || current_ma_user == @note.user
59
+ redirect_to action: 'my'
60
+ end
61
+
62
+ def mail
63
+ NoteMailer.gmail(
64
+ $xvars['display_mail']['body'],
65
+ $xvars['select_note']['email'],
66
+ $xvars['display_mail']['title'],
67
+ xload_current_ma_user.email
68
+ )
69
+ end
70
+
71
+ private
72
+
73
+ # Tobe called from other controller:jinda
74
+ def xload_current_ma_user
75
+ @current_ma_user = User.find($xvars['user_id'])
76
+ end
77
+
78
+ def load_note
79
+ @note = Note.find(params[:id])
80
+ end
58
81
  end
59
- redirect_to :action=>'my'
60
- end
61
-
62
- def mail
63
- NoteMailer.gmail(
64
- $xvars["display_mail"]["body"],
65
- $xvars["select_note"]["email"],
66
- $xvars["display_mail"]["title"],
67
- xload_current_ma_user.email)
68
82
  end
69
-
70
- private
71
-
72
- # Tobe called from other controller:jinda
73
- def xload_current_ma_user
74
- @current_ma_user = User.find($xvars["user_id"])
75
- end
76
-
77
- def load_note
78
- @note = Note.find(params[:id])
79
- end
80
-
81
83
  end
@@ -1,22 +1,24 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ApplicationController < ActionController::Base
2
4
  before_action :prepare_meta_tags, if: -> { request.get? }
3
- # CSRF protection is turned on with the protect_from_forgery method.
5
+ # CSRF protection is turned on with the protect_from_forgery method.
4
6
  protect_from_forgery unless: -> { request.format.json? }
5
- def prepare_meta_tags(options={})
7
+ def prepare_meta_tags(options = {})
6
8
  site_name = DEFAULT_TITLE
7
- title = [controller_name, action_name].join(" ")
9
+ title = [controller_name, action_name].join(' ')
8
10
  description = DEFAULT_DESCRIPTION
9
- image = options[:image] || href="/assets/images/logo.png"
10
- keywords = DEFAULT_KEYWORDS
11
+ image = options[:image] || '/assets/images/logo.png'
12
+ keywords = DEFAULT_KEYWORDS
11
13
  current_url = request.url
12
14
 
13
15
  # Let's prepare a nice set of defaults
14
16
  defaults = {
15
- site: site_name,
16
- title: title,
17
- image: image,
17
+ site: site_name,
18
+ title: title,
19
+ image: image,
18
20
  description: description,
19
- keywords: keywords,
21
+ keywords: keywords,
20
22
  twitter: {
21
23
  site_name: site_name,
22
24
  site: site_name,
@@ -1,87 +1,84 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class ArticlesController < ApplicationController
2
- before_action :load_articles, except: [:destroy]
3
- before_action :load_my_articles, only: [:my]
4
- before_action :load_article, only: [:destroy, :edit]
4
+ before_action :load_articles, except: [:destroy]
5
+ before_action :load_my_articles, only: [:my]
6
+ before_action :load_article, only: %i[destroy edit]
5
7
 
6
- def index
8
+ def index
7
9
  # before_action
8
- end
10
+ end
9
11
 
10
12
  def my
11
13
  # before_action
12
14
  end
13
15
 
14
16
  def show
15
- @article = Article.find(article_params)
17
+ @article = Article.find(article_params)
16
18
  @commentable = @article
17
- @comments = @commentable.comments.desc(:created_at).page(params[:page]).per(10)
18
- @user = User.find(@article.user_id)
19
- @show = Hash.new
20
- @show = {:article => @article, :comments => @comments, :user => @user}
19
+ @comments = @commentable.comments.desc(:created_at).page(params[:page]).per(10)
20
+ @user = User.find(@article.user_id)
21
+ @show = {}
22
+ @show = { article: @article, comments: @comments, user: @user }
21
23
  prepare_meta_tags(title: @article.title,
22
24
  description: @article.text,
23
25
  keywords: @article.keywords)
24
26
  end
25
27
 
26
28
  def edit
27
- @page_title = 'Edit Article'
29
+ @page_title = 'Edit Article'
28
30
  end
29
31
 
30
32
  def create
31
33
  # Use Jinda $xvars
32
34
  @article = Article.new(
33
- title: $xvars["form_article"]["title"],
34
- text: $xvars["form_article"]["text"],
35
- keywords: $xvars["form_article"]["keywords"],
36
- body: $xvars["form_article"]["body"],
37
- user_id: $xvars["user_id"])
35
+ title: $xvars['form_article']['title'],
36
+ text: $xvars['form_article']['text'],
37
+ keywords: $xvars['form_article']['keywords'],
38
+ body: $xvars['form_article']['body'],
39
+ user_id: $xvars['user_id']
40
+ )
38
41
  @article.save!
39
42
  end
40
43
 
41
44
  def update
42
45
  @article = Article.find(params[:id])
43
46
  @article.update(
44
- title: params["article"]["title"],
45
- text: params["article"]["text"],
46
- keywords: params["article"]["keywords"],
47
- body: params["article"]["body"]
48
- )
49
- redirect_to :action=> 'show', :article_id => @article.id
47
+ title: params['article']['title'],
48
+ text: params['article']['text'],
49
+ keywords: params['article']['keywords'],
50
+ body: params['article']['body']
51
+ )
52
+ redirect_to action: 'show', article_id: @article.id
50
53
  end
51
54
 
52
55
  def j_update
53
56
  # Use Jinda $xvars
54
- @article_id = $xvars["select_article"] ? $xvars["select_article"]["title"] : $xvars["p"]["article_id"]
55
- @article = Article.find_by :id => @article_id
56
- @article.update(title: $xvars["edit_article"]["article"]["title"],
57
- text: $xvars["edit_article"]["article"]["text"],
58
- keywords: $xvars["edit_article"]["article"]["keywords"],
59
- body: $xvars["edit_article"]["article"]["body"]
60
- )
57
+ @article_id = $xvars['select_article'] ? $xvars['select_article']['title'] : $xvars['p']['article_id']
58
+ @article = Article.find_by id: @article_id
59
+ @article.update(title: $xvars['edit_article']['article']['title'],
60
+ text: $xvars['edit_article']['article']['text'],
61
+ keywords: $xvars['edit_article']['article']['keywords'],
62
+ body: $xvars['edit_article']['article']['body'])
61
63
  end
62
64
 
63
65
  def destroy
64
- # Use Rails
66
+ # Use Rails
65
67
  # before_action
66
68
 
67
- if current_admin? || current_ma_user == @article.user
68
- @article.destroy
69
- end
69
+ @article.destroy if current_admin? || current_ma_user == @article.user
70
70
 
71
- action = (current_admin? ? 'index' : 'my')
72
- redirect_to :action=> (current_admin? ? 'index' : 'my')
71
+ (current_admin? ? 'index' : 'my')
72
+ redirect_to action: (current_admin? ? 'index' : 'my')
73
73
  end
74
74
 
75
75
  private
76
-
77
- def current_admin?
78
- if current_ma_user.role.upcase.split(',').include?("A")
79
- return true
80
- else
81
- return false
82
- end
83
- end
84
76
 
77
+ def current_admin?
78
+ return true if current_ma_user.role.upcase.split(',').include?('A')
79
+
80
+ false
81
+ end
85
82
 
86
83
  def load_articles
87
84
  @articles = Article.desc(:created_at).page(params[:page]).per(10)
@@ -106,5 +103,4 @@ class ArticlesController < ApplicationController
106
103
  def load_comments
107
104
  @comments = @article.comments.find_all
108
105
  end
109
-
110
106
  end
@@ -1,15 +1,17 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class CommentsController < ApplicationController
2
4
  before_action :comment_params, only: [:create]
3
5
  before_action :load_commmentable
4
6
 
5
7
  def index
6
- @comments = @commentable.comments
8
+ @comments = @commentable.comments
7
9
  end
8
10
 
9
11
  def create
10
12
  @comment = @commentable.comments.new comment_params
11
13
  @comment.save!
12
- redirect_to [@commentable], notice: "Comment created"
14
+ redirect_to [@commentable], notice: 'Comment created'
13
15
  end
14
16
 
15
17
  private
@@ -19,13 +21,13 @@ class CommentsController < ApplicationController
19
21
  # end
20
22
 
21
23
  def comment_params
22
- resource = request.path.split('/')[1]
23
- commentable_id = "#{resource.singularize.to_sym}_id" #:article_id
24
+ resource = request.path.split('/')[1]
25
+ commentable_id = "#{resource.singularize.to_sym}_id" # :article_id
24
26
  params.require(:comment).permit(:body, :user_id, commentable_id.to_sym)
25
27
  end
26
28
 
27
- def load_commmentable
28
- resource, id = request.path.split('/')[1,2]
29
- @commentable = resource.singularize.classify.constantize.find(id)
30
- end
29
+ def load_commmentable
30
+ resource, id = request.path.split('/')[1, 2]
31
+ @commentable = resource.singularize.classify.constantize.find(id)
32
+ end
31
33
  end
@@ -0,0 +1,2 @@
1
+ class CtrsController < ApplicationController
2
+ end
@@ -0,0 +1,2 @@
1
+ class DevsController < ApplicationController
2
+ end
@@ -1,28 +1,28 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class DocsController < ApplicationController
2
4
  before_action :load_doc, only: [:destroy]
3
- before_action :load_doc_form, only: [:doc_update, :edit, :my]
4
-
5
+ before_action :load_doc_form, only: %i[doc_update edit my]
6
+
5
7
  def index
6
8
  @documents = Jinda::Doc.desc(:created_at).page(params[:page]).per(10)
7
- end
8
-
9
- def edit
10
9
  end
11
10
 
11
+ def edit; end
12
+
12
13
  def my
13
- @page_title = 'My Document'
14
+ @page_title = 'My Document'
14
15
  end
15
16
 
16
17
  def doc_update
17
18
  # Instead of creaete, Doc record was created in form, when upload file
18
-
19
- if Jinda::Doc.where(:runseq_id => $xvars["doc_form"]["runseq_id"]).exists?
20
- @doc = Jinda::Doc.where(:runseq_id => $xvars["doc_form"]["runseq_id"]).first
21
- @doc.update(description: $xvars["doc_form"]["description"],
22
- category: $xvars["doc_form"]["jinda_doc"]["category"],
23
- keywords: $xvars["doc_form"]["keywords"],
24
- user_id: $xvars["user_id"]
25
- )
19
+
20
+ if Jinda::Doc.exists?(runseq_id: $xvars['doc_form']['runseq_id'])
21
+ @doc = Jinda::Doc.where(runseq_id: $xvars['doc_form']['runseq_id']).first
22
+ @doc.update(description: $xvars['doc_form']['description'],
23
+ category: $xvars['doc_form']['jinda_doc']['category'],
24
+ keywords: $xvars['doc_form']['keywords'],
25
+ user_id: $xvars['user_id'])
26
26
  else
27
27
  # create here
28
28
  # Todo
@@ -30,19 +30,17 @@ class DocsController < ApplicationController
30
30
  end
31
31
 
32
32
  def destroy
33
- # duplicated from jinda_controller
34
- # Expected to use in jinda_controller
35
- current_ma_user = User.where(:auth_token => cookies[:auth_token]).first if cookies[:auth_token]
33
+ # duplicated from jinda_controller
34
+ # Expected to use in jinda_controller
35
+ current_ma_user = User.where(auth_token: cookies[:auth_token]).first if cookies[:auth_token]
36
36
 
37
- if Rails.env.test? #Temp solution until fix test of current_ma_user
38
- current_ma_user = $xvars["current_ma_user"]
39
- #current_ma_user = @doc.user
37
+ if Rails.env.test? # Temp solution until fix test of current_ma_user
38
+ current_ma_user = $xvars['current_ma_user']
39
+ # current_ma_user = @doc.user
40
40
  end
41
41
 
42
- if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @doc.user
43
- @doc.destroy
44
- end
45
- redirect_to :action=>'my'
42
+ @doc.destroy if current_ma_user.role.upcase.split(',').include?('A') || current_ma_user == @doc.user
43
+ redirect_to action: 'my'
46
44
  end
47
45
 
48
46
  private
@@ -50,6 +48,7 @@ class DocsController < ApplicationController
50
48
  def load_doc_form
51
49
  @docs = Jinda::Doc.all.desc(:created_at).page(params[:page]).per(10)
52
50
  end
51
+
53
52
  def load_doc
54
53
  @doc = Jinda::Doc.find(params[:doc_id])
55
54
  end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class IdentitiesController < ApplicationController
2
4
  def new
3
- @identity =request.env['omniauth.identity']
5
+ @identity = request.env['omniauth.identity']
4
6
  end
5
7
  end
@@ -0,0 +1,74 @@
1
+ # frozen_string_literal: true
2
+
3
+ class MindmapEditorController < ApplicationController
4
+ before_action :require_admin
5
+
6
+ def edit
7
+ mindmap_path = Rails.root.join('app/jinda/index.mm')
8
+
9
+ if File.exist?(mindmap_path)
10
+ xml_content = File.read(mindmap_path)
11
+ @mind_data = MindmapConverter.xml_to_jsmind(xml_content)
12
+ else
13
+ @mind_data = MindmapConverter.send(:default_mindmap)
14
+ flash.now[:warning] = 'Mindmap file not found. Showing default template.'
15
+ end
16
+ end
17
+
18
+ def save
19
+ json_data = params[:mind_data]
20
+
21
+ if json_data.blank?
22
+ render json: { success: false, error: 'No data received' }, status: :bad_request
23
+ return
24
+ end
25
+
26
+ begin
27
+ # Convert JSON to XML
28
+ xml_content = MindmapConverter.jsmind_to_xml(json_data)
29
+
30
+ # Backup current file
31
+ mindmap_path = Rails.root.join('app/jinda/index.mm')
32
+ if File.exist?(mindmap_path)
33
+ backup_path = Rails.root.join("app/jinda/index.mm.backup.#{Time.now.to_i}")
34
+ FileUtils.cp(mindmap_path, backup_path)
35
+ end
36
+
37
+ # Save new file
38
+ File.write(mindmap_path, xml_content)
39
+
40
+ # Run rake jinda:update
41
+ output = `cd #{Rails.root} && rake jinda:update 2>&1`
42
+
43
+ render json: {
44
+ success: true,
45
+ message: 'Mindmap saved and updated successfully',
46
+ output: output
47
+ }
48
+ rescue StandardError => e
49
+ render json: {
50
+ success: false,
51
+ error: e.message,
52
+ backtrace: e.backtrace&.first(5)
53
+ }, status: :internal_server_error
54
+ end
55
+ end
56
+
57
+ private
58
+
59
+ def require_admin
60
+ # In development, allow access if user is logged in
61
+ # In production, require admin role (A)
62
+ if Rails.env.development?
63
+ unless current_ma_user
64
+ flash[:error] = 'Please login first.'
65
+ redirect_to root_path
66
+ end
67
+ else
68
+ unless current_ma_user && current_ma_user.role&.upcase&.split(',')&.include?('A')
69
+ flash[:error] = 'Access denied. Admin role required.'
70
+ redirect_to root_path
71
+ end
72
+ end
73
+ end
74
+ end