pattana 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/app/controllers/pattana/cities_controller.rb +66 -2
  4. data/app/controllers/pattana/countries_controller.rb +79 -1
  5. data/app/controllers/pattana/regions_controller.rb +76 -2
  6. data/app/models/city.rb +21 -2
  7. data/app/models/country.rb +13 -3
  8. data/app/models/region.rb +13 -3
  9. data/app/views/pattana/cities/_form.html.erb +33 -0
  10. data/app/views/pattana/cities/_index.html.erb +18 -10
  11. data/app/views/pattana/cities/_row.html.erb +21 -44
  12. data/app/views/pattana/cities/_show.html.erb +27 -13
  13. data/app/views/pattana/countries/_form.html.erb +49 -0
  14. data/app/views/pattana/countries/_index.html.erb +24 -14
  15. data/app/views/pattana/countries/_row.html.erb +36 -55
  16. data/app/views/pattana/countries/_show.html.erb +97 -5
  17. data/app/views/pattana/countries/cities.js.erb +11 -0
  18. data/app/views/pattana/country_cities/_index.html.erb +44 -0
  19. data/app/views/pattana/country_cities/_row.html.erb +17 -0
  20. data/app/views/pattana/country_regions/_index.html.erb +3 -1
  21. data/app/views/pattana/country_regions/_row.html.erb +6 -8
  22. data/app/views/pattana/region_cities/_index.html.erb +42 -0
  23. data/app/views/pattana/region_cities/_row.html.erb +19 -0
  24. data/app/views/pattana/regions/_form.html.erb +31 -0
  25. data/app/views/pattana/regions/_index.html.erb +23 -12
  26. data/app/views/pattana/regions/_row.html.erb +27 -44
  27. data/app/views/pattana/regions/_show.html.erb +102 -19
  28. data/app/views/pattana/regions/cities.js.erb +11 -0
  29. data/config/locales/pattana/general.ar.yml +40 -0
  30. data/config/locales/pattana/general.en.yml +40 -0
  31. data/config/routes.rb +23 -2
  32. data/lib/pattana/factories.rb +1 -1
  33. data/lib/pattana/version.rb +1 -1
  34. data/spec/dummy/spec/factories/city.rb +1 -0
  35. data/spec/dummy/spec/factories/country.rb +1 -0
  36. data/spec/dummy/spec/factories/region.rb +1 -0
  37. metadata +15 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 428e36ae17b95c74125c6ecb1790a310679ab872
4
- data.tar.gz: 429218025bd8c3d5954f52dc03f81156bb6da829
3
+ metadata.gz: 759605f6662a7551093ef0a53623c7e6c4dd58ea
4
+ data.tar.gz: 57236bd2235c8279a2cbb13a13dd73fa7c3dc553
5
5
  SHA512:
6
- metadata.gz: fd8d09d949f1016541ba0e9a8f55c0aac309e303eb0618ca47196ba8d5fefe31e3d4c0e50a97222ddd20fb021e83ed2fbd5c0fe5a2161a421d09978e1226c20f
7
- data.tar.gz: 5c8b51045f779b3265ac86f3233ffda2ec5f5ebedcf7d857d62d0ab8fc610394e93224ffb0ecfd02ef37882e013e92df8c551299d5f974c0ad75949c09639cc2
6
+ metadata.gz: 0527e845479cd559de18d78baf7045f75f48ef76a5d9810337d9d4f9ca4fe6553df5635916dee5930a98a95e6a288c88ebd89af555a2a9945b6840950d79290d
7
+ data.tar.gz: 55fc7ceee1a7196084326f29ec11b93381ae8456a3ff6bbb631a43c576ffaaaefd368722212859bca4b74abf46dd74c949961129a30f81c0951334f89432506e
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ RDoc::Task.new(:rdoc) do |rdoc|
14
14
  rdoc.rdoc_files.include('lib/**/*.rb')
15
15
  end
16
16
 
17
- APP_RAKEFILE = File.expand_path("../test/dummy/Rakefile", __FILE__)
17
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
18
18
  load 'rails/tasks/engine.rake'
