templates/modules/search-widget/journey/form.html.twig line 1

Open in your IDE?
  1. {% if departurePlace.value is not defined or departurePlace.id is not defined %}
  2. {% set departurePlace = {id: '', value: '', latlon: '', latitude: '', longitude: ''} %}
  3. {% endif %}
  4. {% if arrivalPlace.value is not defined or arrivalPlace.id is not defined %}
  5. {% set arrivalPlace = {id: '', value: '', latlon: '', latitude: '', longitude: ''} %}
  6. {% endif %}
  7. {% set bWithStage = false %}
  8. {% if via is defined and via|length > 0 %}
  9. {% set bWithStage = true %}
  10. {% endif %}
  11. {% set bSearchButton = true %}
  12. {% set bDatetimeOnly = false %}
  13. {% set widgetContext = false %}
  14. {% if isWidget is defined and isWidget == 'true' %}
  15. {% set widgetContext = true %}
  16. {% set bSearchButton = true %}
  17. {% if isRedirection is defined and isRedirection == 'true'
  18. and isInternal is defined and isInternal == 'true'
  19. and (isPartner is defined and isPartner == 'false')
  20. %}
  21. {% set bDatetimeOnly = true %}
  22. {% endif %}
  23. {% endif %}
  24. {% set formClass = '' %}
  25. {% if bSearchButton %}
  26. {% set formClass = formClass ~ (formClass is empty ? '' : ' ') ~ 'is-JourneyForm_WithSearchButton' %}
  27. {% endif %}
  28. {% if tripJourneyCount is defined and tripJourneyCount > 0 %}
  29. {% set formClass = formClass ~ (formClass is empty ? '' : ' ') ~ 'is-JourneyForm_Collapsed' %}
  30. {% endif %}
  31. <form
  32. aria-controls="is-Journey-Results"
  33. aria-label="{{ 'journey.h1'|trans }}"
  34. autocomplete="off"
  35. {{ formClass is not empty ? (' class="' ~ formClass ~ '"')|raw : '' }}
  36. data-content=""
  37. id="is-JourneyForm"
  38. tabindex="-1">
  39. <input type="hidden" name="is-JourneyForm-Alternative" id="is-JourneyForm-Alternative">
  40. <input type="hidden" name="isWidget" value="{{ widgetContext }}">
  41. <input type="hidden" name="isEstimatedResults" id="is-Estimated-Results" value="true">
  42. <input type="hidden" name="token" value="{{ csrf_token('route_calculation') }}"/>
  43. <div id="is-Journey-ErrorServer" class="is-Alert is-Alert_Warning" style="display: none;"
  44. aria-live="assertive" aria-hidden="true"></div>
  45. <p class="is-form-Description-Mandotory">
  46. <span class="is-LabelledInput-Label_Required">*</span>
  47. {{ 'form.mandatory_description' | trans }}
  48. </p>
  49. <fieldset id="is-Journey-SwapGroup" class="is-SwapGroup{% if bWithStage %} is-SwapGroup_WithStage{% endif %}">
  50. <legend class="is-sr-only">{{ 'journey.form_legend' | trans }}</legend>
  51. <div class="is-LabelInInput is-First" id="is-Journey-Departure-LabelInInput">
  52. <div class="is-LabelInInput-LabelWrapper">
  53. <label class="is-LabelInInput-Label" for="is-Journey-Departure">
  54. {{ 'journey.departure' | trans }}
  55. <span class="is-LabelledInput-Label_Required">*</span>
  56. </label>
  57. </div>
  58. <div class="is-LabelInInput-InputWrapper">
  59. <input value="{{ departurePlace.value }}" data-latlon="{{ departurePlace.latlon }}" data-id="{{ departurePlace.id }}" data-latitude="{{ departurePlace.latitude }}" data-longitude="{{ departurePlace.longitude }}" id="is-Journey-Departure" name="start" type="text" required class="is-LabelInInput-Input is-Resettable-Input" placeholder="{{ 'journey.departure_placeholder' | trans }}" autocomplete="off"
  60. aria-autocomplete="list" aria-owns="is-Journey-Departure-Suggestions" />
  61. </div>
  62. </div>
  63. <div class="is-Stages" id="is-Journey-Stage" {% if not bWithStage %}style="display: none;"{% endif %}>
  64. {% if bWithStage %}
  65. {% for index, step in via %}
  66. {% if step.id is defined and step.value is defined %}
  67. <div class="is-LabelInInput" id="is-Stage-LabelInInput-{{ loop.index0 }}" >
  68. <div class="is-LabelInInput-LabelWrapper">
  69. <label class="is-LabelInInput-Label" for="is-Stage-Input-{{ loop.index0 }}">{{ 'map.popup.step-via' | trans }}</label>
  70. </div>
  71. <div class="is-LabelInInput-InputWrapper">
  72. <input autocomplete="off" required="true" type="text" name="stage[]" id="is-Stage-Input-{{ loop.index0 }}" class="is-LabelInInput-Input is-via-input" data-latlon="{{ step.latlon }}" data-id="{{ step.id }}" value="{{ step.value }}" placeholder="{{ 'journey.departure_placeholder' | trans }}"/>
  73. </div>
  74. </div>
  75. {% endif %}
  76. {% endfor %}
  77. {% endif %}
  78. </div>
  79. <div class="is-LabelInInput is-Last" id="is-Journey-Arrival-LabelInInput">
  80. <div class="is-LabelInInput-LabelWrapper">
  81. <label class="is-LabelInInput-Label" for="is-Journey-Arrival">
  82. {{ 'journey.arrival' | trans }}
  83. <span class="is-LabelledInput-Label_Required">*</span>
  84. </label>
  85. </div>
  86. <div class="is-LabelInInput-InputWrapper">
  87. <input value="{{ arrivalPlace.value }}" data-latlon="{{ arrivalPlace.latlon }}" data-id="{{ arrivalPlace.id }}" data-latitude="{{ arrivalPlace.latitude }}" data-longitude="{{ arrivalPlace.longitude }}" id="is-Journey-Arrival" name="end" type="text" required class="is-LabelInInput-Input is-Resettable-Input" placeholder="{{ 'journey.arrival_placeholder' | trans }}" autocomplete="off"
  88. aria-autocomplete="list" aria-owns="is-Journey-Arrival-Suggestions" />
  89. </div>
  90. </div>
  91. <a class="is-RemoveStage-Button{% if not bWithStage %} is-hide{% endif %}"
  92. role="button" aria-expanded="false" aria-controls="is-Journey-Stage" tabindex="0" >
  93. -
  94. </a>
  95. {% if preferences.displayViaStep is defined and preferences.displayViaStep is not empty %}
  96. <a class="is-AddStage-Button{% if bWithStage %} is-hide{% endif %}"
  97. role="button" aria-expanded="false" aria-controls="is-Journey-Stage" tabindex="0" title="{{ 'journey.add-stage'|trans }}">
  98. +
  99. </a>
  100. {% endif %}
  101. <a id="is-Journey-SwapButton" class="is-SwapGroup-Button" data-a="#start" data-b="#end" title="{{ 'journey.swap_departure_arrival' |trans }}"
  102. role="button" aria-label="{{ 'journey.swap_departure_arrival'|trans }}" tabindex="0">
  103. <span class="is-Icon is-Icon-sim-swap" aria-hidden="true"></span>
  104. </a>
  105. </fieldset>
  106. {% if bDatetimeOnly %}
  107. {% set vars = { 'bDatetimeOnly': bDatetimeOnly} %}
  108. <div class="is-Journey-TimePreferenceArea">
  109. {% include 'modules/search-widget/journey/datetime-select.html.twig' with vars %}
  110. {% include 'modules/search-widget/journey/datetime-input.html.twig' with vars %}
  111. </div>
  112. {% else %}
  113. <div id="is-Journey-MoreActionsArea">
  114. <div id="is-Journey-MoreActionsArea-DatePreference">
  115. {% include 'modules/search-widget/journey/datetime-select.html.twig' %}
  116. </div>
  117. <div class="is-FieldGroup is-DatetimeInputs">
  118. {% include 'modules/search-widget/journey/datetime-input.html.twig' %}
  119. </div>
  120. <div id="is-Journey-MoreActionsArea-AdvancedSearch">
  121. <button class="is-Button is-Button_Secondary"
  122. id="is-Journey-ShowAdvancedSearchButton"
  123. type="button"
  124. data-target="#is-Journey-AdvancedSearch" data-toggle="is-collapse"
  125. aria-expanded="false" aria-controls="is-Journey-AdvancedSearch" aria-haspopup="true"
  126. onclick="$(document).trigger(TrackingManager.event.track, {event: 'option'});"
  127. >
  128. {{ 'journey.options'|trans }}
  129. </button>
  130. </div>
  131. </div>
  132. <div class="is-collapse" id="is-Journey-AdvancedSearch" aria-labelledby="is-Journey-ShowAdvancedSearchButton" tabindex="0">
  133. <div class="is-Journey-Container-Buttons">
  134. <button id="is-Journey-ResetButton" aria-label="{{ 'journey.reset'|trans }}">
  135. <i class="is-Icon is-Icon-com-reset" aria-hidden="true"></i> {{ 'journey.reset'|trans }}
  136. </button>
  137. <button id="is-Journey-HideAdvancedSearchButton" aria-label="{{ 'journey.close'|trans }}" data-toggle="is-collapse" data-target="#is-Journey-AdvancedSearch" aria-expanded="false" aria-controls="is-Journey-AdvancedSearch">
  138. <i class="is-Icon is-Icon-com-close" aria-hidden="true"></i> {{ 'journey.close'|trans }}
  139. </button>
  140. </div>
  141. <div id="is-Journey-Preferences">
  142. {% include 'modules/search-widget/journey/preferences-form.html.twig' %}
  143. </div>
  144. <div class="is-ButtonArea">
  145. <button class="is-Button" id="is-Journey-AdvancedSearch-Button" aria-label="{{ 'journey.h1'|trans }}">{{ 'search'|trans }}</button>
  146. </div>
  147. </div>
  148. {% endif %}
  149. {% if bSearchButton %}
  150. <div id="is-PlaceSubmitButton" class="is-ButtonArea">
  151. <button{% if isWidget is defined and true == isWidget %} data-label="{{ widgetCode }}"{% endif %} type="button" class="is-Button is-Button_Search is-full-width" id="is-Journey-SearchButton" aria-label="{{ 'journey.h1'|trans }}">{{ 'search'|trans }}</button>
  152. </div>
  153. {% endif %}
  154. </form>