| Add new files - warvox - VoIP based wardialing tool, forked from rapid7/warvox. | |
| Log | |
| Files | |
| Refs | |
| README | |
| --- | |
| commit a1aa3fbbc918a8fca82cce9016edd571a0a87c73 | |
| parent e83feb465aa71b51e334b8fd374d88e98e0c01f9 | |
| Author: HD Moore <[email protected]> | |
| Date: Mon, 7 Jan 2013 03:27:47 -0600 | |
| Add new files | |
| Diffstat: | |
| A app/assets/javascripts/analyze/vie… | 58 +++++++++++++++++++++++++++… | |
| A app/views/analyze/_view.json.erb | 17 +++++++++++++++++ | |
| D app/views/shared/_audio_player.htm… | 0 | |
| A app/views/shared/_call_signal.html… | 2 ++ | |
| A app/views/shared/_call_type.html.e… | 14 ++++++++++++++ | |
| 5 files changed, 91 insertions(+), 0 deletions(-) | |
| --- | |
| diff --git a/app/assets/javascripts/analyze/view.coffee b/app/assets/javascript… | |
| @@ -0,0 +1,58 @@ | |
| +jQuery ($) -> | |
| + $ -> | |
| + resultsPath = $('#results-path').html() | |
| + $resultsTable = $('#results-table') | |
| + | |
| + # Enable DataTable for the results list. | |
| + $resultsDataTable = $resultsTable.table | |
| + analysisTab: true | |
| + controlBarLocation: $('.analysis-control-bar') | |
| + searchInputHint: 'Search Calls' | |
| + searchable: true | |
| + datatableOptions: | |
| + "sDom": "<'row'<'span6'l><'span6'f>r>t<'row'<'span6'i><'span6'p>>", | |
| + "sPaginationType": "bootstrap", | |
| + "oLanguage": | |
| + "sEmptyTable": "No analysis results." | |
| + "sAjaxSource": resultsPath | |
| + "aaSorting": [[1, 'asc']] | |
| + "aoColumns": [ | |
| + {"mDataProp": "checkbox", "bSortable": false} | |
| + {"mDataProp": "number"} | |
| + {"mDataProp": "line_type"} | |
| + {"mDataProp": "signal"} | |
| + ] | |
| + "fnServerData": ( sSource, aoData, fnCallback ) -> | |
| + $.getJSON sSource, aoData, (json) -> | |
| + fnCallback(json) | |
| + $(".xtooltip").tooltip('fixTitle') | |
| + $(".xpopover").popover | |
| + html: true | |
| + placement: 'right' | |
| + trigger: 'hover' | |
| + delay: { show: 300, hide: 300 } | |
| + animation: false | |
| + | |
| + # Gray out the table during loads. | |
| + $("#results-table_processing").watch 'visibility', -> | |
| + if $(this).css('visibility') == 'visible' | |
| + $resultsTable.css opacity: 0.6 | |
| + else | |
| + $resultsTable.css opacity: 1 | |
| + | |
| + # Display the search bar when the search icon is clicked | |
| + $('.button .search').click (e) -> | |
| + $filter = $('.dataTables_filter') | |
| + $input = $('.dataTables_filter input') | |
| + if $filter.css('bottom').charAt(0) == '-' # if (css matches -42px) | |
| + # input box is visible, hide it | |
| + # only allow user to hide if there is no search string | |
| + if !$input.val() || $input.val().length < 1 | |
| + $filter.css('bottom', '99999999px') | |
| + else # input box is invisible, display it | |
| + $filter.css('bottom', '-42px') | |
| + $input.focus() # auto-focus input | |
| + e.preventDefault() | |
| + | |
| + searchVal = $('.dataTables_filter input').val() | |
| + $('.button .search').click() if searchVal && searchVal.length > 0 | |
| diff --git a/app/views/analyze/_view.json.erb b/app/views/analyze/_view.json.erb | |
| @@ -0,0 +1,17 @@ | |
| +<%- self.formats = ["html"] %> | |
| +{ | |
| + "sEcho": <%= echo_data_tables %>, | |
| + "iTotalRecords": <%= @results_total_count.to_json %>, | |
| + "iTotalDisplayRecords": <%= @results_total_display_count.to_json %>, | |
| + "aaData": [ | |
| + <% @results.each_with_index do |result, index| -%> | |
| + { | |
| + "DT_RowId": <%= dom_id(result).to_json.html_safe%>, | |
| + "checkbox": <%= call_checkbox_tag(result) %>, | |
| + "number": "<%= raw(escape_javascript_dq(render(:partial => 'shared/c… | |
| + "line_type": "<%= raw(escape_javascript_dq(render(:partial => 'shared/c… | |
| + "signal": "<%= raw(escape_javascript_dq(render(:partial => 'shared/c… | |
| + }<%= ',' unless index == (@results.size - 1) %> | |
| + <% end -%> | |
| + ] | |
| +} | |
| diff --git a/app/views/shared/_audio_player.html.erb b/app/views/shared/_audio_… | |
| diff --git a/app/views/shared/_call_signal.html.erb b/app/views/shared/_call_si… | |
| @@ -0,0 +1,2 @@ | |
| +<span class='pull-left'><%= render :partial => 'shared/lightbox_sig', :locals … | |
| +<%= render :partial => 'shared/lightbox_freq', :locals => { :call => call } %> | |
| diff --git a/app/views/shared/_call_type.html.erb b/app/views/shared/_call_type… | |
| @@ -0,0 +1,14 @@ | |
| +<% | |
| +ttip = raw("<div class='task_args_formatted'>") | |
| +ttip << raw("<div class='task_args_var'>Call Time:</div> ") | |
| +ttip << raw("<div class='task_args_val'>") + h(call.created_at.strftime("%Y-%m… | |
| +ttip << raw("<div class='task_args_var'>CallerID:</div> ") | |
| +ttip << raw("<div class='task_args_val'>") + h(call.caller_id) + raw(" </… | |
| +ttip << raw("<div class='task_args_var'>Provider:</div> ") | |
| +ttip << raw("<div class='task_args_val'>") + h(call.provider.name) + raw("&nbs… | |
| +ttip << raw("<div class='task_args_var'>Audio:</div> ") | |
| +ttip << raw("<div class='task_args_val'>") + h(call.audio_length.to_s) + raw("… | |
| +ttip << raw("<div class='task_args_var'>Ring:</div> ") | |
| +ttip << raw("<div class='task_args_val'>") + h(call.ring_length.to_s) + raw("&… | |
| +ttip << raw("</div>\n") | |
| +%><%= raw("<span class='xpopover' rel='popover' data-title=\"#{h call.number.t… |