refactors stats and optimizes js
JS libraries for stats (d3, c3, etc.) only load now when needed (stats/show)
This commit is contained in:
@@ -15,21 +15,32 @@
|
||||
//= require foundation
|
||||
//= require turbolinks
|
||||
//= require ckeditor/init
|
||||
//= require_directory ./ckeditor
|
||||
//= require social-share-button
|
||||
//= require initial
|
||||
//= require ahoy
|
||||
//= require d3
|
||||
//= require c3
|
||||
//= require c3ext
|
||||
//= 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() {
|
||||
App.Comments.initialize();
|
||||
App.Users.initialize();
|
||||
App.Votes.initialize();
|
||||
App.Tags.initialize();
|
||||
App.Stats.initialize();
|
||||
App.Dropdown.initialize();
|
||||
App.LocationChanger.initialize();
|
||||
App.CheckAllNone.initialize();
|
||||
|
||||
15
app/assets/javascripts/stat_graphs.js
Normal file
15
app/assets/javascripts/stat_graphs.js
Normal 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);
|
||||
});
|
||||
7
app/controllers/admin/stats_controller.rb
Normal file
7
app/controllers/admin/stats_controller.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
class Admin::StatsController < Admin::BaseController
|
||||
|
||||
def show
|
||||
@event_types = Ahoy::Event.group(:name).count
|
||||
end
|
||||
|
||||
end
|
||||
@@ -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
|
||||
@@ -75,7 +75,7 @@
|
||||
</li>
|
||||
|
||||
<li <%= "class=active" if controller_name == "stats" %>>
|
||||
<%= link_to stats_path do %>
|
||||
<%= link_to admin_stats_path do %>
|
||||
<i class="icon-stats"></i>
|
||||
<%= t("admin.menu.stats") %>
|
||||
<% end %>
|
||||
|
||||
@@ -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="row">
|
||||
<div class="small-12 column">
|
||||
@@ -9,6 +9,7 @@
|
||||
<%= stylesheet_link_tag "application" %>
|
||||
<%= javascript_include_tag "vendor/modernizr" %>
|
||||
<%= javascript_include_tag "application", 'data-turbolinks-track' => true %>
|
||||
<%= content_for :head %>
|
||||
<%= csrf_meta_tags %>
|
||||
<%= favicon_link_tag "favicon.ico" %>
|
||||
</head>
|
||||
|
||||
@@ -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( ckeditor/* )
|
||||
Rails.application.config.assets.precompile += %w( rem.min.js, respond.min.js )
|
||||
Rails.application.config.assets.precompile += %w( stat_graphs.js )
|
||||
@@ -114,6 +114,7 @@ Rails.application.routes.draw do
|
||||
end
|
||||
|
||||
resource :activity, controller: :activity, only: :show
|
||||
resource :stats, only: :show
|
||||
end
|
||||
|
||||
namespace :moderation do
|
||||
@@ -154,8 +155,6 @@ Rails.application.routes.draw do
|
||||
end
|
||||
end
|
||||
|
||||
resource :stats, only: [:show]
|
||||
|
||||
namespace :api do
|
||||
resource :stats, only: [:show]
|
||||
end
|
||||
|
||||
@@ -13,7 +13,7 @@ feature 'Stats' do
|
||||
confirm_phone
|
||||
|
||||
login_as(admin.user)
|
||||
visit stats_path
|
||||
visit admin_stats_path
|
||||
|
||||
expect(page).to have_content "Level 2 User (1)"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user