Introduction
Introduction Statistics Contact Development Disclaimer Help
application_helper.rb - warvox - VoIP based wardialing tool, forked from rapid7…
git clone git://jay.scot/warvox
Log
Files
Refs
README
---
application_helper.rb (5865B)
---
1 # Methods added to this helper will be available to all templates in the…
2 module ApplicationHelper
3
4 def select_tag_for_filter(nvpairs, params)
5 _url = ( url_for overwrite_params: { }).split('?')[0]
6 _html = %{<span class="pull-left filter-label">Filter: </span> }
7 _html << %{<select name="show" class="filter-select" }
8 _html << %{onchange="window.location='#{_url}' + '?show=' + this.val…
9 nvpairs.each do |pair|
10 _html << %{<option value="#{h(pair[:scope])}" }
11 if params[:show] == pair[:scope] || ((params[:show].nil? || params…
12 _html << %{ selected="selected" }
13 end
14 _html << %{>#{pair[:label]} }
15 _html << %{</option>}
16 end
17 _html << %{</select>}
18 raw(_html)
19 end
20
21 def select_match_scope(nvpairs, params)
22 _url = ( url_for overwrite_params: { }).split('?')[0]
23 _html = %{<span class="pull-left filter-label">Matching Scope: </spa…
24 _html << %{<select name="match_scope" class="filter-select" }
25 _html << %{onchange="window.location='#{_url}' + '?match_scope=' + t…
26 nvpairs.each do |pair|
27 _html << %{<option value="#{h(pair[:scope])}" }
28 if params[:match_scope] == pair[:scope] || ((params[:match_scope].…
29 _html << %{ selected="selected" }
30 end
31 _html << %{>#{pair[:label]} }
32 _html << %{</option>}
33 end
34 _html << %{</select>}
35 raw(_html)
36 end
37
38 def set_focus(element_id)
39 javascript_tag(" $elem = $(\"#{element_id}\"); if (null !== $elem &&…
40 end
41
42 def format_job_details(job)
43 begin
44 info = Marshal.load(job.args.to_s)
45
46 ttip = raw("<div class='task_args_formatted'>")
47 info.each_pair do |k,v|
48 ttip << raw("<div class='task_args_var'>") + h(truncate(k.to_s, …
49 ttip << raw("<div class='task_args_val'>") + h(truncate((v.to_s)…
50 end
51 ttip << raw("</div>\n")
52 outp = raw("<span class='xpopover' rel='popover' data-title=\"#{jo…
53 outp
54 rescue ::Exception => e
55 job.status.to_s.capitalize
56 end
57 end
58
59 def format_job_status(job)
60 case job.status
61 when 'error'
62 ttip = h(job.error.to_s)
63 outp = raw("<span class='xpopover' rel='popover' data-title=\"Task…
64 outp
65 else
66 job.status.to_s.capitalize
67 end
68 end
69
70 def format_job_rate(job)
71 pluralize( (job.rate * 60.0).to_i, "call") + "/min"
72 end
73
74 #
75 # Includes any javascripts specific to this view. The hosts/show view
76 # will automatically include any javascripts at public/javascripts/hos…
77 #
78 # @return [void]
79 def include_view_javascript
80 #
81 # Sprockets treats index.js as special, so the js for the index acti…
82 # http://guides.rubyonrails.org/asset_pipeline.html#using-index-files
83 #
84
85 controller_action_name = controller.action_name
86
87 if controller_action_name == 'index'
88 safe_action_name = '_index'
89 else
90 safe_action_name = controller_action_name
91 end
92
93 include_view_javascript_named(safe_action_name)
94 end
95
96 # Includes the named javascript for this controller if it exists.
97 #
98 # @return [void]
99 def include_view_javascript_named(name)
100
101 controller_path = controller.controller_path
102 extensions = ['.coffee', '.js.coffee']
103 javascript_controller_pathname = Rails.root.join('app', 'assets', 'j…
104 pathnames = extensions.collect { |extension|
105 javascript_controller_pathname.join("#{name}#{extension}")
106 }
107
108 if pathnames.any?(&:exist?)
109 path = File.join(controller_path, name)
110 content_for(:view_javascript) do
111 javascript_include_tag path
112 end
113 end
114 end
115
116 def escape_javascript_dq(str)
117 escape_javascript(str.strip).gsub("\\'", "'").gsub("\t", " ")
118 end
119
120 def submit_checkboxes_to(name, path, html={})
121 if html[:confirm]
122 confirm = html.delete(:confirm)
123 link_to(name, "#", html.merge({onclick: "if(confirm('#{h confirm}'…
124 else
125 link_to(name, "#", html.merge({onclick: "submit_checkboxes_to('#{p…
126 end
127 end
128
129 # Scrub out data that can break the JSON parser
130 #
131 # data - The String json to be scrubbed.
132 #
133 # Returns the String json with invalid data removed.
134 def json_data_scrub(data)
135 data.to_s.gsub(/[\x00-\x1f]/){ |x| "\\x%.2x" % x.unpack("C*")[0] }
136 end
137
138 # Returns the properly escaped sEcho parameter that DataTables expects.
139 def echo_data_tables
140 h(params[:sEcho]).to_json.html_safe
141 end
142
143 # Generate the markup for the call's row checkbox.
144 # Returns the String markup html, escaped for json.
145 def call_checkbox_tag(call)
146 check_box_tag("result_ids[]", call.id, false, id: nil).to_json.html_…
147 end
148
149 def call_number_html(call)
150 json_data_scrub(h(call.number)).to_json.html_safe
151 end
152
153 def call_caller_id_html(call)
154 json_data_scrub(h(call.caller_id)).to_json.html_safe
155 end
156
157 def call_provider_html(call)
158 json_data_scrub(h(call.provider.name)).to_json.html_safe
159 end
160
161 def call_answered_html(call)
162 json_data_scrub(h(call.answered ? "Yes" : "No")).to_json.html_safe
163 end
164
165 def call_busy_html(call)
166 json_data_scrub(h(call.busy ? "Yes" : "No")).to_json.html_safe
167 end
168
169 def call_audio_length_html(call)
170 json_data_scrub(h(call.audio_length.to_s)).to_json.html_safe
171 end
172
173 def call_ring_length_html(call)
174 json_data_scrub(h(call.ring_length.to_s)).to_json.html_safe
175 end
176
177
178 end
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.