marty 0.5.17 → 0.5.18
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a348a98b692037a2ab1dbc2d09d32d64be591374
|
4
|
+
data.tar.gz: bb8f318e11ba6164af0102b71c3edffbc852c78b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 60e777f722bdd38bea19a725018210bef66700acc5fb5c6b14356e4454deaf4dc9bcd2150bd6fc17c4de098c504f9c8706537943ecede9791b988ad3381f7204
|
7
|
+
data.tar.gz: e66099a715242f06fec907becf577f37d40c058125c6dd4244509b6443f9f8a62255d518e30faa2cd9c0936b506b6ae4fc872496b9994ba3b198b4462063f0cf
|
@@ -25,35 +25,36 @@ class Marty::ReportForm < Marty::Form
|
|
25
25
|
|
26
26
|
######################################################################
|
27
27
|
|
28
|
-
|
29
|
-
# a library. It doesn't belong here in a component. These are
|
30
|
-
# currently also getting called form the report controller.
|
31
|
-
|
32
|
-
# FIXME: The usage of session/root_sess should be entirely removed.
|
33
|
-
# Instead we should send in :selected_node, :selected_tag_id,
|
34
|
-
# :selected_script_name as params.
|
35
|
-
|
36
|
-
def self.get_report_engine(params, session)
|
28
|
+
def self.get_report_engine(params)
|
37
29
|
d_params = ActiveSupport::JSON.decode(params[:data] || "{}")
|
38
30
|
d_params.each_pair do |k,v|
|
39
31
|
d_params[k] = nil if v.blank? || v == "null"
|
40
32
|
end
|
41
33
|
|
42
|
-
tag_id
|
43
|
-
|
34
|
+
tag_id = d_params.delete("selected_tag_id")
|
35
|
+
script_name = d_params.delete("selected_script_name")
|
36
|
+
node = d_params.delete("selected_node")
|
44
37
|
|
45
38
|
engine = Marty::ScriptSet.new(tag_id).get_engine(script_name)
|
46
39
|
|
47
|
-
|
40
|
+
roles = engine.evaluate(node, "roles", {}) rescue nil
|
41
|
+
|
42
|
+
if roles && !roles.any?{ |r| Marty::User.has_role(r) }
|
43
|
+
# insufficient permissions
|
44
|
+
return []
|
45
|
+
end
|
46
|
+
|
47
|
+
d_params["p_title"] ||= engine.evaluate(node, "title", {}).to_s
|
48
|
+
|
49
|
+
[engine, d_params, node]
|
48
50
|
end
|
49
51
|
|
50
|
-
def self.run_eval(params
|
51
|
-
node =
|
52
|
+
def self.run_eval(params)
|
53
|
+
engine, d_params, node = get_report_engine(params)
|
52
54
|
|
55
|
+
raise "no engine" unless engine # insufficient permissions
|
53
56
|
raise "no selected report node" unless String === node
|
54
57
|
|
55
|
-
engine, d_params = get_report_engine(params, session)
|
56
|
-
|
57
58
|
begin
|
58
59
|
engine.evaluate(node, "result", d_params)
|
59
60
|
rescue => exc
|
@@ -66,42 +67,16 @@ class Marty::ReportForm < Marty::Form
|
|
66
67
|
end
|
67
68
|
end
|
68
69
|
|
69
|
-
def export_content(format, title, params={})
|
70
|
-
data = self.class.run_eval(params, session)
|
71
|
-
|
72
|
-
# hacky: shouldn't have error parsing logic here
|
73
|
-
format = "json" if data.is_a?(Hash) && (data[:error] || data["error"])
|
74
|
-
|
75
|
-
# hack for testing -- txt -> csv
|
76
|
-
exp_format = format == "txt" ? "csv" : format
|
77
|
-
|
78
|
-
res, type, disposition, filename =
|
79
|
-
Marty::ContentHandler.export(data, exp_format, title)
|
80
|
-
|
81
|
-
# hack for testing -- set content-type
|
82
|
-
type = "text/plain" if format == "txt" && type =~ /csv/
|
83
|
-
|
84
|
-
[res, type, disposition, filename]
|
85
|
-
end
|
86
|
-
|
87
70
|
endpoint :netzke_submit do |params, this|
|
88
71
|
# We get here when user is asking for a background report
|
89
72
|
|
90
|
-
engine, d_params = self.class.get_report_engine(params
|
73
|
+
engine, d_params, node = self.class.get_report_engine(params)
|
91
74
|
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
if roles && !roles.any?{ |r| Marty::User.has_role(r) }
|
96
|
-
this.netzke_feedback "Insufficient permissions to run report!"
|
97
|
-
return
|
98
|
-
end
|
99
|
-
|
100
|
-
d_params["p_title"] ||= engine.
|
101
|
-
evaluate(session[:selected_node], "title", {}).to_s
|
75
|
+
return this.netzke_feedback "Insufficient permissions to run report!" unless
|
76
|
+
engine
|
102
77
|
|
103
78
|
# start background promise to get report result
|
104
|
-
engine.background_eval(
|
79
|
+
engine.background_eval(node,
|
105
80
|
d_params,
|
106
81
|
["result", "title", "format"],
|
107
82
|
)
|
@@ -220,13 +195,15 @@ class Marty::ReportForm < Marty::Form
|
|
220
195
|
items = [{html: "<br><b>No input is needed for this report.</b>"}] if
|
221
196
|
items.empty?
|
222
197
|
|
223
|
-
#
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
198
|
+
# add hidden fields for selected tag/script/node
|
199
|
+
items += [:selected_tag_id, :selected_script_name, :selected_node].map { |f|
|
200
|
+
{
|
201
|
+
name: f,
|
202
|
+
xtype: :textfield,
|
203
|
+
hidden: true,
|
204
|
+
value: root_sess[f],
|
205
|
+
}
|
206
|
+
}
|
230
207
|
|
231
208
|
c.items = items
|
232
209
|
c.repformat = format
|
@@ -62,6 +62,7 @@ class Marty::ScriptForm < Marty::Form
|
|
62
62
|
|
63
63
|
######################################################################
|
64
64
|
|
65
|
+
# FIXME: no longer works -- see related FIXME below.
|
65
66
|
c.on_print = <<-JS
|
66
67
|
function() {
|
67
68
|
window.open(
|
@@ -197,7 +198,10 @@ class Marty::ScriptForm < Marty::Form
|
|
197
198
|
|
198
199
|
######################################################################
|
199
200
|
|
200
|
-
#
|
201
|
+
# Used for printing: REALLY FIXME -- this no longer works since the
|
202
|
+
# removal of the component export_content hack. -- To fix, we should
|
203
|
+
# create a ScriptPrint report. Then, we should have the button run
|
204
|
+
# this report in the foreground.
|
201
205
|
def export_content(format, title, params={})
|
202
206
|
raise "unknown format: #{format}" unless format == "html"
|
203
207
|
|
@@ -5,7 +5,7 @@ class Marty::ReportController < ActionController::Base
|
|
5
5
|
|
6
6
|
raise "bad format" unless Marty::ContentHandler::GEN_FORMATS.member?(format)
|
7
7
|
|
8
|
-
data = Marty::ReportForm.run_eval(params
|
8
|
+
data = Marty::ReportForm.run_eval(params)
|
9
9
|
|
10
10
|
# hacky: shouldn't have error parsing logic here
|
11
11
|
format = "json" if data.is_a?(Hash) && (data[:error] || data["error"])
|
data/lib/marty/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marty
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arman Bostani
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-12-
|
15
|
+
date: 2015-12-07 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: pg
|