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,66 +1,67 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class User
2
4
  include Mongoid::Document
3
- # https://docs.mongodb.com/mongoid/master/tutorials/mongoid-indexes/
4
- index({ code: 1 }, { unique: true, name: "code_index" })
5
- before_create {generate_token(:auth_token)}
6
- field :provider, :type => String
7
- field :uid, :type => String
8
- field :code, :type => String
9
- field :email, :type => String
10
- field :role, :type => String
11
- field :user, :type => String
12
- field :auth_token, :type => String
13
- field :password_reset_token, :type => String
14
- field :password_reset_sent_at,:type => DateTime
15
- field :image, :type => String
16
5
 
17
- belongs_to :identity, :polymorphic => true, :optional => true
18
- has_many :xmains, :class_name => "Jinda::Xmain"
6
+ # https://docs.mongodb.com/mongoid/master/tutorials/mongoid-indexes/
7
+ index({ code: 1 }, { unique: true, name: 'code_index' })
8
+ before_create { generate_token(:auth_token) }
9
+ field :provider, type: String
10
+ field :uid, type: String
11
+ field :code, type: String
12
+ field :email, type: String
13
+ field :role, type: String
14
+ field :user, type: String
15
+ field :auth_token, type: String
16
+ field :password_reset_token, type: String
17
+ field :password_reset_sent_at, type: DateTime
18
+ field :image, type: String
19
+
20
+ belongs_to :identity, polymorphic: true, optional: true
21
+ has_many :xmains, class_name: 'Jinda::Xmain'
19
22
  validates :code,
20
- presence: true,
21
- uniqueness: true
23
+ presence: true,
24
+ uniqueness: true
22
25
 
23
26
  ## Add to create forgot password
24
27
  def generate_token(column)
25
- begin
26
- self[column] = SecureRandom.urlsafe_base64
27
- end
28
- #end while User.exists?(column => self[column])
28
+ self[column] = SecureRandom.urlsafe_base64
29
+
30
+ # end while User.exists?(column => self[column])
29
31
  end
30
32
 
31
33
  def has_role(role1)
32
- return role.upcase.split(',').include?(role1.upcase)
34
+ role.upcase.split(',').include?(role1.upcase)
33
35
  end
34
-
36
+
35
37
  def self.from_omniauth(auth)
36
- # Rails now no longer support slice
37
- # where(auth.slice(:uid, :provider, :email)).first_or_create do |user|
38
+ # Rails now no longer support slice
39
+ # where(auth.slice(:uid, :provider, :email)).first_or_create do |user|
38
40
  where(uid: auth.uid, provider: auth.provider, email: auth.info.email).first_or_create do |user|
39
- case auth.provider
40
- when 'identity'
41
- identity = Identity.find auth.uid
42
- user.code = identity.code
43
- user.email = identity.email
44
- else
45
- user.email = auth.info.email
46
- user.uid = auth.uid
47
- user.provider = auth.provider
48
- user.code = auth.info.name
49
- user.role = "M"
50
- user.image = auth.info.image
51
- end
41
+ case auth.provider
42
+ when 'identity'
43
+ identity = Identity.find auth.uid
44
+ user.code = identity.code
45
+ user.email = identity.email
46
+ else
47
+ user.email = auth.info.email
48
+ user.uid = auth.uid
49
+ user.provider = auth.provider
50
+ user.code = auth.info.name
51
+ user.role = 'M'
52
+ user.image = auth.info.image
52
53
  end
53
54
  end
54
-
55
+ end
56
+
55
57
  def ma_secured?
56
58
  role.upcase.split(',').include?(ma_secured_ROLE)
57
59
  end
58
-
60
+
59
61
  def send_password_reset
60
62
  generate_token(:password_reset_token)
61
63
  self.password_reset_sent_at = Time.zone.now
62
64
  save!
63
65
  UserMailer.password_reset(self).deliver
64
66
  end
65
-
66
67
  end
