Convert the search forms to bootstrap

This moves the forms to a flex grid, albeit with a little twiddling
to get things working in a compact space.
This commit is contained in:
Andy Allan 2021-02-10 14:17:58 +00:00
parent 3debff60ef
commit f7b8b114a6
2 changed files with 68 additions and 129 deletions

View file

@ -783,8 +783,8 @@ tr.turn {
tr.turn:hover { tr.turn:hover {
background: $list-highlight; background: $list-highlight;
} }
.routing_engines, #route_from, #route_to { margin-left: 25px; }
.routing_marker { width: 15px; position: absolute; cursor: move; } .routing_marker { width: 15px; cursor: move; }
/* Rules for entity history */ /* Rules for entity history */
@ -1633,117 +1633,32 @@ tr.turn:hover {
a.button { a.button {
line-height: 20px; line-height: 20px;
} }
}
.search_form, .search_form {
.directions_form { background-color: $lightgrey;
position: relative;
padding: $lineheight/2;
background-color: $lightgrey;
.query_wrapper { .describe_location {
position: relative; top: 6px;
overflow: hidden; right: 6px;
border-radius: 2px 0 0 2px; font-size: 10px;
color: $blue;
}
}
.directions_form {
background-color: $lightgrey;
.loader_copy {
display: none;
img {
vertical-align: middle;
} }
}
input[type=text] { a.reverse_directions {
width: 100%; cursor: pointer;
height: 30px;
transition: 300ms linear;
}
input[type=text].overflow {
border-right: none;
border-radius: 3px 0px 0px 3px;
}
input:focus {
outline: none;
box-shadow: 0px 0px 7px $vibrant-green;
}
input[type=submit].float {
float: right;
width: auto;
min-width: 0;
border-radius: 0 2px 2px 0;
}
input.error {
background-color: rgba($red, 0.4);
}
select {
/* this next line is to polyfill the vertical alignment of text within a select element,
* which is different between firefox and chrome. */
padding: 0.3em 0;
}
.query_options {
text-align: right;
font-size: 10px;
color: $blue;
}
.describe_location {
position: absolute;
top: 6px;
right: 6px;
font-size: 10px;
color: $blue;
}
.switch_link {
float: right;
width: auto;
min-width: 0;
margin-left: 6px;
}
img.button {
display: block;
width: 20px;
height: 20px;
}
span.force_width {
width: 100%;
padding-right: 25px;
display: block;
}
select.routing_engines {
min-height: 30px;
margin: 0px 0px 5px 25px;
}
input.routing_go {
min-width: 100px;
float: right;
}
div.header {
width: 100%;
height: 30px;
}
div.line {
width: 100%;
margin: 0px 0px 5px 0px;
}
div.loader_copy {
display: none;
img {
vertical-align: middle;
}
}
a.reverse_directions {
cursor: pointer;
margin: 0px 0px 5px 25px;
}
} }
} }

View file

@ -1,30 +1,54 @@
<div class="search_forms standard-form"> <div class="search_forms">
<form method="GET" action="<%= search_path %>" class="search_form"> <form method="GET" action="<%= search_path %>" class="search_form px-1 py-2">
<%= link_to image_tag("directions.png", :class => "button"), directions_path, :class => "button switch_link", :title => t("site.search.get_directions_title") %> <div class="form-row mx-0">
<%= submit_tag t("site.search.submit_text"), :class => "float", :data => { :disable_with => false } %> <div class="col">
<div class='query_wrapper'> <div class="input-group">
<%= text_field_tag "query", params[:query], :placeholder => t("site.search.search"), :autofocus => autofocus, :class => "overflow" %> <div class='query_wrapper position-relative flex-grow-1'>
<%= link_to t("site.search.where_am_i"), "#", :class => "describe_location", :title => t("site.search.where_am_i_title") %> <%= link_to t("site.search.where_am_i"), "#", :class => "describe_location position-absolute", :title => t("site.search.where_am_i_title") %>
<%= text_field_tag "query", params[:query], :placeholder => t("site.search.search"), :autofocus => autofocus, :class => "form-control form-control-sm" %>
</div>
<div class="input-group-append">
<%= submit_tag t("site.search.submit_text"), :class => "btn btn-sm btn-primary", :data => { :disable_with => false } %>
</div>
</div>
</div>
<div class="col-auto">
<%= link_to image_tag("directions.png", :width => "20", :height => "20"), directions_path, :class => "btn btn-sm btn-primary switch_link", :title => t("site.search.get_directions_title") %>
</div>
</div> </div>
</form> </form>
<form method="GET" action="<%= directions_path %>" class="directions_form"> <form method="GET" action="<%= directions_path %>" class="directions_form pb-3">
<div class="header"><span class="icon close"></span></div> <div class="clearfix px-3 py-3"><span class="icon close"></span></div>
<div class="line"> <div class="form-row m-1">
<%= image_tag "marker-green.png", :class => "routing_marker", :data => { :type => "from" }, :draggable => "true" %> <div class="col-1">
<span class="force_width"><%= text_field_tag "route_from", params[:from], :placeholder => t("site.search.from") %></span> <%= image_tag "marker-green.png", :class => "routing_marker mx-auto d-block", :data => { :type => "from" }, :draggable => "true" %>
</div>
<div class="col">
<%= text_field_tag "route_from", params[:from], :placeholder => t("site.search.from"), :class => "form-control form-control-sm" %>
</div>
</div> </div>
<div class="line"> <div class="form-row m-1">
<%= image_tag "marker-red.png", :class => "routing_marker", :data => { :type => "to" }, :draggable => "true" %> <div class="col-1">
<span class="force_width"><%= text_field_tag "route_to", params[:to], :placeholder => t("site.search.to") %></span> <%= image_tag "marker-red.png", :class => "routing_marker mx-auto d-block", :data => { :type => "to" }, :draggable => "true" %>
</div>
<div class="col">
<%= text_field_tag "route_to", params[:to], :placeholder => t("site.search.to"), :class => "form-control form-control-sm" %>
</div>
</div> </div>
<div class="line"> <div class="form-row m-1">
<select class="routing_engines" name="routing_engines"></select> <div class="col offset-1">
<%= submit_tag t("site.search.submit_text"), :class => "routing_go", :data => { :disable_with => false } %> <select class="routing_engines form-control form-control-sm" name="routing_engines"></select>
</div>
<div class="col-auto">
<%= submit_tag t("site.search.submit_text"), :class => "routing_go btn btn-sm btn-primary", :data => { :disable_with => false } %>
</div>
</div> </div>
<div class="line"> <div class="form-row m-1">
<a class="reverse_directions"><%= t("site.search.reverse_directions_text") %></a> <div class="col offset-1">
<a class="reverse_directions"><%= t("site.search.reverse_directions_text") %></a>
</div>
</div> </div>
<div class="loader_copy"><div class="loader"><%= image_tag "searching.gif" %></div></div> <div class="loader_copy"><div class="loader"><%= image_tag "searching.gif" %></div></div>