show.html.erb - warvox - VoIP based wardialing tool, forked from rapid7/warvox.
(HTM) git clone git://jay.scot/warvox
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
show.html.erb (7489B)
---
1 <div class="row-fluid">
2 <div class="span12">
3 <a class="btn btn-small pull-right" href="<%= edit_project_path(@project) %>" rel="tooltip" title="Update project settings"><i class="fa fa-wrench"></i> Settings</a>
4 <h1 class='title'>Project <%= @project.name %></h1>
5 <p class='project-header'><%=h @project.description %></p>
6 </div>
7 </div>
8
9 <div class="row-fluid">
10 <div class="span3">
11 <div class="stat-box stat-<%= @boxes[:called][:cls]%>">
12 <div><%= @boxes[:called][:txt] %></div>
13 <span class="stat-subtitle">Calls</span>
14 </div>
15 </div>
16 <div class="span9">
17 <div class="row-fluid">
18 <div class="span2"> </div>
19 <div class="span2"><a href="<%= new_dialer_project_job_path(@project) %>" class="btn" rel="tooltip" title="Gather data by dialing a range of numbers"><i class="fa fa-phone"></i> <strong>Wardial</strong></a></div>
20 <% if @boxes[:answered][:cnt] > 0 %>
21 <div class="span2"><a href="<%= new_analyze_project_job_path(@project) %>" class="btn" rel="tooltip" title="Analyze call data to determine line types and frequencies"><i class="fa fa-cogs"></i> <strong>Analyze</strong></a></div>
22 <% else %>
23 <div class="span2"><a href="#" class="btn disabled" rel="tooltip" title="No call data is available to analyze"><i class="fa fa-cogs"></i> <strong>Analyze</strong></a></div>
24 <% end %>
25 <div class="span2"> </div>
26 </div>
27 </div>
28 </div>
29
30 <div class="row-fluid">
31 <div class="span3 arrow-down"><i class="fa fa-arrow-down"></i></div>
32 <div class="span9"> </div>
33 </div>
34
35 <div class="row-fluid">
36 <div class="span3">
37 <div class="stat-box stat-<%= @boxes[:answered][:cls]%>">
38 <div><%= @boxes[:answered][:txt] %></div>
39 <span class="stat-subtitle">Answered</span>
40 </div>
41 </div>
42 <div class="span9"></div>
43 </div>
44
45 <div class="row-fluid">
46 <div class="span3 arrow-down"><i class="fa fa-arrow-down"></i></div>
47 <div class="span9"> </div>
48 </div>
49
50 <div class="row-fluid">
51 <div class="span3">
52 <div class="stat-box stat-<%= @boxes[:analyzed][:cls]%>">
53 <div><%= @boxes[:analyzed][:txt] %></div>
54 <span class="stat-subtitle">Analyzed</span>
55 </div>
56 </div>
57 <div class="span9"> </div>
58 </div>
59
60 <div class="row-fluid">
61 <div class="span3 arrow-down"><i class="fa fa-arrow-down"></i></div>
62 <div class="span9"> </div>
63 </div>
64
65 <div class="row-fluid">
66 <div class="span3">
67 <div class="row-fluid">
68 <div class="span6">
69 <div class="stat-box stat-<%= @boxes[:voice][:cls]%>">
70 <div><%= @boxes[:voice][:txt] %></div>
71 <span class="stat-subtitle">Voice</span>
72 </div>
73 </div>
74 <div class="span6">
75 <div class="stat-box stat-<%= @boxes[:voicemail][:cls]%>">
76 <div><%= @boxes[:voicemail][:txt] %></div>
77 <span class="stat-subtitle">VoiceMail</span>
78 </div>
79 </div>
80 </div>
81 </div>
82 <div class="span3 sparkline-cell">
83 <%= render :partial => 'shared/graphs/sparkline', :locals => { :points => @project.calls.hourly_report.to_a.map{|x| x[1] } } %>
84 <span class='sparkline-title'>Phone Calls / Hour (Last Day)</a>
85 </div>
86 <div class="span3 sparkline-cell">
87 <%= render :partial => 'shared/graphs/sparkline', :locals => { :points => @project.calls.daily_report.to_a.map{|x| x[1] } } %>
88 <span class='sparkline-title'>Phone Calls / Day (Last Week)</a>
89 </div>
90 <div class="span3 sparkline-cell">
91 <%= render :partial => 'shared/graphs/sparkline', :locals => { :points => @project.calls.weekly_report.to_a.map{|x| x[1] } } %>
92 <span class='sparkline-title'>Phone Calls / Week (Last Month)</a>
93 </div>
94 </div>
95
96 <div class="row-fluid">
97 <div class="span12"> </div>
98 </div>
99
100 <div class="row-fluid">
101 <div class="span3">
102 <div class="row-fluid">
103 <div class="span6">
104 <div class="stat-box stat-<%= @boxes[:fax][:cls]%>">
105 <div><%= @boxes[:fax][:txt] %></div>
106 <span class="stat-subtitle">Fax</span>
107 </div>
108 </div>
109 <div class="span6">
110 <div class="stat-box stat-<%= @boxes[:modem][:cls]%>">
111 <div><%= @boxes[:modem][:txt] %></div>
112 <span class="stat-subtitle">Modems</span>
113 </div>
114 </div>
115 </div>
116 </div>
117 <div class="span3 sparkline-cell">
118 <%= render :partial => 'shared/graphs/sparkline', :locals => { :points => @project.calls.analyzed_hourly_report.to_a.map{|x| x[1] } } %>
119 <span class='sparkline-title'>Analyzed Calls / Hour (Last Day)</a>
120 </div>
121 <div class="span3 sparkline-cell">
122 <%= render :partial => 'shared/graphs/sparkline', :locals => { :points => @project.calls.analyzed_daily_report.to_a.map{|x| x[1] } } %>
123 <span class='sparkline-title'>Analyzed Calls / Day (Last Week)</a>
124 </div>
125 <div class="span3 sparkline-cell">
126 <%= render :partial => 'shared/graphs/sparkline', :locals => { :points => @project.calls.analyzed_weekly_report.to_a.map{|x| x[1] } } %>
127 <span class='sparkline-title'>Analyzed Calls / Week (Last Month)</a>
128 </div>
129 <div class="span6"> </div>
130 </div>
131
132 <div class="row-fluid">
133 <div class="span12"> </div>
134 </div>
135
136 <% if @active_jobs.count > 0 %>
137
138 <div class="row-fluid">
139 <div class="span12">
140
141 <h2 class='title'>Active Jobs</h1>
142
143 <table class='table table-striped table-condensed' width='90%'>
144 <tr>
145 <th>ID</th>
146 <th>Task</th>
147 <th>Progress</th>
148 <th>Rate</th>
149 <th>Launched</th>
150 <th>Actions</th>
151 </tr>
152
153 <% @active_jobs.each do |job| %>
154 <tr class='active_job_row'>
155 <td><%= job.id %></td>
156 <td><%= format_job_details(job) %></td>
157 <td>
158 <div class="progress progress-warning progress-striped progress-bar">
159 <div class="bar" style="width: <%= job.progress %>%">
160 <span class='progress_pct'><%= job.progress %>%</span>
161 </div>
162 </div>
163 </td>
164 <td><%= format_job_rate(job) %></td>
165 <td><%= time_ago_in_words(job.created_at) %> ago</td>
166 <td>
167 <% if job.task == "dialer" %>
168 <a class="btn" href="<%= view_results_path(job.project,job) %>" rel="tooltip" title="View Current Stats" ><i class="fa fa-eye"></i></a>
169 <% end %>
170 <% if job.task == "analysis" and job.details[:scope].to_s != "calls" %>
171 <a class="btn" href="<%= view_analyze_path(job.project,job.details[:target_id]||job.id) %>" rel="tooltip" title="View Call Analysis"><i class="fa fa-pie-chart"></i></a>
172 <% end %>
173 <a class="btn" href="<%= stop_job_path(job) %>" data-confirm="Terminate this job?" rel="nofollow tooltip" title="Terminate Job"><i class="fa fa-stop"></i></a>
174 </td>
175 </tr>
176 <% end %>
177 </table>
178 </div>
179 </div>
180 <% end %>
181
182
183 <% if(@inactive_jobs.length > 0) %>
184
185 <div class="row-fluid">
186 <div class="span12">
187 <h2 class='title'>Completed Jobs</h2>
188
189 <%= will_paginate @inactive_jobs, :renderer => BootstrapPagination::Rails %>
190 <table class='table table-striped table-condensed' width='90%'>
191 <tr>
192 <th>ID</th>
193 <th>Task</th>
194 <th>Status</th>
195 <th>Rate</th>
196 <th>Started</th>
197 <th>Completed</th>
198 </tr>
199
200 <% @inactive_jobs.each do |job|
201 special = ""
202 case job.status
203 when "error"
204 special = "error"
205 when "stopped"
206 special = "warning"
207 end
208 %>
209 <tr class='<%= special %>'>
210 <td><%= job.id %></td>
211 <td><%= format_job_details(job) %></td>
212 <td><%= format_job_status(job) %></td>
213 <td><%= format_job_rate(job) %></td>
214 <td><%= time_ago_in_words(job.created_at) %> ago</td>
215 <td><%= job.completed_at ? "after " + time_ago_in_words(Time.at(Time.now.to_i - (job.completed_at.to_f - job.created_at.to_f))) : "incomplete" %></td>
216 </tr>
217 <% end %>
218 </table>
219 <%= will_paginate @inactive_jobs, :renderer => BootstrapPagination::Rails %>
220 </div>
221 </div>
222 <% end %>