@@ -10,7 +10,7 @@
10
10
  = link_to image_tag('pencil.png', style:'border:none; float:right;', id: 'article_pen'), {controller: "articles", action: "edit", article_id: @article.id}, data: { confirm: "Please Confirm" }
11
11
  %div.font-weight-light
12
12
  by
13
- %img.img-circle{:alt => "User Image", src: @show[:user][:image] }/
13
+ %i.img-circle{"aria-hidden" => "true", class: "fa fa-user", style: "font-size: 48px; color: #999;"}
14
14
  %div.font-weight-light
15
15
  = @show[:user][:code]
16
16
  %div.font-weight-light
@@ -27,7 +27,7 @@
27
27
  %div.inner
28
28
  %div.font-weight-light
29
29
  - user_image = get_user_image(comment.user_id)
30
- %img.comment-user-image{:alt => "User Image", src: user_image}/
30
+ %i.comment-user-image{"aria-hidden" => "true", class: "fa fa-user", style: "width: 45px; height: 45px; font-size: 24px; color: #bbb; text-align: center; line-height: 45px; background: #f4f4f4; border-radius: 50%; display: inline-block;"}
31
31
 
32
32
  %div.font-weight-light
33
33
  Author:
@@ -3,6 +3,19 @@
3
3
  - @title= 'Sign Up'
4
4
  = form_tag "/auth/identity/register", {'data-ajax'=>'false'} do
5
5
  %h1.h3.mb-3.font-weight-normal{:style => "text-align: center"} Sign Up
6
+ %p.hint-text Sign Up with your social media account or Username
7
+ .social-btn.text-center
8
+ %a.btn.btn-primary.btn-lg{:href => "/auth/facebook"}
9
+ %i.fa.fa-facebook
10
+ Facebook
11
+ %a.btn.btn-info.btn-lg{:href => "#"}
12
+ %i.fa.fa-twitter
13
+ Twitter
14
+ %a.btn.btn-danger.btn-lg{:href => "/auth/google_oauth2"}
15
+ %i.fa.fa-google
16
+ Google
17
+ .or-seperator
18
+ %b or
6
19
  .sign_in
7
20
  .label-warning
8
21
  = flash[:alert]
@@ -0,0 +1,23 @@
1
+ .modal.fade#searchModal{"aria-hidden" => "true", "aria-labelledby" => "searchModalLabel", "tabindex" => "-1"}
2
+ .modal-dialog
3
+ .modal-content
4
+ .modal-header
5
+ %h5.modal-title#searchModalLabel Search
6
+ %button.btn-close{"aria-label" => "Close", "data-bs-dismiss" => "modal", "type" => "button"}
7
+ .modal-body.jinda-static
8
+ / Search form
9
+ - form_tag({:controller=>"jinda", :action=>"search"}, :method => "get", :class => "mb-3" ) do
10
+ .mb-3
11
+ = text_field_tag :q, "", :type=>"search", :required=>true, :placeholder=>"key word", :class => "form-control"
12
+ = submit_tag "Search", :class => "btn btn-jinda-primary w-100"
13
+
14
+ / Status form
15
+ - form_tag({:controller=>"jinda", :action=>"status"}, :method => "get", :class => "mb-3" ) do
16
+ .mb-3
17
+ = text_field_tag :id, nil, :required=>true, :placeholder=>"task number", :class => "form-control"
18
+ = submit_tag "Status", :class => "btn btn-jinda-primary w-100"
19
+
20
+ / Action buttons
21
+ = link_to "Pending Tasks", "/jinda/pending", :class => "btn btn-jinda-primary w-100 mb-2"
22
+ = link_to "Refresh", "#", :onclick=>"window.location.replace('/')", :class => "btn btn-outline-secondary w-100 mb-2"
23
+ = link_to "About", "#about", :class => "btn btn-outline-secondary w-100"
@@ -1,24 +1,26 @@
1
+ # frozen_string_literal: true
2
+
1
3
  xml.instruct! # <?xml version="1.0" encoding="UTF-8"?>
