jinda 0.5.2 → 0.5.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/lib/generators/jinda/install_generator.rb +10 -2
- data/lib/generators/jinda/templates/README.md +1 -1
- data/lib/generators/jinda/templates/app/assets/stylesheets/app.scss +11 -5
- data/lib/generators/jinda/templates/app/assets/stylesheets/articles.scss +16 -6
- data/lib/generators/jinda/templates/app/controllers/concerns/jinda_general_concern.rb +27 -4
- data/lib/generators/jinda/templates/app/controllers/concerns/jinda_run_concern.rb +135 -6
- data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +0 -1
- data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +58 -35
- data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +12 -10
- data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +56 -0
- data/lib/generators/jinda/templates/app/controllers/jinda_org/jinda_controller.rb +23 -2
- data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +6 -8
- data/lib/generators/jinda/templates/app/jinda/index.mm +90 -25
- data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +22 -23
- data/lib/generators/jinda/templates/app/models/jinda/doc.rb +5 -0
- data/lib/generators/jinda/templates/app/views/articles/index.haml +2 -2
- data/lib/generators/jinda/templates/app/views/articles/my.haml +3 -3
- data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +5 -3
- data/lib/generators/jinda/templates/app/views/articles/show.html.haml +4 -3
- data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_edit.html.erb +21 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_select.html.erb +14 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.html.erb +26 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.md +36 -0
- data/lib/generators/jinda/templates/app/views/docs/doc_xedit/doc_edit.html.erb +21 -0
- data/lib/generators/jinda/templates/app/views/docs/edit/select_note.html.erb +14 -0
- data/lib/generators/jinda/templates/app/views/docs/index.haml +21 -0
- data/lib/generators/jinda/templates/app/views/docs/my.haml +27 -0
- data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +3 -3
- data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +3 -3
- data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +7 -10
- data/lib/generators/jinda/templates/app/views/layouts/{_metatag.html.erb → _meta_tag.html.erb} +0 -0
- data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +1 -9
- data/lib/generators/jinda/templates/app/views/notes/new/new_note.html.erb +1 -1
- data/lib/jinda/helpers.rb +11 -16
- data/lib/jinda/version.rb +1 -1
- data/lib/jquery.validate.js +1293 -0
- metadata +13 -8
- data/lib/generators/jinda/templates/app/views/layouts/_meta_tags.html.erb +0 -5
- data/lib/generators/jinda/templates/app/views/new.html.erb +0 -7
- data/lib/jinda/ template/view.html.erb +0 -25
- data/lib/jinda/app/jinda/index.mm +0 -309
- data/lib/jinda/app/jinda/template/view.html.erb +0 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c9ccb1a4e45e53213b02caa625662e84ccd386d446509fef479f183f8a2aa3b9
|
4
|
+
data.tar.gz: f0efd2ac4630d6a145510969de1d361a28d3c376179649b906bb3f6f9e5b46b9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a2fbe028c4cd8b129c70b35c908479ca9aec7b0d0389256a1e423eb81315b8c07728ac8dc5a81d469114f2eb9e6380c39420d35202247b878bc690cda832d8d2
|
7
|
+
data.tar.gz: 84ef6f473657779def3fdfe49dfbfdb08f386d79028d3cffb5d3896ae06d864185b6ddb949e695a0deb1162fcae7f40ffa353b289f67cc6d2320c532a0f5b88a
|
data/README.md
CHANGED
@@ -14,8 +14,8 @@ Rails Application Generator using Freemind
|
|
14
14
|
|
15
15
|
These versions works for sure but others may do.
|
16
16
|
|
17
|
-
* Ruby 2.7.
|
18
|
-
* Rails 6.0.
|
17
|
+
* Ruby 2.7.1
|
18
|
+
* Rails 6.0.3
|
19
19
|
* MongoDB 6
|
20
20
|
* Freemind 1.0.1
|
21
21
|
|
@@ -40,7 +40,7 @@ app without ActiveRecord
|
|
40
40
|
|
41
41
|
## Add jinda to your Gemfile:
|
42
42
|
|
43
|
-
gem 'jinda', '~> 0.5.
|
43
|
+
gem 'jinda', '~> 0.5.7'
|
44
44
|
|
45
45
|
For Development (most updated)
|
46
46
|
|
@@ -83,6 +83,7 @@ module Jinda
|
|
83
83
|
inside("app/controllers") {(File.file? "admins_controller.rb") ? ( say "Please merge existing jinda_org/admins_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/admins_controller.rb', 'admins_controller.rb')}
|
84
84
|
inside("app/controllers") {(File.file? "articles_controller.rb") ? ( say "Please merge existing jinda_org/articles_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/articles_controller.rb', 'articles_controller.rb')}
|
85
85
|
inside("app/controllers") {(File.file? "comments_controller.rb") ? ( say "Please merge existing jinda_org/comments_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/comments_controller.rb', 'comments_controller.rb')}
|
86
|
+
inside("app/controllers") {(File.file? "docs_controller.rb") ? ( say "Please merge existing jinda_org/docs_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/docs_controller.rb', 'docs_controller.rb')}
|
86
87
|
inside("app/controllers") {(File.file? "identities_controller.rb") ? ( say "Please merge existing jinda_org/identities_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/identities_controller.rb', 'identities_controller.rb')}
|
87
88
|
inside("app/controllers") {(File.file? "jinda_controller.rb") ? ( say "Please merge existing jinda_org/jinda_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/jinda_controller.rb', 'jinda_controller.rb')}
|
88
89
|
inside("app/controllers") {(File.file? "password_resets_controller.rb") ? ( say "Please merge existing jinda_org/password_resets_controller.rb after this installation", :red) : (FileUtils.mv 'jinda_org/password_resets_controller.rb', 'password_resets_controller.rb')}
|
@@ -107,13 +108,19 @@ module Jinda
|
|
107
108
|
route "resources :sessions"
|
108
109
|
route "resources :identities"
|
109
110
|
route "resources :users"
|
111
|
+
route "resources :docs"
|
110
112
|
route "resources :notes"
|
111
|
-
route "resources :
|
113
|
+
route "resources :comments"
|
114
|
+
route "resources :articles do resources :comments end"
|
115
|
+
route "get '/jinda/document/:id' => 'jinda#document'"
|
112
116
|
route "get '/notes/destroy/:id' => 'notes#destroy'"
|
113
117
|
route "get '/notes/my/destroy/:id' => 'notes#destroy'"
|
118
|
+
route "get '/docs/my/destroy' => 'docs#destroy'"
|
114
119
|
route "get '/notes/my' => 'notes/my'"
|
120
|
+
route "get '/docs/my' => 'docs/my'"
|
115
121
|
route "get '/articles/my/destroy' => 'articles#destroy'"
|
116
|
-
route "get '/articles/
|
122
|
+
route "get '/articles/show' => 'articles/show'"
|
123
|
+
route "get '/articles/my' => 'articles#my'"
|
117
124
|
route "get '/logout' => 'sessions#destroy', :as => 'logout'"
|
118
125
|
route "get '/auth/failure' => 'sessions#destroy'"
|
119
126
|
route "get '/auth/:provider/callback' => 'sessions#create'"
|
@@ -125,6 +132,7 @@ module Jinda
|
|
125
132
|
route "post '/jinda/init' => 'jinda#init'"
|
126
133
|
route "jinda_methods.each do \|aktion\| get \"/jinda/\#\{aktion\}\" => \"jinda#\#\{aktion\}\" end"
|
127
134
|
route "jinda_methods += ['error_logs', 'notice_logs', 'cancel', 'run_output', 'end_output']"
|
135
|
+
route "jinda_methods += ['run_redirect', 'run_direct_to','run_if']"
|
128
136
|
route "jinda_methods += ['init', 'run', 'run_mail', 'document', 'run_do', 'run_form', 'end_form']"
|
129
137
|
route "jinda_methods = ['pending', 'status', 'search', 'doc', 'doc_print', 'logs', 'ajax_notice']"
|
130
138
|
route "\# start jiinda method routes"
|
@@ -1,14 +1,19 @@
|
|
1
1
|
|
2
|
+
#article-title {
|
3
|
+
text-align: left;
|
4
|
+
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
5
|
+
color:#333;
|
6
|
+
}
|
7
|
+
|
2
8
|
#title {
|
3
9
|
font-size: 14pt;
|
4
10
|
font-weight: bold;
|
5
|
-
text-align:
|
6
|
-
background: #d2f0ff;
|
11
|
+
text-align: left;
|
7
12
|
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
8
13
|
color:#333;
|
9
14
|
|
10
15
|
}
|
11
|
-
#text
|
16
|
+
#text{
|
12
17
|
font-size: 14pt;
|
13
18
|
font-weight: bold;
|
14
19
|
text-align:left;
|
@@ -41,7 +46,6 @@
|
|
41
46
|
#table th {
|
42
47
|
background-color: #bcecff;
|
43
48
|
color:#333;
|
44
|
-
;
|
45
49
|
width:100%;
|
46
50
|
}
|
47
51
|
|
@@ -59,12 +63,14 @@
|
|
59
63
|
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
60
64
|
/*font-size: 110%;*/
|
61
65
|
}
|
62
|
-
.ui-li .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li { padding: 7px 75px 7px
|
66
|
+
.ui-li .ui-btn-inner a.ui-link-inherit, .ui-li-static.ui-li { padding: 7px 75px 7px 7px; display: block; }
|
63
67
|
.ui-link-inherit { font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;}
|
64
68
|
label.ui-input-text {
|
65
69
|
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
66
70
|
/*font-size: 110%;*/
|
67
71
|
text-shadow: none;
|
72
|
+
margin: 2% 2% 0 0;
|
73
|
+
|
68
74
|
}
|
69
75
|
label.ui-select {
|
70
76
|
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
@@ -1,16 +1,28 @@
|
|
1
1
|
|
2
|
-
|
2
|
+
|
3
|
+
#article-table {
|
3
4
|
font-size: 14pt;
|
4
5
|
font-weight: bold;
|
5
|
-
text-align:
|
6
|
-
background
|
6
|
+
text-align: left;
|
7
|
+
background:#f7f7f7;
|
7
8
|
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
9
|
+
padding:2px 5px;
|
8
10
|
color:#333;
|
9
11
|
|
10
12
|
}
|
11
|
-
|
13
|
+
|
14
|
+
#article-title {
|
12
15
|
font-size: 14pt;
|
13
16
|
font-weight: bold;
|
17
|
+
text-align: left;
|
18
|
+
background:#f7f7f7;
|
19
|
+
font-family: 'TH SarabunPSK', Helvetica, Arial, sans-serif;
|
20
|
+
padding:2px 5px;
|
21
|
+
color:#333;
|
22
|
+
|
23
|
+
}
|
24
|
+
#article-text {
|
25
|
+
font-size: 8pt;
|
14
26
|
text-align:left;
|
15
27
|
border:1px solid #c1c1c1;
|
16
28
|
background:#f7f7f7;
|
@@ -28,7 +40,6 @@
|
|
28
40
|
|
29
41
|
#comment-body {
|
30
42
|
font-size: 10pt;
|
31
|
-
font-weight: bold;
|
32
43
|
text-align:left;
|
33
44
|
color:#333;
|
34
45
|
}
|
@@ -41,7 +52,6 @@
|
|
41
52
|
#article-table th {
|
42
53
|
background-color: #bcecff;
|
43
54
|
color:#333;
|
44
|
-
;
|
45
55
|
width:100%;
|
46
56
|
}
|
47
57
|
|
@@ -55,6 +55,7 @@ module JindaGeneralConcern
|
|
55
55
|
end
|
56
56
|
|
57
57
|
# process images from second level, e.g,, fields_for
|
58
|
+
# save uploaded file info to Doc
|
58
59
|
def get_image1(key, key1, params)
|
59
60
|
doc = Jinda::Doc.create(
|
60
61
|
:name=> "#{key}_#{key1}",
|
@@ -63,16 +64,24 @@ module JindaGeneralConcern
|
|
63
64
|
:filename=> params.original_filename,
|
64
65
|
:content_type => params.content_type || 'application/zip',
|
65
66
|
:data_text=> '',
|
67
|
+
:dscan=> '',
|
68
|
+
:description=>'',
|
69
|
+
:keywords=>'',
|
70
|
+
:category=>'',
|
66
71
|
:ma_display=>true, :ma_secured => @xmain.service.ma_secured )
|
67
72
|
if defined?(IMAGE_LOCATION)
|
68
73
|
filename = "#{IMAGE_LOCATION}/f#{Param.gen(:asset_id)}"
|
69
74
|
File.open(filename,"wb") { |f| f.write(params.read) }
|
70
75
|
eval "@xvars[@runseq.code][key][key1] = '#{url_for(:action=>'document', :id=>doc.id, :only_path => true)}' "
|
71
|
-
doc.update_attributes :url => filename,
|
76
|
+
doc.update_attributes :url => filename,
|
77
|
+
:basename => File.basename(filename),
|
78
|
+
:cloudinary => false,
|
79
|
+
:dscan => @xvars[@runseq.code][key][key1],
|
80
|
+
:user_id => @xvars["user_id"]
|
72
81
|
else
|
73
82
|
result = Cloudinary::Uploader.upload(params)
|
74
83
|
eval %Q{ @xvars[@runseq.code][key][key1] = '#{result["url"]}' }
|
75
|
-
doc.update_attributes :url => result["url"], :basename => File.basename(result["url"]), :cloudinary => true
|
84
|
+
doc.update_attributes :url => result["url"], :basename => File.basename(result["url"]), :cloudinary => true, :dscan => @xvars[@runseq.code][key][key1]
|
76
85
|
end
|
77
86
|
end
|
78
87
|
|
@@ -81,13 +90,27 @@ module JindaGeneralConcern
|
|
81
90
|
end
|
82
91
|
|
83
92
|
# generate documentation for application
|
93
|
+
# search data from Doc
|
94
|
+
def document
|
95
|
+
doc = Jinda::Doc.find params[:id]
|
96
|
+
if doc.cloudinary
|
97
|
+
require 'net/http'
|
98
|
+
require "uri"
|
99
|
+
uri = URI.parse(doc.url)
|
100
|
+
data = Net::HTTP.get_response(uri)
|
101
|
+
send_data(data.body, :filename=>doc.filename, :type=>doc.content_type, :disposition=>"inline")
|
102
|
+
else
|
103
|
+
data= read_binary(doc.url)
|
104
|
+
send_data(data, :filename=>doc.filename, :type=>doc.content_type, :disposition=>"inline")
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
84
108
|
def doc
|
85
109
|
require 'rdoc'
|
86
110
|
@app= get_app
|
87
111
|
@intro = File.read('README.md')
|
88
112
|
@print= "<div align='right'><img src='/assets/printer.png'/> <a href='/jinda/doc_print' target='_blank'/>Print</a></div>"
|
89
113
|
doc= render_to_string 'doc.md', :layout => false
|
90
|
-
|
91
114
|
html= Maruku.new(doc).to_html
|
92
115
|
File.open('public/doc.html','w') {|f| f.puts html }
|
93
116
|
respond_to do |format|
|
@@ -127,7 +150,7 @@ module JindaGeneralConcern
|
|
127
150
|
|
128
151
|
def search
|
129
152
|
@q = params[:q] || params[:ma_search][:q] || ""
|
130
|
-
@title = "
|
153
|
+
@title = "Search Result #{@q}"
|
131
154
|
@backbtn= true
|
132
155
|
@cache= true
|
133
156
|
if @q.blank?
|
@@ -60,6 +60,20 @@ module JindaRunConcern
|
|
60
60
|
end_action(next_runseq)
|
61
61
|
end
|
62
62
|
|
63
|
+
# redirect when finish last runseq
|
64
|
+
# eg: http://localhost:3000/notes/my
|
65
|
+
def run_direct_to
|
66
|
+
init_vars(params[:id])
|
67
|
+
next_runseq= @xmain.runseqs.where(:id.ne=>@runseq.id, :code=>@runseq.code).first
|
68
|
+
if !@runseq.code.blank?
|
69
|
+
@xvars['p']['return'] = @runseq.code
|
70
|
+
else
|
71
|
+
flash[:notice]= "Error: missing required forward path in Freemind"
|
72
|
+
ma_log "Error: require forward path in Freemind"
|
73
|
+
end
|
74
|
+
end_action(next_runseq)
|
75
|
+
end
|
76
|
+
|
63
77
|
def run_redirect
|
64
78
|
init_vars(params[:id])
|
65
79
|
# next_runseq= @xmain.runseqs.first :conditions=>["id != ? AND code = ?",@runseq.id, @runseq.code]
|
@@ -68,16 +82,19 @@ module JindaRunConcern
|
|
68
82
|
end_action(next_runseq)
|
69
83
|
end
|
70
84
|
|
85
|
+
# call controller to do the freemind task using Star symbol eg: Update
|
86
|
+
# not for run_form
|
71
87
|
def run_do
|
72
88
|
init_vars(params[:id])
|
73
89
|
@runseq.start ||= Time.now
|
74
90
|
@runseq.status= 'R' # running
|
75
91
|
$runseq_id= @runseq.id
|
76
92
|
$user_id= current_ma_user.try(:id)
|
93
|
+
# $xmain, $runseq, $user, $xvars, $ip from local
|
77
94
|
set_global
|
78
95
|
controller = Kernel.const_get(@xvars['custom_controller']).new
|
79
|
-
# call controller to do the freemind task using Star symbol eg: Update
|
80
96
|
result = controller.send(@runseq.code)
|
97
|
+
# save local var to database
|
81
98
|
init_vars_by_runseq($runseq_id)
|
82
99
|
@xvars = $xvars
|
83
100
|
@xvars[@runseq.code.to_sym]= result.to_s
|
@@ -97,6 +114,100 @@ module JindaRunConcern
|
|
97
114
|
refresh_to "/", :alert => "Sorry opeation error at #{@xmain.id} #{@xvars['error']}"
|
98
115
|
end
|
99
116
|
|
117
|
+
def run_list
|
118
|
+
init_vars(params[:id])
|
119
|
+
service= @xmain.service
|
120
|
+
# disp= get_option("display")
|
121
|
+
# disp = Nil or :"??????"
|
122
|
+
# get option from last node: rule, role, display
|
123
|
+
disp= get_option("display")
|
124
|
+
# change from Nil to false and string to true
|
125
|
+
ma_display = (disp && !affirm(disp)) ? false : true
|
126
|
+
# Todo check if file is available
|
127
|
+
# if service and file exist
|
128
|
+
# ma_display from disp of 3rd level node as rule, role, display
|
129
|
+
if service && !@runseq.code.blank?
|
130
|
+
f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
131
|
+
@ui= File.read(f)
|
132
|
+
if Jinda::Doc.where(:runseq_id=>@runseq.id).exists?
|
133
|
+
@doc= Jinda::Doc.where(:runseq_id=>@runseq.id).first
|
134
|
+
@doc.update_attributes :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
135
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
136
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
137
|
+
:ma_secured => @xmain.service.ma_secured,
|
138
|
+
:filename => "#{@runseq.code}.html.erb"
|
139
|
+
else
|
140
|
+
@doc= Jinda::Doc.create :name=> @runseq.name,
|
141
|
+
:content_type=>"output", :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
142
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
143
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
144
|
+
:ma_secured => @xmain.service.ma_secured,
|
145
|
+
:filename => "#{@runseq.code}.html.erb"
|
146
|
+
end
|
147
|
+
# @message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >"
|
148
|
+
@message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >>"
|
149
|
+
@message = "Finish" if @runseq.end
|
150
|
+
ma_log("Todo defined?(NSG_NEXT : Next >>)")
|
151
|
+
eval "@xvars[@runseq.code] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
|
152
|
+
else
|
153
|
+
flash[:notice]= "Error: Can not find the view file for this controller"
|
154
|
+
ma_log "Error: Can not find the view file for this controller"
|
155
|
+
redirect_to_root
|
156
|
+
end
|
157
|
+
# Check if ma_display available
|
158
|
+
# ma_display= get_option("display")
|
159
|
+
# if not ma_display then no display both controller-view and content then end back to root
|
160
|
+
unless ma_display
|
161
|
+
end_action
|
162
|
+
end
|
163
|
+
# controller display from @ui
|
164
|
+
end
|
165
|
+
|
166
|
+
def run_folder
|
167
|
+
init_vars(params[:id])
|
168
|
+
service= @xmain.service
|
169
|
+
# disp= get_option("display")
|
170
|
+
# disp = Nil or :"??????"
|
171
|
+
disp= get_option("display")
|
172
|
+
ma_display = (disp && !affirm(disp)) ? false : true
|
173
|
+
# Todo check if file is available
|
174
|
+
# if service and file exist
|
175
|
+
if service && !@runseq.code.blank?
|
176
|
+
f= "app/views/#{service.module.code}/#{service.code}/#{@runseq.code}.html.erb"
|
177
|
+
@ui= File.read(f)
|
178
|
+
if Jinda::Doc.where(:runseq_id=>@runseq.id).exists?
|
179
|
+
@doc= Jinda::Doc.where(:runseq_id=>@runseq.id).first
|
180
|
+
@doc.update_attributes :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
181
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
182
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
183
|
+
:ma_secured => @xmain.service.ma_secured,
|
184
|
+
:filename => "#{@runseq.code}.html.erb"
|
185
|
+
else
|
186
|
+
@doc= Jinda::Doc.create :name=> @runseq.name,
|
187
|
+
:content_type=>"output", :data_text=> render_to_string(:inline=>@ui, :layout=>"utf8"),
|
188
|
+
:xmain=>@xmain, :runseq=>@runseq, :user=>current_ma_user,
|
189
|
+
:ip=> get_ip, :service=>service, :ma_display=>ma_display,
|
190
|
+
:ma_secured => @xmain.service.ma_secured,
|
191
|
+
:filename => "#{@runseq.code}.html.erb"
|
192
|
+
end
|
193
|
+
# @message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >"
|
194
|
+
@message = defined?(MSG_NEXT) ? MSG_NEXT : "Next >>"
|
195
|
+
@message = "Finish" if @runseq.end
|
196
|
+
ma_log("Todo defined?(NSG_NEXT : Next >>)")
|
197
|
+
eval "@xvars[@runseq.code] = url_for(:controller=>'jinda', :action=>'document', :id=>@doc.id)"
|
198
|
+
else
|
199
|
+
flash[:notice]= "Error: Can not find the view file for this controller"
|
200
|
+
ma_log "Error: Can not find the view file for this controller"
|
201
|
+
redirect_to_root
|
202
|
+
end
|
203
|
+
# Check if ma_display available
|
204
|
+
# ma_display= get_option("display")
|
205
|
+
unless ma_display
|
206
|
+
end_action
|
207
|
+
end
|
208
|
+
# controller display from @ui
|
209
|
+
end
|
210
|
+
|
100
211
|
def run_output
|
101
212
|
init_vars(params[:id])
|
102
213
|
service= @xmain.service
|
@@ -135,11 +246,11 @@ module JindaRunConcern
|
|
135
246
|
redirect_to_root
|
136
247
|
end
|
137
248
|
# Check if ma_display available
|
138
|
-
# ma_display= get_option("
|
249
|
+
# ma_display= get_option("display")
|
139
250
|
unless ma_display
|
140
251
|
end_action
|
141
252
|
end
|
142
|
-
# display from @ui
|
253
|
+
# controller display from @ui
|
143
254
|
end
|
144
255
|
|
145
256
|
def run_mail
|
@@ -168,8 +279,11 @@ module JindaRunConcern
|
|
168
279
|
end_action
|
169
280
|
end
|
170
281
|
|
282
|
+
# Store params to @xvars[@runseq]
|
283
|
+
# Perform task from the form input eg: attach file
|
284
|
+
# replace end_action (for form)
|
285
|
+
# Store params attach file to @xvars to use in get_image
|
171
286
|
def end_form
|
172
|
-
# Check error using xmain_id to redirect_to_root and return
|
173
287
|
if params[:xmain_id]
|
174
288
|
init_vars(params[:xmain_id])
|
175
289
|
else
|
@@ -183,13 +297,17 @@ module JindaRunConcern
|
|
183
297
|
get_image(k, params[k])
|
184
298
|
# check if params of array in form eg: edit_article
|
185
299
|
elsif params[k].is_a?(ActionController::Parameters)
|
300
|
+
eval "@xvars[@runseq.code][k] = {} unless @xvars[@runseq.code][k]"
|
186
301
|
params[k].each { |k1,v1|
|
187
302
|
# eval "@xvars[@runseq.code][k1] = params.require(k1).permit(k1)"
|
188
|
-
eval "@xvars[@runseq.code][k1] = v1"
|
303
|
+
eval "@xvars[@runseq.code][k][k1] = v1"
|
189
304
|
next unless v1.respond_to?(:original_filename)
|
305
|
+
doc = {}
|
190
306
|
get_image1(k, k1, params[k][k1])
|
191
307
|
}
|
192
308
|
else
|
309
|
+
# No file attached
|
310
|
+
#
|
193
311
|
# https://stackoverflow.com/questions/34949505/rails-5-unable-to- retrieve-hash-values-from-parameter # bug in to_unsalfe_h rails 5.1.6 https://github.com/getsentry/raven-ruby/issues/799
|
194
312
|
# Solution:
|
195
313
|
# https://stackoverflow.com/questions/34949505/rails-5-unable-to-retrieve-hash-values-from-parameter
|
@@ -200,10 +318,21 @@ module JindaRunConcern
|
|
200
318
|
eval "@xvars[@runseq.code][k] = v"
|
201
319
|
end
|
202
320
|
}
|
203
|
-
|
321
|
+
end_action
|
322
|
+
rescue => e
|
323
|
+
@xmain.status='E'
|
324
|
+
@xvars['error']= e.to_s+e.backtrace.to_s
|
325
|
+
@xmain.xvars= $xvars
|
326
|
+
@xmain.save
|
327
|
+
@runseq.status= 'F' #finish
|
328
|
+
@runseq.stop= Time.now
|
329
|
+
@runseq.save
|
330
|
+
ma_log "Error:end_form "
|
331
|
+
refresh_to "/", :alert => "Sorry opeation error at #{@xmain.id} #{@xvars['error']}"
|
204
332
|
end
|
205
333
|
|
206
334
|
def end_action(next_runseq = nil)
|
335
|
+
# not for form
|
207
336
|
# @runseq.status='F' unless @runseq_not_f
|
208
337
|
@xmain.xvars= @xvars
|
209
338
|
@xmain.status= 'R' # running
|