diff --git a/app/controllers/admin_controller.rb b/app/controllers/admin_controller.rb index d7efbdb..e651d29 100755 --- a/app/controllers/admin_controller.rb +++ b/app/controllers/admin_controller.rb @@ -5,7 +5,23 @@ class AdminController < ApplicationController def dashboard end - + + def analytics + + if params[:field].nil? + fields = "*" + else + fields = params[:field].map {|k,v| k}.join(",") + end + + if params[:ip] + @analytics = Analytics.hits_by_ip(params[:ip], fields) + else + @analytics = Analytics.all + end + render "layouts/admin/_analytics" + end + def get_all_users @users = User.all render :partial => "layouts/admin/get_all_users" diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 86c33e2..3e56186 100755 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,6 +1,6 @@ class ApplicationController < ActionController::Base - before_filter :authenticated, :has_info + before_filter :authenticated, :has_info, :create_analytic helper_method :current_user, :is_admin?, :sanitize_font # Our security guy keep talking about sea-surfing, cool story bro. @@ -45,6 +45,10 @@ class ApplicationController < ActionController::Base redirect_to home_dashboard_index_path if redirect end + def create_analytic + Analytics.create({ :ip_address => request.remote_ip, :referrer => request.referrer, :user_agent => request.user_agent}) + end + def sanitize_font(css) css # css if css.match(/\A[0-9]+([\%]|pt)\z/) diff --git a/app/models/analytics.rb b/app/models/analytics.rb new file mode 100644 index 0000000..c3c6075 --- /dev/null +++ b/app/models/analytics.rb @@ -0,0 +1,9 @@ +class Analytics < ActiveRecord::Base + attr_accessible :ip_address, :referrer, :user_agent + + scope :hits_by_ip, ->(ip,col="*") { select("#{col}").where("ip_address = '#{ip}'")} + + def self.count_by_col(col) + calculate(:count, col) + end +end diff --git a/app/views/layouts/admin/_analytics.html.erb b/app/views/layouts/admin/_analytics.html.erb new file mode 100644 index 0000000..485c2b0 --- /dev/null +++ b/app/views/layouts/admin/_analytics.html.erb @@ -0,0 +1,44 @@ +
+ +| + <% end %> + |
| <%= v %> | + <% end %> +