diff options
| author | Teddy Wing | 2018-01-24 13:25:28 +0100 | 
|---|---|---|
| committer | Zog | 2018-01-25 17:18:01 +0100 | 
| commit | 8957ab3e9b28e7548d3a4028308558bec1403c33 (patch) | |
| tree | aa7aa34c6c905c3817c34ede8aa59c5db3a75901 | |
| parent | 766dd36e253cfe00f0cec96e7fa55687428b0f2a (diff) | |
| download | chouette-core-8957ab3e9b28e7548d3a4028308558bec1403c33.tar.bz2 | |
ReferentialLineDecorator: Convert action links to new interface
Refs #5586
| -rw-r--r-- | app/controllers/referentials_controller.rb | 3 | ||||
| -rw-r--r-- | app/decorators/referential_line_decorator.rb | 53 | ||||
| -rw-r--r-- | app/views/referential_lines/show.html.slim | 9 | ||||
| -rw-r--r-- | app/views/referentials/show.html.slim | 4 | 
4 files changed, 31 insertions, 38 deletions
| diff --git a/app/controllers/referentials_controller.rb b/app/controllers/referentials_controller.rb index 41ddc3870..0ed3f75dd 100644 --- a/app/controllers/referentials_controller.rb +++ b/app/controllers/referentials_controller.rb @@ -32,9 +32,8 @@ class ReferentialsController < ChouetteController      show! do |format|        @referential = @referential.decorate(context: { current_workbench_id: params[:current_workbench_id] } )        @reflines = lines_collection.paginate(page: params[:page], per_page: 10) -      @reflines = ModelDecorator.decorate( +      @reflines = ReferentialLineDecorator.decorate(          @reflines, -        with: ReferentialLineDecorator,          context: {            referential: referential,            current_organisation: current_organisation diff --git a/app/decorators/referential_line_decorator.rb b/app/decorators/referential_line_decorator.rb index dceb3e2a9..8f884a8e0 100644 --- a/app/decorators/referential_line_decorator.rb +++ b/app/decorators/referential_line_decorator.rb @@ -1,40 +1,43 @@ -class ReferentialLineDecorator < Draper::Decorator +class ReferentialLineDecorator < AF83::Decorator    decorates Chouette::Line -  delegate_all - -  # Requires: +  # Action links require:    #   context: {    #     referential: ,    #     current_organisation:    #   } -  def action_links -    links = [] -    links << Link.new( -      content: Chouette::Line.human_attribute_name(:footnotes), -      href: h.referential_line_footnotes_path(context[:referential], object) -    ) +  with_instance_decorator do |instance_decorator| +    instance_decorator.show_action_link do |l| +      l.href { h.referential_line_path(context[:referential], object) } +    end -    links << Link.new( -      content: h.t('routing_constraint_zones.index.title'), -      href: h.referential_line_routing_constraint_zones_path( -        context[:referential], -        object -      ) -    ) +    instance_decorator.action_link secondary: true do |l| +      l.content Chouette::Line.human_attribute_name(:footnotes) +      l.href { h.referential_line_footnotes_path(context[:referential], object) } +    end -    if !object.hub_restricted? || -        (object.hub_restricted? && object.routes.size < 2) -      if h.policy(Chouette::Route).create? && -          context[:referential].organisation == context[:current_organisation] -        links << Link.new( -          content: h.t('routes.actions.new'), -          href: h.new_referential_line_route_path(context[:referential], object) +    instance_decorator.action_link secondary: true do |l| +      l.content h.t('routing_constraint_zones.index.title') +      l.href do +        h.referential_line_routing_constraint_zones_path( +          context[:referential], +          object          )        end      end -    links +    instance_decorator.action_link( +      if: ->() { +        (!object.hub_restricted? || +          (object.hub_restricted? && object.routes.size < 2)) && +        (h.policy(Chouette::Route).create? && +          context[:referential].organisation == context[:current_organisation]) +      }, +      secondary: true +    ) do |l| +      l.content h.t('routes.actions.new') +      l.href { h.new_referential_line_route_path(context[:referential], object) } +    end    end  end diff --git a/app/views/referential_lines/show.html.slim b/app/views/referential_lines/show.html.slim index 70f4048b3..02d605d8c 100644 --- a/app/views/referential_lines/show.html.slim +++ b/app/views/referential_lines/show.html.slim @@ -1,13 +1,4 @@  - breadcrumb :referential_line, @referential, @line -- content_for :page_header_content do -  .row -    .col-lg-12.text-right.mb-sm -      - @line.action_links.each do |link| -        = link_to link.href, -            method: link.method, -            data: link.data, -            class: 'btn btn-primary' do -              = link.content  - page_header_content_for @line  .page_content diff --git a/app/views/referentials/show.html.slim b/app/views/referentials/show.html.slim index 46019be35..6c88f5b81 100644 --- a/app/views/referentials/show.html.slim +++ b/app/views/referentials/show.html.slim @@ -56,8 +56,8 @@                  attribute: Proc.new { |n| n&.company&.name || "-" } \                ) \              ], -            links: [:show], -            cls: 'table has-filter has-search' +            cls: 'table has-filter has-search', +            action: :index            = new_pagination @reflines, 'pull-right' | 
