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,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
@@ -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
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class NotesController < ApplicationController
2
- before_action :load_note, only: [:show, :destroy]
4
+ before_action :load_note, only: %i[show destroy]
3
5
  # before_action :xload_current_ma_user, only: [:destroy]
4
6
 
5
7
  def index
@@ -11,19 +13,19 @@ class NotesController < ApplicationController
11
13
  @notes = Note.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
12
14
  end
13
15
 
14
- def show
15
- end
16
+ def show; end
16
17
 
17
18
  def edit
18
- @note = Note.find(params[:id])
19
- @page_title = 'Edit Note'
19
+ @note = Note.find(params[:id])
20
+ @page_title = 'Edit Note'
20
21
  end
21
22
 
22
23
  def create
23
24
  @note = Note.new(
24
- title: $xvars["new_note"]["note"]["title"],
25
- body: $xvars["new_note"]["note"]["body"],
26
- user_id: $xvars["user_id"])
25
+ title: $xvars['new_note']['note']['title'],
26
+ body: $xvars['new_note']['note']['body'],
27
+ user_id: $xvars['user_id']
28
+ )
27
29
  @note.save!
28
30
  # if @note.save!
29
31
  # format.html { redirect_to @note, notice: 'Sample was successfully created.' }
@@ -32,53 +34,49 @@ class NotesController < ApplicationController
32
34
  # format.html { render :new }
33
35
  # format.json { render json: @note.errors, status: :unprocessable_entity }
34
36
  # end
35
-
36
37
  end
37
38
 
38
-
39
39
  def update
40
40
  # $xvars["select_note"] and $xvars["edit_note"]
41
41
  # These are variables.
42
42
  # They contain everything that we get their forms select_note and edit_note
43
- note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
44
- @note = Note.find(note_id)
45
- @note.update(title: $xvars["edit_note"]["note"]["title"],
46
- body: $xvars["edit_note"]["note"]["body"])
43
+ note_id = $xvars['select_note'] ? $xvars['select_note']['id'] : $xvars['p']['note_id']
44
+ @note = Note.find(note_id)
45
+ @note.update(title: $xvars['edit_note']['note']['title'],
46
+ body: $xvars['edit_note']['note']['body'])
47
47
  end
48
48
 
49
49
  def delete
50
50
  # called by freemind
51
- # Tobe called from other controller:jinda
52
- @note_id = $xvars["select_note"] ? $xvars["select_note"]["id"] : $xvars["p"]["note_id"]
53
- @note = Note.find(@note_id)
51
+ # Tobe called from other controller:jinda
52
+ @note_id = $xvars['select_note'] ? $xvars['select_note']['id'] : $xvars['p']['note_id']
53
+ @note = Note.find(@note_id)
54
54
  @note.destroy
55
55
  end
56
56
 
57
57
  def destroy
58
58
  # called by rails menu my
59
- if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @note.user
60
- @note.destroy
61
- end
62
- redirect_to :action=>'my'
59
+ @note.destroy if current_ma_user.role.upcase.split(',').include?('A') || current_ma_user == @note.user
60
+ redirect_to action: 'my'
63
61
  end
64
62
 
65
63
  def mail
66
64
  NoteMailer.gmail(
67
- $xvars["display_mail"]["body"],
68
- $xvars["select_note"]["email"],
69
- $xvars["display_mail"]["title"],
70
- xload_current_ma_user.email)
65
+ $xvars['display_mail']['body'],
66
+ $xvars['select_note']['email'],
67
+ $xvars['display_mail']['title'],
68
+ xload_current_ma_user.email
69
+ )
71
70
  end
72
71
 
73
72
  private
74
73
 
75
74
  # Tobe called from other controller:jinda
76
75
  def xload_current_ma_user
77
- @current_ma_user = User.find($xvars["user_id"])
76
+ @current_ma_user = User.find($xvars['user_id'])
78
77
  end
79
78
 
80
79
  def load_note
81
80
  @note = Note.find(params[:id])
82
81
  end
83
-
84
82
  end
@@ -1,34 +1,32 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class PasswordResetsController < ApplicationController
4
+ def index; end
2
5
 
3
- def index
6
+ def edit
7
+ ## Deprecated syntax in rail 5
8
+ # #@user = User.find_by_password_reset_token!(params[:id])
9
+ @user = User.where(password_reset_token: params[:id]).first
4
10
  end
5
11
 
6
12
  def create
