jinda 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +179 -0
  4. data/Rakefile +1 -0
  5. data/bin/console +14 -0
  6. data/bin/setup +8 -0
  7. data/lib/generators/jinda/USAGE +2 -0
  8. data/lib/generators/jinda/install_generator.rb +192 -0
  9. data/lib/generators/jinda/mongoid_generator.rb +35 -0
  10. data/lib/generators/jinda/templates/app/assets/config/manifest.js +3 -0
  11. data/lib/generators/jinda/templates/app/assets/images/4dcity-old.ico +0 -0
  12. data/lib/generators/jinda/templates/app/assets/images/4dcity.ico +0 -0
  13. data/lib/generators/jinda/templates/app/assets/images/account.png +0 -0
  14. data/lib/generators/jinda/templates/app/assets/images/add.png +0 -0
  15. data/lib/generators/jinda/templates/app/assets/images/ajax-loader-circle.gif +0 -0
  16. data/lib/generators/jinda/templates/app/assets/images/ajax-loader.gif +0 -0
  17. data/lib/generators/jinda/templates/app/assets/images/anchor.png +0 -0
  18. data/lib/generators/jinda/templates/app/assets/images/application_double.png +0 -0
  19. data/lib/generators/jinda/templates/app/assets/images/application_form_edit.png +0 -0
  20. data/lib/generators/jinda/templates/app/assets/images/arrow_left.png +0 -0
  21. data/lib/generators/jinda/templates/app/assets/images/arrow_right.png +0 -0
  22. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_left.png +0 -0
  23. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_right.png +0 -0
  24. data/lib/generators/jinda/templates/app/assets/images/calendar.png +0 -0
  25. data/lib/generators/jinda/templates/app/assets/images/cancel.png +0 -0
  26. data/lib/generators/jinda/templates/app/assets/images/chart_bar.png +0 -0
  27. data/lib/generators/jinda/templates/app/assets/images/clock.png +0 -0
  28. data/lib/generators/jinda/templates/app/assets/images/cog.png +0 -0
  29. data/lib/generators/jinda/templates/app/assets/images/control_fastforward.png +0 -0
  30. data/lib/generators/jinda/templates/app/assets/images/control_play.png +0 -0
  31. data/lib/generators/jinda/templates/app/assets/images/cross.png +0 -0
  32. data/lib/generators/jinda/templates/app/assets/images/delete.png +0 -0
  33. data/lib/generators/jinda/templates/app/assets/images/external-link.png +0 -0
  34. data/lib/generators/jinda/templates/app/assets/images/facebook-button.png +0 -0
  35. data/lib/generators/jinda/templates/app/assets/images/facebook-sign-in-button.png +0 -0
  36. data/lib/generators/jinda/templates/app/assets/images/facebooksmall.png +0 -0
  37. data/lib/generators/jinda/templates/app/assets/images/favicon.ico +0 -0
  38. data/lib/generators/jinda/templates/app/assets/images/freemind(mm).png +0 -0
  39. data/lib/generators/jinda/templates/app/assets/images/help.png +0 -0
  40. data/lib/generators/jinda/templates/app/assets/images/highway-menu.png +0 -0
  41. data/lib/generators/jinda/templates/app/assets/images/highway.png +0 -0
  42. data/lib/generators/jinda/templates/app/assets/images/house.png +0 -0
  43. data/lib/generators/jinda/templates/app/assets/images/icons-18-black.png +0 -0
  44. data/lib/generators/jinda/templates/app/assets/images/icons-18-white.png +0 -0
  45. data/lib/generators/jinda/templates/app/assets/images/icons-36-black.png +0 -0
  46. data/lib/generators/jinda/templates/app/assets/images/icons-36-white.png +0 -0
  47. data/lib/generators/jinda/templates/app/assets/images/logo.png +0 -0
  48. data/lib/generators/jinda/templates/app/assets/images/logo_jinda.png +0 -0
  49. data/lib/generators/jinda/templates/app/assets/images/logout.png +0 -0
  50. data/lib/generators/jinda/templates/app/assets/images/new.gif +0 -0
  51. data/lib/generators/jinda/templates/app/assets/images/new.png +0 -0
  52. data/lib/generators/jinda/templates/app/assets/images/page.png +0 -0
  53. data/lib/generators/jinda/templates/app/assets/images/page_attach.png +0 -0
  54. data/lib/generators/jinda/templates/app/assets/images/page_green.png +0 -0
  55. data/lib/generators/jinda/templates/app/assets/images/page_output.png +0 -0
  56. data/lib/generators/jinda/templates/app/assets/images/page_pdf.png +0 -0
  57. data/lib/generators/jinda/templates/app/assets/images/pencil.png +0 -0
  58. data/lib/generators/jinda/templates/app/assets/images/printer.png +0 -0
  59. data/lib/generators/jinda/templates/app/assets/images/refresh.png +0 -0
  60. data/lib/generators/jinda/templates/app/assets/images/report.png +0 -0
  61. data/lib/generators/jinda/templates/app/assets/images/rssmall.png +0 -0
  62. data/lib/generators/jinda/templates/app/assets/images/tick.png +0 -0
  63. data/lib/generators/jinda/templates/app/assets/images/twittersmall.png +0 -0
  64. data/lib/generators/jinda/templates/app/assets/images/user.png +0 -0
  65. data/lib/generators/jinda/templates/app/assets/images/view_code.png +0 -0
  66. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +26 -0
  67. data/lib/generators/jinda/templates/app/assets/javascripts/cable.js +13 -0
  68. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/application.js-jqm +26 -0
  69. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/disable_enter_key.js +10 -0
  70. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/iscroll-wrapper.js +32 -0
  71. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/iscroll.js +1084 -0
  72. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jinda.js +14 -0
  73. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile-1.2.1.js +9272 -0
  74. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile.datebox.js +1772 -0
  75. data/lib/generators/jinda/templates/app/assets/javascripts/jqm/jquery.mobile.splitview.js +695 -0
  76. data/lib/generators/jinda/templates/app/assets/stylesheets/application.scss +30 -0
  77. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.eot +0 -0
  78. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
  79. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.woff +0 -0
  80. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  81. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  82. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  83. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  84. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  85. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  86. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew.css +47 -0
  87. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  88. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  89. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  90. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  91. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  92. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  93. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  94. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  95. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  96. data/lib/generators/jinda/templates/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  97. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_black.png +0 -0
  98. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_blue.png +0 -0
  99. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_red.png +0 -0
  100. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-black.png +0 -0
  101. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-white.png +0 -0
  102. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-black.png +0 -0
  103. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-white.png +0 -0
  104. data/lib/generators/jinda/templates/app/assets/stylesheets/images/indicator.gif +0 -0
  105. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/application.scss-jqm +30 -0
  106. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/articles.scss +84 -0
  107. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jinda.css +138 -0
  108. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile-1.2.1.css +2339 -0
  109. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile.datebox.css +65 -0
  110. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile.grids.collapsible.css +122 -0
  111. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/jquery.mobile.splitview.css +128 -0
  112. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/kul-4.2.css +1516 -0
  113. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/kul-4.2.min.css +11 -0
  114. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/rouge.css.erb +11 -0
  115. data/lib/generators/jinda/templates/app/assets/stylesheets/jqm/sarabun.css +37 -0
  116. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +4 -0
  117. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +4 -0
  118. data/lib/generators/jinda/templates/app/controllers/admins_controller.rb +6 -0
  119. data/lib/generators/jinda/templates/app/controllers/application_controller.rb +40 -0
  120. data/lib/generators/jinda/templates/app/controllers/articles_controller.rb +67 -0
  121. data/lib/generators/jinda/templates/app/controllers/comments_controller.rb +17 -0
  122. data/lib/generators/jinda/templates/app/controllers/ctrs_controller.rb +2 -0
  123. data/lib/generators/jinda/templates/app/controllers/devs_controller.rb +2 -0
  124. data/lib/generators/jinda/templates/app/controllers/identities_controller.rb +5 -0
  125. data/lib/generators/jinda/templates/app/controllers/jinda_controller.rb +537 -0
  126. data/lib/generators/jinda/templates/app/controllers/password_resets.rb +28 -0
  127. data/lib/generators/jinda/templates/app/controllers/password_resets_controller.rb +34 -0
  128. data/lib/generators/jinda/templates/app/controllers/sessions_controller.rb +37 -0
  129. data/lib/generators/jinda/templates/app/controllers/sitemap_controller.rb +12 -0
  130. data/lib/generators/jinda/templates/app/controllers/users_controller.rb +34 -0
  131. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  132. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +33 -0
  133. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  134. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  135. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  136. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  137. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  138. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  139. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  140. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  141. data/lib/generators/jinda/templates/app/jinda/index.mm +189 -0
  142. data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +23 -0
  143. data/lib/generators/jinda/templates/app/jobs/application_job.rb +2 -0
  144. data/lib/generators/jinda/templates/app/mailers/application_mailer.rb +4 -0
  145. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +7 -0
  146. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +15 -0
  147. data/lib/generators/jinda/templates/app/models/address.rb +14 -0
  148. data/lib/generators/jinda/templates/app/models/article.rb +14 -0
  149. data/lib/generators/jinda/templates/app/models/ckeditor/asset.rb +5 -0
  150. data/lib/generators/jinda/templates/app/models/ckeditor/attachment_file.rb +13 -0
  151. data/lib/generators/jinda/templates/app/models/ckeditor/picture.rb +14 -0
  152. data/lib/generators/jinda/templates/app/models/comment.rb +11 -0
  153. data/lib/generators/jinda/templates/app/models/identity.rb +16 -0
  154. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +31 -0
  155. data/lib/generators/jinda/templates/app/models/jinda/module.rb +11 -0
  156. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +14 -0
  157. data/lib/generators/jinda/templates/app/models/jinda/role.rb +8 -0
  158. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +24 -0
  159. data/lib/generators/jinda/templates/app/models/jinda/service.rb +17 -0
  160. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +38 -0
  161. data/lib/generators/jinda/templates/app/models/param.rb +41 -0
  162. data/lib/generators/jinda/templates/app/models/person.rb +14 -0
  163. data/lib/generators/jinda/templates/app/models/user.rb +59 -0
  164. data/lib/generators/jinda/templates/app/views/adminbsbs/content.haml +241 -0
  165. data/lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb +7 -0
  166. data/lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb +4 -0
  167. data/lib/generators/jinda/templates/app/views/articles/edit.haml +12 -0
  168. data/lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb +13 -0
  169. data/lib/generators/jinda/templates/app/views/articles/edit_article/select_article.html.erb +12 -0
  170. data/lib/generators/jinda/templates/app/views/articles/index.haml +23 -0
  171. data/lib/generators/jinda/templates/app/views/articles/my.haml +21 -0
  172. data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +14 -0
  173. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +24 -0
  174. data/lib/generators/jinda/templates/app/views/articles/xedit_article/edit_article.html.erb +13 -0
  175. data/lib/generators/jinda/templates/app/views/articles/xedit_article/xedit_article.html.erb +11 -0
  176. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile1.html.erb +23 -0
  177. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile2.html.erb +23 -0
  178. data/lib/generators/jinda/templates/app/views/ctrs/vfolder2/viewfile2.html.erb +23 -0
  179. data/lib/generators/jinda/templates/app/views/custom/_adsense.haml +6 -0
  180. data/lib/generators/jinda/templates/app/views/identities/new.html.erb +30 -0
  181. data/lib/generators/jinda/templates/app/views/jinda/_activity.md +10 -0
  182. data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +24 -0
  183. data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +29 -0
  184. data/lib/generators/jinda/templates/app/views/jinda/_model.md +5 -0
  185. data/lib/generators/jinda/templates/app/views/jinda/_modul.md +9 -0
  186. data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +5 -0
  187. data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +24 -0
  188. data/lib/generators/jinda/templates/app/views/jinda/_service.md +24 -0
  189. data/lib/generators/jinda/templates/app/views/jinda/_static.haml +23 -0
  190. data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +37 -0
  191. data/lib/generators/jinda/templates/app/views/jinda/doc.md +36 -0
  192. data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +22 -0
  193. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +27 -0
  194. data/lib/generators/jinda/templates/app/views/jinda/help.haml +20 -0
  195. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +39 -0
  196. data/lib/generators/jinda/templates/app/views/jinda/logs.haml +22 -0
  197. data/lib/generators/jinda/templates/app/views/jinda/pending.haml +1 -0
  198. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +37 -0
  199. data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +38 -0
  200. data/lib/generators/jinda/templates/app/views/jinda/search.haml +20 -0
  201. data/lib/generators/jinda/templates/app/views/jinda/status.haml +61 -0
  202. data/lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb +9 -0
  203. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +13 -0
  204. data/lib/generators/jinda/templates/app/views/layouts/_meta_tags.html.erb +5 -0
  205. data/lib/generators/jinda/templates/app/views/layouts/_metatag.html.erb +19 -0
  206. data/lib/generators/jinda/templates/app/views/layouts/application.haml +4 -0
  207. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +7 -0
  208. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +147 -0
  209. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +47 -0
  210. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +34 -0
  211. data/lib/generators/jinda/templates/app/views/layouts/bsb/_rightbar.haml +123 -0
  212. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +155 -0
  213. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +47 -0
  214. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +9 -0
  215. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +41 -0
  216. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +16 -0
  217. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +4 -0
  218. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +13 -0
  219. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +3 -0
  220. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +1 -0
  221. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +1 -0
  222. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +13 -0
  223. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +31 -0
  224. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +22 -0
  225. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +22 -0
  226. data/lib/generators/jinda/templates/app/views/new.html.erb +7 -0
  227. data/lib/generators/jinda/templates/app/views/password_resets/edit.html.erb +21 -0
  228. data/lib/generators/jinda/templates/app/views/password_resets/new.html.erb +7 -0
  229. data/lib/generators/jinda/templates/app/views/sessions/new.html.erb +16 -0
  230. data/lib/generators/jinda/templates/app/views/sitemap/index.xml.haml +10 -0
  231. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml +3 -0
  232. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb +3 -0
  233. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.haml +3 -0
  234. data/lib/generators/jinda/templates/app/views/users/index.haml +13 -0
  235. data/lib/generators/jinda/templates/app/views/users/pwd/enter.html.erb +6 -0
  236. data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +8 -0
  237. data/lib/generators/jinda/templates/cloudinary.yml +9 -0
  238. data/lib/generators/jinda/templates/jinda.yml +10 -0
  239. data/lib/generators/jinda/templates/public/404.html +67 -0
  240. data/lib/generators/jinda/templates/public/422.html +67 -0
  241. data/lib/generators/jinda/templates/public/500.html +66 -0
  242. data/lib/generators/jinda/templates/public/assets/images/logo.png +0 -0
  243. data/lib/generators/jinda/templates/public/favicon.ico +0 -0
  244. data/lib/generators/jinda/templates/public/robots.txt +3 -0
  245. data/lib/generators/jinda/templates/seeds.rb +6 -0
  246. data/lib/generators/jinda/templates/spec/controllers/admins_controller_spec.rb +5 -0
  247. data/lib/generators/jinda/templates/spec/controllers/devs_controller_spec.rb +5 -0
  248. data/lib/generators/jinda/templates/spec/controllers/users_controller_spec.rb +5 -0
  249. data/lib/generators/jinda/templates/spec/helpers/admins_helper_spec.rb +15 -0
  250. data/lib/generators/jinda/templates/spec/helpers/devs_helper_spec.rb +15 -0
  251. data/lib/generators/jinda/templates/spec/helpers/users_helper_spec.rb +15 -0
  252. data/lib/generators/jinda/templates/spec/spec_helper.rb +38 -0
  253. data/lib/jinda.rb +6 -0
  254. data/lib/jinda/helpers.rb +517 -0
  255. data/lib/jinda/railtie.rb +18 -0
  256. data/lib/jinda/version.rb +3 -0
  257. data/lib/tasks/jinda.rake +202 -0
  258. data/test/jinda_test.rb +7 -0
  259. data/test/test_helper.rb +4 -0
  260. metadata +345 -0
