refactors stats and optimizes js

JS libraries for stats (d3, c3, etc.) only load now when needed (stats/show)
This commit is contained in:
Juanjo Bazán
2015-09-23 19:37:24 +02:00
parent 7b9c050df2
commit 8c99c6a5f0
10 changed files with 47 additions and 24 deletions

View File

@@ -15,21 +15,32 @@
//= require foundation //= require foundation
//= require turbolinks //= require turbolinks
//= require ckeditor/init //= require ckeditor/init
//= require_directory ./ckeditor
//= require social-share-button //= require social-share-button
//= require initial //= require initial
//= require ahoy //= require ahoy
//= require d3
//= require c3
//= require c3ext
//= require app //= require app
//= require_tree . //= require check_all_none
//= require comments
//= require dropdown
//= require ie_alert
//= require location_changer
//= require moderator_comment
//= require moderator_debates
//= require moderator_proposals
//= require prevent_double_submission
//= require rem.min
//= require respond.min
//= require tags
//= require users
//= require votes
var initialize_modules = function() { var initialize_modules = function() {
App.Comments.initialize(); App.Comments.initialize();
App.Users.initialize(); App.Users.initialize();
App.Votes.initialize(); App.Votes.initialize();
App.Tags.initialize(); App.Tags.initialize();
App.Stats.initialize();
App.Dropdown.initialize(); App.Dropdown.initialize();
App.LocationChanger.initialize(); App.LocationChanger.initialize();
App.CheckAllNone.initialize(); App.CheckAllNone.initialize();

View File

@@ -0,0 +1,15 @@
//= require d3
//= require c3
//= require c3ext
//= require stats
var initialize_stats_modules = function() {
App.Stats.initialize();
};
$(function(){
$(document).ready(initialize_stats_modules);
$(document).on('page:load', initialize_stats_modules);
$(document).on('ajax:complete', initialize_stats_modules);
});

View File

@@ -0,0 +1,7 @@
class Admin::StatsController < Admin::BaseController
def show
@event_types = Ahoy::Event.group(:name).count
end
end

View File

@@ -1,14 +0,0 @@
class StatsController < ApplicationController
before_action :verify_administrator
skip_authorization_check
def show
@event_types = Ahoy::Event.group(:name).count
end
private
def verify_administrator
raise CanCan::AccessDenied unless current_user.try(:administrator?)
end
end

View File

@@ -75,7 +75,7 @@
</li> </li>
<li <%= "class=active" if controller_name == "stats" %>> <li <%= "class=active" if controller_name == "stats" %>>
<%= link_to stats_path do %> <%= link_to admin_stats_path do %>
<i class="icon-stats"></i> <i class="icon-stats"></i>
<%= t("admin.menu.stats") %> <%= t("admin.menu.stats") %>
<% end %> <% end %>

View File

@@ -1,3 +1,6 @@
<% content_for :head do %>
<%= javascript_include_tag "stat_graphs", 'data-turbolinks-track' => true %>
<% end %>
<div class="stats row-full"> <div class="stats row-full">
<div class="row"> <div class="row">
<div class="small-12 column"> <div class="small-12 column">

View File

@@ -9,6 +9,7 @@
<%= stylesheet_link_tag "application" %> <%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "vendor/modernizr" %> <%= javascript_include_tag "vendor/modernizr" %>
<%= javascript_include_tag "application", 'data-turbolinks-track' => true %> <%= javascript_include_tag "application", 'data-turbolinks-track' => true %>
<%= content_for :head %>
<%= csrf_meta_tags %> <%= csrf_meta_tags %>
<%= favicon_link_tag "favicon.ico" %> <%= favicon_link_tag "favicon.ico" %>
</head> </head>

View File

@@ -11,3 +11,4 @@ Rails.application.config.assets.version = '1.0'
# Rails.application.config.assets.precompile += %w( search.js ) # Rails.application.config.assets.precompile += %w( search.js )
Rails.application.config.assets.precompile += %w( ckeditor/* ) Rails.application.config.assets.precompile += %w( ckeditor/* )
Rails.application.config.assets.precompile += %w( rem.min.js, respond.min.js ) Rails.application.config.assets.precompile += %w( rem.min.js, respond.min.js )
Rails.application.config.assets.precompile += %w( stat_graphs.js )

View File

@@ -114,6 +114,7 @@ Rails.application.routes.draw do
end end
resource :activity, controller: :activity, only: :show resource :activity, controller: :activity, only: :show
resource :stats, only: :show
end end
namespace :moderation do namespace :moderation do
@@ -154,8 +155,6 @@ Rails.application.routes.draw do
end end
end end
resource :stats, only: [:show]
namespace :api do namespace :api do
resource :stats, only: [:show] resource :stats, only: [:show]
end end

View File

@@ -13,7 +13,7 @@ feature 'Stats' do
confirm_phone confirm_phone
login_as(admin.user) login_as(admin.user)
visit stats_path visit admin_stats_path
expect(page).to have_content "Level 2 User (1)" expect(page).to have_content "Level 2 User (1)"
end end