worlddb-admin 0.0.1 → 0.1.0
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.
- checksums.yaml +4 -4
- data/Manifest.txt +34 -0
- data/app/assets/javascripts/world_db_admin/application.js +15 -0
- data/app/assets/stylesheets/world_db_admin/application.css.scss +98 -0
- data/app/controllers/world_db_admin/cities_controller.rb +28 -0
- data/app/controllers/world_db_admin/codes_controller.rb +14 -0
- data/app/controllers/world_db_admin/continents_controller.rb +16 -0
- data/app/controllers/world_db_admin/countries_controller.rb +142 -0
- data/app/controllers/world_db_admin/langs_controller.rb +14 -0
- data/app/controllers/world_db_admin/pages_controller.rb +12 -0
- data/app/controllers/world_db_admin/regions_controller.rb +25 -0
- data/app/controllers/world_db_admin/tags_controller.rb +34 -0
- data/app/controllers/world_db_admin/world_db_admin_controller.rb +9 -0
- data/app/helpers/world_db_admin/application_helper.rb +82 -0
- data/app/helpers/world_db_admin/part_helper.rb +58 -0
- data/app/helpers/world_db_admin/routes_helper.rb +65 -0
- data/app/views/layouts/world_db_admin/world_db_admin.html.erb +36 -0
- data/app/views/world_db_admin/cities/index.html.erb +43 -0
- data/app/views/world_db_admin/codes/index.html.erb +105 -0
- data/app/views/world_db_admin/continents/index.html.erb +56 -0
- data/app/views/world_db_admin/countries/_countries.html.erb +39 -0
- data/app/views/world_db_admin/countries/index.html.erb +51 -0
- data/app/views/world_db_admin/countries/index_territories.html.erb +31 -0
- data/app/views/world_db_admin/countries/show.html.erb +116 -0
- data/app/views/world_db_admin/langs/index.html.erb +28 -0
- data/app/views/world_db_admin/pages/about.html.erb +65 -0
- data/app/views/world_db_admin/pages/index.html.erb +2 -0
- data/app/views/world_db_admin/regions/index.html.erb +54 -0
- data/app/views/world_db_admin/shared/_cities.html.erb +11 -0
- data/app/views/world_db_admin/shared/_countries.html.erb +23 -0
- data/app/views/world_db_admin/shared/_regions.html.erb +22 -0
- data/app/views/world_db_admin/shared/_tags.html.erb +11 -0
- data/app/views/world_db_admin/tags/index.html.erb +15 -0
- data/app/views/world_db_admin/tags/show.html.erb +63 -0
- data/app/views/world_db_admin/tags/template.txt.erb +6 -0
- data/config/routes.rb +40 -0
- data/lib/worlddb/admin/version.rb +1 -1
- metadata +35 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 69e92d7cfbff170d2cce8f477b9faec0c02bb5c4
|
4
|
+
data.tar.gz: d1ad4e6726485ba914d2ae6007d556cb93220a0c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 654901b57abaaa4a74dd8d1a12f8ac007e538f0839f0c808db380d488bf76e8c25276a06aa99c1643937ff7b63ba9f9bfb9df3a56daadc74a3a96b2bc030dc67
|
7
|
+
data.tar.gz: 04e68d31afe9d370a40bb8293f09104b5b3944d4c886bacf62462fb2fb6a31796a9f81d831bff478bfb94d5dd5948b655b3ff43c92de0fa7178f3ff5b46cf616
|
data/Manifest.txt
CHANGED
@@ -2,6 +2,40 @@ History.md
|
|
2
2
|
Manifest.txt
|
3
3
|
README.md
|
4
4
|
Rakefile
|
5
|
+
app/assets/javascripts/world_db_admin/application.js
|
6
|
+
app/assets/stylesheets/world_db_admin/application.css.scss
|
7
|
+
app/controllers/world_db_admin/cities_controller.rb
|
8
|
+
app/controllers/world_db_admin/codes_controller.rb
|
9
|
+
app/controllers/world_db_admin/continents_controller.rb
|
10
|
+
app/controllers/world_db_admin/countries_controller.rb
|
11
|
+
app/controllers/world_db_admin/langs_controller.rb
|
12
|
+
app/controllers/world_db_admin/pages_controller.rb
|
13
|
+
app/controllers/world_db_admin/regions_controller.rb
|
14
|
+
app/controllers/world_db_admin/tags_controller.rb
|
15
|
+
app/controllers/world_db_admin/world_db_admin_controller.rb
|
16
|
+
app/helpers/world_db_admin/application_helper.rb
|
17
|
+
app/helpers/world_db_admin/part_helper.rb
|
18
|
+
app/helpers/world_db_admin/routes_helper.rb
|
19
|
+
app/views/layouts/world_db_admin/world_db_admin.html.erb
|
20
|
+
app/views/world_db_admin/cities/index.html.erb
|
21
|
+
app/views/world_db_admin/codes/index.html.erb
|
22
|
+
app/views/world_db_admin/continents/index.html.erb
|
23
|
+
app/views/world_db_admin/countries/_countries.html.erb
|
24
|
+
app/views/world_db_admin/countries/index.html.erb
|
25
|
+
app/views/world_db_admin/countries/index_territories.html.erb
|
26
|
+
app/views/world_db_admin/countries/show.html.erb
|
27
|
+
app/views/world_db_admin/langs/index.html.erb
|
28
|
+
app/views/world_db_admin/pages/about.html.erb
|
29
|
+
app/views/world_db_admin/pages/index.html.erb
|
30
|
+
app/views/world_db_admin/regions/index.html.erb
|
31
|
+
app/views/world_db_admin/shared/_cities.html.erb
|
32
|
+
app/views/world_db_admin/shared/_countries.html.erb
|
33
|
+
app/views/world_db_admin/shared/_regions.html.erb
|
34
|
+
app/views/world_db_admin/shared/_tags.html.erb
|
35
|
+
app/views/world_db_admin/tags/index.html.erb
|
36
|
+
app/views/world_db_admin/tags/show.html.erb
|
37
|
+
app/views/world_db_admin/tags/template.txt.erb
|
38
|
+
config/routes.rb
|
5
39
|
lib/worlddb/admin.rb
|
6
40
|
lib/worlddb/admin/engine.rb
|
7
41
|
lib/worlddb/admin/version.rb
|
@@ -0,0 +1,15 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// the compiled file.
|
9
|
+
//
|
10
|
+
// WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT'S TO BE PROCESSED, ANY BLANK LINE SHOULD
|
11
|
+
// GO AFTER THE REQUIRES BELOW.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require_tree .
|
@@ -0,0 +1,98 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
// $base-font-size: 18px; // was 20px
|
4
|
+
$base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
5
|
+
|
6
|
+
|
7
|
+
$dark-gray: #333333;
|
8
|
+
$azure: #F0FFFF; // azure (see wikipedia web colors)
|
9
|
+
|
10
|
+
|
11
|
+
body
|
12
|
+
{
|
13
|
+
font-family: $base-font-family;
|
14
|
+
}
|
15
|
+
|
16
|
+
|
17
|
+
a {
|
18
|
+
color: black;
|
19
|
+
text-decoration: none;
|
20
|
+
|
21
|
+
&:hover {
|
22
|
+
color: black;
|
23
|
+
background-color: aqua;
|
24
|
+
text-decoration: underline;
|
25
|
+
}
|
26
|
+
|
27
|
+
&:visited { color: black; }
|
28
|
+
}
|
29
|
+
|
30
|
+
.city_10_000_000 { font-size: 24px; font-weight: bold; }
|
31
|
+
.city_1_000_000 { font-size: 20px; font-weight: bold; }
|
32
|
+
.city_500_000 { font-size: 16px; font-weight: bold; }
|
33
|
+
.city_100_000 { font-size: 14px; }
|
34
|
+
.city_10_000 { font-size: 12px; }
|
35
|
+
.city_nil { font-size: 14px; color: navy; }
|
36
|
+
|
37
|
+
.country_100_000_000 { font-size: 20px; font-weight: bold; }
|
38
|
+
.country_10_000_000 { font-size: 16px; font-weight: bold; }
|
39
|
+
.country_1_000_000 { font-size: 14px; }
|
40
|
+
.country_100_000 { font-size: 12px; }
|
41
|
+
.country_nil { font-size: 14px; color: navy; }
|
42
|
+
|
43
|
+
|
44
|
+
/***********
|
45
|
+
ne => not equal
|
46
|
+
x => missing
|
47
|
+
*****/
|
48
|
+
.code-ne,
|
49
|
+
.code-x {
|
50
|
+
color: navy;
|
51
|
+
border: 2px solid navy;
|
52
|
+
font-weight: bold;
|
53
|
+
}
|
54
|
+
|
55
|
+
.region-count,
|
56
|
+
.country-count,
|
57
|
+
.city-count,
|
58
|
+
.tag-count,
|
59
|
+
.tagging-count,
|
60
|
+
.tags,
|
61
|
+
.country-key,
|
62
|
+
.region-key,
|
63
|
+
.city-key,
|
64
|
+
.lang-key,
|
65
|
+
.lang-count {
|
66
|
+
color: $dark-gray;
|
67
|
+
font-size: 12px; // ~80%
|
68
|
+
}
|
69
|
+
|
70
|
+
table {
|
71
|
+
td.city-key,
|
72
|
+
td.country-key,
|
73
|
+
td.region-key {
|
74
|
+
color: $dark-gray;
|
75
|
+
font-size: 12px; // ~80%
|
76
|
+
* {
|
77
|
+
color: $dark-gray;
|
78
|
+
font-size: 12px; // ~80%
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
|
85
|
+
/////////////////////////
|
86
|
+
// version / powered_by
|
87
|
+
|
88
|
+
.version
|
89
|
+
{
|
90
|
+
text-align: center;
|
91
|
+
margin-top: 10px;
|
92
|
+
color: grey;
|
93
|
+
|
94
|
+
a, span {
|
95
|
+
font-size: 12px;
|
96
|
+
color: grey
|
97
|
+
}
|
98
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
class CitiesController < WorldDbAdminController
|
6
|
+
|
7
|
+
# GET /cities
|
8
|
+
def index
|
9
|
+
|
10
|
+
order = params[:order]
|
11
|
+
@cities = case order
|
12
|
+
when 'pop' then City.by_pop.all
|
13
|
+
when 'popm' then City.order( 'popm desc' ).all
|
14
|
+
when 'title' then City.by_title.all
|
15
|
+
else City.by_key.all
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
# GET /:key
|
21
|
+
def shortcut
|
22
|
+
## for now just redirect to cities page w/ anchor includes e.g cities/#newyork
|
23
|
+
redirect_to cities_path( :anchor => params[:key] )
|
24
|
+
end
|
25
|
+
|
26
|
+
end # class CitiesController
|
27
|
+
|
28
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
class ContinentsController < WorldDbAdminController
|
6
|
+
|
7
|
+
# GET /continents
|
8
|
+
def index
|
9
|
+
@continents = Continent.all
|
10
|
+
|
11
|
+
@order = params[:order] || 'title'
|
12
|
+
end
|
13
|
+
|
14
|
+
end # class ContinentsController
|
15
|
+
|
16
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,142 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
COUNTRY_FILTER_TAGS = [
|
6
|
+
'all',
|
7
|
+
'un',
|
8
|
+
'europe',
|
9
|
+
'asia',
|
10
|
+
'africa',
|
11
|
+
'america',
|
12
|
+
'north america',
|
13
|
+
'south america',
|
14
|
+
'central america',
|
15
|
+
'caribbean',
|
16
|
+
'oceania',
|
17
|
+
'south asia',
|
18
|
+
'southeast asia',
|
19
|
+
'central asia',
|
20
|
+
'east asia',
|
21
|
+
'middle east',
|
22
|
+
'western asia',
|
23
|
+
'northern africa',
|
24
|
+
'western africa',
|
25
|
+
'central africa',
|
26
|
+
'southern africa',
|
27
|
+
'northern europe',
|
28
|
+
'western europe',
|
29
|
+
'central europe',
|
30
|
+
'eastern europe',
|
31
|
+
'southern europe',
|
32
|
+
'southeastern europe',
|
33
|
+
'balkans',
|
34
|
+
'nordic',
|
35
|
+
'eu',
|
36
|
+
'schengen',
|
37
|
+
'euro',
|
38
|
+
'g8',
|
39
|
+
'g5',
|
40
|
+
'g20',
|
41
|
+
'fifa',
|
42
|
+
'uefa', # europe
|
43
|
+
'caf', # africa
|
44
|
+
'afc', # asia
|
45
|
+
'afc waff', # Middle East / West Asia
|
46
|
+
'ofc', # pacific
|
47
|
+
'concacaf', # north¢ral america n caribbean
|
48
|
+
'concacaf nafu', # North America
|
49
|
+
'concacaf uncaf', # Central America
|
50
|
+
'concacaf cfu', # Caribbean
|
51
|
+
'conmebol' # south america
|
52
|
+
|
53
|
+
|
54
|
+
# 'pop_100m_n_up',
|
55
|
+
# 'pop_10m_n_up',
|
56
|
+
# 'pop_1m_n_up',
|
57
|
+
# 'area_1_000_000_n_up',
|
58
|
+
# 'area_100_000_n_up',
|
59
|
+
# 'area_1_000_n_up'
|
60
|
+
]
|
61
|
+
|
62
|
+
class CountriesController < WorldDbAdminController
|
63
|
+
|
64
|
+
# GET /countries
|
65
|
+
def index
|
66
|
+
|
67
|
+
## for now store order and tag in session
|
68
|
+
## todo/fix: find a better way to store user order and filter settings
|
69
|
+
|
70
|
+
session[:order] = order = params[:order] || session[:order] || 'title'
|
71
|
+
session[:tag] = tag = params[:tag] || session[:tag] || 'all'
|
72
|
+
|
73
|
+
@countries = nil
|
74
|
+
|
75
|
+
if order == 'pop'
|
76
|
+
@countries = Country.by_pop
|
77
|
+
elsif order == 'area'
|
78
|
+
@countries = Country.by_area
|
79
|
+
elsif order == 'title'
|
80
|
+
@countries = Country.by_title
|
81
|
+
else
|
82
|
+
@countries = Country.by_title
|
83
|
+
end
|
84
|
+
|
85
|
+
=begin
|
86
|
+
if tag == 'all'
|
87
|
+
## do nothing; include all
|
88
|
+
else
|
89
|
+
## fix/todo: add with_tag() scope to Country!!!
|
90
|
+
country_ids = Tag.find_by_key!( tag ).country_ids
|
91
|
+
|
92
|
+
@countries = @countries.find( country_ids )
|
93
|
+
end
|
94
|
+
=end
|
95
|
+
@countries = @countries.where( c: true ).all
|
96
|
+
end
|
97
|
+
|
98
|
+
def index_territories
|
99
|
+
|
100
|
+
session[:order] = order = params[:order] || session[:order] || 'title'
|
101
|
+
session[:tag] = tag = params[:tag] || session[:tag] || 'all'
|
102
|
+
|
103
|
+
@countries = nil
|
104
|
+
|
105
|
+
if order == 'pop'
|
106
|
+
@countries = Country.by_pop
|
107
|
+
elsif order == 'area'
|
108
|
+
@countries = Country.by_area
|
109
|
+
elsif order == 'title'
|
110
|
+
@countries = Country.by_title
|
111
|
+
else
|
112
|
+
@countries = Country.by_title
|
113
|
+
end
|
114
|
+
|
115
|
+
=begin
|
116
|
+
if tag == 'all'
|
117
|
+
## do nothing; include all
|
118
|
+
else
|
119
|
+
## fix/todo: add with_tag() scope to Country!!!
|
120
|
+
country_ids = Tag.find_by_key!( tag ).country_ids
|
121
|
+
|
122
|
+
@countries = @countries.find( country_ids )
|
123
|
+
=end
|
124
|
+
@countries = @countries.where( d: true ).all
|
125
|
+
end
|
126
|
+
|
127
|
+
|
128
|
+
# GET /:key e.g /at or /us etc.
|
129
|
+
def shortcut
|
130
|
+
@country = Country.find_by_key!( params[:key] )
|
131
|
+
render :show
|
132
|
+
end
|
133
|
+
|
134
|
+
# GET /countries/:id e.g. /countries/1
|
135
|
+
def show
|
136
|
+
@country = Country.find( params[:id] )
|
137
|
+
end
|
138
|
+
|
139
|
+
end # class CountriesController
|
140
|
+
|
141
|
+
|
142
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
class RegionsController < WorldDbAdminController
|
6
|
+
|
7
|
+
# GET /regions
|
8
|
+
def index
|
9
|
+
@countries = Country.all
|
10
|
+
end
|
11
|
+
|
12
|
+
include RoutesHelper # need access to short_country_path for redirect
|
13
|
+
|
14
|
+
# GET /:country_key/:key e.g. /us/ny or /de/by
|
15
|
+
def shortcut
|
16
|
+
## for now just redirect to country page w/ anchor includes e.g country/#ny
|
17
|
+
country = Country.find_by_key( params[:country_key] )
|
18
|
+
redirect_to short_country_path( country, anchor: params[:key] )
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
end # class RegionsController
|
24
|
+
|
25
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
class TagsController < WorldDbAdminController
|
6
|
+
|
7
|
+
# GET /tags
|
8
|
+
def index
|
9
|
+
## fix: Tag.by_key must be key asc !! but is desc? why? fix it
|
10
|
+
@tags = Tag.order('key asc').all
|
11
|
+
end
|
12
|
+
|
13
|
+
# GET /tag/:key e.g. /tag/euro or /tag/north_america
|
14
|
+
def shortcut
|
15
|
+
@tag = Tag.find_by_slug!( params[:key] )
|
16
|
+
@order = params[:order] || 'title'
|
17
|
+
|
18
|
+
## magic parameter for dev -> generate yaml text template
|
19
|
+
if params[:yml].present? || params[:yaml].present?
|
20
|
+
render 'template.txt.erb', :layout => false, :content_type => 'text/plain'
|
21
|
+
return
|
22
|
+
end
|
23
|
+
|
24
|
+
render :show
|
25
|
+
end
|
26
|
+
|
27
|
+
# GET /tags/:id e.g. /tags/1
|
28
|
+
def show
|
29
|
+
@tag = Tag.find( params[:id] )
|
30
|
+
end
|
31
|
+
|
32
|
+
end # class TagsController
|
33
|
+
|
34
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,82 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
module ApplicationHelper
|
6
|
+
|
7
|
+
def powered_by
|
8
|
+
## todo/fix: use version from wettpool module
|
9
|
+
content_tag :div do
|
10
|
+
link_to( 'Questions? Comments?', 'http://groups.google.com/group/opensport' ) + " | " +
|
11
|
+
link_to( "world.db/#{WorldDb::VERSION}", 'https://github.com/geraldb/world.db' ) + ', ' +
|
12
|
+
link_to( 'world.db.admin/1', 'https://github.com/geraldb/world.db.admin' ) + ' - ' +
|
13
|
+
content_tag( :span, "Ruby/#{RUBY_VERSION} (#{RUBY_RELEASE_DATE}/#{RUBY_PLATFORM}) on") + ' ' +
|
14
|
+
content_tag( :span, "Rails/#{Rails.version} (#{Rails.env})" ) + " | " +
|
15
|
+
link_to( 'Icon Drawer Flags', 'http://www.icondrawer.com' )
|
16
|
+
## content_tag( :span, "#{request.headers['SERVER_SOFTWARE'] || request.headers['SERVER']}" )
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def image_tag_for_country( country, opts={} )
|
21
|
+
if opts[:size] == 'large' || opts[:size] == '64x64'
|
22
|
+
image_tag "flags/64x64/#{country.key}.png"
|
23
|
+
else
|
24
|
+
image_tag "flags/24x24/#{country.key}.png"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
def city_style( city )
|
31
|
+
# city_1_000_000 and up
|
32
|
+
# city_500_000 and up
|
33
|
+
# city_100_000 and up
|
34
|
+
# city_10_000 and up or less
|
35
|
+
# city_nil
|
36
|
+
|
37
|
+
pop = if city.popm.present? then city.popm
|
38
|
+
elsif city.pop.present? then city.pop
|
39
|
+
else nil
|
40
|
+
end
|
41
|
+
|
42
|
+
if pop.blank?
|
43
|
+
return 'city_nil'
|
44
|
+
elsif pop > 10000000
|
45
|
+
return 'city_10_000_000'
|
46
|
+
elsif pop > 1000000
|
47
|
+
return 'city_1_000_000'
|
48
|
+
elsif pop > 500000
|
49
|
+
return 'city_500_000'
|
50
|
+
elsif pop > 100000
|
51
|
+
return 'city_100_000'
|
52
|
+
else # assume < 100_000
|
53
|
+
return 'city_10_000'
|
54
|
+
end
|
55
|
+
|
56
|
+
end
|
57
|
+
|
58
|
+
def country_style( country )
|
59
|
+
# country_100_000_000 and up
|
60
|
+
# country_10_000_000 and up
|
61
|
+
# country_1_000_000 and up
|
62
|
+
# country_100_000 and up or less
|
63
|
+
# country_nil
|
64
|
+
|
65
|
+
if country.pop.blank?
|
66
|
+
return 'country_nil'
|
67
|
+
elsif country.pop > 100000000
|
68
|
+
return 'country_100_000_000'
|
69
|
+
elsif country.pop > 10000000
|
70
|
+
return 'country_10_000_000'
|
71
|
+
elsif country.pop > 1000000
|
72
|
+
return 'country_1_000_000'
|
73
|
+
else # assume < 100_000
|
74
|
+
return 'country_100_000'
|
75
|
+
end
|
76
|
+
|
77
|
+
end
|
78
|
+
|
79
|
+
|
80
|
+
end # module ApplicationHelper
|
81
|
+
|
82
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,58 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
module PartHelper
|
6
|
+
|
7
|
+
###################################
|
8
|
+
# helper for shared partials
|
9
|
+
#
|
10
|
+
# by convention all start w/ render_
|
11
|
+
|
12
|
+
def render_tags( tags )
|
13
|
+
render :partial => 'world_db_admin/shared/tags', :locals => { :tags => tags }
|
14
|
+
end
|
15
|
+
|
16
|
+
def render_cities( cities )
|
17
|
+
render :partial => 'world_db_admin/shared/cities', :locals => { :cities => cities }
|
18
|
+
end
|
19
|
+
|
20
|
+
|
21
|
+
def render_countries( countries, opts={} )
|
22
|
+
|
23
|
+
if opts[:order].present?
|
24
|
+
if opts[:order] == 'key'
|
25
|
+
countries = countries.order( 'key ASC' )
|
26
|
+
elsif opts[:order] == 'title'
|
27
|
+
countries = countries.order( 'title ASC' )
|
28
|
+
elsif opts[:order] == 'code'
|
29
|
+
countries = countries.order( 'code ASC' )
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
render :partial => 'world_db_admin/shared/countries',
|
34
|
+
:locals => { :countries => countries,
|
35
|
+
:count => opts[:count] }
|
36
|
+
end
|
37
|
+
|
38
|
+
def render_regions( regions, opts={} )
|
39
|
+
|
40
|
+
if opts[:order].present?
|
41
|
+
if opts[:order] == 'key'
|
42
|
+
regions = regions.order( 'key ASC' )
|
43
|
+
elsif opts[:order] == 'title'
|
44
|
+
regions = regions.order( 'title ASC' )
|
45
|
+
elsif opts[:order] == 'code'
|
46
|
+
regions = regions.order( 'code ASC' )
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
render :partial => 'world_db_admin/shared/regions',
|
51
|
+
:locals => { :regions => regions,
|
52
|
+
:count => opts[:count] }
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
end # module PartHelper
|
57
|
+
|
58
|
+
end # module WorldDbAdmin
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module WorldDbAdmin
|
4
|
+
|
5
|
+
module RoutesHelper
|
6
|
+
|
7
|
+
################################
|
8
|
+
## routes for export / download (dl)
|
9
|
+
|
10
|
+
def csv_countries_path
|
11
|
+
# dl_countries_path( format: 'csv' )
|
12
|
+
'/api/v1/countries.csv'
|
13
|
+
end
|
14
|
+
|
15
|
+
def table_countries_path
|
16
|
+
# dl_countries_path( format: 'html' )
|
17
|
+
'/api/v1/countries.html'
|
18
|
+
end
|
19
|
+
|
20
|
+
def csv_cities_path
|
21
|
+
# dl_cities_path( format: 'csv' )
|
22
|
+
'/api/v1/cities.csv'
|
23
|
+
end
|
24
|
+
|
25
|
+
def table_cities_path
|
26
|
+
# dl_cities_path( format: 'html' )
|
27
|
+
'/api/v1/cities.html'
|
28
|
+
end
|
29
|
+
|
30
|
+
def csv_countries_by_tag_path( tag )
|
31
|
+
## NB: tag needs slug NOT key (key may contain spaces)
|
32
|
+
## dl_countries_by_tag_worker_path( tag.slug, format: 'csv')
|
33
|
+
"/api/v1/tag/#{tag.slug}.csv"
|
34
|
+
end
|
35
|
+
|
36
|
+
def table_countries_by_tag_path( tag )
|
37
|
+
## NB: tag needs slug NOT key (key may contain spaces)
|
38
|
+
## dl_countries_by_tag_worker_path( tag.slug, format: 'html')
|
39
|
+
"/api/v1/tag/#{tag.slug}.html"
|
40
|
+
end
|
41
|
+
|
42
|
+
|
43
|
+
##############################
|
44
|
+
## routes for shortcuts
|
45
|
+
|
46
|
+
def short_country_path( country, opts={} )
|
47
|
+
short_country_worker_path( country.key, opts )
|
48
|
+
end
|
49
|
+
|
50
|
+
def short_region_path( region )
|
51
|
+
short_region_worker_path( region.country.key, region.key )
|
52
|
+
end
|
53
|
+
|
54
|
+
def short_city_path( city )
|
55
|
+
short_city_worker_path( city.key )
|
56
|
+
end
|
57
|
+
|
58
|
+
def short_tag_path( tag, opts={} )
|
59
|
+
## NB: tag needs slug NOT key (key may contain spaces)
|
60
|
+
short_tag_worker_path( tag.slug, opts )
|
61
|
+
end
|
62
|
+
|
63
|
+
end # module RoutesHelper
|
64
|
+
|
65
|
+
end # module WorldDbAdmin
|