2
- xml.comment! "a comment" # <!-- a comment -->
3
- xml.feed "xmlns" => "http://www.w3.org/2005/Atom" do
4
- xml.title "My Atom Feed"
5
- # xml.subtitle h(@feed.subtitle), "type" => 'html'
6
- xml.link url_for( :only_path => false,
7
- :controller => 'main',
8
- :action => 'atom' )
4
+ xml.comment! 'a comment' # <!-- a comment -->
5
+ xml.feed 'xmlns' => 'http://www.w3.org/2005/Atom' do
6
+ xml.title 'My Atom Feed'
7
+ # xml.subtitle h(@feed.subtitle), "type" => 'html'
8
+ xml.link url_for(only_path: false,
9
+ controller: 'main',
10
+ action: 'atom')
9
11
  xml.updated Time.now.iso8601
10
12
  xml.author do
11
- xml.name "Jens-Christian Fischer"
12
- xml.email "jcfischer@gmail.com"
13
+ xml.name 'Jens-Christian Fischer'
14
+ xml.email 'jcfischer@gmail.com'
13
15
  end
14
16
  @waypoints.each do |entry|
15
17
  xml.entry do
16
18
  xml.code entry.code
17
19
  xml.title entry.name
18
- xml.link "href" => url_for( :only_path => false,
19
- :controller => 'entries',
20
- :action => 'show',
21
- :id => entry )
20
+ xml.link 'href' => url_for(only_path: false,
21
+ controller: 'entries',
22
+ action: 'show',
23
+ id: entry)
22
24
  xml.id entry.uid
23
25
  xml.updated entry.updated_at.iso8601
24
26
  xml.summary h(entry.description)
@@ -19,8 +19,9 @@
19
19
  %div.inner
20
20
  %b Recently tested with:
21
21
  %ul
22
- %li Rubygems 2.7.1
23
- %li Rails 6.1.0
22
+ %li Ruby 3.3.0+
23
+ %li Rails 7.1.0+
24
+ %li Mongoid 9.0+
24
25
  %div.col-lg-4.col-md-4.col-xs-12
25
26
  %div.small-box.bg-yellow
26
27
  %div.inner