@@ -0,0 +1,11 @@
1
+ /*
2
+ * jQuery Mobile Framework Git Build: SHA1: 27e3c18acfebab2d47ee7ed37bd50fc4942c8838 <> Date: Fri Mar 22 08:50:04 2013 -0600
3
+ * http://jquerymobile.com
4
+ *
5
+ * Copyright 2010, 2013 jQuery Foundation, Inc. and other contributors
6
+ * Released under the MIT license.
7
+ * http://jquery.org/license
8
+ *
9
+ */
10
+
11
+ .ui-bar-a{border:1px solid #bcecff ;background:#bcecff ;color:#000000 ;font-weight:bold;text-shadow:0 1px 1px #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #bcecff ),to( #bcecff )); background-image:-webkit-linear-gradient( #bcecff,#bcecff ); background-image: -moz-linear-gradient( #bcecff,#bcecff ); background-image: -ms-linear-gradient( #bcecff,#bcecff ); background-image: -o-linear-gradient( #bcecff,#bcecff ); background-image: linear-gradient( #bcecff,#bcecff );}.ui-bar-a .ui-link-inherit{color:#000000 ;}.ui-bar-a a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-a a.ui-link:visited{ color:#2489ce ;}.ui-bar-a a.ui-link:hover{color:#2489ce ;}.ui-bar-a a.ui-link:active{color:#2489ce ;}.ui-bar-a,.ui-bar-a input,.ui-bar-a select,.ui-bar-a textarea,.ui-bar-a button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-a,.ui-overlay-a{border:1px solid #657f67 ;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background:#b9e8bc ;background-image:-webkit-gradient(linear,left top,left bottom,from( #e7FFeb ),to( #8aae8d )); background-image:-webkit-linear-gradient( #e7FFeb,#8aae8d ); background-image: -moz-linear-gradient( #e7FFeb,#8aae8d ); background-image: -ms-linear-gradient( #e7FFeb,#8aae8d ); background-image: -o-linear-gradient( #e7FFeb,#8aae8d ); background-image: linear-gradient( #e7FFeb,#8aae8d );}.ui-overlay-a{background-image:none;border-width:0;}.ui-body-a,.ui-body-a input,.ui-body-a select,.ui-body-a textarea,.ui-body-a button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-a .ui-link-inherit{color:#000000 ;}.ui-body-a .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-a .ui-link:visited{ color:#2489ce ;}.ui-body-a .ui-link:hover{color:#2489ce ;}.ui-body-a .ui-link:active{color:#2489ce ;}.ui-btn-up-a{border:1px solid #e8e5b0 ;background:#e8e5b0 ;font-weight:bold;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #b4b289 ),to( #FFFFd6 )); background-image:-webkit-linear-gradient( #b4b289,#FFFFd6 ); background-image: -moz-linear-gradient( #b4b289,#FFFFd6 ); background-image: -ms-linear-gradient( #b4b289,#FFFFd6 ); background-image: -o-linear-gradient( #b4b289,#FFFFd6 ); background-image: linear-gradient( #b4b289,#FFFFd6 );}.ui-btn-up-a:visited,.ui-btn-up-a a.ui-link-inherit{color:#000000 ;}.ui-btn-hover-a{border:1px solid #ffcacf ;background:#FFFFca ;font-weight:bold;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #eaeab9 ),to( #FFFFda )); background-image:-webkit-linear-gradient( #eaeab9,#FFFFda ); background-image: -moz-linear-gradient( #eaeab9,#FFFFda ); background-image: -ms-linear-gradient( #eaeab9,#FFFFda ); background-image: -o-linear-gradient( #eaeab9,#FFFFda ); background-image: linear-gradient( #eaeab9,#FFFFda );}.ui-btn-hover-a:visited,.ui-btn-hover-a:hover,.ui-btn-hover-a a.ui-link-inherit{color:#000000 ;}.ui-btn-down-a{border:1px solid #FFFFca ;background:#FFFFca ;font-weight:bold;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #e5e5b5 ),to( #FFFFde )); background-image:-webkit-linear-gradient( #e5e5b5,#FFFFde ); background-image: -moz-linear-gradient( #e5e5b5,#FFFFde ); background-image: -ms-linear-gradient( #e5e5b5,#FFFFde ); background-image: -o-linear-gradient( #e5e5b5,#FFFFde ); background-image: linear-gradient( #e5e5b5,#FFFFde );}.ui-btn-down-a:visited,.ui-btn-down-a:hover,.ui-btn-down-a a.ui-link-inherit{color:#000000 ;}.ui-btn-up-a,.ui-btn-hover-a,.ui-btn-down-a{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}.ui-bar-b{border:1px solid #bcecff ;background:#bcecff ;color:#000000 ;font-weight:bold;text-shadow:0 1px 1px #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #ceFFFF ),to( #a9d4e5 )); background-image:-webkit-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: -moz-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: -ms-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: -o-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: linear-gradient( #ceFFFF,#a9d4e5 );}.ui-bar-b .ui-link-inherit{color:#000000 ;}.ui-bar-b a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-b a.ui-link:visited{ color:#2489ce ;}.ui-bar-b a.ui-link:hover{color:#2489ce ;}.ui-bar-b a.ui-link:active{color:#2489ce ;}.ui-bar-b,.ui-bar-b input,.ui-bar-b select,.ui-bar-b textarea,.ui-bar-b button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-b,.ui-overlay-b{border:1px solid #7e7e7e ;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background:#e6e6e6 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #fdfdfd ),to( #cfcfcf )); background-image:-webkit-linear-gradient( #fdfdfd,#cfcfcf ); background-image: -moz-linear-gradient( #fdfdfd,#cfcfcf ); background-image: -ms-linear-gradient( #fdfdfd,#cfcfcf ); background-image: -o-linear-gradient( #fdfdfd,#cfcfcf ); background-image: linear-gradient( #fdfdfd,#cfcfcf );}.ui-overlay-b{background-image:none;border-width:0;}.ui-body-b,.ui-body-b input,.ui-body-b select,.ui-body-b textarea,.ui-body-b button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-b .ui-link-inherit{color:#000000 ;}.ui-body-b .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-b .ui-link:visited{ color:#2489ce ;}.ui-body-b .ui-link:hover{color:#2489ce ;}.ui-body-b .ui-link:active{color:#2489ce ;}.ui-btn-up-b{border:1px solid #ffd7c6 ;background:#ffd7c6 ;font-weight:bold;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #FFecd9 ),to( #e5c1b2 )); background-image:-webkit-linear-gradient( #FFecd9,#e5c1b2 ); background-image: -moz-linear-gradient( #FFecd9,#e5c1b2 ); background-image: -ms-linear-gradient( #FFecd9,#e5c1b2 ); background-image: -o-linear-gradient( #FFecd9,#e5c1b2 ); background-image: linear-gradient( #FFecd9,#e5c1b2 );}.ui-btn-up-b:visited,.ui-btn-up-b a.ui-link-inherit{color:#000000 ;}.ui-btn-hover-b{border:1px solid #FFf7e3 ;background:#FFf7e3 ;font-weight:bold;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #FFFFf9 ),to( #e5decc )); background-image:-webkit-linear-gradient( #FFFFf9,#e5decc ); background-image: -moz-linear-gradient( #FFFFf9,#e5decc ); background-image: -ms-linear-gradient( #FFFFf9,#e5decc ); background-image: -o-linear-gradient( #FFFFf9,#e5decc ); background-image: linear-gradient( #FFFFf9,#e5decc );}.ui-btn-hover-b:visited,.ui-btn-hover-b:hover,.ui-btn-hover-b a.ui-link-inherit{color:#000000 ;}.ui-btn-down-b{border:1px solid #FFf7e3 ;background:#FFf7e3 ;font-weight:bold;color:#000000 ;text-shadow:0 1px 0 #eeeeee ;background-image:-webkit-gradient(linear,left top,left bottom,from( #e5decc ),to( #FFFFf9 )); background-image:-webkit-linear-gradient( #e5decc,#FFFFf9 ); background-image: -moz-linear-gradient( #e5decc,#FFFFf9 ); background-image: -ms-linear-gradient( #e5decc,#FFFFf9 ); background-image: -o-linear-gradient( #e5decc,#FFFFf9 ); background-image: linear-gradient( #e5decc,#FFFFf9 );}.ui-btn-down-b:visited,.ui-btn-down-b:hover,.ui-btn-down-b a.ui-link-inherit{color:#000000 ;}.ui-btn-up-b,.ui-btn-hover-b,.ui-btn-down-b{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}.ui-bar-c{border:1px solid #b3b3b3 ;background:#eeeeee ;color:#3e3e3e ;font-weight:bold;text-shadow:0 1px 1px #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f0f0f0 ),to( #dddddd )); background-image:-webkit-linear-gradient( #f0f0f0,#dddddd ); background-image: -moz-linear-gradient( #f0f0f0,#dddddd ); background-image: -ms-linear-gradient( #f0f0f0,#dddddd ); background-image: -o-linear-gradient( #f0f0f0,#dddddd ); background-image: linear-gradient( #f0f0f0,#dddddd );}.ui-bar-c .ui-link-inherit{color:#3e3e3e ;}.ui-bar-c a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-c a.ui-link:visited{ color:#2489ce ;}.ui-bar-c a.ui-link:hover{color:#2489ce ;}.ui-bar-c a.ui-link:active{color:#2489ce ;}.ui-bar-c,.ui-bar-c input,.ui-bar-c select,.ui-bar-c textarea,.ui-bar-c button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-c,.ui-overlay-c{border:1px solid #aaaaaa ;color:#333333 ;text-shadow:0 1px 0 #ffffff ;background:#f9f9f9 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f9f9f9 ),to( #eeeeee )); background-image:-webkit-linear-gradient( #f9f9f9,#eeeeee ); background-image: -moz-linear-gradient( #f9f9f9,#eeeeee ); background-image: -ms-linear-gradient( #f9f9f9,#eeeeee ); background-image: -o-linear-gradient( #f9f9f9,#eeeeee ); background-image: linear-gradient( #f9f9f9,#eeeeee );}.ui-overlay-c{background-image:none;border-width:0;}.ui-body-c,.ui-body-c input,.ui-body-c select,.ui-body-c textarea,.ui-body-c button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-c .ui-link-inherit{color:#333333 ;}.ui-body-c .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-c .ui-link:visited{ color:#2489ce ;}.ui-body-c .ui-link:hover{color:#2489ce ;}.ui-body-c .ui-link:active{color:#2489ce ;}.ui-btn-up-c{border:1px solid #cccccc ;background:#eeeeee ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #ffffff ),to( #f1f1f1 )); background-image:-webkit-linear-gradient( #ffffff,#f1f1f1 ); background-image: -moz-linear-gradient( #ffffff,#f1f1f1 ); background-image: -ms-linear-gradient( #ffffff,#f1f1f1 ); background-image: -o-linear-gradient( #ffffff,#f1f1f1 ); background-image: linear-gradient( #ffffff,#f1f1f1 );}.ui-btn-up-c:visited,.ui-btn-up-c a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-hover-c{border:1px solid #bbbbbb ;background:#dfdfdf ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f6f6f6 ),to( #e0e0e0 )); background-image:-webkit-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -moz-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -ms-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -o-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: linear-gradient( #f6f6f6,#e0e0e0 );}.ui-btn-hover-c:visited,.ui-btn-hover-c:hover,.ui-btn-hover-c a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-down-c{border:1px solid #bbbbbb ;background:#d6d6d6 ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #d0d0d0 ),to( #dfdfdf )); background-image:-webkit-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -moz-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -ms-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -o-linear-gradient( #d0d0d0,#dfdfdf ); background-image: linear-gradient( #d0d0d0,#dfdfdf );}.ui-btn-down-c:visited,.ui-btn-down-c:hover,.ui-btn-down-c a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-up-c,.ui-btn-hover-c,.ui-btn-down-c{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}.ui-bar-d{border:1px solid #b3b3b3 ;background:#eeeeee ;color:#3e3e3e ;font-weight:bold;text-shadow:0 1px 1px #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f0f0f0 ),to( #dddddd )); background-image:-webkit-linear-gradient( #f0f0f0,#dddddd ); background-image: -moz-linear-gradient( #f0f0f0,#dddddd ); background-image: -ms-linear-gradient( #f0f0f0,#dddddd ); background-image: -o-linear-gradient( #f0f0f0,#dddddd ); background-image: linear-gradient( #f0f0f0,#dddddd );}.ui-bar-d .ui-link-inherit{color:#3e3e3e ;}.ui-bar-d a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-d a.ui-link:visited{ color:#2489ce ;}.ui-bar-d a.ui-link:hover{color:#2489ce ;}.ui-bar-d a.ui-link:active{color:#2489ce ;}.ui-bar-d,.ui-bar-d input,.ui-bar-d select,.ui-bar-d textarea,.ui-bar-d button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-d,.ui-overlay-d{border:1px solid #aaaaaa ;color:#333333 ;text-shadow:0 1px 0 #ffffff ;background:#f9f9f9 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f9f9f9 ),to( #eeeeee )); background-image:-webkit-linear-gradient( #f9f9f9,#eeeeee ); background-image: -moz-linear-gradient( #f9f9f9,#eeeeee ); background-image: -ms-linear-gradient( #f9f9f9,#eeeeee ); background-image: -o-linear-gradient( #f9f9f9,#eeeeee ); background-image: linear-gradient( #f9f9f9,#eeeeee );}.ui-overlay-d{background-image:none;border-width:0;}.ui-body-d,.ui-body-d input,.ui-body-d select,.ui-body-d textarea,.ui-body-d button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-d .ui-link-inherit{color:#333333 ;}.ui-body-d .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-d .ui-link:visited{ color:#2489ce ;}.ui-body-d .ui-link:hover{color:#2489ce ;}.ui-body-d .ui-link:active{color:#2489ce ;}.ui-btn-up-d{border:1px solid #cccccc ;background:#eeeeee ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #ffffff ),to( #f1f1f1 )); background-image:-webkit-linear-gradient( #ffffff,#f1f1f1 ); background-image: -moz-linear-gradient( #ffffff,#f1f1f1 ); background-image: -ms-linear-gradient( #ffffff,#f1f1f1 ); background-image: -o-linear-gradient( #ffffff,#f1f1f1 ); background-image: linear-gradient( #ffffff,#f1f1f1 );}.ui-btn-up-d:visited,.ui-btn-up-d a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-hover-d{border:1px solid #bbbbbb ;background:#dfdfdf ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f6f6f6 ),to( #e0e0e0 )); background-image:-webkit-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -moz-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -ms-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -o-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: linear-gradient( #f6f6f6,#e0e0e0 );}.ui-btn-hover-d:visited,.ui-btn-hover-d:hover,.ui-btn-hover-d a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-down-d{border:1px solid #bbbbbb ;background:#d6d6d6 ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #d0d0d0 ),to( #dfdfdf )); background-image:-webkit-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -moz-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -ms-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -o-linear-gradient( #d0d0d0,#dfdfdf ); background-image: linear-gradient( #d0d0d0,#dfdfdf );}.ui-btn-down-d:visited,.ui-btn-down-d:hover,.ui-btn-down-d a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-up-d,.ui-btn-hover-d,.ui-btn-down-d{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}.ui-bar-e{border:1px solid #b3b3b3 ;background:#eeeeee ;color:#3e3e3e ;font-weight:bold;text-shadow:0 1px 1px #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f0f0f0 ),to( #dddddd )); background-image:-webkit-linear-gradient( #f0f0f0,#dddddd ); background-image: -moz-linear-gradient( #f0f0f0,#dddddd ); background-image: -ms-linear-gradient( #f0f0f0,#dddddd ); background-image: -o-linear-gradient( #f0f0f0,#dddddd ); background-image: linear-gradient( #f0f0f0,#dddddd );}.ui-bar-e .ui-link-inherit{color:#3e3e3e ;}.ui-bar-e a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-e a.ui-link:visited{ color:#2489ce ;}.ui-bar-e a.ui-link:hover{color:#2489ce ;}.ui-bar-e a.ui-link:active{color:#2489ce ;}.ui-bar-e,.ui-bar-e input,.ui-bar-e select,.ui-bar-e textarea,.ui-bar-e button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-e,.ui-overlay-e{border:1px solid #aaaaaa ;color:#333333 ;text-shadow:0 1px 0 #ffffff ;background:#f9f9f9 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f9f9f9 ),to( #eeeeee )); background-image:-webkit-linear-gradient( #f9f9f9,#eeeeee ); background-image: -moz-linear-gradient( #f9f9f9,#eeeeee ); background-image: -ms-linear-gradient( #f9f9f9,#eeeeee ); background-image: -o-linear-gradient( #f9f9f9,#eeeeee ); background-image: linear-gradient( #f9f9f9,#eeeeee );}.ui-overlay-e{background-image:none;border-width:0;}.ui-body-e,.ui-body-e input,.ui-body-e select,.ui-body-e textarea,.ui-body-e button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-e .ui-link-inherit{color:#333333 ;}.ui-body-e .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-e .ui-link:visited{ color:#2489ce ;}.ui-body-e .ui-link:hover{color:#2489ce ;}.ui-body-e .ui-link:active{color:#2489ce ;}.ui-btn-up-e{border:1px solid #cccccc ;background:#eeeeee ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #ffffff ),to( #f1f1f1 )); background-image:-webkit-linear-gradient( #ffffff,#f1f1f1 ); background-image: -moz-linear-gradient( #ffffff,#f1f1f1 ); background-image: -ms-linear-gradient( #ffffff,#f1f1f1 ); background-image: -o-linear-gradient( #ffffff,#f1f1f1 ); background-image: linear-gradient( #ffffff,#f1f1f1 );}.ui-btn-up-e:visited,.ui-btn-up-e a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-hover-e{border:1px solid #bbbbbb ;background:#dfdfdf ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f6f6f6 ),to( #e0e0e0 )); background-image:-webkit-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -moz-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -ms-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -o-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: linear-gradient( #f6f6f6,#e0e0e0 );}.ui-btn-hover-e:visited,.ui-btn-hover-e:hover,.ui-btn-hover-e a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-down-e{border:1px solid #bbbbbb ;background:#d6d6d6 ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #d0d0d0 ),to( #dfdfdf )); background-image:-webkit-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -moz-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -ms-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -o-linear-gradient( #d0d0d0,#dfdfdf ); background-image: linear-gradient( #d0d0d0,#dfdfdf );}.ui-btn-down-e:visited,.ui-btn-down-e:hover,.ui-btn-down-e a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-up-e,.ui-btn-hover-e,.ui-btn-down-e{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}.ui-bar-f{border:1px solid #b3b3b3 ;background:#eeeeee ;color:#3e3e3e ;font-weight:bold;text-shadow:0 1px 1px #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f0f0f0 ),to( #dddddd )); background-image:-webkit-linear-gradient( #f0f0f0,#dddddd ); background-image: -moz-linear-gradient( #f0f0f0,#dddddd ); background-image: -ms-linear-gradient( #f0f0f0,#dddddd ); background-image: -o-linear-gradient( #f0f0f0,#dddddd ); background-image: linear-gradient( #f0f0f0,#dddddd );}.ui-bar-f .ui-link-inherit{color:#3e3e3e ;}.ui-bar-f a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-f a.ui-link:visited{ color:#2489ce ;}.ui-bar-f a.ui-link:hover{color:#2489ce ;}.ui-bar-f a.ui-link:active{color:#2489ce ;}.ui-bar-f,.ui-bar-f input,.ui-bar-f select,.ui-bar-f textarea,.ui-bar-f button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-f,.ui-overlay-f{border:1px solid #aaaaaa ;color:#333333 ;text-shadow:0 1px 0 #ffffff ;background:#f9f9f9 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f9f9f9 ),to( #eeeeee )); background-image:-webkit-linear-gradient( #f9f9f9,#eeeeee ); background-image: -moz-linear-gradient( #f9f9f9,#eeeeee ); background-image: -ms-linear-gradient( #f9f9f9,#eeeeee ); background-image: -o-linear-gradient( #f9f9f9,#eeeeee ); background-image: linear-gradient( #f9f9f9,#eeeeee );}.ui-overlay-f{background-image:none;border-width:0;}.ui-body-f,.ui-body-f input,.ui-body-f select,.ui-body-f textarea,.ui-body-f button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-f .ui-link-inherit{color:#333333 ;}.ui-body-f .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-f .ui-link:visited{ color:#2489ce ;}.ui-body-f .ui-link:hover{color:#2489ce ;}.ui-body-f .ui-link:active{color:#2489ce ;}.ui-btn-up-f{border:1px solid #cccccc ;background:#eeeeee ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #ffffff ),to( #f1f1f1 )); background-image:-webkit-linear-gradient( #ffffff,#f1f1f1 ); background-image: -moz-linear-gradient( #ffffff,#f1f1f1 ); background-image: -ms-linear-gradient( #ffffff,#f1f1f1 ); background-image: -o-linear-gradient( #ffffff,#f1f1f1 ); background-image: linear-gradient( #ffffff,#f1f1f1 );}.ui-btn-up-f:visited,.ui-btn-up-f a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-hover-f{border:1px solid #bbbbbb ;background:#dfdfdf ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f6f6f6 ),to( #e0e0e0 )); background-image:-webkit-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -moz-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -ms-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -o-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: linear-gradient( #f6f6f6,#e0e0e0 );}.ui-btn-hover-f:visited,.ui-btn-hover-f:hover,.ui-btn-hover-f a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-down-f{border:1px solid #bbbbbb ;background:#d6d6d6 ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #d0d0d0 ),to( #dfdfdf )); background-image:-webkit-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -moz-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -ms-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -o-linear-gradient( #d0d0d0,#dfdfdf ); background-image: linear-gradient( #d0d0d0,#dfdfdf );}.ui-btn-down-f:visited,.ui-btn-down-f:hover,.ui-btn-down-f a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-up-f,.ui-btn-hover-f,.ui-btn-down-f{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}.ui-bar-g{border:1px solid #ed1c24 ;background:#ed1c24 ;color:#ffffff ;font-weight:bold;text-shadow:0 1px 1px #444444 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #FF1e27 ),to( #d51920 )); background-image:-webkit-linear-gradient( #FF1e27,#d51920 ); background-image: -moz-linear-gradient( #FF1e27,#d51920 ); background-image: -ms-linear-gradient( #FF1e27,#d51920 ); background-image: -o-linear-gradient( #FF1e27,#d51920 ); background-image: linear-gradient( #FF1e27,#d51920 );}.ui-bar-g .ui-link-inherit{color:#ffffff ;}.ui-bar-g a.ui-link{color:#7cc4e7 ;font-weight:bold;}.ui-bar-g a.ui-link:visited{ color:#2489ce ;}.ui-bar-g a.ui-link:hover{color:#2489ce ;}.ui-bar-g a.ui-link:active{color:#2489ce ;}.ui-bar-g,.ui-bar-g input,.ui-bar-g select,.ui-bar-g textarea,.ui-bar-g button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-g,.ui-overlay-g{border:1px solid #aaaaaa ;color:#333333 ;text-shadow:0 1px 0 #ffffff ;background:#f9f9f9 ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f9f9f9 ),to( #eeeeee )); background-image:-webkit-linear-gradient( #f9f9f9,#eeeeee ); background-image: -moz-linear-gradient( #f9f9f9,#eeeeee ); background-image: -ms-linear-gradient( #f9f9f9,#eeeeee ); background-image: -o-linear-gradient( #f9f9f9,#eeeeee ); background-image: linear-gradient( #f9f9f9,#eeeeee );}.ui-overlay-g{background-image:none;border-width:0;}.ui-body-g,.ui-body-g input,.ui-body-g select,.ui-body-g textarea,.ui-body-g button{font-family:Helvetica,Arial,sans-serif ;}.ui-body-g .ui-link-inherit{color:#333333 ;}.ui-body-g .ui-link{color:#2489ce ;font-weight:bold;}.ui-body-g .ui-link:visited{ color:#2489ce ;}.ui-body-g .ui-link:hover{color:#2489ce ;}.ui-body-g .ui-link:active{color:#2489ce ;}.ui-btn-up-g{border:1px solid #cccccc ;background:#eeeeee ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #ffffff ),to( #f1f1f1 )); background-image:-webkit-linear-gradient( #ffffff,#f1f1f1 ); background-image: -moz-linear-gradient( #ffffff,#f1f1f1 ); background-image: -ms-linear-gradient( #ffffff,#f1f1f1 ); background-image: -o-linear-gradient( #ffffff,#f1f1f1 ); background-image: linear-gradient( #ffffff,#f1f1f1 );}.ui-btn-up-g:visited,.ui-btn-up-g a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-hover-g{border:1px solid #bbbbbb ;background:#dfdfdf ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #f6f6f6 ),to( #e0e0e0 )); background-image:-webkit-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -moz-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -ms-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: -o-linear-gradient( #f6f6f6,#e0e0e0 ); background-image: linear-gradient( #f6f6f6,#e0e0e0 );}.ui-btn-hover-g:visited,.ui-btn-hover-g:hover,.ui-btn-hover-g a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-down-g{border:1px solid #bbbbbb ;background:#d6d6d6 ;font-weight:bold;color:#2f3e46 ;text-shadow:0 1px 0 #ffffff ;background-image:-webkit-gradient(linear,left top,left bottom,from( #d0d0d0 ),to( #dfdfdf )); background-image:-webkit-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -moz-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -ms-linear-gradient( #d0d0d0,#dfdfdf ); background-image: -o-linear-gradient( #d0d0d0,#dfdfdf ); background-image: linear-gradient( #d0d0d0,#dfdfdf );}.ui-btn-down-g:visited,.ui-btn-down-g:hover,.ui-btn-down-g a.ui-link-inherit{color:#2f3e46 ;}.ui-btn-up-g,.ui-btn-hover-g,.ui-btn-down-g{font-family:Helvetica,Arial,sans-serif ;text-decoration:none;}a.ui-link-inherit{text-decoration:none !important;}.ui-btn-active{border:1px solid #33cccc ;background:#bcecff ;font-weight:bold;color:#000000 ;cursor:pointer;text-shadow:0 1px 1px #eeeeee ;text-decoration:none;background-image:-webkit-gradient(linear,left top,left bottom,from( #ceFFFF ),to( #a9d4e5 )); background-image:-webkit-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: -moz-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: -ms-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: -o-linear-gradient( #ceFFFF,#a9d4e5 ); background-image: linear-gradient( #ceFFFF,#a9d4e5 ); font-family:Helvetica,Arial,sans-serif ;}.ui-btn-active:visited,.ui-btn-active:hover,.ui-btn-active a.ui-link-inherit{color:#000000 ;}.ui-btn-inner{border-top:1px solid #fff;border-color:rgba(255,255,255,.3);}.ui-corner-tl{-moz-border-radius-topleft:.6em ;-webkit-border-top-left-radius:.6em ;border-top-left-radius:.6em ;}.ui-corner-tr{-moz-border-radius-topright:.6em ;-webkit-border-top-right-radius:.6em ;border-top-right-radius:.6em ;}.ui-corner-bl{-moz-border-radius-bottomleft:.6em ;-webkit-border-bottom-left-radius:.6em ;border-bottom-left-radius:.6em ;}.ui-corner-br{-moz-border-radius-bottomright:.6em ;-webkit-border-bottom-right-radius:.6em ;border-bottom-right-radius:.6em ;}.ui-corner-top{-moz-border-radius-topleft:.6em ;-webkit-border-top-left-radius:.6em ;border-top-left-radius:.6em ;-moz-border-radius-topright:.6em ;-webkit-border-top-right-radius:.6em ;border-top-right-radius:.6em ;}.ui-corner-bottom{-moz-border-radius-bottomleft:.6em ;-webkit-border-bottom-left-radius:.6em ;border-bottom-left-radius:.6em ;-moz-border-radius-bottomright:.6em ;-webkit-border-bottom-right-radius:.6em ;border-bottom-right-radius:.6em ;}.ui-corner-right{-moz-border-radius-topright:.6em ;-webkit-border-top-right-radius:.6em ;border-top-right-radius:.6em ;-moz-border-radius-bottomright:.6em ;-webkit-border-bottom-right-radius:.6em ;border-bottom-right-radius:.6em ;}.ui-corner-left{-moz-border-radius-topleft:.6em ;-webkit-border-top-left-radius:.6em ;border-top-left-radius:.6em ;-moz-border-radius-bottomleft:.6em ;-webkit-border-bottom-left-radius:.6em ;border-bottom-left-radius:.6em ;}.ui-corner-all{-moz-border-radius:.6em ;-webkit-border-radius:.6em ;border-radius:.6em ;}.ui-corner-none{-moz-border-radius: 0;-webkit-border-radius: 0;border-radius: 0;}.ui-br{border-bottom:rgb(130,130,130);border-bottom:rgba(130,130,130,.3);border-bottom-width:1px;border-bottom-style:solid;}.ui-disabled{filter:Alpha(Opacity=30);opacity:.3;zoom:1;}.ui-disabled,.ui-disabled a{cursor:default !important;pointer-events:none;}.ui-icon,.ui-icon-searchfield:after{background:#000000 ;background:rgba(0,0,0,0.4) ;background-image:url(images/icons-18-white.png) ;background-repeat:no-repeat;-moz-border-radius:9px;-webkit-border-radius:9px;border-radius:9px;}.ui-icon-alt{background:#fff;background:rgba(255,255,255,.3);background-image:url(images/icons-18-black.png);background-repeat:no-repeat;}@media only screen and (-webkit-min-device-pixel-ratio:1.5), only screen and (min--moz-device-pixel-ratio:1.5), only screen and (min-resolution:240dpi){.ui-icon-plus,.ui-icon-minus,.ui-icon-delete,.ui-icon-arrow-r,.ui-icon-arrow-l,.ui-icon-arrow-u,.ui-icon-arrow-d,.ui-icon-check,.ui-icon-gear,.ui-icon-refresh,.ui-icon-forward,.ui-icon-back,.ui-icon-grid,.ui-icon-star,.ui-icon-alert,.ui-icon-info,.ui-icon-home,.ui-icon-search,.ui-icon-searchfield:after,.ui-icon-checkbox-off,.ui-icon-checkbox-on,.ui-icon-radio-off,.ui-icon-radio-on{background-image:url(images/icons-36-white.png);-moz-background-size:776px 18px;-o-background-size:776px 18px;-webkit-background-size:776px 18px;background-size:776px 18px;}.ui-icon-alt{background-image:url(images/icons-36-black.png);}}.ui-icon-plus{background-position:-0 50%;}.ui-icon-minus{background-position:-36px 50%;}.ui-icon-delete{background-position:-72px 50%;}.ui-icon-arrow-r{background-position:-108px 50%;}.ui-icon-arrow-l{background-position:-144px 50%;}.ui-icon-arrow-u{background-position:-180px 50%;}.ui-icon-arrow-d{background-position:-216px 50%;}.ui-icon-check{background-position:-252px 50%;}.ui-icon-gear{background-position:-288px 50%;}.ui-icon-refresh{background-position:-324px 50%;}.ui-icon-forward{background-position:-360px 50%;}.ui-icon-back{background-position:-396px 50%;}.ui-icon-grid{background-position:-432px 50%;}.ui-icon-star{background-position:-468px 50%;}.ui-icon-alert{background-position:-504px 50%;}.ui-icon-info{background-position:-540px 50%;}.ui-icon-home{background-position:-576px 50%;}.ui-icon-search,.ui-icon-searchfield:after{background-position:-612px 50%;}.ui-icon-checkbox-off{background-position:-684px 50%;}.ui-icon-checkbox-on{background-position:-648px 50%;}.ui-icon-radio-off{background-position:-756px 50%;}.ui-icon-radio-on{background-position:-720px 50%;}.ui-checkbox .ui-icon,.ui-selectmenu-list .ui-icon{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;}.ui-icon-checkbox-off,.ui-icon-radio-off{background-color:transparent;}.ui-checkbox-on .ui-icon,.ui-radio-on .ui-icon{background-color:#bcecff ; }.ui-icon-loading{background:url(images/ajax-loader.gif);background-size:46px 46px;}.ui-btn-corner-tl{-moz-border-radius-topleft:1em ;-webkit-border-top-left-radius:1em ;border-top-left-radius:1em ;}.ui-btn-corner-tr{-moz-border-radius-topright:1em ;-webkit-border-top-right-radius:1em ;border-top-right-radius:1em ;}.ui-btn-corner-bl{-moz-border-radius-bottomleft:1em ;-webkit-border-bottom-left-radius:1em ;border-bottom-left-radius:1em ;}.ui-btn-corner-br{-moz-border-radius-bottomright:1em ;-webkit-border-bottom-right-radius:1em ;border-bottom-right-radius:1em ;}.ui-btn-corner-top{-moz-border-radius-topleft:1em ;-webkit-border-top-left-radius:1em ;border-top-left-radius:1em ;-moz-border-radius-topright:1em ;-webkit-border-top-right-radius:1em ;border-top-right-radius:1em ;}.ui-btn-corner-bottom{-moz-border-radius-bottomleft:1em ;-webkit-border-bottom-left-radius:1em ;border-bottom-left-radius:1em ;-moz-border-radius-bottomright:1em ;-webkit-border-bottom-right-radius:1em ;border-bottom-right-radius:1em ;}.ui-btn-corner-right{-moz-border-radius-topright:1em ;-webkit-border-top-right-radius:1em ;border-top-right-radius:1em ;-moz-border-radius-bottomright:1em ;-webkit-border-bottom-right-radius:1em ;border-bottom-right-radius:1em ;}.ui-btn-corner-left{-moz-border-radius-topleft:1em ;-webkit-border-top-left-radius:1em ;border-top-left-radius:1em ;-moz-border-radius-bottomleft:1em ;-webkit-border-bottom-left-radius:1em ;border-bottom-left-radius:1em ;}.ui-btn-corner-all{-moz-border-radius:1em ;-webkit-border-radius:1em ;border-radius:1em ;}.ui-corner-tl,.ui-corner-tr,.ui-corner-bl,.ui-corner-br,.ui-corner-top,.ui-corner-bottom,.ui-corner-right,.ui-corner-left,.ui-corner-all,.ui-btn-corner-tl,.ui-btn-corner-tr,.ui-btn-corner-bl,.ui-btn-corner-br,.ui-btn-corner-top,.ui-btn-corner-bottom,.ui-btn-corner-right,.ui-btn-corner-left,.ui-btn-corner-all{ -webkit-background-clip:padding-box; -moz-background-clip:padding; background-clip:padding-box;}.ui-overlay{background:#666;filter:Alpha(Opacity=50);opacity:.5;position:absolute;width:100%;height:100%;}.ui-overlay-shadow{-moz-box-shadow:0px 0px 12px rgba(0,0,0,.6);-webkit-box-shadow:0px 0px 12px rgba(0,0,0,.6);box-shadow:0px 0px 12px rgba(0,0,0,.6);}.ui-shadow{-moz-box-shadow:0px 1px 4px rgba(0,0,0,.3) ;-webkit-box-shadow:0px 1px 4px rgba(0,0,0,.3) ;box-shadow:0px 1px 4px rgba(0,0,0,.3) ;}.ui-bar-a .ui-shadow,.ui-bar-b .ui-shadow,.ui-bar-c .ui-shadow {-moz-box-shadow:0px 1px 0 rgba(255,255,255,.3);-webkit-box-shadow:0px 1px 0 rgba(255,255,255,.3);box-shadow:0px 1px 0 rgba(255,255,255,.3);}.ui-shadow-inset{-moz-box-shadow:inset 0px 1px 4px rgba(0,0,0,.2);-webkit-box-shadow:inset 0px 1px 4px rgba(0,0,0,.2);box-shadow:inset 0px 1px 4px rgba(0,0,0,.2);}.ui-icon-shadow{-moz-box-shadow:0px 1px 0 rgba(255,255,255,.4) ;-webkit-box-shadow:0px 1px 0 rgba(255,255,255,.4) ;box-shadow:0px 1px 0 rgba(255,255,255,.4) ;}.ui-btn:focus,.ui-link-inherit:focus{outline:0;}.ui-btn.ui-focus{z-index:1;}.ui-focus,.ui-btn:focus{-moz-box-shadow:inset 0px 0px 3px #bcecff,0px 0px 9px #bcecff ;-webkit-box-shadow:inset 0px 0px 3px #bcecff,0px 0px 9px #bcecff ;box-shadow:inset 0px 0px 3px #bcecff,0px 0px 9px #bcecff ;}.ui-input-text.ui-focus,.ui-input-search.ui-focus{-moz-box-shadow:0px 0px 12px #bcecff ;-webkit-box-shadow:0px 0px 12px #bcecff ;box-shadow:0px 0px 12px #bcecff ;}.ui-mobile-nosupport-boxshadow *{-moz-box-shadow:none !important;-webkit-box-shadow:none !important;box-shadow:none !important;}.ui-mobile-nosupport-boxshadow .ui-focus,.ui-mobile-nosupport-boxshadow .ui-btn:focus,.ui-mobile-nosupport-boxshadow .ui-link-inherit:focus{outline-width:1px;outline-style:auto;}
@@ -0,0 +1,11 @@
1
+ <%= Rouge::Themes::Github.render(:scope => '.highlight, code') %>
2
+
3
+ .highlight {
4
+ background-color: #f5f7f9;
5
+ padding: 1em;
6
+ }
7
+
8
+ .highlight .err {
9
+ color: #a61717;
10
+ background-color: #f5f7f9;
11
+ }
@@ -0,0 +1,37 @@
1
+ @font-face {
2
+ font-family: 'TH SarabunPSK';
3
+ src: url('fonts/thsarabunnew-webfont.eot');
4
+ src: url('fonts/thsarabunnew-webfont.eot?#iefix') format('embedded-opentype'),
5
+ url('fonts/thsarabunnew-webfont.woff') format('woff'),
6
+ url('fonts/thsarabunnew-webfont.ttf') format('truetype');
7
+ font-weight: normal;
8
+ font-style: normal;
9
+ }
10
+ @font-face {
11
+ font-family: 'TH SarabunPSK';
12
+ font-style: normal;
13
+ font-weight: bold;
14
+ src: url('fonts/thsarabunnew_bold-webfont.eot');
15
+ src: url('fonts/thsarabunnew_bold-webfont.eot?#iefix') format('embedded-opentype'),
16
+ url('fonts/thsarabunnew_bold-webfont.woff') format('woff'),
17
+ url('fonts/thsarabunnew_bold-webfont.ttf') format('truetype');
18
+ }
19
+ @font-face {
20
+ font-family: 'TH SarabunPSK';
21
+ font-style: italic;
22
+ font-weight: bold;
23
+ src: url('fonts/thsarabunnew_bolditalic-webfont.eot');
24
+ src: url('fonts/thsarabunnew_bolditalic-webfont.eot?#iefix') format('embedded-opentype'),
25
+ url('fonts/thsarabunnew_bolditalic-webfont.woff') format('woff'),
26
+ url('fonts/thsarabunnew_bolditalic-webfont.ttf') format('truetype');
27
+ }
28
+ @font-face {
29
+ font-family: 'TH SarabunPSK';
30
+ font-style: italic;
31
+ font-weight: normal;
32
+ src: url('fonts/thsarabunnew_italic-webfont.eot');
33
+ src: url('fonts/thsarabunnew_italic-webfont.eot?#iefix') format('embedded-opentype'),
34
+ url('fonts/thsarabunnew_italic-webfont.woff') format('woff'),
35
+ url('fonts/thsarabunnew_italic-webfont.ttf') format('truetype');
36
+ }
37
+
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Channel < ActionCable::Channel::Base
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module ApplicationCable
2
+ class Connection < ActionCable::Connection::Base
3
+ end
4
+ end
@@ -0,0 +1,6 @@
1
+ class AdminsController < ApplicationController
2
+ def update_role
3
+ user = User.find_by :code=> $xvars["select_user"]["code"]
4
+ user.update_attribute :role, $xvars["edit_role"]["role"]
5
+ end
6
+ end
@@ -0,0 +1,40 @@
1
+ class ApplicationController < ActionController::Base
2
+ # https://www.cookieshq.co.uk/posts/easy-seo-metatags-with-rails-4#a-word-about-turbolinks
3
+ before_action :prepare_meta_tags, if: -> { request.get? }
4
+ def prepare_meta_tags(options={})
5
+ site_name = DEFAULT_TITLE
6
+ title = [controller_name, action_name].join(" ")
7
+ description = DEFAULT_DESCRIPTION
8
+ image = options[:image] || href="/assets/images/logo.png"
9
+ keywords = DEFAULT_KEYWORDS
10
+ current_url = request.url
11
+
12
+ # Let's prepare a nice set of defaults
13
+ defaults = {
14
+ site: site_name,
15
+ title: title,
16
+ image: image,
17
+ description: description,
18
+ keywords: keywords,
19
+ twitter: {
20
+ site_name: site_name,
21
+ site: site_name,
22
+ card: 'summary',
23
+ description: description,
24
+ image: image
25
+ },
26
+ og: {
27
+ url: current_url,
28
+ site_name: site_name,
29
+ title: title,
30
+ image: image,
31
+ description: description,
32
+ type: 'website'
33
+ }
34
+ }
35
+
36
+ options.reverse_merge!(defaults)
37
+
38
+ set_meta_tags options
39
+ end
40
+ end
@@ -0,0 +1,67 @@
1
+ class ArticlesController < ApplicationController
2
+ before_action :load_article, only: [:show, :destroy]
3
+ before_action :load_comments, only: :show
4
+
5
+ def index
6
+ @articles = Article.desc(:created_at).page(params[:page]).per(10)
7
+ end
8
+
9
+ def show
10
+ prepare_meta_tags(title: @article.title,
11
+ description: @article.text,
12
+ keywords: @article.keywords)
13
+ end
14
+
15
+ def edit
16
+ @article = Article.find(params[:id])
17
+ @page_title = 'Member Login'
18
+
19
+ end
20
+
21
+ def create
22
+ @article = Article.new(
23
+ title: $xvars["form_article"]["title"],
24
+ text: $xvars["form_article"]["text"],
25
+ keywords: $xvars["form_article"]["keywords"],
26
+ body: $xvars["form_article"]["body"],
27
+
28
+ user_id: $xvars["user_id"])
29
+ @article.save!
30
+ end
31
+
32
+ def my
33
+ @articles = Article.where(user_id: current_ma_user).desc(:created_at).page(params[:page]).per(10)
34
+ @page_title = 'Member Login'
35
+ end
36
+
37
+ def update
38
+ # $xvars["select_article"] and $xvars["edit_article"]
39
+ # These are variables.
40
+ # They contain everything that we get their forms select_article and edit_article
41
+ article_id = $xvars["select_article"] ? $xvars["select_article"]["title"] : $xvars["p"]["article_id"]
42
+ @article = Article.find(article_id)
43
+ @article.update(title: $xvars["edit_article"]["article"]["title"],
44
+ text: $xvars["edit_article"]["article"]["text"],
45
+ keywords: $xvars["edit_article"]["article"]["keywords"],
46
+ body: $xvars["edit_article"]["article"]["body"])
47
+
48
+ end
49
+
50
+ def destroy
51
+ if current_ma_user.role.upcase.split(',').include?("A") || current_ma_user == @article.user
52
+ @article.destroy
53
+ end
54
+ redirect_to :action=>'index'
55
+ end
56
+
57
+ private
58
+
59
+ def load_article
60
+ @article = Article.find(params[:id])
61
+ end
62
+
63
+ def load_comments
64
+ @comments = @article.comments.find_all
65
+ end
66
+
67
+ end
@@ -0,0 +1,17 @@
1
+ class CommentsController < ApplicationController
2
+
3
+ def create
4
+ # $xvars['p'] is the query parameters like params in rails guide:
5
+ # private
6
+ # def comment_params
7
+ # params.require(:comment).permit(:commenter, :body)
8
+ # end
9
+ #
10
+ @article = Article.find($xvars['p']['comment']['article_id'])
11
+ @comment = @article.comments.new(
12
+ body: $xvars['p']['comment']['body'],
13
+ user_id: $xvars["user_id"])
14
+ @comment.save!
15
+ end
16
+
17
+ end
@@ -0,0 +1,2 @@
1
+ class CtrsController < ApplicationController
2
+ end
@@ -0,0 +1,2 @@
1
+ class DevsController < ApplicationController
2
+ end
@@ -0,0 +1,5 @@
1
+ class IdentitiesController < ApplicationController
2
+ def new
3
+ @identity =request.env['omniauth.identity']
4
+ end
5
+ end
@@ -0,0 +1,537 @@
1
+ # -*- encoding : utf-8 -*-
2
+ class JindaController < ApplicationController
3
+ def index
4
+ end
5
+ def logs
6
+ @xmains = Jinda::Xmain.all.desc(:created_at).page(params[:page]).per(10)
7
+ end
8
+ def error_logs
9
+ @xmains = Jinda::Xmain.in(status:['E']).desc(:created_at).page(params[:page]).per(10)
10
+ end
11
+ def pending
12
+ @title= "Pending Tasks"
13
+ @xmains = Jinda::Xmain.in(status:['R','I']).asc(:created_at)
14
+ end
15
+ def cancel
16
+ Jinda::Xmain.find(params[:id]).update_attributes :status=>'X'
17
+ if params[:return]
18
+ redirect_to params[:return]
19
+ else
20
+ redirect_to action:"pending"
21
+ end
22
+ end
23
+ def clear_xmains
24
+ Jinda::Xmain.where(:status =>{'$in'=>['R','I']}).update_all(:status=>'X')
25
+ redirect_to action:"pending"
26
+ end
27
+ def ajax_notice
28
+ if notice=Jinda::Notice.recent(current_ma_user, request.env["REMOTE_ADDR"])
29
+ notice.update_attribute :unread, false
30
+ js = "notice('#{notice.message}');"
31
+ else
32
+ js = ""
33
+ end
34
+ render plain: "<script>#{js}</script>"
35
+ end
36
+ ####################################################################################################]
37
+ # prepare xmain.runseq eg: how many form_step or total_step and step properties check if authorized
38
+ ####################################################################################################]
39
+ def init
40
+ module_code, code = params[:s].split(":")
41
+ @service= Jinda::Service.where(:module_code=> module_code, :code=> code).first
42
+ # @service= Jinda::Service.where(:module_code=> params[:module], :code=> params[:service]).first
43
+ if @service && authorize_init?
44
+ xmain = create_xmain(@service)
45
+ result = create_runseq(xmain)
46
+ unless result
47
+ message = "cannot find action for xmain #{xmain.id}"
48
+ ma_log(message)
49
+ flash[:notice]= message
50
+ redirect_to "pending" and return
51
+ end
52
+ xmain.update_attribute(:xvars, @xvars)
53
+ xmain.runseqs.last.update_attribute(:end,true)
54
+ #Above line cause error update_attribute in heroku shown in logs and it was proposed to fixed in github:'kul1/g241502'
55
+ redirect_to :action=>'run', :id=>xmain.id
56
+ else
57
+ refresh_to "/", :alert => "Error: cannot process"
58
+ end
59
+ end
60
+ ####################################################################################################]
61
+ # run if, form, mail, output etc depend on icon in freemind
62
+ ####################################################################################################]
63
+ def run
64
+ init_vars(params[:id])
65
+ if authorize?
66
+ # session[:full_layout]= false
67
+ redirect_to(:action=>"run_#{@runseq.action}", :id=>@xmain.id)
68
+ else
69
+ redirect_to_root
70
+ end
71
+ end
72
+ def run_form
73
+ init_vars(params[:id])
74
+ if authorize?
75
+ if ['F', 'X'].include? @xmain.status
76
+ redirect_to_root
77
+ else
78
+ service= @xmain.service
79
+ if service
80
+ @title= "Transaction ID #{@xmain.xid}: #{@xmain.name} / #{@runseq.name}"
81
+ fhelp= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.md"
82
+ @help = File.read(fhelp) if File.exists?(fhelp)
83
+ f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
84
+ @ui= File.read(f)
85
+ else
86
+ # flash[:notice]= "Error: Can not find the view file for this controller"
87
+ ma_log "Error: Can not find the view file for this controller"
88
+ redirect_to_root
89
+ end
90
+ end
91
+ else
92
+ redirect_to_root
93
+ end
94
+ end
95
+ def run_if
96
+ init_vars(params[:id])
97
+ condition= eval(@runseq.code).to_s
98
+ match_found= false
99
+ if condition
100
+ xml= REXML::Document.new(@runseq.xml).root
101
+ next_runseq= nil
102
+ text = xml.elements['//node/node'].attributes['TEXT']
103
+ match, name= text.split(':',2)
104
+ label= name2code(name.strip)
105
+ if condition==match
106
+ if label=="end"
107
+ @end_job= true
108
+ else
109
+ next_runseq= @xmain.runseqs.where(:code=> label, :action.ne=>'redirect').first
110
+ match_found= true if next_runseq
111
+ @runseq_not_f= false
112
+ end
113
+ end
114
+ end
115
+ unless match_found || @end_job
116
+ next_runseq= @xmain.runseqs.where( rstep:(@xvars['current_step']+1) ).first
117
+ end
118
+ end_action(next_runseq)
119
+ end
120
+ def run_redirect
121
+ init_vars(params[:id])
122
+ # next_runseq= @xmain.runseqs.first :conditions=>["id != ? AND code = ?",@runseq.id, @runseq.code]
123
+ next_runseq= @xmain.runseqs.where(:id.ne=>@runseq.id, :code=>@runseq.code).first
124
+ @xmain.current_runseq= next_runseq.id
125
+ end_action(next_runseq)
126
+ end
127
+ def run_do
128
+ init_vars(params[:id])
129
+ @runseq.start ||= Time.now
130
+ @runseq.status= 'R' # running
131
+ $runseq_id= @runseq.id
132
+ $user_id= current_ma_user.try(:id)
133
+ set_global
134
+ controller = Kernel.const_get(@xvars['custom_controller']).new
135
+ result = controller.send(@runseq.code)
136
+ init_vars_by_runseq($runseq_id)
137
+ @xvars = $xvars
138
+ @xvars[@runseq.code.to_sym]= result.to_s
139
+ @xvars['current_step']= @runseq.rstep
140
+ @runseq.status= 'F' #finish
141
+ @runseq.stop= Time.now
142
+ @runseq.save
143
+ end_action
144
+ rescue => e
145
+ @xmain.status='E'
146
+ @xvars['error']= e.to_s+e.backtrace.to_s
147
+ @xmain.xvars= $xvars
148
+ @xmain.save
149
+ @runseq.status= 'F' #finish
150
+ @runseq.stop= Time.now
151
+ @runseq.save
152
+ refresh_to "/", :alert => "Sorry opeation error at #{@xmain.id} #{@xvars['error']}"
153
+ end
154
+ def run_output
155
+ init_vars(params[:id])
156
+ service= @xmain.service
157
+ disp= get_option("ma_display")
158
+ ma_display = (disp && !affirm(disp)) ? false : true
159
+ if service
160
+ f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
161
+ @ui= File.read(f)
162
+ if Jinda::Doc.where(:runseq_id=>@runseq.id).exists?
163
+ @doc= Jinda::Doc.where(:runseq_id=>@runseq.id).first
164
+ @doc.update_attributes :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
165
+ :xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
166
+ :ip=> get_ip, :service=>service, :ma_display=>ma_display,
167
+ :ma_secured => @xmain.service.ma_secured
168
+ else
169
+ @doc= Jinda::Doc.create :name=> @runseq.name,
170
+ :content_type=>"output", :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
171
+ :xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
172
+ :ip=> get_ip, :service=>service, :ma_display=>ma_display,
173
+ :ma_secured => @xmain.service.ma_secured
174
+ end
175
+ @message = defined?(MSG_NEXT) ? MSG_NEXT : "Next &gt;"
176
+ @message = "Finish" if @runseq.end
177
+ eval "@xvars[@runseq.code] = url_for(:controller=>'Jinda', :action=>'document', :id=>@doc.id)"
178
+ else
179
+ # flash[:notice]= "Error: Can not find the view file for this controller"
180
+ ma_log "Error: Can not find the view file for this controller"
181
+ redirect_to_root
182
+ end
183
+ #ma_display= get_option("ma_display")
184
+ unless ma_display
185
+ end_action
186
+ end
187
+ end
188
+ def run_mail
189
+ init_vars(params[:id])
190
+ service= @xmain.service
191
+ f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
192
+ @ui= File.read(f).html_safe
193
+ @doc= Jinda::Doc.create :name=> @runseq.name,
194
+ :content_type=>"mail", :data_text=> render_to_string(:inline=>@ui, :layout=>false),
195
+ :xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
196
+ :ip=> get_ip, :service=>service, :ma_display=>false,
197
+ :ma_secured => @xmain.service.ma_secured
198
+ eval "@xvars[:#{@runseq.code}] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
199
+ mail_from = get_option('from')
200
+ # sender= render_to_string(:inline=>mail_from) if mail_from
201
+ mail_to = get_option('to')
202
+ recipients= render_to_string(:inline=>mail_to) if mail_to
203
+ mail_subject = get_option('subject')
204
+ subject= render_to_string(:inline=>mail_subject) || "#{@runseq.name}"
205
+ JindaMailer.gmail(@doc.data_text, recipients, subject).deliver unless DONT_SEND_MAIL
206
+ end_action
207
+ end
208
+ def end_output
209
+ init_vars(params[:xmain_id])
210
+ end_action
211
+ end
212
+
213
+ ####################################################
214
+ # search for original_filename if attached #
215
+ ####################################################
216
+ #
217
+ # def end_form
218
+ # init_vars(params[:xmain_id])
219
+ # eval "@xvars[@runseq.code] = {} unless @xvars[@runseq.code]"
220
+ # params.each { |k,v|
221
+ # if params[k].respond_to? :original_filename
222
+ # get_image(k, params[k])
223
+ # elsif params[k].is_a?(Hash)
224
+ # eval "@xvars[@runseq.code][k] = v"
225
+ # params[k].each { |k1,v1|
226
+ # next unless v1.respond_to?(:original_filename)
227
+ # get_image1(k, k1, params[k][k1])
228
+ # }
229
+ # else
230
+ # v = v.to_unsafe_h unless v.class == String
231
+ # eval "@xvars[@runseq.code][k] = v"
232
+ # end
233
+ # }
234
+ # end_action
235
+ # end
236
+ # Not working at ?(Hash)
237
+ # Temp hardcode below!! require field to load name :filename
238
+
239
+
240
+ def end_form
241
+ init_vars(params[:xmain_id])
242
+ eval "@xvars[@runseq.code] = {} unless @xvars[@runseq.code]"
243
+ params.each { |k,v|
244
+ if params[k].respond_to? :original_filename
245
+ get_image(k, params[k])
246
+ elsif params[k]['filename'].respond_to? :original_filename
247
+ eval "@xvars[@runseq.code][k] = v"
248
+ params[k].each { |k1,v1|
249
+ next unless v1.respond_to?(:original_filename)
250
+ get_image1(k, k1, params[k][k1])
251
+ }
252
+
253
+ else
254
+ v = v.to_unsafe_h unless v.class == String
255
+ eval "@xvars[@runseq.code][k] = v"
256
+ end
257
+ }
258
+ end_action
259
+ end
260
+
261
+ def end_action(next_runseq = nil)
262
+ # @runseq.status='F' unless @runseq_not_f
263
+ @xmain.xvars= @xvars
264
+ @xmain.status= 'R' # running
265
+ @xmain.save!
266
+ @runseq.status='F'
267
+ @runseq.user= current_ma_user
268
+ @runseq.stop= Time.now
269
+ @runseq.save
270
+ next_runseq= @xmain.runseqs.where(:rstep=> @runseq.rstep+1).first unless next_runseq
271
+ if @end_job || !next_runseq # job finish
272
+ @xmain.xvars= @xvars
273
+ @xmain.status= 'F' unless @xmain.status== 'E' # finish
274
+ @xmain.stop= Time.now
275
+ @xmain.save
276
+ if @xvars['p']['return']
277
+ redirect_to @xvars['p']['return'] and return
278
+ else
279
+ if @user
280
+ redirect_to :action=>'index' and return
281
+ else
282
+ redirect_to_root and return
283
+ end
284
+ end
285
+ else
286
+ @xmain.update_attribute :current_runseq, next_runseq.id
287
+ redirect_to :action=>'run', :id=>@xmain.id and return
288
+ end
289
+ end
290
+ # process images from first level
291
+ def get_image(key, params)
292
+ doc = Jinda::Doc.create(
293
+ :name=> key.to_s,
294
+ :xmain=> @xmain.id,
295
+ :runseq=> @runseq.id,
296
+ :filename=> params.original_filename,
297
+ :content_type => params.content_type || 'application/zip',
298
+ :data_text=> '',
299
+ :ma_display=>true,
300
+ :ma_secured => @xmain.service.ma_secured )
301
+ if defined?(IMAGE_LOCATION)
302
+ filename = "#{IMAGE_LOCATION}/f#{Param.gen(:asset_id)}"
303
+ File.open(filename,"wb") { |f| f.write(params.read) }
304
+ # File.open(filename,"wb") { |f| f.puts(params.read) }
305
+ eval "@xvars[@runseq.code][key] = '#{url_for(:action=>'document', :id=>doc.id, :only_path => true )}' "
306
+ doc.update_attributes :url => filename, :basename => File.basename(filename), :cloudinary => false
307
+ else
308
+ result = Cloudinary::Uploader.upload(params)
309
+ eval %Q{ @xvars[@runseq.code][key] = '#{result["url"]}' }
310
+ doc.update_attributes :url => result["url"], :basename => File.basename(result["url"]), :cloudinary => true
311
+ end
312
+ end
313
+ # process images from second level, e.g,, fields_for
314
+ def get_image1(key, key1, params)
315
+ doc = Jinda::Doc.create(
316
+ :name=> "#{key}_#{key1}",
317
+ :xmain=> @xmain.id,
318
+ :runseq=> @runseq.id,
319
+ :filename=> params.original_filename,
320
+ :content_type => params.content_type || 'application/zip',
321
+ :data_text=> '',
322
+ :ma_display=>true, :ma_secured => @xmain.service.ma_secured )
323
+ if defined?(IMAGE_LOCATION)
324
+ filename = "#{IMAGE_LOCATION}/f#{Param.gen(:asset_id)}"
325
+ File.open(filename,"wb") { |f| f.write(params.read) }
326
+ eval "@xvars[@runseq.code][key][key1] = '#{url_for(:action=>'document', :id=>doc.id, :only_path => true)}' "
327
+ doc.update_attributes :url => filename, :basename => File.basename(filename), :cloudinary => false
328
+ else
329
+ result = Cloudinary::Uploader.upload(params)
330
+ eval %Q{ @xvars[@runseq.code][key][key1] = '#{result["url"]}' }
331
+ doc.update_attributes :url => result["url"], :basename => File.basename(result["url"]), :cloudinary => true
332
+ end
333
+ end
334
+ def doc_print
335
+ render :file=>'public/doc.html', :layout=>'layouts/print'
336
+ end
337
+ # generate documentation for application
338
+ def doc
339
+ require 'rdoc'
340
+ @app= get_app
341
+ @intro = File.read('README.md')
342
+ @print= "<div align='right'><img src='/assets/printer.png'/> <a href='/jinda/doc_print' target='_blank'/>Print</a></div>"
343
+ doc= render_to_string 'doc.md', :layout => false
344
+ html= Maruku.new(doc).to_html
345
+ File.open('public/doc.html','w') {|f| f.puts html }
346
+ respond_to do |format|
347
+ format.html {
348
+ render :plain=> @print+html, :layout => 'layouts/_page'
349
+ # render :text=> Maruku.new(doc).to_html, :layout => false
350
+ # format.html {
351
+ # h = RDoc::Markup::ToHtml.new
352
+ # render :text=> h.convert(doc), :layout => 'layouts/_page'
353
+ }
354
+ format.pdf {
355
+ latex= Maruku.new(doc).to_latex
356
+ File.open('tmp/doc.md','w') {|f| f.puts doc}
357
+ File.open('tmp/doc.tex','w') {|f| f.puts latex}
358
+ # system('pdflatex tmp/doc.tex ')
359
+ # send_file( 'tmp/doc.pdf', :type => ‘application/pdf’,
360
+ # :disposition => ‘inline’, :filename => 'doc.pdf')
361
+ render :plain=>'done'
362
+ }
363
+ end
364
+ end
365
+ # handle uploaded image
366
+ def document
367
+ doc = Jinda::Doc.find params[:id]
368
+ if doc.cloudinary
369
+ require 'net/http'
370
+ require "uri"
371
+ uri = URI.parse(doc.url)
372
+ data = Net::HTTP.get_response(uri)
373
+ send_data(data.body, :filename=>doc.filename, :type=>doc.content_type, :disposition=>"inline")
374
+ else
375
+ data= read_binary(doc.url)
376
+ send_data(data, :filename=>doc.filename, :type=>doc.content_type, :disposition=>"inline")
377
+ end
378
+ end
379
+ def status
380
+ @xmain= Jinda::Xmain.where(:xid=>params[:xid]).first
381
+ @title= "Task number #{params[:xid]} #{@xmain.name}"
382
+ @backbtn= true
383
+ @xvars= @xmain.xvars
384
+ # flash.now[:notice]= "รายการ #{@xmain.id} ได้ถูกยกเลิกแล้ว" if @xmain.status=='X'
385
+ ma_log "Task #{@xmain.id} is cancelled" if @xmain.status=='X'
386
+ # flash.now[:notice]= "transaction #{@xmain.id} was cancelled" if @xmain.status=='X'
387
+ rescue
388
+ refresh_to "/", :alert => "Could not find task number <b> #{params[:xid]} </b>"
389
+ end
390
+ def help
391
+ end
392
+ def search
393
+ @q = params[:q] || params[:ma_search][:q] || ""
394
+ @title = "ผลการค้นหา #{@q}"
395
+ @backbtn= true
396
+ @cache= true
397
+ if @q.blank?
398
+ redirect_to "/"
399
+ else
400
+ s= GmaSearch.create :q=>@q, :ip=> request.env["REMOTE_ADDR"]
401
+ do_search
402
+ end
403
+ end
404
+ def err404
405
+ # ma_log 'ERROR', 'main/err404'
406
+ flash[:notice] = "We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly."
407
+ ma_log "We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly."
408
+ redirect_to '/'
409
+ end
410
+ def err500
411
+ # ma_log 'ERROR', 'main/err500'
412
+ flash[:notice] = "We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly."
413
+ ma_log "We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly."
414
+ redirect_to '/'
415
+ end
416
+
417
+ private
418
+ def create_xmain(service)
419
+ c = name2camel(service.module.code)
420
+ custom_controller= "#{c}Controller"
421
+ params["return"] = request.env['HTTP_REFERER']
422
+ Jinda::Xmain.create :service=>service,
423
+ :start=>Time.now,
424
+ :name=>service.name,
425
+ :ip=> get_ip,
426
+ :status=>'I', # init
427
+ :user=>current_ma_user,
428
+ :xvars=> {
429
+ :service_id=>service.id,
430
+ :p=>params.to_unsafe_h,
431
+ :id=>params[:id],
432
+ :user_id=>current_ma_user.try(:id),
433
+ :custom_controller=>custom_controller,
434
+ :host=>request.host,
435
+ :referer=>request.env['HTTP_REFERER']
436
+ }
437
+ end
438
+ def create_runseq(xmain)
439
+ @xvars= xmain.xvars
440
+ default_role= get_default_role
441
+ xml= xmain.service.xml
442
+ root = REXML::Document.new(xml).root
443
+ i= 0; j= 0 # i= step, j= form_step
444
+ root.elements.each('node') do |activity|
445
+ text= activity.attributes['TEXT']
446
+ next if ma_comment?(text)
447
+ next if text =~/^rule:\s*/
448
+ action= freemind2action(activity.elements['icon'].attributes['BUILTIN']) if activity.elements['icon']
449
+ return false unless action
450
+ i= i + 1
451
+ output_ma_display= false
452
+ if action=='output'
453
+ ma_display= get_option_xml("ma_display", activity)
454
+ if ma_display && !affirm(ma_display)
455
+ output_ma_display= false
456
+ else
457
+ output_ma_display= true
458
+ end
459
+ end
460
+ j= j + 1 if (action=='form' || output_ma_display)
461
+ @xvars['referer'] = activity.attributes['TEXT'] if action=='redirect'
462
+ if action!= 'if'
463
+ scode, name= text.split(':', 2)
464
+ name ||= scode; name.strip!
465
+ code= name2code(scode)
466
+ else
467
+ code= text
468
+ name= text
469
+ end
470
+ role= get_option_xml("role", activity) || default_role
471
+ rule= get_option_xml("rule", activity) || "true"
472
+ runseq= Jinda::Runseq.create :xmain=>xmain.id,
473
+ :name=> name, :action=> action,
474
+ :code=> code, :role=>role.upcase, :rule=> rule,
475
+ :rstep=> i, :form_step=> j, :status=>'I',
476
+ :xml=>activity.to_s
477
+ xmain.current_runseq= runseq.id if i==1
478
+ end
479
+ @xvars['total_steps']= i
480
+ @xvars['total_form_steps']= j
481
+ end
482
+ def init_vars(xmain)
483
+ @xmain= Jinda::Xmain.find xmain
484
+ @xvars= @xmain.xvars
485
+ @runseq= @xmain.runseqs.find @xmain.current_runseq
486
+ # authorize?
487
+ @xvars['current_step']= @runseq.rstep
488
+ @xvars['referrer']= request.referrer
489
+ session[:xmain_id]= @xmain.id
490
+ session[:runseq_id]= @runseq.id
491
+ unless params[:action]=='run_call'
492
+ @runseq.start ||= Time.now
493
+ @runseq.status= 'R' # running
494
+ @runseq.save
495
+ end
496
+ $xmain= @xmain; $xvars= @xvars
497
+ $runseq_id= @runseq.id
498
+ $user_id= current_ma_user.try(:id)
499
+ end
500
+ def init_vars_by_runseq(runseq_id)
501
+ @runseq= Jinda::Runseq.find runseq_id
502
+ @xmain= @runseq.xmain
503
+ @xvars= @xmain.xvars
504
+ #@xvars[:current_step]= @runseq.rstep
505
+ @runseq.start ||= Time.now
506
+ @runseq.status= 'R' # running
507
+ @runseq.save
508
+ end
509
+ def store_asset
510
+ if params[:content]
511
+ doc = GmaDoc.create! :name=> 'asset',
512
+ :filename=> (params[:file_name]||''),
513
+ :content_type => (params[:content_type] || 'application/zip'),
514
+ :data_text=> '',
515
+ :ma_display=>true
516
+ path = (IMAGE_LOCATION || "tmp")
517
+ File.open("#{path}/f#{doc.id}","wb") { |f|
518
+ f.puts(params[:content])
519
+ }
520
+ render :xml=>"<elocal><doc id='#{doc.id}' /><success /></elocal>"
521
+ else
522
+ render :xml=>"<elocal><fail /></elocal>"
523
+ end
524
+ end
525
+ def do_search
526
+ if current_ma_user.ma_secured?
527
+ @docs = GmaDoc.search_ma_secured(@q.downcase, params[:page], PER_PAGE)
528
+ else
529
+ @docs = GmaDoc.search(@q.downcase, params[:page], PER_PAGE)
530
+ end
531
+ @xmains = GmaXmain.find(@docs.map(&:ma_xmain_id)).sort { |a,b| b.id<=>a.id }
532
+ # @xmains = GmaXmain.find @docs.map(&:created_at).sort { |a,b| b<=>a }
533
+ end
534
+ def read_binary(path)
535
+ File.open path, "rb" do |f| f.read end
536
+ end
537
+ end