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 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();
|
||||||
|
|||||||
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>
|
||||||
|
|
||||||
<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 %>
|
||||||
|
|||||||
@@ -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">
|
||||||
@@ -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>
|
||||||
|
|||||||
@@ -10,4 +10,5 @@ Rails.application.config.assets.version = '1.0'
|
|||||||
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
|
||||||
# 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 )
|
||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user