7
- #user = User.find_by_email(params[:email])
8
- user = User.where(:email => params[:email]).first
13
+ # user = User.find_by_email(params[:email])
14
+ user = User.where(email: params[:email]).first
9
15
 
10
- user.send_password_reset if user
11
- redirect_to root_url, :ma_notice => "Email sent with password reset instructions."
12
- end
13
-
14
- def edit
15
- ## Deprecated syntax in rail 5
16
- ##@user = User.find_by_password_reset_token!(params[:id])
17
- @user = User.where(:password_reset_token => params[:id]).first
16
+ user&.send_password_reset
17
+ redirect_to root_url, ma_notice: 'Email sent with password reset instructions.'
18
18
  end
19
19
 
20
20
  def update
21
- ##@user = User.find_by_password_reset_token!(params[:id])
22
- @user = User.where(:password_reset_token => params[:id]).first
21
+ # #@user = User.find_by_password_reset_token!(params[:id])
22
+ @user = User.where(password_reset_token: params[:id]).first
23
23
  if @user.password_reset_sent_at < 2.hours.ago
24
- redirect_to new_password_reset_path, :alert => "Password &crarr;
24
+ redirect_to new_password_reset_path, alert: "Password &crarr;
25
25
  reset has expired."
26
- elsif @user.update_attributes(params[:user])
27
- redirect_to root_url, :notice => "Password has been reset."
26
+ elsif @user.update(params[:user])
27
+ redirect_to root_url, notice: 'Password has been reset.'
28
28
  else
29
29
  render :edit
30
30
  end
31
31
  end
32
-
33
32
  end
34
-
@@ -1,44 +1,43 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  class SessionsController < ApplicationController
3
4
  def new
4
- @title= 'Sign In'
5
+ @title = 'Sign In'
5
6
  end
6
7
 
7
8
  def failure
8
9
  # redirect_to login_path, alert: "Authentication failed, please try again."
9
- redirect_to login_path, alert: "Authentication failed, please try again."
10
+ redirect_to login_path, alert: 'Authentication failed, please try again.'
10
11
  end
11
12
 
12
13
  # to refresh the page, must know BEFOREHAND that the action needs refresh
13
14
  # then use attribute 'data-ajax'=>'false'
14
15
  # see app/views/sessions/new.html.erb for sample
15
16
  def create
16
- auth = request.env["omniauth.auth"]
17
- user = User.from_omniauth(auth)
17
+ auth = request.env['omniauth.auth']
18
+ user = User.from_omniauth(auth)
18
19
  session[:user_id] = user.id
19
- if params.permit[:remember_me]
20
+ if params[:remember_me]
20
21
  cookies.permanent[:auth_token] = user.auth_token
21
22
  else
22
23
  cookies[:auth_token] = user.auth_token
23
24
  end
24
25
  # refresh_to root_path, :ma_notice => "Logged in" # Called by jinda_conroller
25
26
  redirect_to root_path
26
- # redirect_to articles_my_path
27
-
28
- rescue
29
- redirect_to root_path, :alert=> "Authentication failed, please try again."
27
+ # redirect_to articles_my_path
28
+ rescue StandardError
29
+ redirect_to root_path, alert: 'Authentication failed, please try again.'
30
30
  end
31
31
 
32
32
  def destroy
33
33
  session[:user_id] = nil
34
34
  cookies.delete(:auth_token)
35
- refresh_to root_path, :ma_notice => "Logged Out" # called by jinda_controller, not pass tested
35
+ refresh_to root_path, ma_notice: 'Logged Out' # called by jinda_controller, not pass tested
36
36
  # redirect_to root_path # Ok with test
37
-
38
37
  end
39
38
 
40
39
  def failure
41
- ma_log "Authentication failed, please try again."
42
- redirect_to new_session_path, :alert=> "Authentication failed, please try again."
40
+ ma_log 'Authentication failed, please try again.'
41
+ redirect_to new_session_path, alert: 'Authentication failed, please try again.'
43
42
  end
44
43
  end
@@ -1,12 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class SitemapController < ApplicationController
2
- # From https://makandracards.com/makandra/689-know-your-haml-comments
3
- SitemapController < ApplicationController
4
+ # From https://makandracards.com/makandra/689-know-your-haml-comments
4
5
  layout nil
5
6
  def index
6
7
  headers['Content-Type'] = 'application/xml'
7
8
  respond_to do |format|
8
- format.xml {@articles = Article.all}
9
+ format.xml { @articles = Article.all }
9
10
  end
