jinda_mind 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +4 -0
  4. data/Rakefile +3 -0
  5. data/app/assets/config/manifest.js +4 -0
  6. data/app/assets/images/4dcity-old.ico +0 -0
  7. data/app/assets/images/4dcity.ico +0 -0
  8. data/app/assets/images/account.png +0 -0
  9. data/app/assets/images/add.png +0 -0
  10. data/app/assets/images/ajax-loader-circle.gif +0 -0
  11. data/app/assets/images/ajax-loader.gif +0 -0
  12. data/app/assets/images/anchor.png +0 -0
  13. data/app/assets/images/application_double.png +0 -0
  14. data/app/assets/images/application_form_edit.png +0 -0
  15. data/app/assets/images/arrow_left.png +0 -0
  16. data/app/assets/images/arrow_right.png +0 -0
  17. data/app/assets/images/arrow_turn_left.png +0 -0
  18. data/app/assets/images/arrow_turn_right.png +0 -0
  19. data/app/assets/images/calendar.png +0 -0
  20. data/app/assets/images/cancel.png +0 -0
  21. data/app/assets/images/chart_bar.png +0 -0
  22. data/app/assets/images/clock.png +0 -0
  23. data/app/assets/images/cog.png +0 -0
  24. data/app/assets/images/control_fastforward.png +0 -0
  25. data/app/assets/images/control_play.png +0 -0
  26. data/app/assets/images/cross.png +0 -0
  27. data/app/assets/images/delete.png +0 -0
  28. data/app/assets/images/external-link.png +0 -0
  29. data/app/assets/images/facebook-continue-button.png +0 -0
  30. data/app/assets/images/facebooksmall.png +0 -0
  31. data/app/assets/images/favicon.ico +0 -0
  32. data/app/assets/images/freemind(mm).png +0 -0
  33. data/app/assets/images/google-continue-button.png +0 -0
  34. data/app/assets/images/help.png +0 -0
  35. data/app/assets/images/highway-menu.png +0 -0
  36. data/app/assets/images/highway.png +0 -0
  37. data/app/assets/images/house.png +0 -0
  38. data/app/assets/images/icons-18-black.png +0 -0
  39. data/app/assets/images/icons-18-white.png +0 -0
  40. data/app/assets/images/icons-36-black.png +0 -0
  41. data/app/assets/images/icons-36-white.png +0 -0
  42. data/app/assets/images/logo.png +0 -0
  43. data/app/assets/images/logo_jinda.png +0 -0
  44. data/app/assets/images/logout.png +0 -0
  45. data/app/assets/images/new.gif +0 -0
  46. data/app/assets/images/new.png +0 -0
  47. data/app/assets/images/page.png +0 -0
  48. data/app/assets/images/page_attach.png +0 -0
  49. data/app/assets/images/page_green.png +0 -0
  50. data/app/assets/images/page_output.png +0 -0
  51. data/app/assets/images/page_pdf.png +0 -0
  52. data/app/assets/images/pencil.png +0 -0
  53. data/app/assets/images/printer.png +0 -0
  54. data/app/assets/images/refresh.png +0 -0
  55. data/app/assets/images/report.png +0 -0
  56. data/app/assets/images/rssmall.png +0 -0
  57. data/app/assets/images/tick.png +0 -0
  58. data/app/assets/images/twittersmall.png +0 -0
  59. data/app/assets/images/user.png +0 -0
  60. data/app/assets/images/user_admin_gear.png +0 -0
  61. data/app/assets/images/view_code.png +0 -0
  62. data/app/assets/javascripts/application.js-org +24 -0
  63. data/app/assets/javascripts/cable.js +13 -0
  64. data/app/assets/javascripts/disable_enter_key.js +10 -0
  65. data/app/assets/javascripts/iscroll-wrapper.js +32 -0
  66. data/app/assets/javascripts/iscroll.js +1084 -0
  67. data/app/assets/javascripts/jinda.js +14 -0
  68. data/app/assets/javascripts/jinda_jqm.js +24 -0
  69. data/app/assets/javascripts/jquery.mobile-1.2.1.js +9272 -0
  70. data/app/assets/javascripts/jquery.mobile.datebox.js +1778 -0
  71. data/app/assets/javascripts/jquery.mobile.splitview.js +695 -0
  72. data/app/assets/stylesheets/app.scss +90 -0
  73. data/app/assets/stylesheets/articles.scss +94 -0
  74. data/app/assets/stylesheets/fonts/sarabun.eot +0 -0
  75. data/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
  76. data/app/assets/stylesheets/fonts/sarabun.woff +0 -0
  77. data/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  78. data/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  79. data/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  80. data/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  81. data/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  82. data/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  83. data/app/assets/stylesheets/fonts/thsarabunnew.css +47 -0
  84. data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  85. data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  86. data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  87. data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  88. data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  89. data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  90. data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  91. data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  92. data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  93. data/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  94. data/app/assets/stylesheets/images/button_black.png +0 -0
  95. data/app/assets/stylesheets/images/button_blue.png +0 -0
  96. data/app/assets/stylesheets/images/button_red.png +0 -0
  97. data/app/assets/stylesheets/images/gears.png +0 -0
  98. data/app/assets/stylesheets/images/icons-18-black.png +0 -0
  99. data/app/assets/stylesheets/images/icons-18-white.png +0 -0
  100. data/app/assets/stylesheets/images/icons-36-black.png +0 -0
  101. data/app/assets/stylesheets/images/icons-36-white.png +0 -0
  102. data/app/assets/stylesheets/images/indicator.gif +0 -0
  103. data/app/assets/stylesheets/jinda.scss +185 -0
  104. data/app/assets/stylesheets/jinda_jqm.css.scss +32 -0
  105. data/app/assets/stylesheets/jquery.mobile-1.2.1.css +2339 -0
  106. data/app/assets/stylesheets/jquery.mobile.datebox.css +65 -0
  107. data/app/assets/stylesheets/jquery.mobile.grids.collapsible.css +122 -0
  108. data/app/assets/stylesheets/jquery.mobile.splitview.css +128 -0
  109. data/app/assets/stylesheets/kul-4.2.css +1516 -0
  110. data/app/assets/stylesheets/kul-4.2.min.css +11 -0
  111. data/app/assets/stylesheets/modules.scss +84 -0
  112. data/app/assets/stylesheets/sarabun.css +37 -0
  113. data/app/assets/stylesheets/social.scss +133 -0
  114. data/app/controllers/concerns/jinda_general_concern.rb +179 -0
  115. data/app/controllers/concerns/jinda_run_concern.rb +368 -0
  116. data/app/controllers/jinda_controller.rb +66 -0
  117. data/bin/console +14 -0
  118. data/bin/setup +8 -0
  119. data/config/mongoid.yml +19 -0
  120. data/config/routes.rb +44 -0
  121. data/lib/generators/jinda/USAGE +2 -0
  122. data/lib/generators/jinda/config_generator.rb +102 -0
  123. data/lib/generators/jinda/install_generator.rb +269 -0
  124. data/lib/generators/jinda/installer/gems_install.rb +132 -0
  125. data/lib/generators/jinda/installer/test.rb +6 -0
  126. data/lib/generators/jinda/minitest_generator.rb +30 -0
  127. data/lib/generators/jinda/rspec_generator.rb +30 -0
  128. data/lib/generators/jinda/templates/Dockerfile +26 -0
  129. data/lib/generators/jinda/templates/README.md +173 -0
  130. data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
  131. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +15 -0
  132. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +15 -0
  133. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +4 -0
  134. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +4 -0
  135. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +81 -0
  136. data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +6 -0
  137. data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +41 -0
  138. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +110 -0
  139. data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +31 -0
  140. data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +56 -0
  141. data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +5 -0
  142. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +84 -0
  143. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +28 -0
  144. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +34 -0
  145. data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +44 -0
  146. data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +12 -0
  147. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +35 -0
  148. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  149. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +33 -0
  150. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  151. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  152. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  153. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  154. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  155. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  156. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  157. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  158. data/lib/generators/jinda/templates/app/jinda/index.mm +486 -0
  159. data/lib/generators/jinda/templates/app/jinda/template/index.mm +366 -0
  160. data/lib/generators/jinda/templates/app/jinda/template/linkview.haml +21 -0
  161. data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +34 -0
  162. data/lib/generators/jinda/templates/app/mailers/application_mailer.rb +4 -0
  163. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +7 -0
  164. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +10 -0
  165. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +15 -0
  166. data/lib/generators/jinda/templates/app/models/address.rb +14 -0
  167. data/lib/generators/jinda/templates/app/models/article.rb +14 -0
  168. data/lib/generators/jinda/templates/app/models/comment.rb +14 -0
  169. data/lib/generators/jinda/templates/app/models/identity.rb +18 -0
  170. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -0
  171. data/lib/generators/jinda/templates/app/models/jinda/module.rb +11 -0
  172. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +14 -0
  173. data/lib/generators/jinda/templates/app/models/jinda/role.rb +8 -0
  174. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +24 -0
  175. data/lib/generators/jinda/templates/app/models/jinda/service.rb +17 -0
  176. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +38 -0
  177. data/lib/generators/jinda/templates/app/models/note.rb +22 -0
  178. data/lib/generators/jinda/templates/app/models/param.rb +41 -0
  179. data/lib/generators/jinda/templates/app/models/person.rb +14 -0
  180. data/lib/generators/jinda/templates/app/models/user.rb +66 -0
  181. data/lib/generators/jinda/templates/app/views/adminbsbs/content.haml +241 -0
  182. data/lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb +7 -0
  183. data/lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb +4 -0
  184. data/lib/generators/jinda/templates/app/views/api/v1/note.haml +0 -0
  185. data/lib/generators/jinda/templates/app/views/articles/_report.haml +35 -0
  186. data/lib/generators/jinda/templates/app/views/articles/edit.haml +23 -0
  187. data/lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb +15 -0
  188. data/lib/generators/jinda/templates/app/views/articles/edit_article/select_article.html.erb +12 -0
  189. data/lib/generators/jinda/templates/app/views/articles/index.haml +5 -0
  190. data/lib/generators/jinda/templates/app/views/articles/my.haml +5 -0
  191. data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +16 -0
  192. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +58 -0
  193. data/lib/generators/jinda/templates/app/views/articles/xedit_article/edit_article.html.erb +13 -0
  194. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile1.html.erb +23 -0
  195. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile2.html.erb +23 -0
  196. data/lib/generators/jinda/templates/app/views/ctrs/vfolder2/viewfile2.html.erb +23 -0
  197. data/lib/generators/jinda/templates/app/views/custom/_adsense.haml +6 -0
  198. data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_edit.html.erb +21 -0
  199. data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_select.html.erb +14 -0
  200. data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.html.erb +32 -0
  201. data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.md +36 -0
  202. data/lib/generators/jinda/templates/app/views/docs/doc_xedit/doc_edit.html.erb +21 -0
  203. data/lib/generators/jinda/templates/app/views/docs/edit/select_note.html.erb +14 -0
  204. data/lib/generators/jinda/templates/app/views/docs/index.haml +21 -0
  205. data/lib/generators/jinda/templates/app/views/docs/my.haml +27 -0
  206. data/lib/generators/jinda/templates/app/views/identities/new.html.haml +32 -0
  207. data/lib/generators/jinda/templates/app/views/jinda/_activity.md +10 -0
  208. data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +27 -0
  209. data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +44 -0
  210. data/lib/generators/jinda/templates/app/views/jinda/_model.md +5 -0
  211. data/lib/generators/jinda/templates/app/views/jinda/_modul.md +9 -0
  212. data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +5 -0
  213. data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +24 -0
  214. data/lib/generators/jinda/templates/app/views/jinda/_service.md +24 -0
  215. data/lib/generators/jinda/templates/app/views/jinda/_static.haml +13 -0
  216. data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +37 -0
  217. data/lib/generators/jinda/templates/app/views/jinda/doc.md +36 -0
  218. data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +22 -0
  219. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +27 -0
  220. data/lib/generators/jinda/templates/app/views/jinda/help.haml +20 -0
  221. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +53 -0
  222. data/lib/generators/jinda/templates/app/views/jinda/logs.haml +22 -0
  223. data/lib/generators/jinda/templates/app/views/jinda/notice_logs.haml +18 -0
  224. data/lib/generators/jinda/templates/app/views/jinda/pending.haml +1 -0
  225. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +42 -0
  226. data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +38 -0
  227. data/lib/generators/jinda/templates/app/views/jinda/search.haml +20 -0
  228. data/lib/generators/jinda/templates/app/views/jinda/status.haml +61 -0
  229. data/lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb +9 -0
  230. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +10 -0
  231. data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +19 -0
  232. data/lib/generators/jinda/templates/app/views/layouts/application.haml +4 -0
  233. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +7 -0
  234. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +147 -0
  235. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +47 -0
  236. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +34 -0
  237. data/lib/generators/jinda/templates/app/views/layouts/bsb/_rightbar.haml +123 -0
  238. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +155 -0
  239. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +47 -0
  240. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +9 -0
  241. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +33 -0
  242. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +16 -0
  243. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +4 -0
  244. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +13 -0
  245. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +3 -0
  246. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +1 -0
  247. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +1 -0
  248. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +13 -0
  249. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +31 -0
  250. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +22 -0
  251. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +22 -0
  252. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.html.haml +7 -0
  253. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.text.haml +8 -0
  254. data/lib/generators/jinda/templates/app/views/notes/delete/select_note.html.erb +14 -0
  255. data/lib/generators/jinda/templates/app/views/notes/edit/edit_note.html.erb +10 -0
  256. data/lib/generators/jinda/templates/app/views/notes/edit/select_note.html.erb +14 -0
  257. data/lib/generators/jinda/templates/app/views/notes/index.haml +71 -0
  258. data/lib/generators/jinda/templates/app/views/notes/mail/display_mail.html.erb +20 -0
  259. data/lib/generators/jinda/templates/app/views/notes/mail/select_note.html.erb +19 -0
  260. data/lib/generators/jinda/templates/app/views/notes/mail/show.html.haml +13 -0
  261. data/lib/generators/jinda/templates/app/views/notes/my.haml +21 -0
  262. data/lib/generators/jinda/templates/app/views/notes/new/new_note.html.erb +13 -0
  263. data/lib/generators/jinda/templates/app/views/notes/show.haml +10 -0
  264. data/lib/generators/jinda/templates/app/views/notes/xedit/edit_note.html.erb +10 -0
  265. data/lib/generators/jinda/templates/app/views/password_resets/edit.html.erb +21 -0
  266. data/lib/generators/jinda/templates/app/views/password_resets/new.html.haml +11 -0
  267. data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +22 -0
  268. data/lib/generators/jinda/templates/app/views/sitemap/index.xml.haml +10 -0
  269. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml +3 -0
  270. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb +3 -0
  271. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.haml +3 -0
  272. data/lib/generators/jinda/templates/app/views/users/index.haml +13 -0
  273. data/lib/generators/jinda/templates/app/views/users/pwd/enter.html.erb +6 -0
  274. data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +10 -0
  275. data/lib/generators/jinda/templates/config/cloudinary.yml +9 -0
  276. data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +14 -0
  277. data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
  278. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
  279. data/lib/generators/jinda/templates/db/seeds.rb +6 -0
  280. data/lib/generators/jinda/templates/docker-compose.yml +17 -0
  281. data/lib/generators/jinda/templates/dot/dot.env +2 -0
  282. data/lib/generators/jinda/templates/dotrspec +3 -0
  283. data/lib/generators/jinda/templates/entrypoint.sh +13 -0
  284. data/lib/generators/jinda/templates/jinda.yml +10 -0
  285. data/lib/generators/jinda/templates/public/404.html +67 -0
  286. data/lib/generators/jinda/templates/public/422.html +67 -0
  287. data/lib/generators/jinda/templates/public/500.html +66 -0
  288. data/lib/generators/jinda/templates/public/assets/images/logo.png +0 -0
  289. data/lib/generators/jinda/templates/public/favicon.ico +0 -0
  290. data/lib/generators/jinda/templates/public/robots.txt +3 -0
  291. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +23 -0
  292. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +14 -0
  293. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +19 -0
  294. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +98 -0
  295. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +23 -0
  296. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +24 -0
  297. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +9 -0
  298. data/lib/generators/jinda/templates/spec/models/note_spec.rb +41 -0
  299. data/lib/generators/jinda/templates/spec/models/user_spec.rb +12 -0
  300. data/lib/generators/jinda/templates/spec/rails_helper.rb +42 -0
  301. data/lib/generators/jinda/templates/spec/spec_helper.rb +80 -0
  302. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +20 -0
  303. data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +13 -0
  304. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +12 -0
  305. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +38 -0
  306. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +8 -0
  307. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +14 -0
  308. data/lib/generators/jinda/templates/test/application_system_test_case.rb +5 -0
  309. data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +42 -0
  310. data/lib/generators/jinda/templates/test/test_helper.rb +6 -0
  311. data/lib/jinda/date_helpers.rb +109 -0
  312. data/lib/jinda/gem_helpers.rb +11 -0
  313. data/lib/jinda/gen_class.rb +13 -0
  314. data/lib/jinda/gen_freemind.rb +33 -0
  315. data/lib/jinda/gen_helpers.rb +141 -0
  316. data/lib/jinda/gen_models.rb +137 -0
  317. data/lib/jinda/gen_modules.rb +17 -0
  318. data/lib/jinda/gen_runseq.rb +71 -0
  319. data/lib/jinda/gen_services.rb +90 -0
  320. data/lib/jinda/gen_xmain.rb +38 -0
  321. data/lib/jinda/get_app.rb +34 -0
  322. data/lib/jinda/helpers.rb +26 -0
  323. data/lib/jinda/init_vars.rb +36 -0
  324. data/lib/jinda/railtie.rb +18 -0
  325. data/lib/jinda/rake_views.rb +63 -0
  326. data/lib/jinda/refresh.rb +67 -0
  327. data/lib/jinda/themes.rb +175 -0
  328. data/lib/jinda.rb +7 -0
  329. data/lib/jquery.validate.js +1293 -0
  330. data/lib/tasks/jinda.rake +42 -0
  331. data/test/dummy/Rakefile +6 -0
  332. data/test/dummy/app/assets/config/manifest.js +3 -0
  333. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  334. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  335. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  336. data/test/dummy/app/controllers/application_controller.rb +2 -0
  337. data/test/dummy/app/helpers/application_helper.rb +2 -0
  338. data/test/dummy/app/javascript/packs/application.js +15 -0
  339. data/test/dummy/app/jobs/application_job.rb +7 -0
  340. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  341. data/test/dummy/app/models/application_record.rb +3 -0
  342. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  343. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  344. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  345. data/test/dummy/bin/rails +4 -0
  346. data/test/dummy/bin/rake +4 -0
  347. data/test/dummy/bin/setup +33 -0
  348. data/test/dummy/config/application.rb +19 -0
  349. data/test/dummy/config/boot.rb +5 -0
  350. data/test/dummy/config/cable.yml +10 -0
  351. data/test/dummy/config/database.yml +25 -0
  352. data/test/dummy/config/environment.rb +5 -0
  353. data/test/dummy/config/environments/development.rb +62 -0
  354. data/test/dummy/config/environments/production.rb +112 -0
  355. data/test/dummy/config/environments/test.rb +49 -0
  356. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  357. data/test/dummy/config/initializers/assets.rb +12 -0
  358. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  359. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  360. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  361. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  362. data/test/dummy/config/initializers/inflections.rb +16 -0
  363. data/test/dummy/config/initializers/mime_types.rb +4 -0
  364. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  365. data/test/dummy/config/locales/en.yml +33 -0
  366. data/test/dummy/config/puma.rb +38 -0
  367. data/test/dummy/config/routes.rb +3 -0
  368. data/test/dummy/config/spring.rb +6 -0
  369. data/test/dummy/config/storage.yml +34 -0
  370. data/test/dummy/config.ru +5 -0
  371. data/test/dummy/db/development.sqlite3 +0 -0
  372. data/test/dummy/log/development.log +8 -0
  373. data/test/dummy/public/404.html +67 -0
  374. data/test/dummy/public/422.html +67 -0
  375. data/test/dummy/public/500.html +66 -0
  376. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  377. data/test/dummy/public/apple-touch-icon.png +0 -0
  378. data/test/dummy/public/favicon.ico +0 -0
  379. data/test/dummy/tmp/development_secret.txt +1 -0
  380. data/test/integration/navigation_test.rb +7 -0
  381. data/test/jinda_test.rb +7 -0
  382. data/test/test_helper.rb +19 -0
  383. metadata +466 -0