@@ -1,4 +1,31 @@
1
- - if request.accept=="text/html, */*; q=0.01"
2
- = render "layouts/jqm/page"
3
- - else
4
- = render "layouts/jqm/full"
1
+ %doctype
2
+ %html
3
+ %head
4
+ %meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/
5
+ = csrf_meta_tags
6
+ / %link{:href => "https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,600,700,300italic,400italic,600italic", :rel => "stylesheet"}/
7
+ %title Jinda AdminLTE 2 | Starter
8
+ = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
9
+ = javascript_include_tag "application", 'data-turbolinks-track': 'reload'
10
+ %body.hold-transition.skin-blue.sidebar-mini
11
+ .wrapper{style: "height: auto; min-height: 100%; background-color: #7c7c7d;"}
12
+ = render "layouts/lte/header"
13
+ = render "layouts/lte/sidebar"
14
+ .content-wrapper
15
+ %h3.box-title
16
+ = @page_title
17
+ = render 'layouts/lte/flash'
18
+ .label-warning
19
+ #flashes
20
+ - if flash[:notice]
21
+ %p#flash_notice.messages.notice= flash[:notice]
22
+ = javascript_tag "$('#flash_notice').effect('highlight',{},1000);"
23
+ - if flash[:error] || flash[:errors]
24
+ %p#flash_errors.messages.errors= flash[:error] || flash[:errors]
25
+ = javascript_tag "$('#flash_errors').effect('highlight',{},1000);"
26
+ - flash[:error] = flash[:errors] = flash[:notice] = nil
27
+ = yield
28
+ = render 'layouts/lte/footer'
29
+ .control-sidebar-bg
30
+ / REQUIRED JS SCRIPTS
31
+ / jQuery 3
@@ -0,0 +1,54 @@
1
+
2
+ %header.main-header
3
+ / Logo
4
+ %a.logo{:href => root_path}
5
+ / mini logo for sidebar mini 50x50 pixels
6
+ %span.logo-mini
7
+ %b> J
8
+ LTE
9
+ / logo for regular state and mobile devices
10
+ %span.logo-lg
11
+ %b Jinda
12
+ / Header Navbar: style can be found in header.less
13
+ %nav.navbar.navbar-static-top
14
+ / Sidebar toggle button
15
+ %a.sidebar-toggle{"data-toggle" => "push-menu", :href => "#", :role => "button"}
16
+ %span.sr-only Toggle lte
17
+
18
+ .navbar-custom-menu
19
+ %ul.nav.navbar-nav
20
+ / Removed messages, notifications, tasks icons for clean look
21
+ %li.dropdown.user.user-menu
22
+ %a.dropdown-toggle{"data-toggle" => "dropdown", :href => "#", style: "display: flex; align-items: center; gap: 5px;"}
23
+ - get_login_user_info
24
+ %i.user-image{"aria-hidden" => "true", class: "fa fa-user", style: "vertical-align: middle; margin-right: 5px; line-height: 1; font-size: 18px; color: #bbb;"}
25
+ %span.hidden-xs #{$user_name}
26
+ %ul.dropdown-menu
27
+ %li.user-header
28
+ %i{"aria-hidden" => "true", class: "fa fa-user", style: "font-size: 48px; vertical-align: middle; color: #bbb;"}
29
+ %p
30
+ #{$user_name} - Developer
31
+ %small Member since Nov. 2012
32
+
33
+ - if !login?
34
+ %li.user-body
35
+ / Add Profile and Status here
36
+ %li
37
+ .col-xs-4.text-center
38
+ %a{:href => '/auth/facebook', "data-panel" => "main", rel: "external"}
39
+ %i.fa.fa-facebook
40
+ .col-xs-4.text-center
41
+ %a{:href => '/auth/google_oauth2', "data-panel" => "main", rel: "external"}
42
+ %i.fa.fa-google
43
+ %li.user-footer
44
+ .pull-right
45
+ - if login?
46
+ %li
47
+ %a.btn.btn-default.btn-flat{"data-panel" => "main", :href => logout_path, "data-ajax"=>"false"} Sign Out
48
+ - else
49
+ %li
50
+ %a.btn.btn-default.btn-flat{:href =>new_session_path,"data-panel" => "main"}
51
+ %i.fa.fa-circle-o
52
+ %span
53
+ Sign In
54
+
@@ -4,7 +4,7 @@
4
4
  .pull-left.image
5
5
  =# %img.img-circle{:alt => "User Image", :src => asset_url("dist/img/user2-160x160.jpg")}/
6
6
  - get_login_user_info
7
- %img.img-circle{:alt => "User Image", src: $user_image}/
7
+ %i.img-circle{"aria-hidden" => "true", class: "fa fa-user", style: "font-size: 32px; color: #bbb; width: 45px; height: 45px; line-height: 45px; text-align: center; background: #f4f4f4; border-radius: 50%; display: inline-block;"}
8
8
  .pull-left.info
9
9
  %p #{$user_name}
10
10
  %a{:href => "#"}
