ahoy_captain 0.10.1 → 0.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +23 -2
- data/app/assets/javascript/ahoy_captain/controllers/application_controller.js +12 -0
- data/app/assets/javascript/ahoy_captain/controllers/combobox_controller.js +50 -20
- data/app/assets/javascript/ahoy_captain/controllers/frame_link_controller.js +20 -0
- data/app/assets/javascript/ahoy_captain/controllers/line_chart_controller.js +67 -4
- data/app/assets/javascript/ahoy_captain/controllers/map_controller.js +47 -0
- data/app/assets/javascript/ahoy_captain/controllers/predicate_select_controller.js +1 -0
- data/app/assets/javascript/ahoy_captain/controllers/tile_controller.js +25 -1
- data/app/assets/javascript/ahoy_captain/helpers/countries.js +2261 -0
- data/app/components/ahoy_captain/combobox_component.html.erb +2 -2
- data/app/components/ahoy_captain/combobox_component.rb +1 -1
- data/app/components/ahoy_captain/comparison_link_component.html.erb +17 -0
- data/app/components/ahoy_captain/comparison_link_component.rb +10 -6
- data/app/components/ahoy_captain/dropdown_link_component.html.erb +2 -4
- data/app/components/ahoy_captain/dropdown_link_component.rb +4 -0
- data/app/components/ahoy_captain/previous_next_component.html.erb +8 -0
- data/app/components/ahoy_captain/previous_next_component.rb +11 -0
- data/app/components/ahoy_captain/stats/comparable_container_component.html.erb +1 -1
- data/app/components/ahoy_captain/stats/container_component.html.erb +1 -1
- data/app/components/ahoy_captain/sticky_nav_component.html.erb +26 -22
- data/app/components/ahoy_captain/sticky_nav_component.rb +8 -0
- data/app/components/ahoy_captain/tile_component.rb +7 -0
- data/app/controllers/ahoy_captain/locations/cities_controller.rb +22 -0
- data/app/controllers/ahoy_captain/locations/countries_controller.rb +22 -0
- data/app/controllers/ahoy_captain/locations/maps_controller.rb +24 -0
- data/app/controllers/ahoy_captain/locations/regions_controller.rb +22 -0
- data/app/helpers/ahoy_captain/application_helper.rb +0 -2
- data/app/models/ahoy_captain/range_from_params.rb +4 -1
- data/app/views/ahoy_captain/layouts/shared/_tile_loader.html.erb +12 -0
- data/app/views/ahoy_captain/locations/maps/show.html.erb +3 -0
- data/app/views/ahoy_captain/properties/_form.html.erb +1 -1
- data/app/views/ahoy_captain/roots/show.html.erb +89 -57
- data/app/views/ahoy_captain/stats/base/index.html.erb +1 -0
- data/app/views/ahoy_captain/stats/show.html.erb +13 -8
- data/config/routes.rb +7 -3
- data/lib/ahoy_captain/filters_configuration.rb +5 -5
- data/lib/ahoy_captain/version.rb +1 -1
- data/lib/ahoy_captain.rb +1 -0
- metadata +104 -12
- data/app/assets/javascript/ahoy_captain/controllers/active_links_controller.js +0 -30
- data/app/controllers/ahoy_captain/cities_controller.rb +0 -20
- data/app/controllers/ahoy_captain/countries_controller.rb +0 -20
- data/app/controllers/ahoy_captain/regions_controller.rb +0 -20
- /data/app/views/ahoy_captain/{cities → locations/cities}/index.html+details.erb +0 -0
- /data/app/views/ahoy_captain/{cities → locations/cities}/index.html.erb +0 -0
- /data/app/views/ahoy_captain/{countries → locations/countries}/index.html+details.erb +0 -0
- /data/app/views/ahoy_captain/{countries → locations/countries}/index.html.erb +0 -0
- /data/app/views/ahoy_captain/{regions → locations/regions}/index.html+details.erb +0 -0
- /data/app/views/ahoy_captain/{regions → locations/regions}/index.html.erb +0 -0
@@ -1,10 +1,15 @@
|
|
1
1
|
<%= turbo_frame_tag :stats, data: { controller: "active-frame-link" } do %>
|
2
|
-
<
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
2
|
+
<div class="grid grid-cols-1 divide-y divide-base-200 overflow-hidden rounded-lg grid-cols-2 md:grid-cols-6 md:divide-y-0" data-controller="active-links" data-active-links-classes-value='["text-primary"]'>
|
3
|
+
<% if @presenter.send(:range).realtime? %>
|
4
|
+
<%= render stats_container(@presenter.unique_visitors, stats_unique_visitors_url(search_params), "Unique Visits (30 min)", :number_with_delimiter, true) %>
|
5
|
+
<%= render stats_container(@presenter.total_pageviews, stats_total_pageviews_path(search_params), "Total Pageviews (30 min)", :number_with_delimiter) %>
|
6
|
+
<% else %>
|
7
|
+
<%= render stats_container(@presenter.unique_visitors, stats_unique_visitors_url(search_params), "Unique Visits", :number_with_delimiter, true) %>
|
8
|
+
<%= render stats_container(@presenter.total_visits, stats_total_visits_path(search_params), "Total Visits", :number_with_delimiter) %>
|
9
|
+
<%= render stats_container(@presenter.total_pageviews, stats_total_pageviews_path(search_params), "Total Pageviews", :number_with_delimiter) %>
|
10
|
+
<%= render stats_container(@presenter.views_per_visit, stats_views_per_visits_path(search_params), "Views per Visit", :number_with_delimiter) %>
|
11
|
+
<%= render stats_container(@presenter.bounce_rate, stats_bounce_rates_path(search_params), "Bounce Rate", :number_with_delimiter) %>
|
12
|
+
<%= render stats_container(@presenter.visit_duration, stats_visit_durations_url(search_params), "Visit Duration", :number_to_duration) %>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
10
15
|
<% end %>
|
data/config/routes.rb
CHANGED
@@ -12,15 +12,19 @@ AhoyCaptain::Engine.routes.draw do
|
|
12
12
|
get "/devices/#{k}" => 'devices#index', defaults: { devices_type: v }, as: "devices_#{k}"
|
13
13
|
end
|
14
14
|
|
15
|
+
namespace :locations do
|
16
|
+
resource :map, only: [:show]
|
17
|
+
resources :countries, only: [:index]
|
18
|
+
resources :regions, only: [:index]
|
19
|
+
resources :cities, only: [:index]
|
20
|
+
end
|
21
|
+
|
15
22
|
resources :properties, only: [:index, :show]
|
16
23
|
resource :export, only: [:show]
|
17
24
|
resource :realtime, only: [:show]
|
18
25
|
resources :funnels, only: [:show]
|
19
26
|
resources :goals, only: [:index]
|
20
27
|
resource :stats, only: [:show]
|
21
|
-
resources :countries, only: [:index]
|
22
|
-
resources :regions, only: [:index]
|
23
|
-
resources :cities, only: [:index]
|
24
28
|
resources :campaigns, only: [:index]
|
25
29
|
resources :sources, only: [:index]
|
26
30
|
resources :exit_pages, only: [:index]
|
@@ -31,11 +31,11 @@ module AhoyCaptain
|
|
31
31
|
end
|
32
32
|
|
33
33
|
config.register("UTM Tags") do
|
34
|
-
filter column: :utm_medium, label: "UTM Medium", url: :filters_utm_mediums_path, predicates: [:in, :not_in]
|
35
|
-
filter column: :utm_source, label: "UTM Source", url: :filters_utm_sources_path, predicates: [:in, :not_in]
|
36
|
-
filter column: :utm_campaign, label: "UTM Campaign", url: :filters_utm_campaigns_path, predicates: [:in, :not_in]
|
37
|
-
filter column: :utm_term, label: "UTM Term", url: :filters_utm_terms_path, predicates: [:in, :not_in]
|
38
|
-
filter column: :utm_content, label: "UTM Content", url: :filters_utm_contents_path, predicates: [:in, :not_in]
|
34
|
+
filter column: :utm_medium, label: "UTM Medium", url: :filters_utm_mediums_path, predicates: [:in, :not_in, :cont]
|
35
|
+
filter column: :utm_source, label: "UTM Source", url: :filters_utm_sources_path, predicates: [:in, :not_in, :cont]
|
36
|
+
filter column: :utm_campaign, label: "UTM Campaign", url: :filters_utm_campaigns_path, predicates: [:in, :not_in, :cont]
|
37
|
+
filter column: :utm_term, label: "UTM Term", url: :filters_utm_terms_path, predicates: [:in, :not_in, :cont]
|
38
|
+
filter column: :utm_content, label: "UTM Content", url: :filters_utm_contents_path, predicates: [:in, :not_in, :cont]
|
39
39
|
end
|
40
40
|
|
41
41
|
config.register("Goal") do
|
data/lib/ahoy_captain/version.rb
CHANGED
data/lib/ahoy_captain.rb
CHANGED
@@ -32,6 +32,7 @@ module AhoyCaptain
|
|
32
32
|
pin "Chart.bundle", to: "Chart.bundle.js"
|
33
33
|
pin "chartjs-plugin-datalabels", to: "https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2", preload: true
|
34
34
|
pin "classnames", to: "https://cdnjs.cloudflare.com/ajax/libs/classnames/2.3.2/index.min.js", preload: true
|
35
|
+
pin "chartjs-chart-geo", to: "https://unpkg.com/chartjs-chart-geo@4", preload: true
|
35
36
|
pin_all_from AhoyCaptain::Engine.root.join("app/assets/javascript/ahoy_captain/controllers"), under: "controllers", to: "ahoy_captain/controllers"
|
36
37
|
pin_all_from AhoyCaptain::Engine.root.join("app/assets/javascript/ahoy_captain/helpers"), under: "helpers", to: "ahoy_captain/helpers"
|
37
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ahoy_captain
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- joshmn
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-09-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -262,6 +262,90 @@ dependencies:
|
|
262
262
|
- - ">="
|
263
263
|
- !ruby/object:Gem::Version
|
264
264
|
version: '0'
|
265
|
+
- !ruby/object:Gem::Dependency
|
266
|
+
name: factory_bot_rails
|
267
|
+
requirement: !ruby/object:Gem::Requirement
|
268
|
+
requirements:
|
269
|
+
- - ">="
|
270
|
+
- !ruby/object:Gem::Version
|
271
|
+
version: '0'
|
272
|
+
type: :development
|
273
|
+
prerelease: false
|
274
|
+
version_requirements: !ruby/object:Gem::Requirement
|
275
|
+
requirements:
|
276
|
+
- - ">="
|
277
|
+
- !ruby/object:Gem::Version
|
278
|
+
version: '0'
|
279
|
+
- !ruby/object:Gem::Dependency
|
280
|
+
name: pry
|
281
|
+
requirement: !ruby/object:Gem::Requirement
|
282
|
+
requirements:
|
283
|
+
- - ">="
|
284
|
+
- !ruby/object:Gem::Version
|
285
|
+
version: '0'
|
286
|
+
type: :development
|
287
|
+
prerelease: false
|
288
|
+
version_requirements: !ruby/object:Gem::Requirement
|
289
|
+
requirements:
|
290
|
+
- - ">="
|
291
|
+
- !ruby/object:Gem::Version
|
292
|
+
version: '0'
|
293
|
+
- !ruby/object:Gem::Dependency
|
294
|
+
name: pry-rails
|
295
|
+
requirement: !ruby/object:Gem::Requirement
|
296
|
+
requirements:
|
297
|
+
- - ">="
|
298
|
+
- !ruby/object:Gem::Version
|
299
|
+
version: '0'
|
300
|
+
type: :development
|
301
|
+
prerelease: false
|
302
|
+
version_requirements: !ruby/object:Gem::Requirement
|
303
|
+
requirements:
|
304
|
+
- - ">="
|
305
|
+
- !ruby/object:Gem::Version
|
306
|
+
version: '0'
|
307
|
+
- !ruby/object:Gem::Dependency
|
308
|
+
name: rspec-rails
|
309
|
+
requirement: !ruby/object:Gem::Requirement
|
310
|
+
requirements:
|
311
|
+
- - ">="
|
312
|
+
- !ruby/object:Gem::Version
|
313
|
+
version: '0'
|
314
|
+
type: :development
|
315
|
+
prerelease: false
|
316
|
+
version_requirements: !ruby/object:Gem::Requirement
|
317
|
+
requirements:
|
318
|
+
- - ">="
|
319
|
+
- !ruby/object:Gem::Version
|
320
|
+
version: '0'
|
321
|
+
- !ruby/object:Gem::Dependency
|
322
|
+
name: simplecov
|
323
|
+
requirement: !ruby/object:Gem::Requirement
|
324
|
+
requirements:
|
325
|
+
- - ">="
|
326
|
+
- !ruby/object:Gem::Version
|
327
|
+
version: '0'
|
328
|
+
type: :development
|
329
|
+
prerelease: false
|
330
|
+
version_requirements: !ruby/object:Gem::Requirement
|
331
|
+
requirements:
|
332
|
+
- - ">="
|
333
|
+
- !ruby/object:Gem::Version
|
334
|
+
version: '0'
|
335
|
+
- !ruby/object:Gem::Dependency
|
336
|
+
name: sqlite3
|
337
|
+
requirement: !ruby/object:Gem::Requirement
|
338
|
+
requirements:
|
339
|
+
- - ">="
|
340
|
+
- !ruby/object:Gem::Version
|
341
|
+
version: '0'
|
342
|
+
type: :development
|
343
|
+
prerelease: false
|
344
|
+
version_requirements: !ruby/object:Gem::Requirement
|
345
|
+
requirements:
|
346
|
+
- - ">="
|
347
|
+
- !ruby/object:Gem::Version
|
348
|
+
version: '0'
|
265
349
|
description: A full-featured, mountable analytics dashboard for your Rails app, powered
|
266
350
|
by Ahoy.
|
267
351
|
email:
|
@@ -278,7 +362,6 @@ files:
|
|
278
362
|
- app/assets/images/ahoy_captain/logo.png
|
279
363
|
- app/assets/images/ahoy_captain/safari-pinned-tab.svg
|
280
364
|
- app/assets/javascript/ahoy_captain/application.js
|
281
|
-
- app/assets/javascript/ahoy_captain/controllers/active_links_controller.js
|
282
365
|
- app/assets/javascript/ahoy_captain/controllers/application.js
|
283
366
|
- app/assets/javascript/ahoy_captain/controllers/application_controller.js
|
284
367
|
- app/assets/javascript/ahoy_captain/controllers/combobox_controller.js
|
@@ -287,10 +370,12 @@ files:
|
|
287
370
|
- app/assets/javascript/ahoy_captain/controllers/filter/item_controller.js
|
288
371
|
- app/assets/javascript/ahoy_captain/controllers/filter_form_controller.js
|
289
372
|
- app/assets/javascript/ahoy_captain/controllers/filter_modal_controller.js
|
373
|
+
- app/assets/javascript/ahoy_captain/controllers/frame_link_controller.js
|
290
374
|
- app/assets/javascript/ahoy_captain/controllers/funnel_chart_controller.js
|
291
375
|
- app/assets/javascript/ahoy_captain/controllers/index.js
|
292
376
|
- app/assets/javascript/ahoy_captain/controllers/interval_controller.js
|
293
377
|
- app/assets/javascript/ahoy_captain/controllers/line_chart_controller.js
|
378
|
+
- app/assets/javascript/ahoy_captain/controllers/map_controller.js
|
294
379
|
- app/assets/javascript/ahoy_captain/controllers/predicate_select_controller.js
|
295
380
|
- app/assets/javascript/ahoy_captain/controllers/properties_controller.js
|
296
381
|
- app/assets/javascript/ahoy_captain/controllers/property_filter_controller.js
|
@@ -298,10 +383,12 @@ files:
|
|
298
383
|
- app/assets/javascript/ahoy_captain/controllers/tile_controller.js
|
299
384
|
- app/assets/javascript/ahoy_captain/controllers/toggle_controller.js
|
300
385
|
- app/assets/javascript/ahoy_captain/helpers/chart_utils.js
|
386
|
+
- app/assets/javascript/ahoy_captain/helpers/countries.js
|
301
387
|
- app/assets/javascript/ahoy_captain/helpers/number_formatters.js
|
302
388
|
- app/assets/manifest/ahoy_captain/manifest.js
|
303
389
|
- app/components/ahoy_captain/combobox_component.html.erb
|
304
390
|
- app/components/ahoy_captain/combobox_component.rb
|
391
|
+
- app/components/ahoy_captain/comparison_link_component.html.erb
|
305
392
|
- app/components/ahoy_captain/comparison_link_component.rb
|
306
393
|
- app/components/ahoy_captain/dropdown_button_component.html.erb
|
307
394
|
- app/components/ahoy_captain/dropdown_button_component.rb
|
@@ -317,6 +404,8 @@ files:
|
|
317
404
|
- app/components/ahoy_captain/filter/tag_component.rb
|
318
405
|
- app/components/ahoy_captain/filter/tag_container_component.html.erb
|
319
406
|
- app/components/ahoy_captain/filter/tag_container_component.rb
|
407
|
+
- app/components/ahoy_captain/previous_next_component.html.erb
|
408
|
+
- app/components/ahoy_captain/previous_next_component.rb
|
320
409
|
- app/components/ahoy_captain/stats/comparable_container_component.html.erb
|
321
410
|
- app/components/ahoy_captain/stats/comparable_container_component.rb
|
322
411
|
- app/components/ahoy_captain/stats/container_component.html.erb
|
@@ -343,8 +432,6 @@ files:
|
|
343
432
|
- app/components/ahoy_captain/tooltip_component.rb
|
344
433
|
- app/controllers/ahoy_captain/application_controller.rb
|
345
434
|
- app/controllers/ahoy_captain/campaigns_controller.rb
|
346
|
-
- app/controllers/ahoy_captain/cities_controller.rb
|
347
|
-
- app/controllers/ahoy_captain/countries_controller.rb
|
348
435
|
- app/controllers/ahoy_captain/devices_controller.rb
|
349
436
|
- app/controllers/ahoy_captain/entry_pages_controller.rb
|
350
437
|
- app/controllers/ahoy_captain/exit_pages_controller.rb
|
@@ -364,9 +451,12 @@ files:
|
|
364
451
|
- app/controllers/ahoy_captain/filters/utms_controller.rb
|
365
452
|
- app/controllers/ahoy_captain/funnels_controller.rb
|
366
453
|
- app/controllers/ahoy_captain/goals_controller.rb
|
454
|
+
- app/controllers/ahoy_captain/locations/cities_controller.rb
|
455
|
+
- app/controllers/ahoy_captain/locations/countries_controller.rb
|
456
|
+
- app/controllers/ahoy_captain/locations/maps_controller.rb
|
457
|
+
- app/controllers/ahoy_captain/locations/regions_controller.rb
|
367
458
|
- app/controllers/ahoy_captain/properties_controller.rb
|
368
459
|
- app/controllers/ahoy_captain/realtimes_controller.rb
|
369
|
-
- app/controllers/ahoy_captain/regions_controller.rb
|
370
460
|
- app/controllers/ahoy_captain/roots_controller.rb
|
371
461
|
- app/controllers/ahoy_captain/sources_controller.rb
|
372
462
|
- app/controllers/ahoy_captain/stats/base_controller.rb
|
@@ -428,10 +518,6 @@ files:
|
|
428
518
|
- app/queries/concerns/ahoy_captain/lazy_comparable_query.rb
|
429
519
|
- app/views/ahoy_captain/campaigns/index.html+details.erb
|
430
520
|
- app/views/ahoy_captain/campaigns/index.html.erb
|
431
|
-
- app/views/ahoy_captain/cities/index.html+details.erb
|
432
|
-
- app/views/ahoy_captain/cities/index.html.erb
|
433
|
-
- app/views/ahoy_captain/countries/index.html+details.erb
|
434
|
-
- app/views/ahoy_captain/countries/index.html.erb
|
435
521
|
- app/views/ahoy_captain/devices/_table.html.erb
|
436
522
|
- app/views/ahoy_captain/devices/index.html+details.erb
|
437
523
|
- app/views/ahoy_captain/devices/index.html.erb
|
@@ -443,12 +529,18 @@ files:
|
|
443
529
|
- app/views/ahoy_captain/funnels/show.html.erb
|
444
530
|
- app/views/ahoy_captain/goals/index.html.erb
|
445
531
|
- app/views/ahoy_captain/layouts/application.html.erb
|
532
|
+
- app/views/ahoy_captain/layouts/shared/_tile_loader.html.erb
|
533
|
+
- app/views/ahoy_captain/locations/cities/index.html+details.erb
|
534
|
+
- app/views/ahoy_captain/locations/cities/index.html.erb
|
535
|
+
- app/views/ahoy_captain/locations/countries/index.html+details.erb
|
536
|
+
- app/views/ahoy_captain/locations/countries/index.html.erb
|
537
|
+
- app/views/ahoy_captain/locations/maps/show.html.erb
|
538
|
+
- app/views/ahoy_captain/locations/regions/index.html+details.erb
|
539
|
+
- app/views/ahoy_captain/locations/regions/index.html.erb
|
446
540
|
- app/views/ahoy_captain/properties/_form.html.erb
|
447
541
|
- app/views/ahoy_captain/properties/index.html.erb
|
448
542
|
- app/views/ahoy_captain/properties/show.html.erb
|
449
543
|
- app/views/ahoy_captain/realtimes/show.html.erb
|
450
|
-
- app/views/ahoy_captain/regions/index.html+details.erb
|
451
|
-
- app/views/ahoy_captain/regions/index.html.erb
|
452
544
|
- app/views/ahoy_captain/roots/_filters.html.erb
|
453
545
|
- app/views/ahoy_captain/roots/show.html.erb
|
454
546
|
- app/views/ahoy_captain/sources/index.html+details.erb
|
@@ -1,30 +0,0 @@
|
|
1
|
-
import { Controller } from '@hotwired/stimulus';
|
2
|
-
|
3
|
-
export default class extends Controller {
|
4
|
-
static targets = ["link", "alt"]
|
5
|
-
static values = {
|
6
|
-
classes: { type: Array, default: ["text-primary", "font-semibold"] }
|
7
|
-
}
|
8
|
-
|
9
|
-
// sometimes the target is not the link itself but a child element, and we want to highlight something other than the
|
10
|
-
// link itself.
|
11
|
-
// this can be bettered
|
12
|
-
connect() {
|
13
|
-
this.handleLinkClick = (event) => {
|
14
|
-
let link = null;
|
15
|
-
if(event.target.tagName === "A") {
|
16
|
-
link = event.target;
|
17
|
-
} else {
|
18
|
-
link = (event.target.closest('a').querySelector('[data-active-links-target="link"]'))
|
19
|
-
}
|
20
|
-
this.linkTargets.forEach(link => this.classesValue.forEach(klass => link.classList.remove(klass)))
|
21
|
-
this.classesValue.forEach(klass => link.classList.add(klass))
|
22
|
-
}
|
23
|
-
this.linkTargets.forEach(link => {
|
24
|
-
link.addEventListener('click', this.handleLinkClick)
|
25
|
-
})
|
26
|
-
this.altTargets.forEach(target => {
|
27
|
-
target.addEventListener('click', this.handleLinkClick)
|
28
|
-
})
|
29
|
-
}
|
30
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module AhoyCaptain
|
2
|
-
class CitiesController < ApplicationController
|
3
|
-
include AhoyCaptain::Limitable
|
4
|
-
|
5
|
-
before_action do
|
6
|
-
if Widget.disabled?(:locations, :cities)
|
7
|
-
raise Widget::WidgetDisabled.new("Widget disabled", :geography)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def index
|
12
|
-
results = cached(:cities) do
|
13
|
-
CityQuery.call(params)
|
14
|
-
.limit(limit)
|
15
|
-
end
|
16
|
-
|
17
|
-
@cities = paginate(results).map { |city| CityDecorator.new(city, self) }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module AhoyCaptain
|
2
|
-
class CountriesController < ApplicationController
|
3
|
-
include Limitable
|
4
|
-
|
5
|
-
before_action do
|
6
|
-
if Widget.disabled?(:locations, :countries)
|
7
|
-
raise Widget::WidgetDisabled.new("Widget disabled", :geography)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def index
|
12
|
-
results = cached(:countries) do
|
13
|
-
CountryQuery.call(params)
|
14
|
-
.limit(limit)
|
15
|
-
end
|
16
|
-
|
17
|
-
@countries = paginate(results).map { |country| CountryDecorator.new(country, self) }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
module AhoyCaptain
|
2
|
-
class RegionsController < ApplicationController
|
3
|
-
include Limitable
|
4
|
-
|
5
|
-
before_action do
|
6
|
-
if Widget.disabled?(:locations, :regions)
|
7
|
-
raise Widget::WidgetDisabled.new("Widget disabled", :geography)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def index
|
12
|
-
results = cached(:regions) do
|
13
|
-
RegionQuery.call(params)
|
14
|
-
.limit(limit)
|
15
|
-
end
|
16
|
-
|
17
|
-
@regions = paginate(results).map { |region| RegionDecorator.new(region, self) }
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|