jinda 0.6.2 → 0.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (220) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/config/manifest.js +4 -0
  4. data/{lib/generators/jinda/templates/app → app}/assets/images/4dcity-old.ico +0 -0
  5. data/{lib/generators/jinda/templates/app → app}/assets/images/4dcity.ico +0 -0
  6. data/{lib/generators/jinda/templates/app → app}/assets/images/account.png +0 -0
  7. data/{lib/generators/jinda/templates/app → app}/assets/images/add.png +0 -0
  8. data/{lib/generators/jinda/templates/app → app}/assets/images/ajax-loader-circle.gif +0 -0
  9. data/{lib/generators/jinda/templates/app → app}/assets/images/ajax-loader.gif +0 -0
  10. data/{lib/generators/jinda/templates/app → app}/assets/images/anchor.png +0 -0
  11. data/{lib/generators/jinda/templates/app → app}/assets/images/application_double.png +0 -0
  12. data/{lib/generators/jinda/templates/app → app}/assets/images/application_form_edit.png +0 -0
  13. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_left.png +0 -0
  14. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_right.png +0 -0
  15. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_turn_left.png +0 -0
  16. data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_turn_right.png +0 -0
  17. data/{lib/generators/jinda/templates/app → app}/assets/images/calendar.png +0 -0
  18. data/{lib/generators/jinda/templates/app → app}/assets/images/cancel.png +0 -0
  19. data/{lib/generators/jinda/templates/app → app}/assets/images/chart_bar.png +0 -0
  20. data/{lib/generators/jinda/templates/app → app}/assets/images/clock.png +0 -0
  21. data/{lib/generators/jinda/templates/app → app}/assets/images/cog.png +0 -0
  22. data/{lib/generators/jinda/templates/app → app}/assets/images/control_fastforward.png +0 -0
  23. data/{lib/generators/jinda/templates/app → app}/assets/images/control_play.png +0 -0
  24. data/{lib/generators/jinda/templates/app → app}/assets/images/cross.png +0 -0
  25. data/{lib/generators/jinda/templates/app → app}/assets/images/delete.png +0 -0
  26. data/{lib/generators/jinda/templates/app → app}/assets/images/external-link.png +0 -0
  27. data/{lib/generators/jinda/templates/app → app}/assets/images/facebook-continue-button.png +0 -0
  28. data/{lib/generators/jinda/templates/app → app}/assets/images/facebooksmall.png +0 -0
  29. data/{lib/generators/jinda/templates/app → app}/assets/images/favicon.ico +0 -0
  30. data/{lib/generators/jinda/templates/app → app}/assets/images/freemind(mm).png +0 -0
  31. data/{lib/generators/jinda/templates/app → app}/assets/images/google-continue-button.png +0 -0
  32. data/{lib/generators/jinda/templates/app → app}/assets/images/help.png +0 -0
  33. data/{lib/generators/jinda/templates/app → app}/assets/images/highway-menu.png +0 -0
  34. data/{lib/generators/jinda/templates/app → app}/assets/images/highway.png +0 -0
  35. data/{lib/generators/jinda/templates/app → app}/assets/images/house.png +0 -0
  36. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-18-black.png +0 -0
  37. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-18-white.png +0 -0
  38. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-36-black.png +0 -0
  39. data/{lib/generators/jinda/templates/app → app}/assets/images/icons-36-white.png +0 -0
  40. data/{lib/generators/jinda/templates/app → app}/assets/images/logo.png +0 -0
  41. data/{lib/generators/jinda/templates/app → app}/assets/images/logo_jinda.png +0 -0
  42. data/{lib/generators/jinda/templates/app → app}/assets/images/logout.png +0 -0
  43. data/{lib/generators/jinda/templates/app → app}/assets/images/new.gif +0 -0
  44. data/{lib/generators/jinda/templates/app → app}/assets/images/new.png +0 -0
  45. data/{lib/generators/jinda/templates/app → app}/assets/images/page.png +0 -0
  46. data/{lib/generators/jinda/templates/app → app}/assets/images/page_attach.png +0 -0
  47. data/{lib/generators/jinda/templates/app → app}/assets/images/page_green.png +0 -0
  48. data/{lib/generators/jinda/templates/app → app}/assets/images/page_output.png +0 -0
  49. data/{lib/generators/jinda/templates/app → app}/assets/images/page_pdf.png +0 -0
  50. data/{lib/generators/jinda/templates/app → app}/assets/images/pencil.png +0 -0
  51. data/{lib/generators/jinda/templates/app → app}/assets/images/printer.png +0 -0
  52. data/{lib/generators/jinda/templates/app → app}/assets/images/refresh.png +0 -0
  53. data/{lib/generators/jinda/templates/app → app}/assets/images/report.png +0 -0
  54. data/{lib/generators/jinda/templates/app → app}/assets/images/rssmall.png +0 -0
  55. data/{lib/generators/jinda/templates/app → app}/assets/images/tick.png +0 -0
  56. data/{lib/generators/jinda/templates/app → app}/assets/images/twittersmall.png +0 -0
  57. data/{lib/generators/jinda/templates/app → app}/assets/images/user.png +0 -0
  58. data/{lib/generators/jinda/templates/app → app}/assets/images/user_admin_gear.png +0 -0
  59. data/{lib/generators/jinda/templates/app → app}/assets/images/view_code.png +0 -0
  60. data/{lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm → app/assets/javascripts/application.js-org} +8 -11
  61. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/cable.js +0 -0
  62. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/disable_enter_key.js +0 -0
  63. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/iscroll-wrapper.js +0 -0
  64. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/iscroll.js +0 -0
  65. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jinda.js +0 -0
  66. data/app/assets/javascripts/jinda_jqm.js +24 -0
  67. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile-1.2.1.js +0 -0
  68. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile.datebox.js +0 -0
  69. data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile.splitview.js +0 -0
  70. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/app.scss +0 -0
  71. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/articles.scss +0 -0
  72. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.eot +0 -0
  73. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.ttf +0 -0
  74. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.woff +0 -0
  75. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  76. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  77. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  78. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  79. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  80. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  81. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew.css +0 -0
  82. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  83. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  84. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  85. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  86. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  87. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  88. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  89. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  90. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  91. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/ajax-loader.gif +0 -0
  92. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_black.png +0 -0
  93. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_blue.png +0 -0
  94. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_red.png +0 -0
  95. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-18-black.png +0 -0
  96. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-18-white.png +0 -0
  97. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-36-black.png +0 -0
  98. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-36-white.png +0 -0
  99. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/indicator.gif +0 -0
  100. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jinda.css +0 -0
  101. data/app/assets/stylesheets/jinda_jqm.css.scss +32 -0
  102. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile-1.2.1.css +0 -0
  103. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.datebox.css +0 -0
  104. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.grids.collapsible.css +0 -0
  105. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.splitview.css +0 -0
  106. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/kul-4.2.css +0 -0
  107. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/kul-4.2.min.css +0 -0
  108. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/modules.scss +0 -0
  109. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/sarabun.css +0 -0
  110. data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/social.scss +0 -0
  111. data/{lib/generators/jinda/templates/app → app}/controllers/concerns/jinda_general_concern.rb +0 -0
  112. data/{lib/generators/jinda/templates/app → app}/controllers/concerns/jinda_run_concern.rb +0 -0
  113. data/{lib/generators/jinda/templates/app/controllers/jinda_org → app/controllers}/jinda_controller.rb +0 -0
  114. data/app/jinda/index.mm +369 -0
  115. data/app/jinda/template/index.mm +366 -0
  116. data/app/jinda/template/linkview.haml +21 -0
  117. data/app/jinda/template/view.html.erb +26 -0
  118. data/{lib/generators/jinda/templates/app → app}/views/jinda/_activity.md +0 -0
  119. data/{lib/generators/jinda/templates/app → app}/views/jinda/_menu.haml +0 -0
  120. data/{lib/generators/jinda/templates/app → app}/views/jinda/_menu_mm.haml +0 -0
  121. data/{lib/generators/jinda/templates/app → app}/views/jinda/_model.md +0 -0
  122. data/{lib/generators/jinda/templates/app → app}/views/jinda/_modul.md +0 -0
  123. data/{lib/generators/jinda/templates/app → app}/views/jinda/_pending_home.haml +0 -0
  124. data/{lib/generators/jinda/templates/app → app}/views/jinda/_pending_page.haml +0 -0
  125. data/{lib/generators/jinda/templates/app → app}/views/jinda/_service.md +0 -0
  126. data/{lib/generators/jinda/templates/app → app}/views/jinda/_static.haml +0 -0
  127. data/{lib/generators/jinda/templates/app → app}/views/jinda/doc-thai.md +0 -0
  128. data/{lib/generators/jinda/templates/app → app}/views/jinda/doc.md +0 -0
  129. data/{lib/generators/jinda/templates/app → app}/views/jinda/error_logs.haml +0 -0
  130. data/{lib/generators/jinda/templates/app → app}/views/jinda/feed.rss.builder +0 -0
  131. data/{lib/generators/jinda/templates/app → app}/views/jinda/help.haml +0 -0
  132. data/{lib/generators/jinda/templates/app → app}/views/jinda/index.html.haml +1 -1
  133. data/{lib/generators/jinda/templates/app → app}/views/jinda/logs.haml +0 -0
  134. data/{lib/generators/jinda/templates/app → app}/views/jinda/notice_logs.haml +0 -0
  135. data/{lib/generators/jinda/templates/app → app}/views/jinda/pending.haml +0 -0
  136. data/{lib/generators/jinda/templates/app → app}/views/jinda/run_form.haml +0 -0
  137. data/{lib/generators/jinda/templates/app → app}/views/jinda/run_output.haml +0 -0
  138. data/{lib/generators/jinda/templates/app → app}/views/jinda/search.haml +0 -0
  139. data/{lib/generators/jinda/templates/app → app}/views/jinda/status.haml +0 -0
  140. data/lib/generators/jinda/config_generator.rb +7 -0
  141. data/lib/generators/jinda/install_generator.rb +45 -42
  142. data/lib/generators/jinda/templates/Dockerfile +24 -0
  143. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +1 -10
  144. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +1 -20
  145. data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
  146. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
  147. data/lib/generators/jinda/templates/docker-compose.yml +16 -0
  148. data/lib/generators/jinda/templates/entrypoint.sh +12 -0
  149. data/lib/jinda.rb +2 -1
  150. data/lib/jinda/date_helpers.rb +109 -0
  151. data/lib/jinda/{gemhelpers.rb → gem_helpers.rb} +0 -1
  152. data/lib/jinda/gen_class.rb +13 -0
  153. data/lib/jinda/gen_controller.rb +10 -0
  154. data/lib/jinda/gen_freemind.rb +33 -0
  155. data/lib/jinda/gen_helpers.rb +141 -0
  156. data/lib/jinda/gen_models.rb +137 -0
  157. data/lib/jinda/gen_runseq.rb +71 -0
  158. data/lib/jinda/gen_services.rb +90 -0
  159. data/lib/jinda/gen_xmain.rb +38 -0
  160. data/lib/jinda/get_app.rb +34 -0
  161. data/lib/jinda/helpers.rb +17 -998
  162. data/lib/jinda/init_vars.rb +36 -0
  163. data/lib/jinda/rake_views.rb +59 -0
  164. data/lib/jinda/refresh.rb +67 -0
  165. data/lib/jinda/themes.rb +163 -0
  166. data/lib/jinda/version.rb +1 -1
  167. data/test/dummy/Rakefile +6 -0
  168. data/test/dummy/app/assets/config/manifest.js +3 -0
  169. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  170. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  171. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  172. data/test/dummy/app/controllers/application_controller.rb +2 -0
  173. data/test/dummy/app/helpers/application_helper.rb +2 -0
  174. data/test/dummy/app/javascript/packs/application.js +15 -0
  175. data/test/dummy/app/jobs/application_job.rb +7 -0
  176. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  177. data/test/dummy/app/models/application_record.rb +3 -0
  178. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  179. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  180. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  181. data/test/dummy/bin/rails +4 -0
  182. data/test/dummy/bin/rake +4 -0
  183. data/test/dummy/bin/setup +33 -0
  184. data/test/dummy/config.ru +5 -0
  185. data/test/dummy/config/application.rb +19 -0
  186. data/test/dummy/config/boot.rb +5 -0
  187. data/test/dummy/config/cable.yml +10 -0
  188. data/test/dummy/config/database.yml +25 -0
  189. data/test/dummy/config/environment.rb +5 -0
  190. data/test/dummy/config/environments/development.rb +62 -0
  191. data/test/dummy/config/environments/production.rb +112 -0
  192. data/test/dummy/config/environments/test.rb +49 -0
  193. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  194. data/test/dummy/config/initializers/assets.rb +12 -0
  195. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  196. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  197. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  198. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  199. data/test/dummy/config/initializers/inflections.rb +16 -0
  200. data/test/dummy/config/initializers/mime_types.rb +4 -0
  201. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  202. data/test/dummy/config/locales/en.yml +33 -0
  203. data/test/dummy/config/puma.rb +38 -0
  204. data/test/dummy/config/routes.rb +3 -0
  205. data/test/dummy/config/spring.rb +6 -0
  206. data/test/dummy/config/storage.yml +34 -0
  207. data/test/dummy/db/development.sqlite3 +0 -0
  208. data/test/dummy/log/development.log +8 -0
  209. data/test/dummy/public/404.html +67 -0
  210. data/test/dummy/public/422.html +67 -0
  211. data/test/dummy/public/500.html +66 -0
  212. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  213. data/test/dummy/public/apple-touch-icon.png +0 -0
  214. data/test/dummy/public/favicon.ico +0 -0
  215. data/test/dummy/tmp/development_secret.txt +1 -0
  216. data/test/integration/navigation_test.rb +7 -0
  217. data/test/jinda_test.rb +7 -0
  218. data/test/test_helper.rb +19 -0
  219. metadata +232 -161
  220. data/lib/generators/jinda/templates/app/controllers/jinda_org/devs_controller.rb +0 -2
