]> git.openstreetmap.org Git - rails.git/commitdiff
Convert the search forms to bootstrap
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 10 Feb 2021 14:17:58 +0000 (14:17 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 24 Feb 2021 12:21:51 +0000 (12:21 +0000)
This moves the forms to a flex grid, albeit with a little twiddling
to get things working in a compact space.

app/assets/stylesheets/common.scss
app/views/layouts/_search.html.erb

index a8f138caa8194b4014c6a6d28c3360ee4156cfa7..b989f924c7e4e2acda5cf5d9774feb13358805b5 100644 (file)
@@ -783,8 +783,8 @@ tr.turn {
 tr.turn:hover {
     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 */
 
@@ -1633,117 +1633,32 @@ tr.turn:hover {
   a.button {
     line-height: 20px;
   }
+}
 
-  .search_form,
-  .directions_form {
-    position: relative;
-    padding: $lineheight/2;
-    background-color: $lightgrey;
-
-    .query_wrapper {
-      position: relative;
-      overflow: hidden;
-      border-radius: 2px 0 0 2px;
-    }
-
-    input[type=text] {
-      width: 100%;
-      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;
-    }
+.search_form {
+  background-color: $lightgrey;
 
-    div.header {
-      width: 100%;
-      height: 30px;
-    }
+  .describe_location {
+    top: 6px;
+    right: 6px;
+    font-size: 10px;
+    color: $blue;
+  }
+}
 
-    div.line {
-      width: 100%;
-      margin: 0px 0px 5px 0px;
-    }
+.directions_form {
+  background-color: $lightgrey;
 
-    div.loader_copy {
-      display: none;
+  .loader_copy {
+    display: none;
 
-      img {
-        vertical-align: middle;
-      }
+    img {
+      vertical-align: middle;
     }
+  }
 
-    a.reverse_directions {
-      cursor: pointer;
-      margin: 0px 0px 5px 25px;
-    }
+  a.reverse_directions {
+    cursor: pointer;
   }
 }
 
index 0ffa4ef504440c5024f4f27c0b62497df0cf6e92..d09bfa704f1ef9f09e9d020a78eae5ba4ab84090 100644 (file)
@@ -1,30 +1,54 @@
-<div class="search_forms standard-form">
-  <form method="GET" action="<%= search_path %>" class="search_form">
-    <%= link_to image_tag("directions.png", :class => "button"), directions_path, :class => "button switch_link", :title => t("site.search.get_directions_title") %>
-    <%= submit_tag t("site.search.submit_text"), :class => "float", :data => { :disable_with => false } %>
-    <div class='query_wrapper'>
-      <%= text_field_tag "query", params[:query], :placeholder => t("site.search.search"), :autofocus => autofocus, :class => "overflow" %>
-      <%= link_to t("site.search.where_am_i"), "#", :class => "describe_location", :title => t("site.search.where_am_i_title") %>
+<div class="search_forms">
+  <form method="GET" action="<%= search_path %>" class="search_form px-1 py-2">
+    <div class="form-row mx-0">
+      <div class="col">
+        <div class="input-group">
+          <div class='query_wrapper position-relative flex-grow-1'>
+            <%= 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>
   </form>
 
-  <form method="GET" action="<%= directions_path %>" class="directions_form">
-    <div class="header"><span class="icon close"></span></div>
+  <form method="GET" action="<%= directions_path %>" class="directions_form pb-3">
+    <div class="clearfix px-3 py-3"><span class="icon close"></span></div>
 
-    <div class="line">
-      <%= image_tag "marker-green.png", :class => "routing_marker", :data => { :type => "from" }, :draggable => "true" %>
-      <span class="force_width"><%= text_field_tag "route_from", params[:from], :placeholder => t("site.search.from") %></span>
+    <div class="form-row m-1">
+      <div class="col-1">
+        <%= 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 class="line">
-      <%= image_tag "marker-red.png", :class => "routing_marker", :data => { :type => "to" }, :draggable => "true" %>
-      <span class="force_width"><%= text_field_tag "route_to", params[:to], :placeholder => t("site.search.to") %></span>
+    <div class="form-row m-1">
+      <div class="col-1">
+        <%= 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 class="line">
-      <select class="routing_engines" name="routing_engines"></select>
-      <%= submit_tag t("site.search.submit_text"), :class => "routing_go", :data => { :disable_with => false } %>
+    <div class="form-row m-1">
+      <div class="col offset-1">
+        <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 class="line">
-      <a class="reverse_directions"><%= t("site.search.reverse_directions_text") %></a>
+    <div class="form-row m-1">
+      <div class="col offset-1">
+        <a class="reverse_directions"><%= t("site.search.reverse_directions_text") %></a>
+      </div>
     </div>
 
     <div class="loader_copy"><div class="loader"><%= image_tag "searching.gif" %></div></div>