@@ -0,0 +1,126 @@
1
+ !!!5
2
+ %html
3
+ %head
4
+ %meta{charset: 'utf-8'}
5
+ %meta{name: 'viewport', content: 'width=device-width, initial-scale=1'}
6
+ %title Jinda Mindmap Editor
7
+ = csrf_meta_tags
8
+ %link{rel: 'stylesheet', href: 'https://unpkg.com/jsmind@0.5.2/style/jsmind.css'}
9
+ :css
10
+ body { margin: 0; padding: 20px; font-family: Arial, sans-serif; }
11
+ h1 { margin: 0 0 20px 0; }
12
+ .controls { margin-bottom: 20px; }
13
+ #jsmind_container {
14
+ width: 100%;
15
+ height: 70vh;
16
+ border: 1px solid #ccc;
17
+ border-radius: 4px;
18
+ background: #f9f9f9;
19
+ }
20
+ .btn {
21
+ padding: 10px 20px;
22
+ margin-right: 10px;
23
+ background: #4CAF50;
24
+ color: white;
25
+ border: none;
26
+ border-radius: 4px;
27
+ cursor: pointer;
28
+ font-size: 14px;
29
+ }
30
+ .btn:hover { background: #45a049; }
31
+ .btn-secondary { background: #008CBA; }
32
+ .btn-secondary:hover { background: #007399; }
33
+ #status { padding: 10px; margin-top: 10px; border-radius: 4px; }
34
+ .success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
35
+ .error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
36
+ %body
37
+ %h1 Jinda Mindmap Editor
38
+
39
+ .controls
40
+ %button.btn#save_button{type: 'button'} Save & Update
41
+ %button.btn.btn-secondary#reload_button{type: 'button'} Reload
42
+ %span{style: 'margin-left: 20px; color: #666;'} Double-click nodes to edit | Right-click for options
43
+
44
+ #jsmind_container
45
+
46
+ #status
47
+
48
+ %script{src: 'https://unpkg.com/jsmind@0.5.2/js/jsmind.js'}
49
+ :javascript
50
+ var jm = null;
51
+ var originalData = #{raw @mind_data.to_json};
52
+
53
+ window.addEventListener('load', function() {
54
+ console.log('jsMind loaded:', typeof jsMind !== 'undefined');
55
+ console.log('Mind data:', originalData);
56
+
57
+ if (typeof jsMind === 'undefined') {
58
+ document.getElementById('jsmind_container').innerHTML =
59
+ '<div style="padding: 20px; color: red;">Error: jsMind library failed to load</div>';
60
+ return;
61
+ }
62
+
63
+ // Initialize jsMind
64
+ var options = {
65
+ container: 'jsmind_container',
66
+ theme: 'primary',
67
+ editable: true,
68
+ mode: 'full'
69
+ };
70
+
71
+ jm = new jsMind(options);
72
+ jm.show(originalData);
73
+
74
+ // Save button handler
75
+ document.getElementById('save_button').addEventListener('click', function() {
76
+ var button = this;
77
+ button.disabled = true;
78
+ button.textContent = 'Saving...';
79
+
80
+ var data = jm.get_data();
81
+ console.log('Saving data:', data);
82
+
83
+ fetch('#{mindmap_editor_save_path}', {
84
+ method: 'POST',
85
+ headers: {
86
+ 'Content-Type': 'application/json',
87
+ 'X-CSRF-Token': document.querySelector('meta[name="csrf-token"]').content
88
+ },
89
+ body: JSON.stringify({ mind_data: data })
90
+ })
91
+ .then(response => response.json())
92
+ .then(result => {
93
+ button.disabled = false;
94
+ button.textContent = 'Save & Update';
95
+
96
+ var status = document.getElementById('status');
97
+ if (result.success) {
98
+ status.className = 'success';
99
+ status.innerHTML = '<strong>Success!</strong> ' + result.message;
100
+ if (result.output) {
101
+ status.innerHTML += '<br><small>Output: ' + result.output.substring(0, 200) + '...</small>';
102
+ }
103
+ } else {
104
+ status.className = 'error';
105
+ status.innerHTML = '<strong>Error:</strong> ' + result.error;
106
+ }
107
+
108
+ setTimeout(() => { status.innerHTML = ''; status.className = ''; }, 5000);
109
+ })
110
+ .catch(error => {
111
+ button.disabled = false;
112
+ button.textContent = 'Save & Update';
113
+
114
+ var status = document.getElementById('status');
115
+ status.className = 'error';
116
+ status.innerHTML = '<strong>Error:</strong> ' + error.message;
117
+ });
118
+ });
119
+
120
+ // Reload button handler
121
+ document.getElementById('reload_button').addEventListener('click', function() {
122
+ if (confirm('Reload mindmap? Any unsaved changes will be lost.')) {
123
+ location.reload();
124
+ }
125
+ });
126
+ });
@@ -0,0 +1,2 @@
1
+ %h1 MindmapEditor#save
2
+ %p Find me in app/views/mindmap_editor/save.html.haml
@@ -2,6 +2,19 @@
2
2
  .signup-form
3
3
  = form_tag "/auth/identity/callback", {'data-ajax'=>'false'} do
4
4
  %h1.h3.mb-3.font-weight-normal{:style => "text-align: center"} Sign in
5
+ %p.hint-text Sign in with your social media account or Username
6
+ .social-btn.text-center
7
+ %a.btn.btn-primary.btn-lg{:href => "/auth/facebook"}
8
+ %i.fa.fa-facebook
9
+ Facebook
10
+ %a.btn.btn-info.btn-lg{:href => "#"}
11
+ %i.fa.fa-twitter
12
+ Twitter
13
+ %a.btn.btn-danger.btn-lg{:href => "/auth/google_oauth2"}
14
+ %i.fa.fa-google
15
+ Google
16
+ .or-seperator
17
+ %b or
5
18
  .sign_in
6
19
  .label-warning
7
20
  = flash[:alert]
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env ruby
2
+ require "timeout"
3
+
4
+ modified = `git status --porcelain`.lines.filter_map { |l| l.split.last }.uniq
5
+ files = modified.select { |p| p.end_with?(".rb") }
6
+
7
+ if files.empty?
8
+ puts "No modified Ruby files."
9
+ exit 0
10
+ end
11
+
12
+ files.each do |file|
13
+ puts "RuboCop: #{file}"
14
+ begin
15
+ Timeout.timeout(30) do
16
+ system("rubocop", "--config", File.expand_path("~/.rubocop.yml"), "-A", file)
17
+ end
18
+ rescue Timeout::Error
19
+ puts "Timeout on #{file} (over 30s). Skipping; fix manually."
20
+ end
21
+ end
@@ -4,12 +4,12 @@ development:
4
4
  # Defines the default client. (required)
5
5
  default:
6
6
  # Mongoid can connect to a URI accepted by the driver:
7
- # uri: mongodb://user:password@mongodb.domain.com:27017/shop263603_development
7
+ # uri: mongodb://user:password@mongodb.domain.com:27017/jinda_development
8
8
 
9
9
  # Otherwise define the parameters separately.
10
10
  # This defines the name of the default database that Mongoid can connect to.
11
11
  # (required).
12
- database: shop263603_development
12
+ database: jinda_development
13
13
  # Provides the hosts the default client can connect to. Must be an array
14
14
  # of host:port pairs. (required)
15
15
  hosts:
@@ -173,7 +173,7 @@ production:
173
173
  test:
174
174
  clients:
175
175
  default:
176
- database: shop263603_test
176
+ database: jinda_test
177
177
  hosts:
178
178
  - localhost:27017
179
179
  options:
@@ -4,12 +4,12 @@ development:
4
4
  # Defines the default client. (required)
5
5
  default:
6
6
  # Mongoid can connect to a URI accepted by the driver:
7
- # uri: mongodb://user:password@mongodb.domain.com:27017/shop263603_development
7
+ # uri: mongodb://user:password@mongodb.domain.com:27017/jinda_development
8
8
 
9
9
  # Otherwise define the parameters separately.
10
10
  # This defines the name of the default database that Mongoid can connect to.
11
11
  # (required).
12
- database: shop263603_development
12
+ database: jinda_development
13
13
  # Provides the hosts the default client can connect to. Must be an array
14
14
  # of host:port pairs. (required)
15
15
  hosts:
@@ -173,7 +173,7 @@ production:
173
173
  test:
174
174
  clients:
175
175
  default:
176
- database: shop263603_test
176
+ database: jinda_test
177
177
  hosts:
178
178
  - localhost:27017
179
179
  options:
@@ -4,12 +4,12 @@ development:
4
4
  # Defines the default client. (required)
5
5
  default:
6
6
  # Mongoid can connect to a URI accepted by the driver:
7
- # uri: mongodb://user:password@mongodb.domain.com:27017/shop263603_development
7
+ # uri: mongodb://user:password@mongodb.domain.com:27017/jinda_development
8
8
 
9
9
  # Otherwise define the parameters separately.
10
10
  # This defines the name of the default database that Mongoid can connect to.
11
11
  # (required).
12
- database: shop263603_development
12
+ database: jinda_development
13
13
  # Provides the hosts the default client can connect to. Must be an array
14
14
  # of host:port pairs. (required)
15
15
  hosts:
@@ -173,7 +173,7 @@ production:
173
173
  test:
174
174
  clients:
175
175
  default:
176
- database: shop263603_test
176
+ database: jinda_test
177
177
  hosts:
178
178
  - localhost:27017
179
179
  options:
@@ -0,0 +1,13 @@
1
+ services:
2
+ mongodb:
3
+ image: mongo:latest
4
+ container_name: jinda_mongodb
5
+ ports:
6
+ - "27017:27017"
7
+ volumes:
8
+ - mongodb_data:/data/db
9
+ environment:
10
+ - MONGO_INITDB_DATABASE=jinda_development
11
+
12
+ volumes:
13
+ mongodb_data:
@@ -0,0 +1,36 @@
1
+ # docker-compose-web.yml - Full stack with web application and MongoDB
2
+ # For development with local gem modifications:
3
+ # 1. Add volume mounts for your local gem paths:
4
+ # volumes:
5
+ # - .:/myapp
6
+ # - ~/mygem/jinda:/path/to/local/jinda
7
+ # - ~/mygem/jinda_adminlte:/path/to/local/jinda_adminlte
8
+ # 2. Update Gemfile to use path: '/path/to/local/jinda'
9
+
10
+ services:
11
+ web:
12
+ build: .
13
+ env_file: .env
14
+ command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
15
+ volumes:
16
+ - .:/myapp
17
+ # TODO: Add your local gem paths here for development
18
+ # - ~/mygem/jinda:/path/to/local/jinda
19
+ # - ~/mygem/jinda_adminlte:/path/to/local/jinda_adminlte
20
+ ports:
21
+ - "3000:3000"
22
+ depends_on:
23
+ - mongodb
24
+
25
+ mongodb:
26
+ image: mongo:latest
27
+ container_name: jinda_mongodb_web
28
+ ports:
29
+ - "27017:27017"
30
+ volumes:
31
+ - mongodb_data_web:/data/db
32
+ environment:
33
+ - MONGO_INITDB_DATABASE=jinda_development
34
+
35
+ volumes:
36
+ mongodb_data_web:
@@ -1,17 +1,13 @@
1
- version: '3.5'
2
1
  services:
3
- web:
4
- build: .
5
- env_file: .env
6
- command: bash -c "rm -f tmp/pids/server.pid && bundle exec rails s -p 3000 -b '0.0.0.0'"
7
- volumes:
8
- - .:/myapp
9
- ports:
10
- - "3000:3000"
11
- depends_on:
12
- - mongodb
13
-
14
2
  mongodb:
15
- image: mongo
3
+ image: mongo:latest
4
+ container_name: jinda_mongodb
16
5
  ports:
17
- - "27888:27017"
6
+ - "27017:27017"
7
+ volumes:
8
+ - mongodb_data:/data/db
9
+ environment:
10
+ - MONGO_INITDB_DATABASE=jinda_development
11
+
12
+ volumes:
13
+ mongodb_data: