ifd_tools 0.1.6 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/app/models/ifd_tools/tracking/event.rb +1 -1
- data/lib/generators/ifd_tools/install/templates/admin/dashboard.rb +20 -40
- data/lib/ifd_tools/active_admin/can_can.rb +9 -0
- data/lib/ifd_tools/active_admin/dashboard/contact_requests.rb +40 -0
- data/lib/ifd_tools/active_admin/dashboard/page_additions.rb +25 -0
- data/lib/ifd_tools/active_admin/dashboard/tracking.rb +60 -0
- data/lib/ifd_tools/active_admin/dashboard.rb +11 -0
- data/lib/ifd_tools/active_admin.rb +8 -0
- data/lib/ifd_tools/tracking.rb +7 -0
- data/lib/ifd_tools/version.rb +1 -1
- data/lib/ifd_tools.rb +7 -5
- metadata +9 -2
@@ -1,47 +1,27 @@
|
|
1
1
|
ActiveAdmin.register_page "Dashboard" do
|
2
2
|
|
3
|
-
menu :
|
3
|
+
menu priority: 1, label: proc { I18n.t("active_admin.dashboard") }
|
4
4
|
|
5
|
-
content
|
5
|
+
# Put any additional content that you want displayed after the tracking information here
|
6
|
+
# Optionally, comment out the include below to include Dashboard Tracking to skip that entirely
|
7
|
+
#
|
8
|
+
# content :title => proc { I18n.t("active_admin.dashboard") } do
|
6
9
|
|
7
|
-
#
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
column do
|
16
|
-
panel "Top Content" do
|
17
|
-
div(id: :top_content_panel) { render "line_graph" }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
# Second row of content
|
23
|
-
columns do
|
24
|
-
column do
|
25
|
-
panel "Most Active Users" do
|
26
|
-
table_for Customer.top_users.limit(25) do
|
27
|
-
column(:name) { |c| link_to c.full_name, [:admin, c] }
|
28
|
-
column(:email) { |c| mail_to c.email, c.email }
|
29
|
-
column(:phone) { |c| number_to_phone c.phone, area_code: true }
|
30
|
-
column(:activity) { |c| c.tracking_events.count }
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
column do
|
35
|
-
panel "Most Active Content" do
|
36
|
-
table_for IfdTools::Tracking::Event.top_content do
|
37
|
-
column(:name) { |event| link_to event.trackable_title, [:admin, event.trackable_resource] }
|
38
|
-
column(:type) { |event| event.trackable_type }
|
39
|
-
column(:activity) { |event| event.trackable_activity }
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
43
|
-
end
|
10
|
+
# columns do
|
11
|
+
# column do
|
12
|
+
# panel "Top Users" do
|
13
|
+
# render "some_partial"
|
14
|
+
# end
|
15
|
+
# end
|
16
|
+
# end
|
44
17
|
|
45
|
-
end
|
18
|
+
# end
|
19
|
+
|
20
|
+
# This provides 4 panels of dashboard analytics (heatmap, content line graph, top users & top content)
|
21
|
+
has_dashboard_tracking
|
22
|
+
|
23
|
+
# This provides a panel for most recent contact requests, in a new row on the dashboard
|
24
|
+
# If you want to add any additional content to this new row, pass a block to this method & do it in there
|
25
|
+
has_recent_contact_requests
|
46
26
|
|
47
27
|
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
module IfdTools
|
2
|
+
module ActiveAdmin
|
3
|
+
module Dashboard
|
4
|
+
module ContactRequests
|
5
|
+
|
6
|
+
def self.included(dsl)
|
7
|
+
|
8
|
+
index_page_presenter = dsl.config.get_page_presenter(:index) || ::ActiveAdmin::PagePresenter.new(title: proc { I18n.t("active_admin.dashboard") })
|
9
|
+
|
10
|
+
dsl.content(title: index_page_presenter[:title]) do
|
11
|
+
|
12
|
+
# Execute any code provided in the application dashboard itself
|
13
|
+
instance_exec &index_page_presenter.block if index_page_presenter.block.present?
|
14
|
+
|
15
|
+
# Another row of content
|
16
|
+
columns do
|
17
|
+
|
18
|
+
column do
|
19
|
+
panel "Top Users" do
|
20
|
+
table_for ::IfdTools::ContactRequest.unread.limit(20) do
|
21
|
+
column(:name) { |cr| link_to truncate(cr.to_s, length: 35), [:admin, cr] }
|
22
|
+
column(:email) { |cr| mail_to cr.email, cr.email }
|
23
|
+
column(:phone) { |cr| number_to_phone cr.phone, area_code: true }
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
# Execute any additional code in this same row
|
29
|
+
instance_exec &index_page_presenter[:additional_content] if index_page_presenter[:additional_content].present?
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module IfdTools
|
2
|
+
module ActiveAdmin
|
3
|
+
module Dashboard
|
4
|
+
module PageAdditions
|
5
|
+
|
6
|
+
extend ActiveSupport::Concern
|
7
|
+
|
8
|
+
included do
|
9
|
+
|
10
|
+
def has_dashboard_tracking
|
11
|
+
include IfdTools::ActiveAdmin::Dashboard::Tracking
|
12
|
+
end
|
13
|
+
|
14
|
+
def has_recent_contact_requests(&block)
|
15
|
+
presenter = config.get_page_presenter(:index) || ::ActiveAdmin::PagePresenter.new
|
16
|
+
presenter.instance_variable_get("@options")[:additional_content] = block
|
17
|
+
include IfdTools::ActiveAdmin::Dashboard::ContactRequests
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
module IfdTools
|
2
|
+
module ActiveAdmin
|
3
|
+
module Dashboard
|
4
|
+
module Tracking
|
5
|
+
|
6
|
+
def self.included(dsl)
|
7
|
+
|
8
|
+
index_page_presenter = dsl.config.get_page_presenter(:index) || ::ActiveAdmin::PagePresenter.new(title: proc { I18n.t("active_admin.dashboard") })
|
9
|
+
|
10
|
+
dsl.content(title: index_page_presenter[:title]) do
|
11
|
+
|
12
|
+
# First row of content
|
13
|
+
columns do
|
14
|
+
column do
|
15
|
+
panel "Top Users" do
|
16
|
+
div(id: :top_users_panel) { render "usa_map" }
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
column do
|
21
|
+
panel "Top Content" do
|
22
|
+
div(id: :top_content_panel) { render "line_graph" }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Second row of content
|
28
|
+
columns do
|
29
|
+
column do
|
30
|
+
panel "Most Active Users" do
|
31
|
+
table_for Customer.top_users.limit(25) do
|
32
|
+
column(:name) { |c| link_to c.full_name, [:admin, c] }
|
33
|
+
column(:email) { |c| mail_to c.email, c.email }
|
34
|
+
column(:phone) { |c| number_to_phone c.phone, area_code: true }
|
35
|
+
column(:activity) { |c| c.tracking_events.count }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
column do
|
40
|
+
panel "Most Active Content" do
|
41
|
+
table_for IfdTools::Tracking::Event.top_content do
|
42
|
+
column(:name) { |event| link_to event.trackable_title, [:admin, event.trackable_resource] }
|
43
|
+
column(:type) { |event| event.trackable_type }
|
44
|
+
column(:activity) { |event| event.trackable_activity }
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
# Execute any code provided in the application dashboard itself
|
51
|
+
instance_exec &index_page_presenter.block if index_page_presenter.block.present?
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module IfdTools
|
2
|
+
module ActiveAdmin
|
3
|
+
module Dashboard
|
4
|
+
|
5
|
+
autoload :ContactRequests, 'ifd_tools/active_admin/dashboard/contact_requests'
|
6
|
+
autoload :PageAdditions, 'ifd_tools/active_admin/dashboard/page_additions'
|
7
|
+
autoload :Tracking, 'ifd_tools/active_admin/dashboard/tracking'
|
8
|
+
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
data/lib/ifd_tools/version.rb
CHANGED
data/lib/ifd_tools.rb
CHANGED
@@ -14,15 +14,17 @@ require 'active_admin_relationship_filters'
|
|
14
14
|
|
15
15
|
require "ifd_tools/engine"
|
16
16
|
require 'ifd_tools/date_time_additions'
|
17
|
-
require 'ifd_tools/active_admin/base'
|
18
17
|
require 'ifd_tools/validations/phone'
|
19
|
-
require 'ifd_tools/active_admin/
|
18
|
+
require 'ifd_tools/active_admin/base'
|
20
19
|
|
21
20
|
module IfdTools
|
22
21
|
|
22
|
+
autoload :ActiveAdmin, 'ifd_tools/active_admin'
|
23
23
|
autoload :ApiControllerExtensions, 'ifd_tools/api_controller_extensions'
|
24
24
|
autoload :Configure, 'ifd_tools/configure'
|
25
25
|
autoload :States, 'ifd_tools/states'
|
26
|
-
autoload :
|
27
|
-
|
28
|
-
end
|
26
|
+
autoload :Tracking, 'ifd_tools/tracking'
|
27
|
+
|
28
|
+
end
|
29
|
+
|
30
|
+
::ActiveAdmin::PageDSL.send(:include, IfdTools::ActiveAdmin::Dashboard::PageAdditions)
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ifd_tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -361,6 +361,12 @@ files:
|
|
361
361
|
- lib/generators/ifd_tools/install/USAGE
|
362
362
|
- lib/ifd_tools/active_admin/base.rb
|
363
363
|
- lib/ifd_tools/active_admin/can_can/action_items.rb
|
364
|
+
- lib/ifd_tools/active_admin/can_can.rb
|
365
|
+
- lib/ifd_tools/active_admin/dashboard/contact_requests.rb
|
366
|
+
- lib/ifd_tools/active_admin/dashboard/page_additions.rb
|
367
|
+
- lib/ifd_tools/active_admin/dashboard/tracking.rb
|
368
|
+
- lib/ifd_tools/active_admin/dashboard.rb
|
369
|
+
- lib/ifd_tools/active_admin.rb
|
364
370
|
- lib/ifd_tools/api_controller/contact_requests.rb
|
365
371
|
- lib/ifd_tools/api_controller/customers.rb
|
366
372
|
- lib/ifd_tools/api_controller/emergency_messages.rb
|
@@ -374,6 +380,7 @@ files:
|
|
374
380
|
- lib/ifd_tools/states.rb
|
375
381
|
- lib/ifd_tools/tracking/customer_tracking.rb
|
376
382
|
- lib/ifd_tools/tracking/trackable.rb
|
383
|
+
- lib/ifd_tools/tracking.rb
|
377
384
|
- lib/ifd_tools/validations/phone.rb
|
378
385
|
- lib/ifd_tools/version.rb
|
379
386
|
- lib/ifd_tools.rb
|