19
19
 
20
20
 
@@ -1,10 +1,74 @@
1
1
  module Pattana
2
2
  class CitiesController < ResourceController
3
3
 
4
+ def show_in_api
5
+ @city = @r_object = City.find(params[:id])
6
+ if @city
7
+ @city.show_in_api = true
8
+ if @city.valid?
9
+ @city.save
10
+ set_notification(true, I18n.t('cities.show_in_api.heading'), I18n.t('cities.show_in_api.message'))
11
+ else
12
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @city.errors.full_messages.join("<br>"))
13
+ end
14
+ else
15
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
16
+ end
17
+ render_row
18
+ end
19
+
20
+ def hide_in_api
21
+ @city = @r_object = City.find(params[:id])
22
+ if @city
23
+ @city.show_in_api = false
24
+ if @city.valid?
25
+ @city.save
26
+ set_notification(true, I18n.t('cities.hide_in_api.heading'), I18n.t('cities.hide_in_api.message'))
27
+ else
28
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @city.errors.full_messages.join("<br>"))
29
+ end
30
+ else
31
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
32
+ end
33
+ render_row
34
+ end
35
+
36
+ def mark_as_operational
37
+ @city = @r_object = City.find(params[:id])
38
+ if @city
39
+ @city.operational = true
40
+ if @city.valid?
41
+ @city.save
42
+ set_notification(true, I18n.t('cities.marked_as_operational.heading'), I18n.t('cities.marked_as_operational.message'))
43
+ else
44
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @city.errors.full_messages.join("<br>"))
45
+ end
46
+ else
47
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
48
+ end
49
+ render_row
50
+ end
51
+
52
+ def remove_operational
53
+ @city = @r_object = City.find(params[:id])
54
+ if @city
55
+ @city.operational = false
56
+ if @city.valid?
57
+ @city.save
58
+ set_notification(true, I18n.t('cities.removed_operational.heading'), I18n.t('cities.removed_operational.message'))
59
+ else
60
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @city.errors.full_messages.join("<br>"))
61
+ end
62
+ else
63
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
64
+ end
65
+ render_row
66
+ end
67
+
4
68
  private
5
69
 
6
70
  def get_collections
7
- @relation = City.where("")
71
+ @relation = City.includes(:country, :region).where("")
8
72
 
9
73
  parse_filters
10
74
  apply_filters
@@ -57,7 +121,7 @@ module Pattana
57
121
  end
58
122
 
59
123
  def permitted_params
60
- params.require(:city).permit(:name)
124
+ params.require(:city).permit(:name, :alternative_names, :iso_code, :population, :latitude, :longitude, :country_id, :region_id)
61
125
  end
62
126
 
63
127
  def set_navs
@@ -11,6 +11,80 @@ module Pattana
11
11
  @regions = @relation.page(@current_page).per(@per_page)
12
12
  end
13
13
 
