jinda 0.6.5 → 0.6.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/lib/generators/jinda/config_generator.rb +7 -0
  4. data/lib/generators/jinda/install_generator.rb +45 -42
  5. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +1 -10
  6. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +1 -20
  7. data/lib/jinda.rb +2 -1
  8. data/lib/jinda/date_helpers.rb +109 -0
  9. data/lib/jinda/{gemhelpers.rb → gem_helpers.rb} +0 -1
  10. data/lib/jinda/gen_class.rb +13 -0
  11. data/lib/jinda/gen_controller.rb +10 -0
  12. data/lib/jinda/gen_freemind.rb +33 -0
  13. data/lib/jinda/gen_helpers.rb +141 -0
  14. data/lib/jinda/gen_models.rb +137 -0
  15. data/lib/jinda/gen_runseq.rb +71 -0
  16. data/lib/jinda/gen_services.rb +90 -0
  17. data/lib/jinda/gen_xmain.rb +38 -0
  18. data/lib/jinda/get_app.rb +34 -0
  19. data/lib/jinda/helpers.rb +17 -998
  20. data/lib/jinda/init_vars.rb +36 -0
  21. data/lib/jinda/rake_views.rb +59 -0
  22. data/lib/jinda/refresh.rb +67 -0
  23. data/lib/jinda/themes.rb +163 -0
  24. data/lib/jinda/version.rb +1 -1
  25. data/test/dummy/Rakefile +6 -0
  26. data/test/dummy/app/assets/config/manifest.js +3 -0
  27. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  28. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  29. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  30. data/test/dummy/app/controllers/application_controller.rb +2 -0
  31. data/test/dummy/app/helpers/application_helper.rb +2 -0
  32. data/test/dummy/app/javascript/packs/application.js +15 -0
  33. data/test/dummy/app/jobs/application_job.rb +7 -0
  34. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  35. data/test/dummy/app/models/application_record.rb +3 -0
  36. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  37. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  38. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  39. data/test/dummy/bin/rails +4 -0
  40. data/test/dummy/bin/rake +4 -0
  41. data/test/dummy/bin/setup +33 -0
  42. data/test/dummy/config.ru +5 -0
  43. data/test/dummy/config/application.rb +19 -0
  44. data/test/dummy/config/boot.rb +5 -0
  45. data/test/dummy/config/cable.yml +10 -0
  46. data/test/dummy/config/database.yml +25 -0
  47. data/test/dummy/config/environment.rb +5 -0
  48. data/test/dummy/config/environments/development.rb +62 -0
  49. data/test/dummy/config/environments/production.rb +112 -0
  50. data/test/dummy/config/environments/test.rb +49 -0
  51. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  52. data/test/dummy/config/initializers/assets.rb +12 -0
  53. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  55. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  56. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  57. data/test/dummy/config/initializers/inflections.rb +16 -0
  58. data/test/dummy/config/initializers/mime_types.rb +4 -0
  59. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  60. data/test/dummy/config/locales/en.yml +33 -0
  61. data/test/dummy/config/puma.rb +38 -0
  62. data/test/dummy/config/routes.rb +3 -0
  63. data/test/dummy/config/spring.rb +6 -0
  64. data/test/dummy/config/storage.yml +34 -0
  65. data/test/dummy/db/development.sqlite3 +0 -0
  66. data/test/dummy/log/development.log +8 -0
  67. data/test/dummy/public/404.html +67 -0
  68. data/test/dummy/public/422.html +67 -0
  69. data/test/dummy/public/500.html +66 -0
  70. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  71. data/test/dummy/public/apple-touch-icon.png +0 -0
  72. data/test/dummy/public/favicon.ico +0 -0
  73. data/test/dummy/tmp/development_secret.txt +1 -0
  74. data/test/integration/navigation_test.rb +7 -0
  75. data/test/jinda_test.rb +7 -0
  76. data/test/test_helper.rb +19 -0
  77. metadata +84 -141
  78. data/lib/generators/jinda/templates/app/assets/images/4dcity-old.ico +0 -0
  79. data/lib/generators/jinda/templates/app/assets/images/4dcity.ico +0 -0
  80. data/lib/generators/jinda/templates/app/assets/images/account.png +0 -0
  81. data/lib/generators/jinda/templates/app/assets/images/add.png +0 -0
  82. data/lib/generators/jinda/templates/app/assets/images/ajax-loader-circle.gif +0 -0
  83. data/lib/generators/jinda/templates/app/assets/images/ajax-loader.gif +0 -0
  84. data/lib/generators/jinda/templates/app/assets/images/anchor.png +0 -0
  85. data/lib/generators/jinda/templates/app/assets/images/application_double.png +0 -0
  86. data/lib/generators/jinda/templates/app/assets/images/application_form_edit.png +0 -0
  87. data/lib/generators/jinda/templates/app/assets/images/arrow_left.png +0 -0
  88. data/lib/generators/jinda/templates/app/assets/images/arrow_right.png +0 -0
  89. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_left.png +0 -0
  90. data/lib/generators/jinda/templates/app/assets/images/arrow_turn_right.png +0 -0
  91. data/lib/generators/jinda/templates/app/assets/images/calendar.png +0 -0
  92. data/lib/generators/jinda/templates/app/assets/images/cancel.png +0 -0
  93. data/lib/generators/jinda/templates/app/assets/images/chart_bar.png +0 -0
  94. data/lib/generators/jinda/templates/app/assets/images/clock.png +0 -0
  95. data/lib/generators/jinda/templates/app/assets/images/cog.png +0 -0
  96. data/lib/generators/jinda/templates/app/assets/images/control_fastforward.png +0 -0
  97. data/lib/generators/jinda/templates/app/assets/images/control_play.png +0 -0
  98. data/lib/generators/jinda/templates/app/assets/images/cross.png +0 -0
  99. data/lib/generators/jinda/templates/app/assets/images/delete.png +0 -0
  100. data/lib/generators/jinda/templates/app/assets/images/external-link.png +0 -0
  101. data/lib/generators/jinda/templates/app/assets/images/facebook-continue-button.png +0 -0
  102. data/lib/generators/jinda/templates/app/assets/images/facebooksmall.png +0 -0
  103. data/lib/generators/jinda/templates/app/assets/images/favicon.ico +0 -0
  104. data/lib/generators/jinda/templates/app/assets/images/freemind(mm).png +0 -0
  105. data/lib/generators/jinda/templates/app/assets/images/google-continue-button.png +0 -0
  106. data/lib/generators/jinda/templates/app/assets/images/help.png +0 -0
  107. data/lib/generators/jinda/templates/app/assets/images/highway-menu.png +0 -0
  108. data/lib/generators/jinda/templates/app/assets/images/highway.png +0 -0
  109. data/lib/generators/jinda/templates/app/assets/images/house.png +0 -0
  110. data/lib/generators/jinda/templates/app/assets/images/icons-18-black.png +0 -0
  111. data/lib/generators/jinda/templates/app/assets/images/icons-18-white.png +0 -0
  112. data/lib/generators/jinda/templates/app/assets/images/icons-36-black.png +0 -0
  113. data/lib/generators/jinda/templates/app/assets/images/icons-36-white.png +0 -0
  114. data/lib/generators/jinda/templates/app/assets/images/logo.png +0 -0
  115. data/lib/generators/jinda/templates/app/assets/images/logo_jinda.png +0 -0
  116. data/lib/generators/jinda/templates/app/assets/images/logout.png +0 -0
  117. data/lib/generators/jinda/templates/app/assets/images/new.gif +0 -0
  118. data/lib/generators/jinda/templates/app/assets/images/new.png +0 -0
  119. data/lib/generators/jinda/templates/app/assets/images/page.png +0 -0
  120. data/lib/generators/jinda/templates/app/assets/images/page_attach.png +0 -0
  121. data/lib/generators/jinda/templates/app/assets/images/page_green.png +0 -0
  122. data/lib/generators/jinda/templates/app/assets/images/page_output.png +0 -0
  123. data/lib/generators/jinda/templates/app/assets/images/page_pdf.png +0 -0
  124. data/lib/generators/jinda/templates/app/assets/images/pencil.png +0 -0
  125. data/lib/generators/jinda/templates/app/assets/images/printer.png +0 -0
  126. data/lib/generators/jinda/templates/app/assets/images/refresh.png +0 -0
  127. data/lib/generators/jinda/templates/app/assets/images/report.png +0 -0
  128. data/lib/generators/jinda/templates/app/assets/images/rssmall.png +0 -0
  129. data/lib/generators/jinda/templates/app/assets/images/tick.png +0 -0
  130. data/lib/generators/jinda/templates/app/assets/images/twittersmall.png +0 -0
  131. data/lib/generators/jinda/templates/app/assets/images/user.png +0 -0
  132. data/lib/generators/jinda/templates/app/assets/images/user_admin_gear.png +0 -0
  133. data/lib/generators/jinda/templates/app/assets/images/view_code.png +0 -0
  134. data/lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm +0 -27
  135. data/lib/generators/jinda/templates/app/assets/javascripts/cable.js +0 -13
  136. data/lib/generators/jinda/templates/app/assets/javascripts/disable_enter_key.js +0 -10
  137. data/lib/generators/jinda/templates/app/assets/javascripts/iscroll-wrapper.js +0 -32
  138. data/lib/generators/jinda/templates/app/assets/javascripts/iscroll.js +0 -1084
  139. data/lib/generators/jinda/templates/app/assets/javascripts/jinda.js +0 -14
  140. data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile-1.2.1.js +0 -9272
  141. data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile.datebox.js +0 -1778
  142. data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile.splitview.js +0 -695
  143. data/lib/generators/jinda/templates/app/assets/stylesheets/app.scss +0 -90
  144. data/lib/generators/jinda/templates/app/assets/stylesheets/articles.scss +0 -94
  145. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.eot +0 -0
  146. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
  147. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.woff +0 -0
  148. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  149. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  150. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  151. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  152. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  153. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  154. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew.css +0 -47
  155. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  156. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  157. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  158. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  159. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  160. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  161. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  162. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  163. data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  164. data/lib/generators/jinda/templates/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  165. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_black.png +0 -0
  166. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_blue.png +0 -0
  167. data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_red.png +0 -0
  168. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-black.png +0 -0
  169. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-white.png +0 -0
  170. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-black.png +0 -0
  171. data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-white.png +0 -0
  172. data/lib/generators/jinda/templates/app/assets/stylesheets/images/indicator.gif +0 -0
  173. data/lib/generators/jinda/templates/app/assets/stylesheets/jinda.css +0 -52
  174. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile-1.2.1.css +0 -2339
  175. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.datebox.css +0 -65
  176. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.grids.collapsible.css +0 -122
  177. data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.splitview.css +0 -128
  178. data/lib/generators/jinda/templates/app/assets/stylesheets/kul-4.2.css +0 -1516
  179. data/lib/generators/jinda/templates/app/assets/stylesheets/kul-4.2.min.css +0 -11
  180. data/lib/generators/jinda/templates/app/assets/stylesheets/modules.scss +0 -84
  181. data/lib/generators/jinda/templates/app/assets/stylesheets/sarabun.css +0 -37
  182. data/lib/generators/jinda/templates/app/assets/stylesheets/social.scss +0 -133
  183. data/lib/generators/jinda/templates/app/controllers/concerns/jinda_general_concern.rb +0 -179
  184. data/lib/generators/jinda/templates/app/controllers/concerns/jinda_run_concern.rb +0 -365
  185. data/lib/generators/jinda/templates/app/controllers/jinda_org/devs_controller.rb +0 -2
  186. data/lib/generators/jinda/templates/app/controllers/jinda_org/jinda_controller.rb +0 -66
  187. data/lib/generators/jinda/templates/app/views/jinda/_activity.md +0 -10
  188. data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +0 -27
  189. data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +0 -44
  190. data/lib/generators/jinda/templates/app/views/jinda/_model.md +0 -5
  191. data/lib/generators/jinda/templates/app/views/jinda/_modul.md +0 -9
  192. data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +0 -5
  193. data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +0 -24
  194. data/lib/generators/jinda/templates/app/views/jinda/_service.md +0 -24
  195. data/lib/generators/jinda/templates/app/views/jinda/_static.haml +0 -13
  196. data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +0 -37
  197. data/lib/generators/jinda/templates/app/views/jinda/doc.md +0 -36
  198. data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +0 -22
  199. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +0 -27
  200. data/lib/generators/jinda/templates/app/views/jinda/help.haml +0 -20
  201. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +0 -53
  202. data/lib/generators/jinda/templates/app/views/jinda/logs.haml +0 -22
  203. data/lib/generators/jinda/templates/app/views/jinda/notice_logs.haml +0 -18
  204. data/lib/generators/jinda/templates/app/views/jinda/pending.haml +0 -1
  205. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +0 -42
  206. data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +0 -38
  207. data/lib/generators/jinda/templates/app/views/jinda/search.haml +0 -20
  208. data/lib/generators/jinda/templates/app/views/jinda/status.haml +0 -61
@@ -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.5"
2
+ VERSION = "0.6.7"
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>