Skip to content

Commit

Permalink
remove iframe to make easy to paste search urls
Browse files Browse the repository at this point in the history
  • Loading branch information
John Tajima committed Aug 5, 2009
1 parent 77a2f74 commit 1b72870
Show file tree
Hide file tree
Showing 5 changed files with 101 additions and 34 deletions.
32 changes: 20 additions & 12 deletions public/javascripts/app.js
Expand Up @@ -24,7 +24,7 @@ var Search = {
this.bind_grep_tool();
this.bind_tail_tool();
this.bind_options();

if (!this.past_params) return; // return if no prev settings, nothing to set

// set tool selector
Expand All @@ -35,14 +35,14 @@ var Search = {

// set search fields
jQuery.each(this.search_fields, function(){
$('#'+this).val(this.past_params[this]);
});
$('#'+this).val(Search.past_params[this]);
});
},

// bind option selectors
bind_options: function() {
$('#auto-scroll').bind('change', function(){
Search.scrollToBottom(this.checked);
Search.autoScroll(this.checked);
});
$('#auto-scroll').attr('checked', true).trigger('change'); // by default, turn on
},
Expand Down Expand Up @@ -99,20 +99,28 @@ var Search = {
// Misc utitilies
//

scrollToBottom: function(enabled) {
if ((enabled == true) && (this.scroll_fnId == null)) {
autoScroll: function(enabled) {
if (enabled == true) {
if (this.scroll_fnId)
return; // already running

//console.log("scroll ON!")
window._currPos = 0; // init pos
this.scroll_fnId = setInterval ( function(){
var iframe = document.getElementById('results');
var win = iframe.contentWindow;
var doc = iframe.contentDocument || iframe.contentWindow.document;
win.scrollTo(0, doc.height);
if (window._currPos < document.height) {
window.scrollTo(0, document.height);
window._currPos = document.height;
}
}, 250 );
} else {
// clear timeout
if (!this.scroll_fnId)
return;
//console.log("scroll off")
if (this.scroll_fnId) {
clearInterval(this.scroll_fnId);
window._currPost = 0;
this.scroll_fnId = null;
}
this.scroll_fnId = null;
}
}

Expand Down
13 changes: 11 additions & 2 deletions public/stylesheets/app.css
Expand Up @@ -16,7 +16,10 @@ body{font:13px/1.5 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif}


#toolbar { color: #333; font-size: 12px; min-width: 980px; height: 100px;
padding: 0 10px; background: #f0f0f0; border-bottom: 2px solid #000;}
padding: 0 10px; background: #f0f0f0; border-bottom: 2px solid #000;
position:fixed; top: 0; margin: 0 -10px; width: 100%;
font-family: 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif;
}
#toolbar a { color: blue; background: none; }
#toolbar a:hover { background: none; }

Expand All @@ -36,6 +39,12 @@ table.actions input[type=text] { width: 200px; padding: 2px; border: 1px solid #
div.results-div { position: absolute; left: 0; right: 0; top: 102px; bottom: 0; width: 100%; min-width: 980px;background: #111;}
div.results-div #results { width: 100%; height: 100%; }

div#option-ctrl { position: absolute; z-index: 100; bottom: 0; right: 0; min-width: 60px; min-height: 20px; height: 20px; padding: 5px; border: 1px solid #ddd; background: #f0f0f0; font-size: 11px;}
div#option-ctrl { position: fixed; z-index: 100; bottom: 0; right: 0; min-width: 60px; min-height: 20px; height: 20px; padding: 5px; border: 1px solid #ddd; background: #f0f0f0; font-size: 11px; color: #000;
font-family: 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif; }
div#option-ctrl ul { list-style:none; margin: 0; padding: 0;}
div#option-ctrl ul li { list-style:none; margin: 0 5px 0 0; float:left; }

/* output */
body { margin: 10px; padding-top: 110px; font-family: 'Monaco', 'Deja Vu Sans Mono', 'Inconsolata' ,'Consolas',monospace; background:#111 none repeat scroll 0 0; color:#fff; font-size:10px;}
a { color: #0f0; }
a:hover { background-color: #03c; color: white; text-decoration: none; }
2 changes: 1 addition & 1 deletion server.rb
Expand Up @@ -89,7 +89,7 @@ def welcome_page
end

def results_page
ERB.new(open('./views/results.html.erb').read).result(binding)
ERB.new(open('./views/index.html.erb').read).result(binding)
end

def tail_page
Expand Down
66 changes: 60 additions & 6 deletions views/error.html.erb
Expand Up @@ -4,15 +4,69 @@
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Log Search Server</title>
<link rel="stylesheet" href="/stylesheets/app.css" type="text/css" media="screen">
<style>
body { font-family: 'Helvetica Neue',Arial,'Liberation Sans',FreeSans,sans-serif; background:#111 none repeat scroll 0 0; color:#fff; font-size:12px; margin: 10px;}
h1,h2,h3,h4,h5,h6 { color: #fff;}
a { color: #0f0; }
a:hover { background-color: #03c; color: white; text-decoration: none; }
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="/javascripts/app.js" type="text/javascript"></script>
</head>

<body>
<div id='toolbar'>
<div id='header'>
<h2><a href="/">Log Search</a></h2>
</div>

<form id='search' method='get' action='/perform'>
<table class='actions'>
<tr>
<th>Action</th>
<th>Log File</th>
<th colspan=5>
Search Terms
<span class='note'>(1st term required, rest are optional) <a href='#' onclick='Search.clear(); return false;'>clear</a></span>
</th>
<th> </th>
</tr>
<tr>
<td id='tool-selector'>
<input type='radio' name='tool' value='grep' id='grep-tool' checked='checked'> <span class='label' id='grep-label'>Search</span> <br/>
<input type='radio' name='tool' value='tail' id='tail-tool'> <span class='label' id='tail-label'>Tail</span> <br/>
</td>
<td id='file-selector'>
<select id='file-list' name='file'>
<% logfiles.map do |f| %>
<%= "<option value='#{f}'>#{f}</option>\n" %>
<% end %>
</select>
</td>
<td>
<input type='text' id='term1' name='term1' />
</td>
<td> <span class='and'>AND</span> </td>
<td>
<input type='text' id='term2' name='term2' />
</td>
<td> <span class='and'>AND</span> </td>
<td>
<input type='text' id='term3' name='term3' />
</td>
<td>
<input type='submit' value='Submit!' xonclick="Search.submit(); return false;"/>
</td>
</tr>
</table>
</form>
</div>

<div id="option-ctrl">
<ul>
<li><input type='checkbox' name='enable_scrolling' id='auto-scroll'/><span> Auto scroll?</span></li>
</ul>
</div>

<script>
Search.init({ 'grep': <%= logfiles.map {|f| f }.to_json %>,
'tail': <%= logfiles.map {|f| f if f =~ /log$/ }.compact.to_json %> },
<%= @params.empty? ? nil.to_json : @params.to_json %> );
</script>

<h1>Error</h1>

Expand Down
22 changes: 9 additions & 13 deletions views/index.html.erb
Expand Up @@ -6,13 +6,6 @@
<link rel="stylesheet" href="/stylesheets/app.css" type="text/css" media="screen">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script src="/javascripts/app.js" type="text/javascript"></script>
<script>
jQuery(document).ready(function(){
Search.init({ 'grep': <%= logfiles.map {|f| f }.to_json %>,
'tail': <%= logfiles.map {|f| f if f =~ /log$/ }.compact.to_json %> },
<%= @params.empty? ? nil.to_json : @params.to_json %> );
});
</script>
</head>

<body>
Expand Down Expand Up @@ -56,19 +49,22 @@
<input type='text' id='term3' name='term3' />
</td>
<td>
<input type='submit' value='Submit!' onclick="Search.submit(); return false;"/>
<input type='submit' value='Submit!' xonclick="Search.submit(); return false;"/>
</td>
</tr>
</table>
</form>
</div>
<div class='results-div'>
<iframe id="results" src=""></iframe>
</div>

<div id="option-ctrl">
<ul>
<li><input type='checkbox' name='enable_scrolling' id='auto-scroll'/><span> Auto scroll?</span></li>
</ul>
</div>
</body>
</html>

<script>
Search.init({ 'grep': <%= logfiles.map {|f| f }.to_json %>,
'tail': <%= logfiles.map {|f| f if f =~ /log$/ }.compact.to_json %> },
<%= @params.empty? ? nil.to_json : @params.to_json %> );
</script>

0 comments on commit 1b72870

Please sign in to comment.