14
+ def cities
15
+ @country = Country.find_by_id(params[:id])
16
+ @relation = @country.cities.limit(50)
17
+
18
+ parse_filters
19
+ apply_filters
20
+
21
+ @cities = @relation.page(@current_page).per(@per_page)
22
+ end
23
+
24
+ def show_in_api
25
+ @country = @r_object = Country.find(params[:id])
26
+ if @country
27
+ @country.show_in_api = true
28
+ if @country.valid?
29
+ @country.save
30
+ set_notification(true, I18n.t('countries.show_in_api.heading'), I18n.t('countries.show_in_api.message'))
31
+ else
32
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @country.errors.full_messages.join("<br>"))
33
+ end
34
+ else
35
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
36
+ end
37
+ render_row
38
+ end
39
+
40
+ def hide_in_api
41
+ @country = @r_object = Country.find(params[:id])
42
+ if @country
43
+ @country.show_in_api = false
44
+ if @country.valid?
45
+ @country.save
46
+ set_notification(true, I18n.t('countries.hide_in_api.heading'), I18n.t('countries.hide_in_api.message'))
47
+ else
48
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @country.errors.full_messages.join("<br>"))
49
+ end
50
+ else
51
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
52
+ end
53
+ render_row
54
+ end
55
+
56
+ def mark_as_operational
57
+ @country = @r_object = Country.find(params[:id])
58
+ if @country
59
+ @country.operational = true
60
+ if @country.valid?
61
+ @country.save
62
+ set_notification(true, I18n.t('countries.marked_as_operational.heading'), I18n.t('countries.marked_as_operational.message'))
63
+ else
64
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @country.errors.full_messages.join("<br>"))
65
+ end
66
+ else
67
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
68
+ end
69
+ render_row
70
+ end
71
+
72
+ def remove_operational
73
+ @country = @r_object = Country.find(params[:id])
74
+ if @country
75
+ @country.operational = false
76
+ if @country.valid?
77
+ @country.save
78
+ set_notification(true, I18n.t('countries.removed_operational.heading'), I18n.t('countries.removed_operational.message'))
79
+ else
80
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @country.errors.full_messages.join("<br>"))
81
+ end
82
+ else
83
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
84
+ end
85
+ render_row
86
+ end
87
+
14
88
  private
15
89
 
16
90
  def get_collections
@@ -65,7 +139,11 @@ module Pattana
65
139
  end
66
140
 
67
141
  def permitted_params
68
- params.require(:country).permit(:name)
142
+ params.require(:country).permit(:name, :official_name, :iso_name,
143
+ :fips, :iso_alpha_2, :iso_alpha_3,
144
+ :itu_code, :dialing_prefix, :tld,
145
+ :latitude, :longitude, :capital,
146
+ :priority, :languages)
69
147
  end
70
148
 
71
149
  def set_navs
@@ -1,10 +1,84 @@
1
1
  module Pattana
2
2
  class RegionsController < ResourceController
3
3
 
4
+ def cities
5
+ @region = Region.find_by_id(params[:id])
6
+ @relation = @region.cities.limit(50)
7
+
8
+ parse_filters
9
+ apply_filters
10
+
11
+ @cities = @relation.page(@current_page).per(@per_page)
12
+ end
13
+
14
+ def show_in_api
15
+ @region = @r_object = Region.find(params[:id])
16
+ if @region
17
+ @region.show_in_api = true
18
+ if @region.valid?
19
+ @region.save
20
+ set_notification(true, I18n.t('regions.show_in_api.heading'), I18n.t('regions.show_in_api.message'))
21
+ else
22
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @region.errors.full_messages.join("<br>"))
23
+ end
24
+ else
25
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
26
+ end
27
+ render_row
28
+ end
29
+
30
+ def hide_in_api
31
+ @region = @r_object = Region.find(params[:id])
32
+ if @region
33
+ @region.show_in_api = false
34
+ if @region.valid?
35
+ @region.save
36
+ set_notification(true, I18n.t('regions.hide_in_api.heading'), I18n.t('regions.hide_in_api.message'))
37
+ else
38
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @region.errors.full_messages.join("<br>"))
39
+ end
40
+ else
41
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
42
+ end
43
+ render_row
44
+ end
45
+
46
+ def mark_as_operational
47
+ @region = @r_object = Region.find(params[:id])
48
+ if @region
49
+ @region.operational = true
50
+ if @region.valid?
51
+ @region.save
52
+ set_notification(true, I18n.t('regions.marked_as_operational.heading'), I18n.t('regions.marked_as_operational.message'))
53
+ else
54
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @region.errors.full_messages.join("<br>"))
55
+ end
56
+ else
57
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
58
+ end
59
+ render_row
60
+ end
61
+
62
+ def remove_operational
63
+ @region = @r_object = Region.find(params[:id])
64
+ if @region
65
+ @region.operational = false
66
+ if @region.valid?
67
+ @region.save
68
+ set_notification(true, I18n.t('regions.removed_operational.heading'), I18n.t('regions.removed_operational.message'))
69
+ else
70
+ set_notification(false, I18n.t('status.error'), I18n.translate("error"), @region.errors.full_messages.join("<br>"))
71
+ end
72
+ else
73
+ set_notification(false, I18n.t('status.error'), I18n.t('status.error', item: default_item_name.titleize))
74
+ end
75
+ render_row
76
+ end
77
+
4
78
  private
