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,17 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class Jinda::Service
3
+ include Mongoid::Document
4
+ field :uid, :type => String
5
+ field :module_code, :type => String
6
+ field :code, :type => String
7
+ field :name, :type => String
8
+ field :xml, :type => String
9
+ field :role, :type => String
10
+ field :rule, :type => String
11
+ field :seq, :type => Integer
12
+ field :list, :type => Boolean
13
+ field :ma_secured, :type => Boolean
14
+ field :confirm, :type => Boolean
15
+
16
+ belongs_to :module, :class_name => "Jinda::Module"
17
+ end
@@ -0,0 +1,38 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class Jinda::Xmain
3
+ include Mongoid::Document
4
+ field :xid, :type => String
5
+ # Jinda begin
6
+ include Mongoid::Timestamps
7
+ belongs_to :service, :class_name => "Jinda::Service"
8
+ field :start, :type => DateTime
9
+ field :stop, :type => DateTime
10
+ field :name, :type => String
11
+ field :ip, :type => String
12
+ field :status, :type => String
13
+ belongs_to :user, :class_name => "User"
14
+ field :xvars, :type => Hash
15
+ field :current_runseq, :type => String
16
+ # Jinda end
17
+
18
+ has_many :runseqs, :class_name => "Jinda::Runseq"
19
+ has_many :docs, :class_name => "Jinda::Doc"
20
+ before_create :assign_xid
21
+
22
+
23
+ # number of xmains on the specified date
24
+ def self.get(xid)
25
+ find_by(xid:xid)
26
+ end
27
+ def assign_xid
28
+ self.xid = Param.gen(:xid)
29
+ end
30
+ def self.number(d)
31
+ all(:conditions=>['DATE(created_at) =?', d.to_date]).count
32
+ end
33
+ def self.search(q, page, per_page=10)
34
+ paginate :per_page=>per_page, :page => page, :conditions =>
35
+ ["LOWER(xvars) LIKE ?", "%#{q}%" ],
36
+ :order=>'created_at DESC'
37
+ end
38
+ end
@@ -0,0 +1,22 @@
1
+ # encoding: utf-8
2
+ class Note
3
+ include Mongoid::Document
4
+ # jinda begin
5
+ include Mongoid::Timestamps
6
+ include Mongoid::Attributes::Dynamic
7
+ field :title, :type => String
8
+ field :body, :type => String
9
+ belongs_to :user
10
+ before_validation :ensure_title_has_a_value
11
+ validates :title, length: { maximum: (MAX_TITLE_LENGTH = 30), message: "Must be less than 30 characters" }, presence: true
12
+ validates :body, length: { maximum: (MAX_BODY_LENGTH = 1000), message: "Must be less than 1000 characters"}
13
+ private
14
+ def ensure_title_has_a_value
15
+ if title.blank?
16
+ self.title = body[0..(MAX_TITLE_LENGTH-1)] unless body.blank?
17
+ end
18
+ end
19
+
20
+
21
+ # jinda end
22
+ end
@@ -0,0 +1,41 @@
1
+ # encoding: utf-8
2
+ class Param
3
+ include Mongoid::Document
4
+ validates_uniqueness_of :code
5
+ # jinda begin
6
+ include Mongoid::Timestamps
7
+ field :code, :type => String
8
+ field :pid, :type => String
9
+ field :yearly, :type => Boolean
10
+ field :description, :type => String
11
+ # jinda end
12
+
13
+ def self.get(code)
14
+ p= where(:code=> code).first
15
+ p.pid
16
+ end
17
+ def self.set(code, pid)
18
+ p= where(:code=> code).first
19
+ p.pid = pid.to_s
20
+ p.save
21
+ end
22
+ def self.gen(code)
23
+ p= where(:code=> code).first
24
+ unless p
25
+ p= self.create! :code => code, :pid => '0', :yearly => false, :description => 'auto'
26
+ end
27
+ if p.yearly
28
+ num, year = p.pid.split('/')
29
+ y_now = (Time.now.year.to_i) -1957
30
+ if year.to_i==y_now
31
+ p.pid = "#{num.to_i+1}/#{y_now}"
32
+ else # new year, restart counter
33
+ p.pid = "1/#{y_now}"
34
+ end
35
+ else
36
+ p.pid = (p.pid.to_i+1).to_s
37
+ end
38
+ p.save
39
+ return p.pid
40
+ end
41
+ end
@@ -0,0 +1,14 @@
1
+ # encoding: utf-8
2
+ class Person
3
+ include Mongoid::Document
4
+ # jinda begin
5
+ include Mongoid::Timestamps
6
+ field :fname, :type => String
7
+ field :lname, :type => String
8
+ field :sex, :type => Integer
9
+ belongs_to :address
10
+ field :dob, :type => Date
11
+ field :phone, :type => String
12
+ field :photo, :type => String
13
+ # jinda end
14
+ end
@@ -0,0 +1,66 @@
1
+ class User
2
+ 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
+
17
+ belongs_to :identity, :polymorphic => true, :optional => true
18
+ has_many :xmains, :class_name => "Jinda::Xmain"
19
+ validates :code,
20
+ presence: true,
21
+ uniqueness: true
22
+
23
+ ## Add to create forgot password
24
+ def generate_token(column)
25
+ begin
26
+ self[column] = SecureRandom.urlsafe_base64
27
+ end
28
+ #end while User.exists?(column => self[column])
29
+ end
30
+
31
+ def has_role(role1)
32
+ return role.upcase.split(',').include?(role1.upcase)
33
+ end
34
+
35
+ 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
+ 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
52
+ end
53
+ end
54
+
55
+ def ma_secured?
56
+ role.upcase.split(',').include?(ma_secured_ROLE)
57
+ end
58
+
59
+ def send_password_reset
60
+ generate_token(:password_reset_token)
61
+ self.password_reset_sent_at = Time.zone.now
62
+ save!
63
+ UserMailer.password_reset(self).deliver
64
+ end
65
+
66
+ end
@@ -0,0 +1,241 @@
1
+ %section.content
2
+ .container-fluid
3
+ .block-header
4
+ %h2 DASHBOARD
5
+ / Widgets
6
+ .row.clearfix
7
+ .col-lg-3.col-md-3.col-sm-6.col-xs-12
8
+ .info-box.bg-pink.hover-expand-effect
9
+ .icon
10
+ %i.material-icons playlist_add_check
11
+ .content
12
+ .text NEW TASKS
13
+ .number.count-to{"data-fresh-interval" => "20", "data-from" => "0", "data-speed" => "15", "data-to" => "125"}
14
+ .col-lg-3.col-md-3.col-sm-6.col-xs-12
15
+ .info-box.bg-cyan.hover-expand-effect
16
+ .icon
17
+ %i.material-icons help
18
+ .content
19
+ .text NEW TICKETS
20
+ .number.count-to{"data-fresh-interval" => "20", "data-from" => "0", "data-speed" => "1000", "data-to" => "257"}
21
+ .col-lg-3.col-md-3.col-sm-6.col-xs-12
22
+ .info-box.bg-light-green.hover-expand-effect
23
+ .icon
24
+ %i.material-icons forum
25
+ .content
26
+ .text NEW COMMENTS
27
+ .number.count-to{"data-fresh-interval" => "20", "data-from" => "0", "data-speed" => "1000", "data-to" => "243"}
28
+ .col-lg-3.col-md-3.col-sm-6.col-xs-12
29
+ .info-box.bg-orange.hover-expand-effect
30
+ .icon
31
+ %i.material-icons person_add
32
+ .content
33
+ .text NEW VISITORS
34
+ .number.count-to{"data-fresh-interval" => "20", "data-from" => "0", "data-speed" => "1000", "data-to" => "1225"}
35
+ / #END# Widgets
36
+ / CPU Usage
37
+ .row.clearfix
38
+ .col-xs-12.col-sm-12.col-md-12.col-lg-12
39
+ .card
40
+ .header
41
+ .row.clearfix
42
+ .col-xs-12.col-sm-6
43
+ %h2 CPU USAGE (%)
44
+ .col-xs-12.col-sm-6.align-right
45
+ .switch.panel-switch-btn
46
+ %span.m-r-10.font-12 REAL TIME
47
+ %label
48
+ OFF
49
+ %input#realtime{:checked => "checked", :type => "checkbox"}/
50
+ = succeed "ON" do
51
+ %span.lever.switch-col-cyan
52
+ %ul.header-dropdown.m-r--5
53
+ %li.dropdown
54
+ %a.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "javascript:void(0);", :role => "button"}
55
+ %i.material-icons more_vert
56
+ %ul.dropdown-menu.pull-right
57
+ %li
58
+ %a{:href => "javascript:void(0);"} Action
59
+ %li
60
+ %a{:href => "javascript:void(0);"} Another action
61
+ %li
62
+ %a{:href => "javascript:void(0);"} Something else here
63
+ .body
64
+ #real_time_chart.dashboard-flot-chart
65
+ / #END# CPU Usage
66
+ .row.clearfix
67
+ / Visitors
68
+ .col-xs-12.col-sm-12.col-md-4.col-lg-4
69
+ .card
70
+ .body.bg-pink
71
+ .sparkline{"data-fill-color" => "rgba(0, 188, 212, 0)", "data-height" => "92px", "data-highlight-line-color" => "#fff", "data-highlight-spot-color" => "rgb(233, 30, 99)", "data-line-color" => "rgba(255,255,255,0.7)", "data-line-width" => "2", "data-max-spot-color" => "rgb(255,255,255)", "data-min-spot-color" => "rgb(255,255,255)", "data-offset" => "90", "data-spot-color" => "rgb(255,255,255)", "data-spot-radius" => "4", "data-type" => "line", "data-width" => "100%"}
72
+ 12,10,9,6,5,6,10,5,7,5,12,13,7,12,11
73
+ %ul.dashboard-stat-list
74
+ %li
75
+ TODAY
76
+ %span.pull-right
77
+ %b 1 200
78
+ %small USERS
79
+ %li
80
+ YESTERDAY
81
+ %span.pull-right
82
+ %b 3 872
83
+ %small USERS
84
+ %li
85
+ LAST WEEK
86
+ %span.pull-right
87
+ %b 26 582
88
+ %small USERS
89
+ / #END# Visitors
90
+ / Latest Social Trends
91
+ .col-xs-12.col-sm-12.col-md-4.col-lg-4
92
+ .card
93
+ .body.bg-cyan
94
+ .m-b--35.font-bold LATEST SOCIAL TRENDS
95
+ %ul.dashboard-stat-list
96
+ %li
97
+ \#socialtrends
98
+ %span.pull-right
99
+ %i.material-icons trending_up
100
+ %li
101
+ \#materialdesign
102
+ %span.pull-right
103
+ %i.material-icons trending_up
104
+ %li #adminbsb
105
+ %li #freeadmintemplate
106
+ %li #bootstraptemplate
107
+ %li
108
+ \#freehtmltemplate
109
+ %span.pull-right
110
+ %i.material-icons trending_up
111
+ / #END# Latest Social Trends
112
+ / Answered Tickets
113
+ .col-xs-12.col-sm-12.col-md-4.col-lg-4
114
+ .card
115
+ .body.bg-teal
116
+ .font-bold.m-b--35 ANSWERED TICKETS
117
+ %ul.dashboard-stat-list
118
+ %li
119
+ TODAY
120
+ %span.pull-right
121
+ %b 12
122
+ %small TICKETS
123
+ %li
124
+ YESTERDAY
125
+ %span.pull-right
126
+ %b 15
127
+ %small TICKETS
128
+ %li
129
+ LAST WEEK
130
+ %span.pull-right
131
+ %b 90
132
+ %small TICKETS
133
+ %li
134
+ LAST MONTH
135
+ %span.pull-right
136
+ %b 342
137
+ %small TICKETS
138
+ %li
139
+ LAST YEAR
140
+ %span.pull-right
141
+ %b 4 225
142
+ %small TICKETS
143
+ %li
144
+ ALL
145
+ %span.pull-right
146
+ %b 8 752
147
+ %small TICKETS
148
+ / #END# Answered Tickets
149
+ .row.clearfix
150
+ / Task Info
151
+ .col-xs-12.col-sm-12.col-md-8.col-lg-8
152
+ .card
153
+ .header
154
+ %h2 TASK INFOS
155
+ %ul.header-dropdown.m-r--5
156
+ %li.dropdown
157
+ %a.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "javascript:void(0);", :role => "button"}
158
+ %i.material-icons more_vert
159
+ %ul.dropdown-menu.pull-right
160
+ %li
161
+ %a{:href => "javascript:void(0);"} Action
162
+ %li
163
+ %a{:href => "javascript:void(0);"} Another action
164
+ %li
165
+ %a{:href => "javascript:void(0);"} Something else here
166
+ .body
167
+ .table-responsive
168
+ %table.table.table-hover.dashboard-task-infos
169
+ %thead
170
+ %tr
171
+ %th #
172
+ %th Task
173
+ %th Status
174
+ %th Manager
175
+ %th Progress
176
+ %tbody
177
+ %tr
178
+ %td 1
179
+ %td Task A
180
+ %td
181
+ %span.label.bg-green Doing
182
+ %td John Doe
183
+ %td
184
+ .progress
185
+ .progress-bar.bg-green{"aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => "62", :role => "progressbar", :style => "width: 62%"}
186
+ %tr
187
+ %td 2
188
+ %td Task B
189
+ %td
190
+ %span.label.bg-blue To Do
191
+ %td John Doe
192
+ %td
193
+ .progress
194
+ .progress-bar.bg-blue{"aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => "40", :role => "progressbar", :style => "width: 40%"}
195
+ %tr
196
+ %td 3
197
+ %td Task C
198
+ %td
199
+ %span.label.bg-light-blue On Hold
200
+ %td John Doe
201
+ %td
202
+ .progress
203
+ .progress-bar.bg-light-blue{"aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => "72", :role => "progressbar", :style => "width: 72%"}
204
+ %tr
205
+ %td 4
206
+ %td Task D
207
+ %td
208
+ %span.label.bg-orange Wait Approvel
209
+ %td John Doe
210
+ %td
211
+ .progress
212
+ .progress-bar.bg-orange{"aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => "95", :role => "progressbar", :style => "width: 95%"}
213
+ %tr
214
+ %td 5
215
+ %td Task E
216
+ %td
217
+ %span.label.bg-red Suspended
218
+ %td John Doe
219
+ %td
220
+ .progress
221
+ .progress-bar.bg-red{"aria-valuemax" => "100", "aria-valuemin" => "0", "aria-valuenow" => "87", :role => "progressbar", :style => "width: 87%"}
222
+ / #END# Task Info
223
+ / Browser Usage
224
+ .col-xs-12.col-sm-12.col-md-4.col-lg-4
225
+ .card
226
+ .header
227
+ %h2 BROWSER USAGE
228
+ %ul.header-dropdown.m-r--5
229
+ %li.dropdown
230
+ %a.dropdown-toggle{"aria-expanded" => "false", "aria-haspopup" => "true", "data-toggle" => "dropdown", :href => "javascript:void(0);", :role => "button"}
231
+ %i.material-icons more_vert
232
+ %ul.dropdown-menu.pull-right
233
+ %li
234
+ %a{:href => "javascript:void(0);"} Action
235
+ %li
236
+ %a{:href => "javascript:void(0);"} Another action
237
+ %li
238
+ %a{:href => "javascript:void(0);"} Something else here
239
+ .body
240
+ #donut_chart.dashboard-donut-chart
241
+ / #END# Browser Usage
@@ -0,0 +1,7 @@
1
+ <%
2
+ user = User.find_by :code=> $xvars["select_user"]["code"]
3
+ %>
4
+ Role codes seperated by comma
5
+ <p>
6
+ <%= label_tag :role, "Role" %>
7
+ <%= text_field_tag :role, user.role %>
@@ -0,0 +1,4 @@
1
+ <div class="field" data-role="fieldcontain">
2
+ <%= label_tag :code, 'User code' %>
3
+ <%= select_tag :code, options_from_collection_for_select(User.all.asc(:code), :code, :code), "data-native-menu"=>"false" %>
4
+ </div>
@@ -0,0 +1,35 @@
1
+ .box.box-info
2
+ .box-header.with-border
3
+ .box-tools.pull-right
4
+ %button.btn.btn-box-tool{"data-widget" => "collapse", :type => "button"}
5
+ %i.fa.fa-minus
6
+ %button.btn.btn-box-tool{"data-widget" => "remove", :type => "button"}
7
+ %i.fa.fa-times
8
+ / /.box-header
9
+ .box-body
10
+ .table-responsive
11
+ %table.table.no-margin
12
+ %thead
13
+ %tr
14
+ - unless current_ma_user.nil?
15
+ - if current_ma_user.role.include?"A"
16
+ %th Author
17
+ %th Title
18
+ %th Description
19
+ %th Created
20
+ %th Updated
21
+ %th Delete
22
+ %th Edit
23
+ - report.each do |article|
24
+ - user = User.find(article.user_id)
25
+ %tr
26
+ -# if current_ma_user.role.include?"A"
27
+ - unless current_ma_user.nil?
28
+ - if current_ma_user.role.include?"A"
29
+ %td= user.code
30
+ %td= link_to article.title, :controller=>"articles", :action=>"show", :article_id => article.id
31
+ %td= article.text.html_safe
32
+ %td= article.created_at.strftime('%m/%d/%Y')
33
+ %td= article.updated_at.strftime('%m/%d/%Y')
34
+ %td(align='center')= link_to image_tag('delete.png', style:'border:none; float:none;'), {controller: "articles", action: "destroy", article_id: article.id}, data: { confirm: "Please Confirm" }
35
+ %td(align='center')= link_to image_tag('pencil.png', style:'border:none; float:none;'), {controller: "jinda", action: "init", s: 'articles:xedit_article', article_id: article.id}, data: { confirm: "Please Confirm" }
@@ -0,0 +1,23 @@
1
+ - @title= "Edit"
2
+ - @page_title = 'Edit'
3
+ .container
4
+ %div.row::before
5
+ %div.col-md-12
6
+ %h2.display-3.mt-5.pt-5
7
+ = @article.title
8
+ %hr
9
+ = @article.text
10
+ %h4.display-5
11
+ = @article.body.html_safe
12
+
13
+ .container
14
+ .card
15
+ = form_for @article, :html => {:class => "form-horizontal center"} , :article_id => @article.id do |f|
16
+ .form-group
17
+ = f.text_field :title, class: "form-control", :required => true
18
+ .form-group
19
+ = f.text_field :text, class: "form-control", :required => true
20
+ .form-group
21
+ = f.text_area :body, rows: 10, class: "form-control"
22
+ .form-group
23
+ = f.submit "Submit", class: "btn btn-default btn-success"
@@ -0,0 +1,15 @@
1
+ <%
2
+ article = Article.find_by :id=> $xvars["select_article"]["title"]
3
+ %>
4
+ <div class ="module-table">
5
+ <%= fields_for article do |f| %>
6
+ <%= f.label :title, "Title" %>
7
+ <%= f.text_field :title %>
8
+ <%= f.label :text, "Text" %>
9
+ <%= f.text_field :text %>
10
+ <%= f.label :text, "Keywords" %>
11
+ <%= f.text_field :keywords %>
12
+ <%= f.label :body, "Body Content" %>
13
+ <%= f.text_area :body %>
14
+ <% end %>
15
+ </div>
@@ -0,0 +1,12 @@
1
+ <%
2
+ if current_ma_user.role.upcase.split(',').include?("A")
3
+ article = Article.all.desc(:created_at)
4
+ else
5
+ article = Article.where(user: current_ma_user).desc(:created_at)
6
+ end
7
+ %>
8
+ <div class="field" data-role="fieldcontain">
9
+ <%= label_tag :title, 'Article title' %>
10
+ <%= select_tag :title, options_from_collection_for_select(article, :id, :title), "data-native-menu"=>"false" %>
11
+ </div>
12
+
@@ -0,0 +1,5 @@
1
+ - @title= "All Articles"
2
+ %p
3
+ - @page_title = 'All Articlces'
4
+ = render :partial => 'report', locals: { report: @articles}
5
+ = paginate @articles
@@ -0,0 +1,5 @@
1
+ - @title= "My Articles"
2
+ %p
3
+ - @page_title = 'All Articlces'
4
+ = render :partial => 'report', locals: { report: @my_articles}
5
+ = paginate @my_articles
@@ -0,0 +1,16 @@
1
+ <%- @title= 'New Article' %>
2
+ <%
3
+ article = @article
4
+ %>
5
+ <div class ="module-table">
6
+ <%= fields_for article do |f| %>
7
+ <%= f.label :title, "Title" %>
8
+ <%= f.text_field :title, :required => true %>
9
+ <%= f.label :text, "Description" %>
10
+ <%= f.text_field :text, :required => true %>
11
+ <%= f.label :text, "Keywords" %>
12
+ <%= f.text_field :keywords %>
13
+ <%= f.label :body, "Body Content" %>
14
+ <%= f.text_area :body, :required => true %>
15
+ <% end %>
16
+ </div>
@@ -0,0 +1,58 @@
1
+ - title @show[:article][:title]
2
+ - description @show[:article][:text]
3
+ - keywords @show[:article][:keywords]
4
+ .container
5
+ %div.row::before
6
+ %div.col-md-12
7
+ .row-description
8
+ %h2.display-3.mt-5.pt-5
9
+ = @show[:article][:title]
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
+ %div.font-weight-light
12
+ by
13
+ %img.img-circle{:alt => "User Image", src: @show[:user][:image] }/
14
+ %div.font-weight-light
15
+ = @show[:user][:code]
16
+ %div.font-weight-light
17
+ = @show[:article][:created_at]
18
+ %hr
19
+ = @show[:article][:text]
20
+ %h4.row-body
21
+ = @show[:article][:body].html_safe
22
+ %hr
23
+ - @show[:comments].each do |comment|
24
+ %div#article-comment.ui-corner-all
25
+ .col-md-12
26
+ %div.small-box.bg-white.text-info
27
+ %div.inner
28
+ %div.font-weight-light
29
+ - user_image = get_user_image(comment.user_id)
30
+ %img.comment-user-image{:alt => "User Image", src: user_image}/
31
+
32
+ %div.font-weight-light
33
+ Author:
34
+ %b= comment.name if comment.name
35
+ %div.right-date
36
+ 12/12/2021
37
+ %div#comment-body
38
+ %i= comment.body
39
+
40
+ - if login?
41
+ %hr
42
+ %h4.col-md-12
43
+ Add a comment:
44
+ = form_with(model: [@show[:article], Comment.new], local: true) do |f|
45
+ .form-group
46
+ = f.hidden_field :article_id, :value => @show[:article][:id]
47
+ .form-group
48
+ = f.label :body, "Comment"
49
+ .form-group
50
+ = f.text_area :body, rows: 5, class: "form-control"
51
+ .form-group
52
+ = f.hidden_field :user_id, :value => current_ma_user.id
53
+ .form-group
54
+ = f.hidden_field :name, :value => current_ma_user.code
55
+ .form-group
56
+ = f.hidden_field :image, :value => current_ma_user.image
57
+ .form-group
58
+ = f.submit "Submit", class: "btn btn-default btn-success"
@@ -0,0 +1,13 @@
1
+ <%
2
+ article = Article.find_by :id=> $xvars["p"]["article_id"]
3
+ %>
4
+ <%= fields_for article do |f| %>
5
+ <%= f.label :title, "Title" %>
6
+ <%= f.text_field :title %>
7
+ <%= f.label :text, "Description" %>
8
+ <%= f.text_field :text %>
9
+ <%= f.label :text, "Keywords" %>
10
+ <%= f.text_field :keywords %>
11
+ <%= f.label :body, "Body Content" %>
12
+ <%= f.text_area :body %>
13
+ <% end %>