@@ -0,0 +1,36 @@
1
+ def init_vars_by_runseq(runseq_id)
2
+ @runseq= Jinda::Runseq.find runseq_id
3
+ @xmain= @runseq.xmain
4
+ @xvars= @xmain.xvars
5
+ #@xvars[:current_step]= @runseq.rstep
6
+ @runseq.start ||= Time.now
7
+ @runseq.status= 'R' # running
8
+ @runseq.save
9
+ end
10
+ def init_vars(xmain)
11
+ @xmain= Jinda::Xmain.find xmain
12
+ @xvars= @xmain.xvars
13
+ @runseq= @xmain.runseqs.find @xmain.current_runseq
14
+ # authorize?
15
+ @xvars['current_step']= @runseq.rstep
16
+ @xvars['referrer']= request.referrer
17
+ session[:xmain_id]= @xmain.id
18
+ session[:runseq_id]= @runseq.id
19
+ unless params[:action]=='run_call'
20
+ @runseq.start ||= Time.now
21
+ @runseq.status= 'R' # running
22
+ @runseq.save
23
+ end
24
+ $xmain= @xmain; $xvars= @xvars
25
+ $runseq_id= @runseq.id
26
+ $user_id= current_ma_user.try(:id)
27
+ end
28
+ def init_vars_by_runseq(runseq_id)
29
+ @runseq= Jinda::Runseq.find runseq_id
30
+ @xmain= @runseq.xmain
31
+ @xvars= @xmain.xvars
32
+ #@xvars[:current_step]= @runseq.rstep
33
+ @runseq.start ||= Time.now
34
+ @runseq.status= 'R' # running
35
+ @runseq.save
36
+ end
@@ -0,0 +1,59 @@
1
+ ########################################################################
2
+ # Jinda Rake Task #
3
+ ########################################################################
4
+
5
+ def gen_views
6
+ t = ["*** generate ui ***"]
7
+
8
+ # create array of files to be tested
9
+ $afile = Array.new
10
+
11
+ Jinda::Module.all.each do |m|
12
+ m.services.each do |s|
13
+ dir ="app/views/#{s.module.code}"
14
+ unless gen_view_file_exist?(dir)
15
+ gen_view_mkdir(dir,t)
16
+ end
17
+
18
+ if s.code=='link'
19
+ f= "app/views/#{s.module.code}/index.haml"
20
+ $afile << f
21
+ unless gen_view_file_exist?(f)
22
+ sv = "app/jinda/template/linkview.haml"
23
+ f= "app/views/#{s.module.code}/index.haml"
24
+ gen_view_createfile(sv,f,t)
25
+ end
26
+ next
27
+ end
28
+
29
+ dir ="app/views/#{s.module.code}/#{s.code}"
30
+ unless gen_view_file_exist?(dir)
31
+ gen_view_mkdir(dir,t)
32
+ end
33
+
34
+ xml= REXML::Document.new(s.xml)
35
+ xml.elements.each('*/node') do |activity|
36
+ icon = activity.elements['icon']
37
+ next unless icon
38
+ action= freemind2action(icon.attributes['BUILTIN'])
39
+ next unless ui_action?(action)
40
+ code_name = activity.attributes["TEXT"].to_s
41
+ next if code_name.comment?
42
+ code= name2code(code_name)
43
+ if action=="pdf"
44
+ f= "app/views/#{s.module.code}/#{s.code}/#{code}.pdf.prawn"
45
+ else
46
+ f= "app/views/#{s.module.code}/#{s.code}/#{code}.html.erb"
47
+ end
48
+ $afile << f
49
+ unless gen_view_file_exist?(f)
50
+ sv = "app/jinda/template/view.html.erb"
51
+ gen_view_createfile(sv,f,t)
52
+ end
53
+ end
54
+ end
55
+ end
56
+ puts $afile.join("\n")
57
+ puts t.join("\n")
58
+ return $afile
59
+ end
@@ -0,0 +1,67 @@
1
+ def b(s)
2
+ "<b>#{s}</b>".html_safe
3
+ end
4
+ def link_to_blank(body, url_options = {}, html_options = {})
5
+ link_to(body, url_options, html_options.merge(target: "_blank"))
6
+ end
7
+ def code_text(s) # old def code(s)
8
+ "<pre style='background-color: #efffef;'><code class='ruby' lang='ruby'>#{s}</code></pre>".html_safe
9
+ end
10
+
11
+ def refresh_to(url='/', option={})
12
+ if option[:alert]
13
+ ma_log option[:alert]
14
+ end
15
+ # skip #
16
+ # Rails 5.2 not allow to use js inline call
17
+ render inline: "<script>window.location.replace('#{url}')</script>"
18
+ # redirect_to url
19
+ # render js: "window.location.replace(\'#{url}\')"
20
+ end
21
+
22
+ # def refresh_to
23
+ # respond_to do |format|
24
+ # format.js { render :js => "refresh();" }
25
+ # end
26
+ # end
27
+
28
+ def read_binary(path)
29
+ File.open path, "rb" do |f| f.read end
30
+ end
31
+ def redirect_to_root
32
+ redirect_to root_path
33
+ end
34
+
35
+ # Todo refactor code
36
+ def get_option(opt, runseq=@runseq)
37
+ xml= REXML::Document.new(runseq.xml).root
38
+ url=''
39
+ # get option from second element of node using '//node'
40
+ xml.each_element('//node') do |n|
41
+ if n.attributes['TEXT']
42
+ text = n.attributes['TEXT']
43
+ url= text if text =~ /^#{opt}:\s*/
44
+ end
45
+ end
46
+ return nil if url.blank?
47
+ c, h= url.split(':', 2)
48
+ opt= h ? h.strip : false
49
+ end
50
+ def ma_comment?(s)
51
+ s[0]==35
52
+ end
53
+ def get_ip
54
+ request.env['HTTP_X_FORWARDED_FOR'] || request.env['REMOTE_ADDR']
55
+ end
56
+ def get_default_role
57
+ default_role= Jinda::Role.where(:code =>'default').first
58
+ return default_role ? default_role.name.to_s : ''
59
+ end
60
+
61
+ def sign_in?
62
+ if current_ma_user.present?
63
+ return true
64
+ else
65
+ return false
66
+ end
67
+ end
@@ -0,0 +1,163 @@
1
+
2
+ # ############################### Themes ###################################
3
+ #
4
+ # Check login user information from User model: name(code), image for Themes
5
+ #
6
+ # ##########################################################################
7
+ def get_login_user_info
8
+ if current_ma_user.present?
9
+ $user_image = current_ma_user.image
10
+ $user_name = current_ma_user.code
11
+ $user_email = current_ma_user.email
12
+ $user_id = current_ma_user.try(:id)
13
+ else
14
+ $user_image = asset_url("user.png", :width => "48")
15
+ $user_name = 'Guest User'
16
+ $user_email = 'guest@sample.com'
17
+ $user_id = ''
18
+ end
19
+ return $user_image, $user_name, $user_email,$user_id
20
+ end
21
+
22
+ def name2code(s)
23
+ # rather not ignore # symbol cause it could be comment
24
+ code, name = s.split(':')
25
+ code.downcase.strip.gsub(' ','_').gsub(/[^#_\/a-zA-Z0-9]/,'')
26
+ end
27
+ def name2camel(s)
28
+ s.gsub(' ','_').camelcase
29
+ end
30
+ def true_action?(s)
31
+ %w(call ws redirect invoke email).include? s
32
+ end
33
+ def set_global
34
+ $xmain= @xmain ; $runseq = @runseq ; $user = current_ma_user ; $xvars= @xmain.xvars; $ip = request.env["REMOTE_ADDR"]
35
+ end
36
+ def authorize? # use in pending tasks
37
+ @runseq= @xmain.runseqs.find @xmain.current_runseq
38
+ return false unless @runseq
39
+ @user = current_ma_user
40
+ set_global
41
+ return false unless eval(@runseq.rule) if @runseq.rule
42
+ return true if true_action?(@runseq.action)
43
+ # return false if check_wait
44
+ return true if @runseq.role.blank?
45
+ unless @runseq.role.empty?
46
+ return false unless @user.role
47
+ return @user.role.upcase.split(',').include?(@runseq.role.upcase)
48
+ end
49
+ return true
50
+ end
51
+ def authorize_init? # use when initialize new transaction
52
+ # check module role
53
+ mrole = @service.module.role
54
+ return false if mrole && !current_ma_user
55
+ return false if mrole && !current_ma_user.has_role(mrole)
56
+
57
+ # check step 1 role
58
+ xml= @service.xml
59
+ step1 = REXML::Document.new(xml).root.elements['node']
60
+ role= get_option_xml("role", step1) || ""
61
+ # rule= get_option_xml("rule", step1) || true
62
+ rule= get_option_xml("rule", step1) || true
63
+ return true if role==""
64
+ unless current_ma_user
65
+ return role.blank?
66
+ else
67
+ return false unless current_ma_user.role
68
+ return current_ma_user.has_role(role)
69
+ end
70
+
71
+ end
72
+ def ma_log(message)
73
+ # Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
74
+ # :unread=> true, :ip=> ($ip || request.env["REMOTE_ADDR"])
75
+ if session[:user_id]
76
+ Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
77
+ :user_id => $user.id, :unread=> true, :ip=>request.env["REMOTE_ADDR"]
78
+ else
79
+ Jinda::Notice.create :message => ERB::Util.html_escape(message.gsub("`","'")),
80
+ :unread=> true, :ip=>request.env["REMOTE_ADDR"]
81
+ end
82
+ end
83
+
84
+ alias :ma_notice :ma_log
85
+
86
+ # methods from application_helper
87
+ def markdown(text)
88
+ erbified = ERB.new(text.html_safe).result(binding)
89
+ red = Redcarpet::Markdown.new(Redcarpet::Render::HTML, :autolink => true, :space_after_headers => true)
90
+ red.render(erbified).html_safe
91
+ end
92
+ def align_text(s, pixel=3)
93
+ "<span style='position:relative; top:-#{pixel}px;'>#{s}</span>".html_safe
94
+ end
95
+ def status_icon(status)
96
+ case status
97
+ when 'R'
98
+ image_tag 'user.png'
99
+ when 'F'
100
+ image_tag 'tick.png'
101
+ when 'I'
102
+ image_tag 'control_play.png'
103
+ when 'E'
104
+ image_tag 'logout.png'
105
+ when 'X'
106
+ image_tag 'cross.png'
107
+ else
108
+ image_tag 'cancel.png'
109
+ end
110
+ end
111
+ def role_name(code)
112
+ role= Jinda::Role.where(code:code).first
113
+ return role ? role.name : ""
114
+ end
115
+ def uncomment(s)
116
+ s.sub(/^#\s/,'')
117
+ end
118
+ def code_div(s)
119
+ "<pre style='background-color: #efffef;'><code class='ruby' lang='ruby'> #{s}</code></pre>".html_safe
120
+ end
121
+ def ajax?(s)
122
+ return s.match('file_field') ? false : true
123
+ end
124
+ def step(s, total) # square text
125
+ s = (s==0)? 1: s.to_i
126
+ total = total.to_i
127
+ out ="<div class='step'>"
128
+ (s-1).times {|ss| out += "<span class='steps_done'>#{(ss+1)}</span>" }
129
+ out += %Q@<span class='step_now' >@
130
+ out += s.to_s
131
+ out += "</span>"
132
+ out += %Q@@
133
+ for i in s+1..total
134
+ out += "<span class='steps_more'>#{i}</span>"
135
+ end
136
+ out += "</div>"
137
+ out.html_safe
138
+ end
139
+
140
+ def current_ma_user
141
+ # if session[:user_id]
142
+ # return @user ||= User.find(session[:user_id]['$oid'])
143
+ # else
144
+ # return nil
145
+ # end
146
+ #@user ||= User.find_by_auth_token!(cookies[:auth_token]) if cookies[:auth_token]
147
+ @user ||= User.where(:auth_token => cookies[:auth_token]).first if cookies[:auth_token]
148
+ return @user
149
+ end
150
+
151
+ def ui_action?(s)
152
+ %w(form output mail pdf).include? s
153
+ end
154
+ # def handle_ma_notice
155
+ # if Jinda::Notice.recent.count>0
156
+ # notice= Jinda::Notice.recent.last
157
+ # notice.update_attribute :unread, false
158
+ # "<script>notice('#{notice.message}');</script>"
159
+ # else
160
+ # ""
161
+ # end
162
+ # end
163
+
@@ -1,3 +1,3 @@
1
1
  module Jinda
2
- VERSION = "0.6.2"
2
+ VERSION = "0.6.8"
3
3
  end
@@ -0,0 +1,6 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require_relative 'config/application'
5
+
6
+ Rails.application.load_tasks
@@ -0,0 +1,3 @@
1
+ //= link_tree ../images
2
+ //= link_directory ../stylesheets .css
3
+ //= link jinda_manifest.js
@@ -0,0 +1,15 @@
1
+ /*
2
+ * This is a manifest file that'll be compiled into application.css, which will include all the files
3
+ * listed below.
4
+ *
5
+ * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets,
6
+ * or any plugin's vendor/assets/stylesheets directory can be referenced here using a relative path.
7
+ *
8
+ * You're free to add application-wide styles to this file and they'll appear at the bottom of the
9
+ * compiled file so the styles you add here take precedence over styles defined in any other CSS/SCSS
10
+ * files in this directory. Styles in this file should be added after the last require_* statement.
11
+ * It is generally better to create a new file per style scope.
12
+ *
13
+ *= require_tree .
14
+ *= require_self
15
+ */
@@ -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,2 @@
1
+ class ApplicationController < ActionController::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ module ApplicationHelper
2
+ end
@@ -0,0 +1,15 @@
1
+ // This is a manifest file that'll be compiled into application.js, which will include all the files
2
+ // listed below.
3
+ //
4
+ // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
5
+ // or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
6
+ //
7
+ // It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
8
+ // compiled file. JavaScript code in this file should be added after the last require_* statement.
9
+ //
10
+ // Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
11
+ // about supported directives.
12
+ //
13
+ //= require rails-ujs
14
+ //= require activestorage
15
+ //= require_tree .
@@ -0,0 +1,7 @@
1
+ class ApplicationJob < ActiveJob::Base
2
+ # Automatically retry jobs that encountered a deadlock
3
+ # retry_on ActiveRecord::Deadlocked
4
+
5
+ # Most jobs are safe to ignore if the underlying records are no longer available
6
+ # discard_on ActiveJob::DeserializationError
7
+ end
@@ -0,0 +1,4 @@
1
+ class ApplicationMailer < ActionMailer::Base
2
+ default from: 'from@example.com'
3
+ layout 'mailer'
4
+ end
@@ -0,0 +1,3 @@
1
+ class ApplicationRecord < ActiveRecord::Base
2
+ self.abstract_class = true
3
+ end
@@ -0,0 +1,14 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Dummy</title>
5
+ <%= csrf_meta_tags %>
6
+ <%= csp_meta_tag %>
7
+
8
+ <%= stylesheet_link_tag 'application', media: 'all' %>
9
+ </head>
10
+
11
+ <body>
12
+ <%= yield %>
13
+ </body>
14
+ </html>
@@ -0,0 +1,13 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5
+ <style>
6
+ /* Email styles need to be inline */
7
+ </style>
8
+ </head>
9
+
10
+ <body>
11
+ <%= yield %>
12
+ </body>
13
+ </html>