5
79
 
6
80
  def get_collections
7
- @relation = Region.where("")
81
+ @relation = Region.includes(:country).where("")
8
82
 
9
83
  parse_filters
10
84
  apply_filters
@@ -55,7 +129,7 @@ module Pattana
55
129
  end
56
130
 
57
131
  def permitted_params
58
- params.require(:region).permit(:name)
132
+ params.require(:region).permit(:name, :iso_code, :latitude, :longitude, :country_id)
59
133
  end
60
134
 
61
135
  def set_navs
data/app/models/city.rb CHANGED
@@ -10,6 +10,9 @@ class City < Pattana::ApplicationRecord
10
10
  # Validations
11
11
  validates :name, presence: true, length: {minimum: 3, maximum: 128}
12
12
 
13
+ # Callbacks
14
+ before_validation :set_country, on: :create
15
+
13
16
  # ------------------
14
17
  # Class Methods
15
18
  # ------------------
@@ -124,15 +127,23 @@ class City < Pattana::ApplicationRecord
124
127
  # Instance Methods
125
128
  # ------------------
126
129
 
130
+ # Callback Methods
131
+ # ------------------
132
+
133
+ def set_country
134
+ self.country = self.region.country if self.region && self.region.country
135
+ end
136
+
127
137
  # Permission Methods
128
138
  # ------------------
129
139
 
130
140
  def can_be_edited?
131
- false
141
+ true
132
142
  end
133
143
 
134
144
  def can_be_deleted?
135
- false
145
+ return false if operational?
146
+ true
136
147
  end
137
148
 
138
149
  # Other Methods
@@ -153,5 +164,13 @@ class City < Pattana::ApplicationRecord
153
164
  def display_show_in_api
154
165
  self.show_in_api ? "Yes" : "No"
155
166
  end
167
+
168
+ # * Return Yes or No
169
+ # == Examples
170
+ # >>> city.display_operational
171
+ # => "Yes"
172
+ def display_operational
173
+ self.operational ? "Yes" : "No"
174
+ end
156
175
 
157
176
  end
@@ -99,11 +99,13 @@ class Country < Pattana::ApplicationRecord
99
99
  # ------------------
100
100
 
101
101
  def can_be_edited?
102
- false
102
+ true
103
103
  end
104
104
 
105
105
  def can_be_deleted?
106
- false
106
+ return false if self.regions.any? || self.cities.any?
107
+ return false if operational?
108
+ true
107
109
  end
108
110
 
109
111
  # Other Methods
@@ -120,9 +122,17 @@ class Country < Pattana::ApplicationRecord
120
122
  # * Return Yes or No
121
123
  # == Examples
122
124
  # >>> country.display_show_in_api
123
- # => "India"
125
+ # => "No"
124
126
  def display_show_in_api
125
127
  self.show_in_api ? "Yes" : "No"
126
128
  end
129
+
130
+ # * Return Yes or No
131
+ # == Examples
132
+ # >>> country.display_operational
133
+ # => "Yes"
134
+ def display_operational
135
+ self.operational ? "Yes" : "No"
136
+ end
127
137
 
128
138
  end
data/app/models/region.rb CHANGED
@@ -86,11 +86,13 @@ class Region < Pattana::ApplicationRecord
86
86
  # ------------------
87
87
 
88
88
  def can_be_edited?
89
- false
89
+ true
90
90
  end
91
91
 
92
92
  def can_be_deleted?
93
- false
93
+ return false if self.cities.any?
94
+ return false if operational?
95
+ true
94
96
  end
95
97
 
96
98
  # Other Methods
@@ -107,9 +109,17 @@ class Region < Pattana::ApplicationRecord
107
109
  # * Return Yes or No
