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.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/generators/jinda/config_generator.rb +7 -0
- data/lib/generators/jinda/install_generator.rb +45 -42
- 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/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 +84 -141
- data/lib/generators/jinda/templates/app/assets/images/4dcity-old.ico +0 -0
- data/lib/generators/jinda/templates/app/assets/images/4dcity.ico +0 -0
- data/lib/generators/jinda/templates/app/assets/images/account.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/add.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/ajax-loader-circle.gif +0 -0
- data/lib/generators/jinda/templates/app/assets/images/ajax-loader.gif +0 -0
- data/lib/generators/jinda/templates/app/assets/images/anchor.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/application_double.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/application_form_edit.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/arrow_left.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/arrow_right.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/arrow_turn_left.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/arrow_turn_right.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/calendar.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/cancel.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/chart_bar.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/clock.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/cog.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/control_fastforward.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/control_play.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/cross.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/delete.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/external-link.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/facebook-continue-button.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/facebooksmall.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/favicon.ico +0 -0
- data/lib/generators/jinda/templates/app/assets/images/freemind(mm).png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/google-continue-button.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/help.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/highway-menu.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/highway.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/house.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/icons-18-black.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/icons-18-white.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/icons-36-black.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/icons-36-white.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/logo.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/logo_jinda.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/logout.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/new.gif +0 -0
- data/lib/generators/jinda/templates/app/assets/images/new.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/page.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/page_attach.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/page_green.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/page_output.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/page_pdf.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/pencil.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/printer.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/refresh.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/report.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/rssmall.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/tick.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/twittersmall.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/user.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/user_admin_gear.png +0 -0
- data/lib/generators/jinda/templates/app/assets/images/view_code.png +0 -0
- data/lib/generators/jinda/templates/app/assets/javascripts/application.js-jqm +0 -27
- data/lib/generators/jinda/templates/app/assets/javascripts/cable.js +0 -13
- data/lib/generators/jinda/templates/app/assets/javascripts/disable_enter_key.js +0 -10
- data/lib/generators/jinda/templates/app/assets/javascripts/iscroll-wrapper.js +0 -32
- data/lib/generators/jinda/templates/app/assets/javascripts/iscroll.js +0 -1084
- data/lib/generators/jinda/templates/app/assets/javascripts/jinda.js +0 -14
- data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile-1.2.1.js +0 -9272
- data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile.datebox.js +0 -1778
- data/lib/generators/jinda/templates/app/assets/javascripts/jquery.mobile.splitview.js +0 -695
- data/lib/generators/jinda/templates/app/assets/stylesheets/app.scss +0 -90
- data/lib/generators/jinda/templates/app/assets/stylesheets/articles.scss +0 -94
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.eot +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun.woff +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew.css +0 -47
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/ajax-loader.gif +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_black.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_blue.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/button_red.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-black.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-18-white.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-black.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/icons-36-white.png +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/images/indicator.gif +0 -0
- data/lib/generators/jinda/templates/app/assets/stylesheets/jinda.css +0 -52
- data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile-1.2.1.css +0 -2339
- data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.datebox.css +0 -65
- data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.grids.collapsible.css +0 -122
- data/lib/generators/jinda/templates/app/assets/stylesheets/jquery.mobile.splitview.css +0 -128
- data/lib/generators/jinda/templates/app/assets/stylesheets/kul-4.2.css +0 -1516
- data/lib/generators/jinda/templates/app/assets/stylesheets/kul-4.2.min.css +0 -11
- data/lib/generators/jinda/templates/app/assets/stylesheets/modules.scss +0 -84
- data/lib/generators/jinda/templates/app/assets/stylesheets/sarabun.css +0 -37
- data/lib/generators/jinda/templates/app/assets/stylesheets/social.scss +0 -133
- data/lib/generators/jinda/templates/app/controllers/concerns/jinda_general_concern.rb +0 -179
- data/lib/generators/jinda/templates/app/controllers/concerns/jinda_run_concern.rb +0 -365
- data/lib/generators/jinda/templates/app/controllers/jinda_org/devs_controller.rb +0 -2
- data/lib/generators/jinda/templates/app/controllers/jinda_org/jinda_controller.rb +0 -66
- data/lib/generators/jinda/templates/app/views/jinda/_activity.md +0 -10
- data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +0 -27
- data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +0 -44
- data/lib/generators/jinda/templates/app/views/jinda/_model.md +0 -5
- data/lib/generators/jinda/templates/app/views/jinda/_modul.md +0 -9
- data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +0 -5
- data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +0 -24
- data/lib/generators/jinda/templates/app/views/jinda/_service.md +0 -24
- data/lib/generators/jinda/templates/app/views/jinda/_static.haml +0 -13
- data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +0 -37
- data/lib/generators/jinda/templates/app/views/jinda/doc.md +0 -36
- data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +0 -22
- data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +0 -27
- data/lib/generators/jinda/templates/app/views/jinda/help.haml +0 -20
- data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +0 -53
- data/lib/generators/jinda/templates/app/views/jinda/logs.haml +0 -22
- data/lib/generators/jinda/templates/app/views/jinda/notice_logs.haml +0 -18
- data/lib/generators/jinda/templates/app/views/jinda/pending.haml +0 -1
- data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +0 -42
- data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +0 -38
- data/lib/generators/jinda/templates/app/views/jinda/search.haml +0 -20
- 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
|
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
|