aboutsummaryrefslogtreecommitdiffstats
path: root/app/assets/javascripts/vehicle_journey.js.coffee
blob: caf5059603dae949e1051bfb182863f7c1dace6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
jQuery ->
  swap_hour_minute = ( from, to) ->
    rows =  $('tbody.journey_pattern_dependent_list tr.time')
    for row in rows
      do (row) ->
        $(row).find( to).find('.hour')[0].value = $(row).find( from).find('.hour')[0].value
        $(row).find( to).find('.minute')[0].value = $(row).find( from).find('.minute')[0].value

  copy_departures_to_arrivals = (event) ->
    event.preventDefault()
    swap_hour_minute('.departure_time', '.arrival_time')

  $(document).on('click', '[data-ce-action="to_arrivals"]', copy_departures_to_arrivals)

  copy_arrivals_to_departures = (event) ->
    event.preventDefault()
    swap_hour_minute('.arrival_time', '.departure_time')

  $(document).on('click', '[data-ce-action="to_departures"]', copy_arrivals_to_departures)

  switch_vehicle_journey_at_stops = (event) ->
    event.preventDefault()
    $('.vehicle_journeys.show .vehicle_journey_at_stops.content').toggle('slow')
    $('a.vehicle_journey_at_stops .switcher').toggle()

  $('.vehicle_journeys.show a.vehicle_journey_at_stops').click(switch_vehicle_journey_at_stops)

  switch_time_tables = (event) ->
    event.preventDefault()
    $('.vehicle_journeys.show .vehicle_journey_time_tables.content').toggle('slow')
    $('a.vehicle_journey_time_tables .switcher').toggle()

  $('.vehicle_journeys.show a.vehicle_journey_time_tables').click(switch_time_tables)

  convert = (val) ->
    if (val < 10)
      return "0" + val.toString()
    else
      return val.toString()

  slide_to = ( col, duration) ->
    rows =  $('.vehicle_journeys tbody.journey_pattern_dependent_list .time')
    for row in rows
      do (row) ->

        oldHour = parseInt( $( $(row).find( col).find('.hour')).val())
        oldMinute = parseInt( $( $(row).find( col).find('.minute')).val())
        aTime = (((oldHour - 1) * 60) + oldMinute + duration) * 60000
        newValue = new Date(aTime)
        $( $(row).find( col).find('select.hour')).prop( "selectedIndex", convert(newValue.getHours()))
        $( $(row).find( col).find('select.minute')).prop( "selectedIndex", convert(newValue.getMinutes()))

  slide = (event) ->
    event.preventDefault()
    hour = parseInt( $(".vehicle_journey_at_stops select#date_hour").val())
    minute = parseInt( $(".vehicle_journey_at_stops select#date_minute").val())
    departure_or_arrival = $(".departure_or_arrival option:selected").val()

    selector_prefix = ".vehicle_journey_at_stops .journey_pattern_dependent_list"
    if (departure_or_arrival == "departure")
      vjas_hour_selector = selector_prefix + " .departure_time select.hour"
      vjas_minute_selector = selector_prefix + " .departure_time select.minute"
    else
      vjas_hour_selector = selector_prefix + " .arrival_time select.hour"
      vjas_minute_selector = selector_prefix + " .arrival_time select.minute"

    vjas_hour = $( vjas_hour_selector).prop( "selectedIndex" )
    vjas_minute = $( vjas_minute_selector).prop( "selectedIndex" )

    duration = (hour - vjas_hour) * 60 + (minute - vjas_minute)

    slide_to( '.departure_time', duration)
    slide_to( '.arrival_time', duration)

  $(document).on("click", '.vehicle_journeys a.slide', slide)