108
110
  # == Examples
109
111
  # >>> region.display_show_in_api
110
- # => "India"
112
+ # => "No"
111
113
  def display_show_in_api
112
114
  self.show_in_api ? "Yes" : "No"
113
115
  end
116
+
117
+ # * Return Yes or No
118
+ # == Examples
119
+ # >>> region.display_operational
120
+ # => "Yes"
121
+ def display_operational
122
+ self.operational ? "Yes" : "No"
123
+ end
114
124
 
115
125
  end
@@ -0,0 +1,33 @@
1
+ <%= form_for(@city, :html => {:id=>"form_city", :class=>"mb-0 form-horizontal", :role => "form", :method => (@city.new_record? ? :post : :put), :remote=>true}) do |f| %>
2
+
3
+ <div id="city_form_error">
4
+ <%= @city.errors[:base].to_sentence %>
5
+ </div>
6
+
7
+ <div class="row">
8
+ <div class="col-md-12 col-sm-12">
9
+ <div class="form-inputs mb-30 mt-30">
10
+
11
+ <%= theme_form_field(@city, :name) %>
12
+ <%= theme_form_field(@city, :alternative_names) %>
13
+
14
+ <%= theme_form_field(@city, :iso_code, required: false) %>
15
+ <%= theme_form_field(@city, :population, required: false) %>
16
+
17
+ <%= theme_form_field(@city, :latitude, required: false) %>
18
+ <%= theme_form_field(@city, :longitude, required: false) %>
19
+
20
+ </div>
21
+ </div>
22
+ <div>
23
+
24
+ <%= submit_tag("Save", :class=>"btn btn-primary pull-right ml-10") %>
25
+
26
+ <%= link_to raw("<i class='fa fa-close mr-5'></i><span>Cancel</span>"), "#", onclick: "closeLargeModal();", class: "pull-right ml-10 btn btn-white" %>
27
+
28
+ </div>
29
+ <%= clear_tag(10) %>
30
+ </div>
31
+
32
+ <% end %>
33
+
@@ -2,22 +2,20 @@
2
2
  <table class="table table-hover members-table middle-align">
3
3
  <thead>
4
4
  <tr>
5
- <th style="text-align:center;width:5%;">#</th>
5
+ <th style="text-align:center;width:15%;">#</th>
6
6
  <th style="text-align:left;width:30%;">Name</th>
7
7
  <th style="text-align:center;width:15%;">Region</th>
8
8
  <th style="text-align:center;width:15%;">Country</th>
9
9
  <th style="text-align:center;width:10%;">Priority</th>
10
10
  <th style="text-align:center;width:15%;">Show in API</th>
11
- <th style="text-align:center;width:10%;">Actions</th>
11
+ <th style="text-align:center;width:10%;" colspan="2">Actions</th>
12
12
  </tr>
13
13
  </thead>
14
14
  <tbody>
15
15
  <% @cities.each_with_index do |city, i| %>
16
16
 
17
- <%# edit_link = edit_city_path(id: city.id) %>
18
- <%# delete_link = city_path(id: city.id) %>
19
- <% edit_link = "#" %>
20
- <% delete_link = "#" %>
17
+ <% edit_link = edit_city_path(id: city.id) %>
18
+ <% delete_link = city_path(id: city.id) %>
21
19
 
22
20
  <tr id="tr_city_<%= city.id %>">
23
21
 
@@ -29,14 +27,24 @@
29
27
  <td class="text-align-center"><%= city.priority %></td>
30
28
  <td class="text-align-center"><%= city.display_show_in_api %></td>
31
29
 
32
- <td class="action-links" style="width:10%">
30
+ <td class="action-links text-align-center" style="width:10%">
31
+ <% if city.show_in_api? %>
32
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Hide in API"), hide_in_api_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "delete" %>
33
+ <% else %>
34
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Show in API"), show_in_api_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "edit" %>
35
+ <% end %>
33
36
 