10
11
  end
11
-
12
12
  end
@@ -1,35 +1,35 @@
1
- # -*- encoding : utf-8 -*-
1
+ # frozen_string_literal: true
2
+
2
3
  class UsersController < ApplicationController
3
4
  def index
4
- @today = Date.today
5
- @xmains = current_ma_user.xmains.in(status:['R','I']).asc(:created_at)
5
+ @today = Time.zone.today
6
+ @xmains = current_ma_user.xmains.in(status: %w[R I]).asc(:created_at)
6
7
  end
7
8
 
8
9
  # jinda methods
9
10
  def update_user
10
11
  # can't use session, current_ma_user inside jinda methods
11
- $user.update_attribute :email, $xvars["enter_user"]["user"]["email"]
12
- $user.update_attribute :image, $xvars["enter_user"]["user"]["image"]
12
+ $user.update_attribute :email, $xvars['enter_user']['user']['email']
13
+ $user.update_attribute :image, $xvars['enter_user']['user']['image']
13
14
  end
15
+
14
16
  def change_password
15
17
  # check if old password correct
16
- identity = Identity.find_by :code=> $user.code
17
- if identity.authenticate($xvars["enter"]["epass"])
18
- identity.password = $xvars["enter"]["npass"]
19
- identity.password_confirmation = $xvars["enter"]["npass_confirm"]
18
+ identity = Identity.find_by code: $user.code
19
+ if identity.authenticate($xvars['enter']['epass'])
20
+ identity.password = $xvars['enter']['npass']
21
+ identity.password_confirmation = $xvars['enter']['npass_confirm']
20
22
  identity.save
21
- ma_log "Password changed"
23
+ ma_log 'Password changed'
22
24
  else
23
- ma_log "Unauthorized access"
25
+ ma_log 'Unauthorized access'
24
26
  end
25
27
  end
26
-
28
+
27
29
  def send_password_reset
28
30
  generate_token(:password_reset_token)
29
31
  self.password_reset_sent_at = Time.zone.now
30
32
  save!
31
33
  UserMailer.password_reset(self).deliver
32
34
  end
33
-
34
35
  end
35
-
@@ -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
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module AdminsHelper
2
4
  end
@@ -1,5 +1,6 @@
1
- module ApplicationHelper
1
+ # frozen_string_literal: true
2
2
 
3
+ module ApplicationHelper
3
4
  def title(blog_title)
4
5
  content_for(:title) { blog_title }
5
6
  end
@@ -8,26 +9,26 @@ module ApplicationHelper
8
9
  content_for(:meta_description) { blog_text }
9
10
  end
10
11
 
11
- require 'redcarpet'
12
- require 'rouge'
13
- require 'rouge/plugins/redcarpet'
12
+ require 'redcarpet'
13
+ require 'rouge'
14
+ require 'rouge/plugins/redcarpet'
14
15
 
15
- class CodeRayify < Redcarpet::Render::HTML
16
- def block_code(code, language)
17
- CodeRay.scan(code, language).div
16
+ class CodeRayify < Redcarpet::Render::HTML
17
+ def block_code(code, language)
18
+ CodeRay.scan(code, language).div
19
+ end
18
20
  end
19
- end
20
21
 
21
- def markdown(text)
22
- coderayified = CodeRayify.new(:filter_html => true,
23
- :hard_wrap => true)
24
- options = {
25
- :fenced_code_blocks => true,
26
- :no_intra_emphasis => true,
27
- :autolink => true,
28
- :lax_html_blocks => true,
29
- }
30
- markdown_to_html = Redcarpet::Markdown.new(coderayified, options)
31
- markdown_to_html.render(text).html_safe
22
+ def markdown(text)
23
+ coderayified = CodeRayify.new(filter_html: true,
24
+ hard_wrap: true)
25
+ options = {
26
+ fenced_code_blocks: true,
27
+ no_intra_emphasis: true,
28
+ autolink: true,
29
+ lax_html_blocks: true
30
+ }
31
+ markdown_to_html = Redcarpet::Markdown.new(coderayified, options)
32
+ markdown_to_html.render(text).html_safe
33
+ end
32
34
  end
33
- end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module ArticlesHelper
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module BasicHelper
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CommentsHelper
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module CtrsHelper
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module DevsHelper
2
4
  end
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+ module MindmapEditorHelper
3
+ end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PicturesHelper
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module SitemapHelper
2
4
  end
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module UsersHelper
2
4
  end