This repository has been archived by the owner on Nov 22, 2017. It is now read-only.
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added basic stats of the search terms by date.
Does not show individual quieries but counts the number of times a query is called. TODO: Should add aggregation over a month.
- Loading branch information
1 parent
03095fe
commit 0459a6e
Showing
10 changed files
with
1,166 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,12 @@ | ||
//= require jquery | ||
//= require bootstrap | ||
//= require bootstrap-datepicker | ||
//= require dateformat | ||
//= require prettify | ||
|
||
window.onload = function() { | ||
$(function(){ | ||
window.prettyPrint && prettyPrint(); | ||
}; | ||
$('#dp').datepicker().on('changeDate', function(ev){ | ||
window.location.href="/stats?q_on=" + ev.date.format("yyyy-mm-dd"); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,6 @@ | ||
/* | ||
*= require 'prettify' | ||
*= require 'datepicker' | ||
*/ | ||
@import "bootstrap"; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,224 @@ | ||
/*! | ||
* Datepicker for Bootstrap | ||
* | ||
* Copyright 2012 Stefan Petre | ||
* Improvements by Andrew Rowls | ||
* Licensed under the Apache License v2.0 | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
*/ | ||
.datepicker { | ||
top: 0; | ||
left: 0; | ||
padding: 4px; | ||
margin-top: 1px; | ||
-webkit-border-radius: 4px; | ||
-moz-border-radius: 4px; | ||
border-radius: 4px; | ||
/*.dow { | ||
border-top: 1px solid #ddd !important; | ||
}*/ | ||
|
||
} | ||
.datepicker:before { | ||
content: ''; | ||
display: inline-block; | ||
border-left: 7px solid transparent; | ||
border-right: 7px solid transparent; | ||
border-bottom: 7px solid #ccc; | ||
border-bottom-color: rgba(0, 0, 0, 0.2); | ||
position: absolute; | ||
top: -7px; | ||
left: 6px; | ||
} | ||
.datepicker:after { | ||
content: ''; | ||
display: inline-block; | ||
border-left: 6px solid transparent; | ||
border-right: 6px solid transparent; | ||
border-bottom: 6px solid #ffffff; | ||
position: absolute; | ||
top: -6px; | ||
left: 7px; | ||
} | ||
.datepicker > div { | ||
display: none; | ||
} | ||
.datepicker.days div.datepicker-days { | ||
display: block; | ||
} | ||
.datepicker.months div.datepicker-months { | ||
display: block; | ||
} | ||
.datepicker.years div.datepicker-years { | ||
display: block; | ||
} | ||
.datepicker table { | ||
width: 100%; | ||
margin: 0; | ||
} | ||
.datepicker td, | ||
.datepicker th { | ||
text-align: center; | ||
width: 20px; | ||
height: 20px; | ||
-webkit-border-radius: 4px; | ||
-moz-border-radius: 4px; | ||
border-radius: 4px; | ||
} | ||
.datepicker td.day:hover { | ||
background: #eeeeee; | ||
cursor: pointer; | ||
} | ||
.datepicker td.old, | ||
.datepicker td.new { | ||
color: #999999; | ||
} | ||
.datepicker td.disabled, | ||
.datepicker td.disabled:hover { | ||
background: none; | ||
color: #999999; | ||
cursor: default; | ||
} | ||
.datepicker td.active, | ||
.datepicker td.active:hover, | ||
.datepicker td.active.disabled, | ||
.datepicker td.active.disabled:hover { | ||
background-color: #006dcc; | ||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: -ms-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); | ||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: -o-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: linear-gradient(top, #0088cc, #0044cc); | ||
background-repeat: repeat-x; | ||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); | ||
border-color: #0044cc #0044cc #002a80; | ||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); | ||
filter: progid:dximagetransform.microsoft.gradient(enabled=false); | ||
color: #fff; | ||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | ||
} | ||
.datepicker td.active:hover, | ||
.datepicker td.active:hover:hover, | ||
.datepicker td.active.disabled:hover, | ||
.datepicker td.active.disabled:hover:hover, | ||
.datepicker td.active:active, | ||
.datepicker td.active:hover:active, | ||
.datepicker td.active.disabled:active, | ||
.datepicker td.active.disabled:hover:active, | ||
.datepicker td.active.active, | ||
.datepicker td.active:hover.active, | ||
.datepicker td.active.disabled.active, | ||
.datepicker td.active.disabled:hover.active, | ||
.datepicker td.active.disabled, | ||
.datepicker td.active:hover.disabled, | ||
.datepicker td.active.disabled.disabled, | ||
.datepicker td.active.disabled:hover.disabled, | ||
.datepicker td.active[disabled], | ||
.datepicker td.active:hover[disabled], | ||
.datepicker td.active.disabled[disabled], | ||
.datepicker td.active.disabled:hover[disabled] { | ||
background-color: #0044cc; | ||
} | ||
.datepicker td.active:active, | ||
.datepicker td.active:hover:active, | ||
.datepicker td.active.disabled:active, | ||
.datepicker td.active.disabled:hover:active, | ||
.datepicker td.active.active, | ||
.datepicker td.active:hover.active, | ||
.datepicker td.active.disabled.active, | ||
.datepicker td.active.disabled:hover.active { | ||
background-color: #003399; | ||
} | ||
.datepicker td span { | ||
display: block; | ||
width: 47px; | ||
height: 54px; | ||
line-height: 54px; | ||
float: left; | ||
margin: 2px; | ||
cursor: pointer; | ||
-webkit-border-radius: 4px; | ||
-moz-border-radius: 4px; | ||
border-radius: 4px; | ||
} | ||
.datepicker td span:hover { | ||
background: #eeeeee; | ||
} | ||
.datepicker td span.disabled, | ||
.datepicker td span.disabled:hover { | ||
background: none; | ||
color: #999999; | ||
cursor: default; | ||
} | ||
.datepicker td span.active, | ||
.datepicker td span.active:hover, | ||
.datepicker td span.active.disabled, | ||
.datepicker td span.active.disabled:hover { | ||
background-color: #006dcc; | ||
background-image: -moz-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: -ms-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0044cc)); | ||
background-image: -webkit-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: -o-linear-gradient(top, #0088cc, #0044cc); | ||
background-image: linear-gradient(top, #0088cc, #0044cc); | ||
background-repeat: repeat-x; | ||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0044cc', GradientType=0); | ||
border-color: #0044cc #0044cc #002a80; | ||
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); | ||
filter: progid:dximagetransform.microsoft.gradient(enabled=false); | ||
color: #fff; | ||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); | ||
} | ||
.datepicker td span.active:hover, | ||
.datepicker td span.active:hover:hover, | ||
.datepicker td span.active.disabled:hover, | ||
.datepicker td span.active.disabled:hover:hover, | ||
.datepicker td span.active:active, | ||
.datepicker td span.active:hover:active, | ||
.datepicker td span.active.disabled:active, | ||
.datepicker td span.active.disabled:hover:active, | ||
.datepicker td span.active.active, | ||
.datepicker td span.active:hover.active, | ||
.datepicker td span.active.disabled.active, | ||
.datepicker td span.active.disabled:hover.active, | ||
.datepicker td span.active.disabled, | ||
.datepicker td span.active:hover.disabled, | ||
.datepicker td span.active.disabled.disabled, | ||
.datepicker td span.active.disabled:hover.disabled, | ||
.datepicker td span.active[disabled], | ||
.datepicker td span.active:hover[disabled], | ||
.datepicker td span.active.disabled[disabled], | ||
.datepicker td span.active.disabled:hover[disabled] { | ||
background-color: #0044cc; | ||
} | ||
.datepicker td span.active:active, | ||
.datepicker td span.active:hover:active, | ||
.datepicker td span.active.disabled:active, | ||
.datepicker td span.active.disabled:hover:active, | ||
.datepicker td span.active.active, | ||
.datepicker td span.active:hover.active, | ||
.datepicker td span.active.disabled.active, | ||
.datepicker td span.active.disabled:hover.active { | ||
background-color: #003399; | ||
} | ||
.datepicker td span.old { | ||
color: #999999; | ||
} | ||
.datepicker th.switch { | ||
width: 145px; | ||
} | ||
.datepicker thead tr:first-child th { | ||
cursor: pointer; | ||
} | ||
.datepicker thead tr:first-child th:hover { | ||
background: #eeeeee; | ||
} | ||
.input-append.date .add-on i, | ||
.input-prepend.date .add-on i { | ||
display: block; | ||
cursor: pointer; | ||
width: 16px; | ||
height: 16px; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,13 @@ | ||
class HomeController < ApplicationController | ||
def show | ||
|
||
|
||
end | ||
def stats | ||
if params[:q_on].present? | ||
@q_on = DateTime.parse(params[:q_on]).to_date | ||
else | ||
@q_on = Date.today | ||
end | ||
@metrics = SearchMetric.where(q_on: @q_on).desc(:count) | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
class SearchMetric | ||
include Mongoid::Document | ||
|
||
field :q, type: String | ||
field :q_on, type: Date | ||
field :count, type: Integer | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
<div class="container-fluid"> | ||
<div class="row-fluid"> | ||
<div class="span8"> | ||
<h1>Stats</h1> | ||
|
||
<p>Top Queries for <%= @q_on.strftime("%d-%m-%Y") %> <a href="#" class="btn small" id="dp" data-date-format="dd-mm-yyyy" data-date="<%= @q_on.strftime("%d-%m-%Y") -%>">Change</a></p> | ||
|
||
<table class="table table-striped table-bordered table-condensed"> | ||
<thead> | ||
<tr> | ||
<th>Query</th> | ||
<th>Count</th> | ||
</tr> | ||
</thead> | ||
<tbody> | ||
<% @metrics.each do |sm| %> | ||
<tr> | ||
<td><%= sm.q %></td> | ||
<td><%= sm.count %></td> | ||
</tr> | ||
<% end %> | ||
</tbody> | ||
</table> | ||
</div> | ||
</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -22,5 +22,6 @@ | |
end | ||
end | ||
|
||
match "/stats", to: "home#stats" | ||
root to: 'home#show' | ||
end |
Oops, something went wrong.