jinda 0.6.2 → 0.6.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/config/manifest.js +4 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/4dcity-old.ico +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/4dcity.ico +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/account.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/add.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/ajax-loader-circle.gif +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/ajax-loader.gif +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/anchor.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/application_double.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/application_form_edit.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_left.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_right.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_turn_left.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/arrow_turn_right.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/calendar.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/cancel.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/chart_bar.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/clock.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/cog.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/control_fastforward.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/control_play.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/cross.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/delete.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/external-link.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/facebook-continue-button.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/facebooksmall.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/favicon.ico +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/freemind(mm).png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/google-continue-button.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/help.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/highway-menu.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/highway.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/house.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/icons-18-black.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/icons-18-white.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/icons-36-black.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/icons-36-white.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/logo.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/logo_jinda.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/logout.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/new.gif +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/new.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/page.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/page_attach.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/page_green.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/page_output.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/page_pdf.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/pencil.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/printer.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/refresh.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/report.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/rssmall.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/tick.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/twittersmall.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/user.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/user_admin_gear.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/images/view_code.png +0 -0
- data/{lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm → app/assets/javascripts/application.js-org} +8 -11
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/cable.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/disable_enter_key.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/iscroll-wrapper.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/iscroll.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jinda.js +0 -0
- data/app/assets/javascripts/jinda_jqm.js +24 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile-1.2.1.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile.datebox.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/javascripts/jquery.mobile.splitview.js +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/app.scss +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/articles.scss +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.eot +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun.woff +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/ajax-loader.gif +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_black.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_blue.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/button_red.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-18-black.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-18-white.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-36-black.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/icons-36-white.png +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/images/indicator.gif +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jinda.css +0 -0
- data/app/assets/stylesheets/jinda_jqm.css.scss +32 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile-1.2.1.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.datebox.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.grids.collapsible.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/jquery.mobile.splitview.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/kul-4.2.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/kul-4.2.min.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/modules.scss +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/sarabun.css +0 -0
- data/{lib/generators/jinda/templates/app → app}/assets/stylesheets/social.scss +0 -0
- data/{lib/generators/jinda/templates/app → app}/controllers/concerns/jinda_general_concern.rb +0 -0
- data/{lib/generators/jinda/templates/app → app}/controllers/concerns/jinda_run_concern.rb +0 -0
- data/{lib/generators/jinda/templates/app/controllers/jinda_org → app/controllers}/jinda_controller.rb +0 -0
- data/app/jinda/index.mm +369 -0
- data/app/jinda/template/index.mm +366 -0
- data/app/jinda/template/linkview.haml +21 -0
- data/app/jinda/template/view.html.erb +26 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_activity.md +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_menu.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_menu_mm.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_model.md +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_modul.md +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_pending_home.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_pending_page.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_service.md +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/_static.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/doc-thai.md +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/doc.md +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/error_logs.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/feed.rss.builder +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/help.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/index.html.haml +1 -1
- data/{lib/generators/jinda/templates/app → app}/views/jinda/logs.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/notice_logs.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/pending.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/run_form.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/run_output.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/search.haml +0 -0
- data/{lib/generators/jinda/templates/app → app}/views/jinda/status.haml +0 -0
- data/lib/generators/jinda/config_generator.rb +7 -0
- data/lib/generators/jinda/install_generator.rb +45 -42
- data/lib/generators/jinda/templates/Dockerfile +24 -0
- data/lib/generators/jinda/templates/app/assets/javascripts/application.js +1 -10
- data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +1 -20
- data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
- data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
- data/lib/generators/jinda/templates/docker-compose.yml +16 -0
- data/lib/generators/jinda/templates/entrypoint.sh +12 -0
- data/lib/jinda.rb +2 -1
- data/lib/jinda/date_helpers.rb +109 -0
- data/lib/jinda/{gemhelpers.rb → gem_helpers.rb} +0 -1
- data/lib/jinda/gen_class.rb +13 -0
- data/lib/jinda/gen_controller.rb +10 -0
- data/lib/jinda/gen_freemind.rb +33 -0
- data/lib/jinda/gen_helpers.rb +141 -0
- data/lib/jinda/gen_models.rb +137 -0
- data/lib/jinda/gen_runseq.rb +71 -0
- data/lib/jinda/gen_services.rb +90 -0
- data/lib/jinda/gen_xmain.rb +38 -0
- data/lib/jinda/get_app.rb +34 -0
- data/lib/jinda/helpers.rb +17 -998
- data/lib/jinda/init_vars.rb +36 -0
- data/lib/jinda/rake_views.rb +59 -0
- data/lib/jinda/refresh.rb +67 -0
- data/lib/jinda/themes.rb +163 -0
- data/lib/jinda/version.rb +1 -1
- data/test/dummy/Rakefile +6 -0
- data/test/dummy/app/assets/config/manifest.js +3 -0
- data/test/dummy/app/assets/stylesheets/application.css +15 -0
- data/test/dummy/app/channels/application_cable/channel.rb +4 -0
- data/test/dummy/app/channels/application_cable/connection.rb +4 -0
- data/test/dummy/app/controllers/application_controller.rb +2 -0
- data/test/dummy/app/helpers/application_helper.rb +2 -0
- data/test/dummy/app/javascript/packs/application.js +15 -0
- data/test/dummy/app/jobs/application_job.rb +7 -0
- data/test/dummy/app/mailers/application_mailer.rb +4 -0
- data/test/dummy/app/models/application_record.rb +3 -0
- data/test/dummy/app/views/layouts/application.html.erb +14 -0
- data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
- data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
- data/test/dummy/bin/rails +4 -0
- data/test/dummy/bin/rake +4 -0
- data/test/dummy/bin/setup +33 -0
- data/test/dummy/config.ru +5 -0
- data/test/dummy/config/application.rb +19 -0
- data/test/dummy/config/boot.rb +5 -0
- data/test/dummy/config/cable.yml +10 -0
- data/test/dummy/config/database.yml +25 -0
- data/test/dummy/config/environment.rb +5 -0
- data/test/dummy/config/environments/development.rb +62 -0
- data/test/dummy/config/environments/production.rb +112 -0
- data/test/dummy/config/environments/test.rb +49 -0
- data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
- data/test/dummy/config/initializers/assets.rb +12 -0
- data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/test/dummy/config/initializers/content_security_policy.rb +28 -0
- data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
- data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/test/dummy/config/initializers/inflections.rb +16 -0
- data/test/dummy/config/initializers/mime_types.rb +4 -0
- data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/test/dummy/config/locales/en.yml +33 -0
- data/test/dummy/config/puma.rb +38 -0
- data/test/dummy/config/routes.rb +3 -0
- data/test/dummy/config/spring.rb +6 -0
- data/test/dummy/config/storage.yml +34 -0
- data/test/dummy/db/development.sqlite3 +0 -0
- data/test/dummy/log/development.log +8 -0
- data/test/dummy/public/404.html +67 -0
- data/test/dummy/public/422.html +67 -0
- data/test/dummy/public/500.html +66 -0
- data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
- data/test/dummy/public/apple-touch-icon.png +0 -0
- data/test/dummy/public/favicon.ico +0 -0
- data/test/dummy/tmp/development_secret.txt +1 -0
- data/test/integration/navigation_test.rb +7 -0
- data/test/jinda_test.rb +7 -0
- data/test/test_helper.rb +19 -0
- metadata +232 -161
- 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
|
data/lib/jinda/themes.rb
ADDED
@@ -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
|
+
|
data/lib/jinda/version.rb
CHANGED
data/test/dummy/Rakefile
ADDED
@@ -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,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
|