% title "#{@trail.icon_kctref} ladění s KČT", "#{KctTrail.symbol}/#{Trail.symbol} #{@trail.kctref} : ladění " %>
<% render partial: 'errors_for', object: @trail
# @kct_signs obsahuje vsechny "kct_signs" vpoli [[km1,g1],[km2,g2],...] kde kmi je kilometraz a g1 je kct_guidepost
%>
<%= render 'osm_trails/map', :osm_trail=> @trail.osm_trail, :div_class=> 'bootstrap_map' %>
<%= form_for @trail, url: {action: 'update_with_kct'} do |f| %>
<%= @km_diff %>
km | KČT | | km | DBF |
<%
def render_line(options); render partial: 'edit_with_kct_table_line', locals: options end
# prochází pole @signs a @kct_signs a postupně je vyprazdňuje
until @signs.empty? and @kct_signs.empty?
%>
<%=
# vem první tu která má v kilometráži menší číslo
if ((@kct_signs.first || [nil])[0] || Float::INFINITY) < @km_diff+(@signs.first.andand.km || Float::INFINITY)
kct_gpt = @kct_signs.first
signs_odpovidajici, @signs = @signs.partition{|s| s.has_kctref?(kct_gpt[1].kctref)}
sign = signs_odpovidajici.first
gpt = sign.nil? ? nil : [sign.km, sign.guidepost]
if sign
# oddeli z @kct_signs ty ktere maji odpovidajici kct_guidepost
kct_odpovidajici, @kct_signs = @kct_signs.partition{|kg| sign.guidepost.kct_guideposts.include? kg[1]}
render_line(kct_signs: kct_odpovidajici, rel: :related, gpt: gpt, sign: sign, note: 'nA1')
else
@kct_signs.shift
if kct_gpt[1].guidepost.nil?
join_kct_guidepost = @kct_signs_with_guidepost.select{|kg| kg.nazev == kct_gpt[1].nazev}.first
if join_kct_guidepost
raise kct_gpt.inspect
render_line(
kct_signs: [kct_gpt], rel: :join_to_guidepost, note: 'nA2',
assimilate_kct_kilometraz: KctKilometraz.find_by(kct_trail: @kct_trail, kct_guidepost: kct_gpt),
join_kct_guidepost: join_kct_guidepost
)
else
render_line(
kct_signs: [kct_gpt], rel: :create, note: 'nA3',
assimilate_kct_kilometraz: KctKilometraz.find_by(kct_trail: @kct_trail, kct_guidepost: kct_gpt)
)
end
else
render_line(
kct_signs: [kct_gpt], rel: :assimilate, gpt: [nil, kct_gpt[1].guidepost], note: 'nA4',
assimilate_kct_kilometraz: KctKilometraz.find_by(kct_trail: @kct_trail, kct_guidepost: kct_gpt)
)
end
end
else
oldsigns = @signs.collect(&:kctref).inspect
sign = @signs.shift
gpt = [sign.km, sign.guidepost]
kct_odpovidajici, @kct_signs = @kct_signs.partition{|kg| gpt[1].kct_guideposts.include? kg[1]}
render_line(kct_signs: kct_odpovidajici, rel: :related, gpt: gpt, sign: sign, note: 'nB')
end
%>
<% end %>
<%= f.submit "Proveď všechny akce!" %>
<% end %>
<%= content_for :navigace do %>
<%= link_to 'info o trase', @trail %>
| <%= link_to 'uprav', edit_trail_path(@trail) %>
| <%= link_to 'uprav s KČT', edit_with_kct_trail_path(@trail) %>
| <%= link_to 'uprav s OSM', edit_with_osm_trail_path(@trail) %>
| <%= link_to 'uprav s KČT i OSM', edit_with_osm_and_kct_trail_path(@trail) %>
| <%= link_to 'zkontroluj', check_trail_path(@trail) %>
| <%= link_to 'přenes kilometráž z OSM', update_kilometraz_trail_path(@trail), :method => 'patch' %>
| <%= link_to 'seznam tras', trails_path %>
<% end %>