Changeset 3986

Show
Ignore:
Timestamp:
09/27/06 23:16:30 (2 years ago)
Author:
lmh
Message:

Live search working, enjoy. Needs polishing and other stuff.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • framework3/trunk/data/msfweb/app/helpers/application_helper.rb

    r3983 r3986  
    2020  end 
    2121   
    22   # Return the AJAX livesearch-ready text box and target div container for eacrh results. 
    23   def ajax_livesearch_for(mod) 
    24     my_keyup_event = "window.parent.return_livesearch_results(this.value, '#{mod}', 'search-results')" 
    25     text_field     = "<input type=\"text\" onKeyup=\"#{my_keyup_event}\"/>" 
    26     search_target  = '<div id="search-results"></div>' 
    27     search_box = '<div id="search-box">' + text_field + search_target + '</div>' 
    28     return search_box 
    29   end 
    30    
    3122end 
  • framework3/trunk/data/msfweb/app/views/exploits/list.rhtml

    r3983 r3986  
    11<table> 
    22        <thead> 
    3             <tr><%= ajax_livesearch_for('exploits')%></tr> 
     3            <tr> 
     4               <input id="exploit_search" name="terms" type="text" size="40" value=""/> 
     5               <img alt="Spinner" id="search_spinner" src="/images/spinner.gif" style="display: none;" /> 
     6               <div id="search_results"></div> 
     7            </tr> 
    48                <tr> 
    59                        <th>Modules</th> 
     
    1620                        </td> 
    1721                </tr> 
    18                  
    1922                <tr class="itemDescription"> 
    2023                        <td class="itemDescription"><%= m.description %></td> 
     
    2427        </tbody> 
    2528</table> 
    26  
    27 <script type="text/javascript"> 
    28     /*new Autocompleter.Local('bands_from_the_70s', 'band_list', [], {});*/ 
     29<script> 
     30new Form.Element.Observer('exploit_search', 1,  
     31      function(element, value) {new Ajax.Updater( 
     32        'search_results',  
     33        'http://localhost:55555/exploits/search', 
     34         {asynchronous:true, evalScripts:true,  
     35           onComplete:function(request) 
     36            {Element.hide('search_spinner')},  
     37           onLoading:function(request) 
     38            {Element.show('search_spinner')}, 
     39           method:'post', parameters:'terms=' + value 
     40})}) 
    2941</script> 
  • framework3/trunk/data/msfweb/app/views/exploits/search.rhtml

    r3983 r3986  
     1<% if @results %> 
     2<ul> 
     3<% @results.each do |m| %> 
     4    <li><%= m.name %></li> 
     5<% end %> 
     6</ul> 
     7<% end %> 
  • framework3/trunk/data/msfweb/app/views/layouts/windows.rhtml

    r3972 r3986  
    88        <meta name="Copyright" content="(c) 2006, L.M.H <lmh@info-pull.com>" /> 
    99        <%= stylesheet_link_tag "windows" %> 
     10        <%= javascript_include_tag "prototype" %> 
     11        <%= javascript_include_tag "effects" %> 
    1012    </head> 
    1113 
  • framework3/trunk/data/msfweb/public/javascripts/application.js

    r3983 r3986  
    9999 */ 
    100100 
    101 function return_livesearch_results(terms, mod, target_id) { 
    102     var search_params = 'terms=' + terms; 
    103     var myAjaxSearch = new Ajax.Updater( 
    104                             target_id, 
    105                             '/' + mod + '/search',  
    106                             { 
    107                                 method: 'get',  
    108                                 parameters: search_params, 
    109                                 onFailure: alert('Your search for terms "'+terms+'" in '+mod+' failed for some reason.'), 
    110                                 evalScripts: true 
    111                             }); 
     101function return_livesearch_results() { 
     102    // ... 
    112103} 
    113104 
  • framework3/trunk/data/msfweb/public/stylesheets/windows.css

    r3982 r3986  
    4949    background: #CAE1FF; 
    5050} 
     51 
     52div.autocomplete { 
     53  position:absolute; 
     54  width:250px; 
     55  background-color:white; 
     56  border:1px solid #888; 
     57  margin:0px; 
     58  padding:0px; 
     59} 
     60div.autocomplete ul { 
     61  list-style-type:none; 
     62  margin:0px; 
     63  padding:0px; 
     64} 
     65div.autocomplete ul li.selected { background-color: #ffb;} 
     66div.autocomplete ul li { 
     67  list-style-type:none; 
     68  display:block; 
     69  margin:0; 
     70  padding:2px; 
     71  height:32px; 
     72  cursor:pointer; 
     73}