aboutsummaryrefslogtreecommitdiffstats
path: root/app/controllers/vehicle_journeys_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/vehicle_journeys_controller.rb')
-rw-r--r--app/controllers/vehicle_journeys_controller.rb72
1 files changed, 59 insertions, 13 deletions
diff --git a/app/controllers/vehicle_journeys_controller.rb b/app/controllers/vehicle_journeys_controller.rb
index 45cb25344..8845b0c54 100644
--- a/app/controllers/vehicle_journeys_controller.rb
+++ b/app/controllers/vehicle_journeys_controller.rb
@@ -1,5 +1,9 @@
class VehicleJourneysController < ChouetteController
defaults :resource_class => Chouette::VehicleJourney
+ before_action :check_policy, only: [:edit, :update, :destroy]
+ before_action :user_permissions, only: :index
+ before_action :ransack_params, only: :index
+
respond_to :json, :only => :index
respond_to :js, :only => [:select_journey_pattern, :edit, :new, :index]
@@ -10,6 +14,9 @@ class VehicleJourneysController < ChouetteController
end
include PolicyChecker
+ alias_method :vehicle_journeys, :collection
+ alias_method :route, :parent
+ alias_method :vehicle_journey, :resource
def select_journey_pattern
if params[:journey_pattern_id]
@@ -29,6 +36,31 @@ class VehicleJourneysController < ChouetteController
end
def index
+ @stop_points_list = []
+ route.stop_points.each do |sp|
+ @stop_points_list << {
+ :id => sp.stop_area.id,
+ :route_id => sp.try(:route_id),
+ :object_id => sp.try(:objectid),
+ :position => sp.try(:position),
+ :for_boarding => sp.try(:for_boarding),
+ :for_alighting => sp.try(:for_alighting),
+ :name => sp.stop_area.try(:name),
+ :zip_code => sp.stop_area.try(:zip_code),
+ :city_name => sp.stop_area.try(:city_name),
+ :comment => sp.stop_area.try(:comment),
+ :area_type => sp.stop_area.try(:area_type),
+ :registration_number => sp.stop_area.try(:registration_number),
+ :nearest_topic_name => sp.stop_area.try(:nearest_topic_name),
+ :fare_code => sp.stop_area.try(:fare_code),
+ :longitude => sp.stop_area.try(:longitude),
+ :latitude => sp.stop_area.try(:latitude),
+ :long_lat_type => sp.stop_area.try(:long_lat_type),
+ :country_code => sp.stop_area.try(:country_code),
+ :street_name => sp.stop_area.try(:street_name)
+ }
+ end
+
index! do
if collection.out_of_bounds?
redirect_to params.merge(:page => 1)
@@ -37,7 +69,6 @@ class VehicleJourneysController < ChouetteController
end
end
-
# overwrite inherited resources to use delete instead of destroy
# foreign keys will propagate deletion)
def destroy_resource(object)
@@ -45,20 +76,14 @@ class VehicleJourneysController < ChouetteController
end
protected
-
- alias_method :vehicle_journey, :resource
-
def collection
- unless @vehicle_journeys
- @vehicle_filter = VehicleFilter.new adapted_params
- @vehicle_filter.journey_category_model = resource_class.model_name.route_key
- @q = @vehicle_filter.vehicle_journeys.search @vehicle_filter.filtered_params
- @vehicle_journeys = @q.result( :distinct => false ).paginate(:page => params[:page], :per_page => 8)
- end
- matrix
+ @ppage = 20
+ @q = route.sorted_vehicle_journeys('vehicle_journeys').search params[:q]
+ @vehicle_journeys = @q.result.paginate(:page => params[:page], :per_page => @ppage)
+ @footnotes = route.line.footnotes.to_json
+ @matrix = resource_class.matrix(@vehicle_journeys)
@vehicle_journeys
end
- alias_method :vehicle_journeys, :collection
def adapted_params
params.tap do |adapted_params|
@@ -79,7 +104,29 @@ class VehicleJourneysController < ChouetteController
@matrix = resource_class.matrix(@vehicle_journeys)
end
+ def check_policy
+ authorize resource
+ end
+
+ def user_permissions
+ @perms = {}.tap do |perm|
+ ['vehicle_journeys.create', 'vehicle_journeys.edit', 'vehicle_journeys.destroy'].each do |name|
+ perm[name] = current_user.permissions.include?(name)
+ end
+ end
+ @perms = @perms.to_json
+ end
+
private
+ def ransack_params
+ if params[:q]
+ params[:q] = params[:q].reject{|k| params[:q][k] == 'undefined'}
+ [:departure_time_gteq, :departure_time_lteq].each do |filter|
+ time = params[:q]["vehicle_journey_at_stops_#{filter}"]
+ params[:q]["vehicle_journey_at_stops_#{filter}"] = "2000-01-01 #{time}:00 UTC"
+ end
+ end
+ end
def vehicle_journey_params
params.require(:vehicle_journey).permit( { footnote_ids: [] } , :journey_pattern_id, :number, :published_journey_name,
@@ -92,5 +139,4 @@ class VehicleJourneysController < ChouetteController
:stop_point_id,
:departure_time] } )
end
-
end