37
+ <% if city.operational? %>
38
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Remove Operational"), remove_operational_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "delete" %>
39
+ <% else %>
40
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Mark as Operational"), mark_as_operational_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "edit" %>
41
+ <% end %>
42
+ </td>
43
+
44
+ <td class="action-links text-align-center" style="width:10%">
34
45
  <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit City"), edit_link, :remote=>true, class: "edit" %>
35
46
 
36
47
  <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
37
-
38
- </td>
39
-
40
48
  </tr>
41
49
  <% end %>
42
50
  </tbody>
@@ -1,55 +1,32 @@
1
- <% edit_link = edit_admin_city_path(id: city.id) %>
2
- <% delete_link = admin_city_path(id: city.id) %>
1
+ <% edit_link = edit_city_path(id: city.id) %>
2
+ <% delete_link = city_path(id: city.id) %>
3
3
 
4
4
  <tr id="tr_city_<%= city.id %>">
5
-
6
- <td class="city-image">
7
- <%= link_to(admin_city_path(city), remote: true) do %>
8
- <%= display_image(city, "city_image.image.small.url", width: "32", height: "auto", class: "img-rectangle", alt: city.display_name) %>
9
- <% end %>
10
- </td>
11
-
12
- <td class="city-name"><%= link_to city.name, admin_city_path(city), remote: true %></td>
13
-
14
- <td>
15
- <% if city.unpublished? %>
16
- <span class="ml-5 mt-5 label label-default">Un-Published</span>
17
- <% elsif city.published? %>
18
- <span class="ml-5 mt-5 label label-success">Published</span>
19
- <% elsif city.disabled? %>
20
- <span class="ml-5 mt-5 label label-danger">Disabled</span>
5
+
6
+ <td class="text-align-center"><%= city.id %></td>
7
+ <td class="text-align-left"><%= link_to city.name, pattana.city_path(city), remote: true %></td>
8
+
9
+ <td class="text-align-center"><%= city.region.name if city.region %></td>
10
+ <td class="text-align-center"><%= city.country.name if city.country %></td>
11
+ <td class="text-align-center"><%= city.priority %></td>
12
+ <td class="text-align-center"><%= city.display_show_in_api %></td>
13
+
14
+ <td class="action-links text-align-center" style="width:10%">
15
+ <% if city.show_in_api? %>
16
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Hide in API"), hide_in_api_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "delete" %>
17
+ <% else %>
18
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Show in API"), show_in_api_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "edit" %>
21
19
  <% end %>
22
- </td>
23
20
 