@@ -0,0 +1,34 @@
1
+
2
+
3
+ # ##########################################################################
4
+ # Load index.mm from Rails
5
+ # ##########################################################################
6
+ def get_app
7
+ # MM was defined in Rails: config/initializer/jinda.rb
8
+ f= MM || "#{Rails.root}/app/jinda/index.mm"
9
+ dir= File.dirname(f)
10
+ t= REXML::Document.new(File.read(MM).gsub("\n","")).root
11
+ recheck= true ; first_pass= true
12
+ while recheck
13
+ recheck= false
14
+ t.elements.each("//node") do |n|
15
+ if n.attributes['LINK'] # has attached file
16
+ if first_pass
17
+ f= "#{dir}/#{n.attributes['LINK']}"
18
+ else
19
+ f= n.attributes['LINK']
20
+ end
21
+ next unless File.exists?(f)
22
+ tt= REXML::Document.new(File.read(f).gsub("\n","")).root.elements["node"]
23
+ make_folders_absolute(f,tt)
24
+ tt.elements.each("node") do |tt_node|
25
+ n.parent.insert_before n, tt_node
26
+ end
27
+ recheck= true
28
+ n.parent.delete_element n
29
+ end
30
+ end
31
+ first_pass = false
32
+ end
33
+ return t
34
+ end
@@ -0,0 +1,26 @@
1
+ # -*- encoding : utf-8 -*-
2
+ require 'active_support'
3
+ require 'active_support/core_ext'
4
+
5
+ module Jinda
6
+ module Helpers
7
+ require "rexml/document"
8
+ include REXML
9
+ require_relative 'date_helpers'
10
+ require_relative 'gen_helpers'
11
+ require_relative 'gen_class'
12
+ require_relative 'gen_freemind'
13
+ require_relative 'gem_helpers'
14
+ require_relative 'refresh'
15
+ require_relative 'init_vars'
16
+ require_relative 'themes'
17
+ require_relative 'gen_xmain'
18
+ require_relative 'gen_models'
19
+ require_relative 'date_helpers'
20
+ require_relative 'rake_views'
21
+ require_relative 'gen_runseq'
22
+ require_relative 'gen_services'
23
+ require_relative 'get_app'
24
+ end
25
+ end
26
+
@@ -0,0 +1,36 @@
1
+ def init_vars_by_runseq(runseq_id)
2
+ @runseq= Jinda::Runseq.find runseq_id
3
+ @xmain= @runseq.xmain
4
+ @xvars= @xmain.xvars
5
+ #@xvars[:current_step]= @runseq.rstep
6
+ @runseq.start ||= Time.now
7
+ @runseq.status= 'R' # running
8
+ @runseq.save
9
+ end
10
+ def init_vars(xmain)
11
+ @xmain= Jinda::Xmain.find xmain
12
+ @xvars= @xmain.xvars
13
+ @runseq= @xmain.runseqs.find @xmain.current_runseq
14
+ # authorize?
15
+ @xvars['current_step']= @runseq.rstep
16
+ @xvars['referrer']= request.referrer
17
+ session[:xmain_id]= @xmain.id
18
+ session[:runseq_id]= @runseq.id
19
+ unless params[:action]=='run_call'
20
+ @runseq.start ||= Time.now
21
+ @runseq.status= 'R' # running
22
+ @runseq.save
23
+ end
24
+ $xmain= @xmain; $xvars= @xvars
25
+ $runseq_id= @runseq.id
26
+ $user_id= current_ma_user.try(:id)
27
+ end
28
+ def init_vars_by_runseq(runseq_id)
29
+ @runseq= Jinda::Runseq.find runseq_id
30
+ @xmain= @runseq.xmain
31
+ @xvars= @xmain.xvars
32
+ #@xvars[:current_step]= @runseq.rstep
33
+ @runseq.start ||= Time.now
34
+ @runseq.status= 'R' # running
35
+ @runseq.save
36
+ end
@@ -0,0 +1,18 @@
1
+ require 'jinda'
2
+ require 'jinda/helpers'
3
+
4
+ module Jinda
5
+ require 'rails'
6
+ class Railtie < Rails::Railtie
7
+ initializer 'testing' do |app|
8
+ ActionController::Base.send :include, Jinda::Helpers
9
+ end
10
+ rake_tasks do
11
+ load 'tasks/jinda.rake'
12
+ end
13
+ end
14
+ end
15
+
16
+ module ApplicationHelper
17
+ include Jinda::Helpers
18
+ end
@@ -0,0 +1,63 @@
1
+ ########################################################################
2
+ # Jinda Rake Task #
3
+ ########################################################################
4
+
5
+ def gen_views(prefix="")
6
+ @prefix = prefix.empty? ? "" : (prefix+"/")
7
+ t = ["*** generate ui ***"]
8
+
9
+ # create array of files to be tested
10
+ $afile = Array.new
11
+
12
+ Jinda::Module.all.each do |m|
13
+ m.services.each do |s|
14
+ dir = @prefix + "app/views/#{s.module.code}"
15
+ unless gen_view_file_exist?(dir)
16
+ gen_view_mkdir(dir,t)
17
+ end
18
+
19
+ if s.code=='link'
20
+ f= @prefix+"app/views/#{s.module.code}/index.haml"
21
+ $afile << f
22
+ unless gen_view_file_exist?(f)
23
+ # check if test (@prefix)
24
+ # sv = "app/jinda/template/linkview.haml"
25
+ sv = @prefix.blank? ? "app/jinda/template/linkview.haml" : "lib/generators/jinda/templates/app/jinda/template/linkview.haml"
26
+ f= @prefix+"app/views/#{s.module.code}/index.haml"
27
+ gen_view_createfile(sv,f,t)
28
+ end
29
+ next
30
+ end
31
+
32
+ dir = @prefix+"app/views/#{s.module.code}/#{s.code}"
33
+ unless gen_view_file_exist?(dir)
34
+ gen_view_mkdir(dir,t)
35
+ end
36
+
37
+ xml= REXML::Document.new(s.xml)
38
+ xml.elements.each('*/node') do |activity|
39
+ icon = activity.elements['icon']
40
+ next unless icon
41
+ action= freemind2action(icon.attributes['BUILTIN'])
42
+ next unless ui_action?(action)
43
+ code_name = activity.attributes["TEXT"].to_s
44
+ next if code_name.comment?
45
+ code= name2code(code_name)
46
+ if action=="pdf"
47
+ f= @prefix + "app/views/#{s.module.code}/#{s.code}/#{code}.pdf.prawn"
48
+ else
49
+ f= @prefix + "app/views/#{s.module.code}/#{s.code}/#{code}.html.erb"
50
+ end
51
+ $afile << f
52
+ unless gen_view_file_exist?(f)
53
+ # sv = "app/jinda/template/view.html.erb"
54
+ sv = @prefix.blank? ? "app/jinda/template/linkview.haml" : "lib/generators/jinda/templates/app/jinda/template/linkview.haml"
55
+ gen_view_createfile(sv,f,t)
56
+ end
57
+ end
58
+ end
59
+ end
60
+ puts $afile.join("\n")
61
+ puts t.join("\n")
62
+ return $afile
63
+ end
@@ -0,0 +1,67 @@
1
+ def b(s)
2
+ "<b>#{s}</b>".html_safe
3
+ end
4
+ def link_to_blank(body, url_options = {}, html_options = {})
5
+ link_to(body, url_options, html_options.merge(target: "_blank"))
6
+ end
7
+ def code_text(s) # old def code(s)
8
+ "<pre style='background-color: #efffef;'><code class='ruby' lang='ruby'>#{s}</code></pre>".html_safe
9
+ end
10
+
11
+ def refresh_to(url='/', option={})
12
+ if option[:alert]
13
+ ma_log option[:alert]
14
+ end
15
+ # skip #
16
+ # Rails 5.2 not allow to use js inline call
17
+ render inline: "<script>window.location.replace('#{url}')</script>"
18
+ # redirect_to url
19
+ # render js: "window.location.replace(\'#{url}\')"
20
+ end
21
+
22
+ # def refresh_to
23
+ # respond_to do |format|
24
+ # format.js { render :js => "refresh();" }
25
+ # end
26
+ # end
27
+
28
+ def read_binary(path)
29
+ File.open path, "rb" do |f| f.read end
30
+ end
31
+ def redirect_to_root
32
+ redirect_to root_path
33
+ end
34
+
35
+ # Todo refactor code
36
+ def get_option(opt, runseq=@runseq)
37
+ xml= REXML::Document.new(runseq.xml).root
38
+ url=''
39
+ # get option from second element of node using '//node'
40
+ xml.each_element('//node') do |n|
41
+ if n.attributes['TEXT']
42
+ text = n.attributes['TEXT']
43
+ url= text if text =~ /^#{opt}:\s*/
44
+ end
45
+ end
46
+ return nil if url.blank?
47
+ c, h= url.split(':', 2)
48
+ opt= h ? h.strip : false
49
+ end
50
+ def ma_comment?(s)
51
+ s[0]==35
52
+ end
53
+ def get_ip
54
+ request.env['HTTP_X_FORWARDED_FOR'] || request.env['REMOTE_ADDR']
55
+ end
56
+ def get_default_role
57
+ default_role= Jinda::Role.where(:code =>'default').first
58
+ return default_role ? default_role.name.to_s : ''
59
+ end
60
+
61
+ def sign_in?
62
+ if current_ma_user.present?
63
+ return true
64
+ else
65
+ return false
66
+ end
67
+ end
@@ -0,0 +1,175 @@
1
+
2
+ # ############################### Themes ###################################
3
+ #
4
+ # Check login user information from User model: name(code), image for Themes
5
+ #
6
+ # ##########################################################################
7
+ def get_login_user_info
8
+ if current_ma_user.present?
9
+ $user_image = ((current_ma_user.image != "") ? current_ma_user.image : asset_url("user.png", :width => "48"))
10
+ $user_name = current_ma_user.code
11
+ $user_email = current_ma_user.email
12
+ $user_id = current_ma_user.try(:id)
13
+ else
14
+ $user_image = asset_url("user.png", :width => "48")
15
+ $user_name = 'Guest User'
16
+ $user_email = 'guest@sample.com'
17
+ $user_id = ''
18
+ end
19
+ return $user_image, $user_name, $user_email,$user_id
20
+ end
21
+ # search image from User in Article/View/Show
22
+ def get_user_image(user_id)
23
+ user_image = User.find(user_id).image
24
+ user_image = ((user_image != "") ? user_image : asset_url("user.png", :width => "48"))
25
+ return user_image
26
+ end
27
+
28
+
29
+ def name2code(s)
30
+ # rather not ignore # symbol cause it could be comment
31
+ code, name = s.split(':')
32
+ code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
33
+ end
34
+ def name2camel(s)
35
+ s.gsub(' ','_').camelcase
36
+ end
37
+ def true_action?(s)
38
+ %w(call ws redirect invoke email).include? s
39
+ end
40
+ def set_global
41
+ $xmain= @xmain ; $runseq = @runseq ; $user = current_ma_user ; $xvars= @xmain.xvars; $ip = request.env["REMOTE_ADDR"]
42
+ end
43
+ def authorize? # use in pending tasks
44
+ @runseq= @xmain.runseqs.find @xmain.current_runseq
45
+ return false unless @runseq
46
+ @user = current_ma_user
47
+ set_global
48
+ return false unless eval(@runseq.rule) if @runseq.rule
49
+ return true if true_action?(@runseq.action)
50
+ # return false if check_wait
51
+ return true if @runseq.role.blank?
52
+ unless @runseq.role.empty?
53
+ return false unless @user.role
54
+ return @user.role.upcase.split(',').include?(@runseq.role.upcase)
55
+ end
56
+ return true
57
+ end
58
+ def authorize_init? # use when initialize new transaction
59
+ # check module role
60
+ mrole = @service.module.role
61
+ return false if mrole && !current_ma_user
62
+ return false if mrole && !current_ma_user.has_role(mrole)
63
+
64
+ # check step 1 role
65
+ xml= @service.xml
66
+ step1 = REXML::Document.new(xml).root.elements['node']
67
+ role= get_option_xml("role", step1) || ""
68
+ # rule= get_option_xml("rule", step1) || true
69
+ rule= get_option_xml("rule", step1) || true
70
+ return true if role==""
71
+ unless current_ma_user
72
+ return role.blank?
73
+ else
74
+ return false unless current_ma_user.role
75
+ return current_ma_user.has_role(role)
76
+ end
77
+
78
+ end
79
+ def ma_log(message)
80
+ # Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
81
+ # :unread=> true, :ip=> ($ip || request.env["REMOTE_ADDR"])
82
+ if session[:user_id]
83
+ Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
84
+ :user_id => $user.id, :unread=> true, :ip=>request.env["REMOTE_ADDR"]
85
+ else
86
+ Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
87
+ :unread=> true, :ip=>request.env["REMOTE_ADDR"]
88
+ end
89
+ end
90
+
91
+ alias :ma_notice :ma_log
92
+
93
+ # methods from application_helper
94
+ def markdown(text)
95
+ begin
96
+ erbified = ERB.new(text.html_safe).result(binding)
97
+ rescue => error
98
+ flash[:notice] = "This ruby version not support #{error}"
99
+ return
100
+ end
101
+ red = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
102
+ red.render(erbified).html_safe
103
+ end
104
+ def align_text(s, pixel=3)
105
+ "<span style='position:relative; top:-#{pixel}px;'>#{s}</span>".html_safe
106
+ end
107
+ def status_icon(status)
108
+ case status
109
+ when 'R'
110
+ image_tag 'user.png'
111
+ when 'F'
112
+ image_tag 'tick.png'
113
+ when 'I'
114
+ image_tag 'control_play.png'
115
+ when 'E'
116
+ image_tag 'logout.png'
117
+ when 'X'
118
+ image_tag 'cross.png'
119
+ else
120
+ image_tag 'cancel.png'
121
+ end
122
+ end
123
+ def role_name(code)
124
+ role= Jinda::Role.where(code:code).first
125
+ return role ? role.name : ""
126
+ end
127
+ def uncomment(s)
128
+ s.sub(/^#\s/,'')
129
+ end
130
+ def code_div(s)
131
+ "<pre style='background-color: #efffef;'><code class='ruby' lang='ruby'> #{s}</code></pre>".html_safe
132
+ end
133
+ def ajax?(s)
134
+ return s.match('file_field') ? false : true
135
+ end
136
+ def step(s, total) # square text
137
+ s = (s==0)? 1: s.to_i
138
+ total = total.to_i
139
+ out ="<div class='step'>"
140
+ (s-1).times {|ss| out += "<span class='steps_done'>#{(ss+1)}</span>" }
141
+ out += %Q@<span class='step_now' >@
142
+ out += s.to_s
143
+ out += "</span>"
144
+ out += %Q@@
145
+ for i in s+1..total
146
+ out += "<span class='steps_more'>#{i}</span>"
147
+ end
148
+ out += "</div>"
149
+ out.html_safe
150
+ end
151
+
152
+ def current_ma_user
153
+ # if session[:user_id]
154
+ # return @user ||= User.find(session[:user_id]['$oid'])
155
+ # else
156
+ # return nil
157
+ # end
158
+ #@user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
159
+ @user ||= User.where(:auth_token => cookies[:auth_token]).first if cookies[:auth_token]
160
+ return @user
161
+ end
162
+
163
+ def ui_action?(s)
164
+ %w(form output mail pdf).include? s
165
+ end
166
+ # def handle_ma_notice
167
+ # if Jinda::Notice.recent.count>0
168
+ # notice= Jinda::Notice.recent.last
169
+ # notice.update_attribute :unread, false
170
+ # "<script>notice('#{notice.message}');</script>"
171
+ # else
172
+ # ""
173
+ # end
174
+ # end
175
+
data/lib/jinda.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'jinda/version'
2
+ require 'jinda/railtie'
3
+
4
+ module Jinda
5
+ class Engine < ::Rails::Engine
6
+ end
7
+ end