24
- <td class="action-links" style="width:10%">
25
-
26
- <% case city.status %>
27
- <% when "published" %>
28
- <!-- Un-Publish -->
29
- <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Un-Publish"), update_status_admin_city_path(:id =>city.id, :status =>'unpublished'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"city_status" %>
30
-
31
- <!-- Disable -->
32
- <%= link_to raw("<i class=\"fa fa-edit mr-5\"></i> Disable"), update_status_admin_city_path(:id =>city.id, :status =>'disabled'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"city_status" %>
33
- <% when "unpublished" %>
34
- <!-- Approve -->
35
- <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Publish"), update_status_admin_city_path(:id =>city.id, :status =>'published'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"city_status" %>
36
- <!-- Disable -->
37
- <%= link_to raw("<i class=\"fa fa-edit mr-5\"></i> Disable"), update_status_admin_city_path(:id =>city.id, :status =>'disabled'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"city_status" %>
38
- <% when "disabled" %>
39
- <!-- Un-Publish -->
40
- <%= link_to raw("<i class=\"fa fa-circle mr-5\"></i> Un-Publish"), update_status_admin_city_path(:id =>city.id, :status =>'unpublished'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1", :class=>"city_status" %>
41
- <!-- Approve -->
42
- <%= link_to raw("<i class=\"fa fa-circle-o mr-5\"></i> Publish"), update_status_admin_city_path(:id =>city.id, :status =>'published'), :method =>'PUT', :remote=>true, role: "menuitem", tabindex: "-1",:class=>"city_status" %>
21
+ <% if city.operational? %>
22
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Remove Operational"), remove_operational_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "delete" %>
23
+ <% else %>
24
+ <%= link_to raw("<i class=\"fa fa-square mr-5\"></i> Mark as Operational"), mark_as_operational_city_path(:id =>city.id), :remote=>true, role: "menuitem", tabindex: "-1", style: "text-align:left;", class: "edit" %>
43
25
  <% end %>
44
-
45
26
  </td>
46
27
 
47
- <td class="action-links" style="width:10%">
48
-
28
+ <td class="action-links text-align-center" style="width:10%">
49
29
  <%= link_to raw("<i class=\"linecons-pencil\"></i> Edit City"), edit_link, :remote=>true, class: "edit" %>
50
30
 
51
31
  <%= link_to raw("<i class=\"linecons-trash\"></i> Delete"), delete_link, method: :delete, role: "menuitem", tabindex: "-1", data: { confirm: 'Are you sure?' }, :remote=>true, class: "delete" %>
52
-
53
- </td>
54
-
55
32
  </tr>
@@ -9,6 +9,18 @@
9
9
  <%= theme_panel_heading(@city.name) %>
10
10
 
11
11
  <%= theme_panel_sub_heading(@city.country.name, "#") if @city.country %><br>
12
+
13
+ <% if @city.show_in_api? %>
14
+ <div class="label label-success">Show In API</div>
15
+ <% else %>
16
+ <div class="label label-danger">Hide In API</div>
17
+ <% end %>
18
+
19
+ <% if @city.operational? %>
20
+ <div class="label label-success">Operational</div>
21
+ <% else %>
22
+ <div class="label label-danger">Non Operational</div>
23
+ <% end %>
12
24
 
13
25
  <%= clear_tag(10) %>
14
26
 
@@ -26,13 +38,6 @@
26
38
  <span class="hidden-xs">City Details</span>
27
39
  </a>
28
40
  </li>
29
-
30
- <li class="">
31
- <a href="#technical_details" data-toggle="tab" aria-expanded="false">
32
- <span class="visible-xs"><i class="fa-database"></i></span>
33
- <span class="hidden-xs">Technical Details</span>
34
- </a>
35
- </li>
36
41
  </ul>
37
42
 
38
43
  <div class="tab-content">
@@ -49,10 +54,22 @@
49
54
  <th>ID</th><td><%= @city.id %></td>
50
55
  <th>Name</th><td><%= @city.name %></td>
51
56
  </tr>
57
+
52
58
  <tr>
53
- <th>Country</th><td><%= @city.country.name if @city.country %></td>
54
- <th></th><td></td>
59
+ <th>Region</th><td><%= @city.region.name if @city.region %> (<%= @city.region.try(:id) %>)</td>
60
+ <th>Country</th><td><%= @city.country.name if @city.country %> (<%= @city.country.try(:id) %>)</td>
55
61
  </tr>
62
+
63
+ <tr>
64
+ <th>Latitude</th><td><%= @city.latitude %></td>
65
+ <th>Longitude</th><td><%= @city.longitude %></td>
66
+ </tr>
67
+
68
+ <tr>
69
+ <th>Created At</th><td><%= @city.created_at.strftime("%m/%d/%Y - %H:%M:%S") if @city.created_at %></td>
70
+ <th>Updated At</th><td><%= @city.updated_at.strftime("%m/%d/%Y - %H:%M:%S") if @city.updated_at %></td>
71
+ </tr>
72
+
56
73
  </tbody>
57
74
  </table>
58
75
  </div>
@@ -72,10 +89,7 @@
72
89
  <th></th><td></td>
73
90
  </tr>
74
91
 
75
- <tr>
76
- <th>Created At</th><td><%= @city.created_at.strftime("%m/%d/%Y - %H:%M:%S") if @city.created_at %></td>
77
- <th>Updated At</th><td><%= @city.updated_at.strftime("%m/%d/%Y - %H:%M:%S") if @city.updated_at %></td>
78
- </tr>
92
+
79
93
 
80
94
  </tbody>
81
95
  </table>