]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/2461'
authorTom Hughes <tom@compton.nu>
Wed, 11 Dec 2019 17:31:16 +0000 (17:31 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 11 Dec 2019 17:31:16 +0000 (17:31 +0000)
app/assets/stylesheets/common.scss
app/assets/stylesheets/parameters.scss
app/controllers/api/amf_controller.rb
app/views/diary_entries/comments.html.erb
app/views/notes/mine.html.erb
app/views/oauth_clients/index.html.erb
app/views/user_blocks/_blocks.html.erb
app/views/users/index.html.erb
test/controllers/api/changesets_controller_test.rb
test/controllers/api/relations_controller_test.rb
test/integration/compressed_requests_test.rb

index 40c5eaa2a8e91f4362b4852ea389bfefa1085608..54fd52dd2f4c2bb6d9092796033e7cac55305678 100644 (file)
@@ -202,8 +202,8 @@ a {
 
 hr {
   border: none;
-  background-color: #ccc;
-  color: #ccc;
+  background-color: $grey;
+  color: $grey;
   height: 1px;
 }
 
@@ -229,7 +229,7 @@ table {
 /* Utility for de-emphasizing content */
 
 .deemphasize {
-  color: #999;
+  color: $darkgrey;
   a {
     color: $blue;
   }
@@ -330,11 +330,11 @@ nav.primary {
   }
 
   .disabled a {
-    color: #ccc;
+    color: $grey;
     cursor: default;
 
     .caret {
-      border-top-color: #ccc;
+      border-top-color: $grey;
     }
   }
 
@@ -505,7 +505,7 @@ body.compact {
   }
 
   &.active {
-    background-color: #9ed485;
+    background-color: $vibrant-green;
   }
 
   .icon {
@@ -692,7 +692,7 @@ body.compact {
     overflow: auto;
 
     .section {
-      border-bottom: 1px solid #DDD;
+      border-bottom: 1px solid $grey;
       padding: 10px 20px;
     }
 
@@ -702,14 +702,14 @@ body.compact {
       font-size:20px;
       line-height:10px;
       color:#222;
-      border:1px solid #ddd;
+      border:1px solid $grey;
     }
 
     .tooltip {
       opacity: 1;
-      border: 1px solid #ccc;
+      border: 1px solid $grey;
       .tooltip-arrow {
-        border-top-color: #ccc;
+        border-top-color: $grey;
       }
     }
   }
@@ -768,7 +768,7 @@ body.compact {
       font-size: 13px;
       margin-bottom: 8px;
     }
-    li.disabled { color: #999; }
+    li.disabled { color: $darkgrey; }
   }
 }
 
@@ -872,7 +872,7 @@ body.compact {
   position: relative;
   padding: $lineheight/2 $lineheight;
   // background: $offwhite;
-  // border-bottom: 1px solid #ccc;
+  // border-bottom: 1px solid $grey;
   > .close {
     float: right;
     margin-top: 2px;
@@ -939,7 +939,7 @@ header .search_forms,
 
   input:focus {
     outline: none;
-    box-shadow: 0px 0px 7px #9ED485;
+    box-shadow: 0px 0px 7px $vibrant-green;
   }
 
   input[type=submit].float {
@@ -1085,10 +1085,10 @@ p#routing_summary {
 td.instruction, td.distance {
     padding-top: $lineheight/5;
     padding-bottom: $lineheight/5;
-    border-bottom: 1px solid #DDD;
+    border-bottom: 1px solid $grey;
 }
 td.distance {
-    color: #BBB;
+    color: $darkgrey;
     text-align: right;
     font-size: x-small;
 }
@@ -1119,7 +1119,7 @@ tr.turn:hover {
 #sidebar .changesets {
   li {
     padding: 15px 20px;
-    border-bottom: 1px solid #ddd;
+    border-bottom: 1px solid $grey;
     cursor: pointer;
 
     &.selected { background: $list-highlight; }
@@ -1135,7 +1135,7 @@ tr.turn:hover {
 
   .comments {
     float: right;
-    color: #999;
+    color: $darkgrey;
   }
 
   .comments-0 {
@@ -1153,7 +1153,7 @@ tr.turn:hover {
 #sidebar_content {
   .browse-section {
     padding: $lineheight/2 $lineheight;
-    border-bottom: 1px solid #ddd;
+    border-bottom: 1px solid $grey;
 
     h4:first-child {
       margin-top: 0;
@@ -1168,7 +1168,7 @@ tr.turn:hover {
   .paginate {
     float: right;
     padding: 1px 6px;
-    border: 1px solid #eee;
+    border: 1px solid $lightgrey;
     border-radius: 3px;
   }
 
@@ -1182,7 +1182,7 @@ tr.turn:hover {
     h4 {
       padding: 5px 0 5px 10px;
       font-size: 12px;
-      border: 1px solid #CCC;
+      border: 1px solid $grey;
       border-radius: 4px 4px 0 0;
       background-color: #F6F6F6;
     }
@@ -1191,7 +1191,7 @@ tr.turn:hover {
       padding: 7px 10px;
       font-size: 12px;
       background-color: #FFF;
-      border: 1px solid #CCC;
+      border: 1px solid $grey;
       border-top: 0;
       border-radius: 0 0 4px 4px;
     }
@@ -1199,14 +1199,14 @@ tr.turn:hover {
 
   .browse-tag-list {
     background-color: #F6F6F6;
-    border: 1px solid #ddd;
+    border: 1px solid $grey;
     border-radius: 3px;
     font-size: 12px;
     table-layout: fixed;
     border-collapse: separate;
 
     th, td {
-      border-bottom: 1px solid #ddd;
+      border-bottom: 1px solid $grey;
     }
 
     tr:last-child th, tr:last-child td {
@@ -1227,7 +1227,7 @@ tr.turn:hover {
     }
 
     .browse-tag-v {
-      border-left: 1px solid #ddd;
+      border-left: 1px solid $grey;
       background-color: #fff;
     }
 
@@ -1236,7 +1236,7 @@ tr.turn:hover {
       width: 12px;
       height: 12px;
       margin: 4px 0px;
-      border: 1px solid rgba(0, 0, 0, .1); 
+      border: 1px solid rgba(0, 0, 0, .1);
       // add color via inline css on element: background-color: <tag value>;
     }
   }
@@ -1296,7 +1296,7 @@ tr.turn:hover {
     ul {
       li {
         padding: 15px 20px;
-        border-bottom: 1px solid #ddd;
+        border-bottom: 1px solid $grey;
 
         &.query-result {
           cursor: pointer;
@@ -1330,8 +1330,8 @@ tr.turn:hover {
   }
 
   .export_boxy {
-    background: #eee;
-    border: 1px solid #ccc;
+    background: $lightgrey;
+    border: 1px solid $grey;
     border-radius: 3px;
 
     #maxlat { margin-top: -1px; }
@@ -1488,7 +1488,7 @@ tr.turn:hover {
   position: relative;
   width: 45%;
   height: 400px;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
   margin-bottom: $lineheight;
   float: right;
 }
@@ -1590,7 +1590,7 @@ tr.turn:hover {
 
 .activity-block {
   clear: left;
-  border-bottom: 1px solid #ccc;
+  border-bottom: 1px solid $grey;
   padding-bottom: $lineheight;
   float: left;
   h3 {
@@ -1675,7 +1675,7 @@ tr.turn:hover {
   position: relative;
   padding-top: $lineheight;
   padding-bottom: $lineheight/2;
-  border-top: 1px solid #ccc;
+  border-top: 1px solid $grey;
 
   &:first-of-type {
     margin-top: $lineheight/2;
@@ -1716,12 +1716,12 @@ tr.turn:hover {
     position: relative;
     width: 90%;
     height: 400px;
-    border: 1px solid #ccc;
+    border: 1px solid $grey;
     display: none;
     margin-bottom: $lineheight;
   }
   #newcomment {
-    border-top: 1px solid #ccc;
+    border-top: 1px solid $grey;
     padding-top: $lineheight;
     margin-top: $lineheight/2;
   }
@@ -1729,13 +1729,13 @@ tr.turn:hover {
     max-width: 740px;
   }
   .diary-comment {
-    border-top: 1px dashed #ccc;
+    border-top: 1px dashed $grey;
     padding-top: $lineheight/2;
     padding-bottom: $lineheight/2;
     &:first-child {
       margin-top: $lineheight/2;
       padding-top: $lineheight;
-      border-top: 1px solid #ccc;
+      border-top: 1px solid $grey;
     }
     &.deemphasize {
       background-color: #fee;
@@ -1776,7 +1776,7 @@ tr.turn:hover {
 
 .users-terms {
   .legale {
-    border: 1px solid #ccc;
+    border: 1px solid $grey;
     padding: $lineheight;
     margin-bottom: $lineheight;
     overflow: auto;
@@ -1805,7 +1805,7 @@ tr.turn:hover {
   position: relative;
   width: 500px;
   height: 400px;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
 }
 
 #accountForm .user_image {
@@ -1857,17 +1857,17 @@ tr.turn:hover {
 
 .messages {
   width: 100%;
-  border: 1px solid #ddd;
+  border: 1px solid $grey;
 
   input[type="submit"] {
     margin: auto;
   }
   tbody tr {
-    border-top: 1px solid #ccc;
+    border-top: 1px solid $grey;
   }
 
   .inbox-row {
-    background: #f8f8ff;
+    background: $offwhite;
   }
 
   .inbox-row-unread {
@@ -1902,7 +1902,7 @@ tr.turn:hover {
 .info-line {
   margin-bottom: $lineheight;
   padding: $lineheight/4 0px 4px 0px;
-  border-bottom: 1px solid #ccc;
+  border-bottom: 1px solid $grey;
 
   form, form div {
     display: inline;
@@ -2091,7 +2091,7 @@ input[type="password"],
 textarea {
   color: #222;
   background-color: #fff;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
   padding: 2px 5px;
   margin: 0;
   width: 200px;
@@ -2111,7 +2111,7 @@ textarea {
 img.user_image {
   max-width: 100px;
   max-height: 100px;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
   margin-bottom: $lineheight;
   float: left;
   margin-right: $lineheight;
@@ -2120,7 +2120,7 @@ img.user_image {
 img.user_thumbnail {
   max-width: 50px;
   max-height: 50px;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
   margin-right: $lineheight;
 }
 
@@ -2129,7 +2129,7 @@ img.user_thumbnail_tiny {
   height: auto;
   max-width: 25px;
   max-height: 25px;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
 }
 
 /* Rules for geo microformats */
@@ -2159,7 +2159,7 @@ ul.secondary-actions {
     display: block;
     float: left;
     list-style: none;
-    border-left: 1px solid #ccc;
+    border-left: 1px solid $grey;
     padding-left: $lineheight/2;
     margin-right: $lineheight/2;
     &:first-child {
@@ -2316,7 +2316,7 @@ a.button {
 .prose {
   h1, h2 {
     padding-bottom: $lineheight/2;
-    border-bottom: 1px dashed #cccccc;
+    border-bottom: 1px dashed $grey;
     margin-bottom: $lineheight/2;
   }
 
@@ -2334,13 +2334,13 @@ a.button {
 
   code {
     font-size: 13px;
-    background: #e8e8e8;
+    background: $lightgrey;
     padding: 2px 3px;
   }
 
   pre {
     font-size: 13px;
-    background: #e8e8e8;
+    background: $lightgrey;
     padding: 2px 3px;
     white-space: pre-wrap;
 
@@ -2361,7 +2361,7 @@ a.button {
     border-left: $lineheight solid $offwhite;
     padding-left: $lineheight;
     margin: 0;
-    color: #7E7E7E;
+    color: $darkgrey;
   }
 
   ul, ol {
@@ -2434,7 +2434,7 @@ input.richtext_title[type="text"] {
     display: inline-block;
     vertical-align: top;
     margin-left: 15px;
-    background-color: #f8f8ff;
+    background-color: $offwhite;
     padding: $lineheight/2;
     width: 220px;
 
@@ -2443,7 +2443,7 @@ input.richtext_title[type="text"] {
     }
 
     h4.heading, li {
-      border-bottom: 1px solid #ccc;
+      border-bottom: 1px solid $grey;
       margin-bottom: $lineheight/4;
       padding-bottom: $lineheight/4;
     }
@@ -2472,7 +2472,7 @@ input.richtext_title[type="text"] {
 
 .note_list {
   tr.creator {
-    background-color: #eeeeee;
+    background-color: $lightgrey;
   }
 
   td {
@@ -2534,7 +2534,7 @@ input.richtext_title[type="text"] {
   margin: 0;
   list-style: none;
   background-color: #ffffff;
-  border: 1px solid #ccc;
+  border: 1px solid $grey;
   border-radius: 0 3px 3px;
   *border-right-width: 2px;
   *border-bottom-width: 2px;
@@ -2553,7 +2553,7 @@ input.richtext_title[type="text"] {
   margin: 9px 1px;
   *margin: -5px 0 5px;
   overflow: hidden;
-  background-color: #e5e5e5;
+  background-color: $lightgrey;
   border-bottom: 1px solid #ffffff;
 }
 
@@ -2588,7 +2588,7 @@ input.richtext_title[type="text"] {
 .dropdown-menu > .disabled > a,
 .dropdown-menu > .disabled > a:hover,
 .dropdown-menu > .disabled > a:focus {
-  color: #999999;
+  color: $darkgrey;
 }
 
 .dropdown-menu > .disabled > a:hover,
@@ -2701,8 +2701,7 @@ input.richtext_title[type="text"] {
 }
 
 .site-about #content {
-  //background-color: #000;
-  background-color: #eee;
+  background-color: $lightgrey;
   background-position: 50% 50%;
   background-repeat: no-repeat;
   background-size: cover;
@@ -2716,7 +2715,7 @@ input.richtext_title[type="text"] {
     right: 20px;
     bottom: 60px;
     text-shadow: #000 0px 1px 5px;
-    color: #eee;
+    color: $lightgrey;
     opacity: 0.8;
     display: none;
   }
@@ -2776,7 +2775,7 @@ input.richtext_title[type="text"] {
       font-weight: 300;
       font-size: 34px;
       span {
-        color: #76c551;
+        color: $vibrant-green;
       }
     }
 
@@ -2790,7 +2789,7 @@ input.richtext_title[type="text"] {
       background-repeat: no-repeat;
       background-image: image-url('about/osm.png');
       background-size: cover;
-      background-color: #76c551;
+      background-color: $vibrant-green;
     }
 
     .byosm {
@@ -2804,7 +2803,7 @@ input.richtext_title[type="text"] {
       font: 500 20px/24px Helvetica, Arial, sans-serif;
       white-space: nowrap;
       color: #fff;
-      background: #76c551;
+      background: $vibrant-green;
     }
 
     .byosm span {
@@ -2861,7 +2860,7 @@ input.richtext_title[type="text"] {
 }
 
 .read-reports {
-  background: #eee;
+  background: $lightgrey;
   opacity: 0.7;
 }
 
index 1cae5ba2f557df0ee0236ab58063e4cd7c51cd4f..90fbd74b7d035c65530e1f66dd15427d5f751bc4 100644 (file)
@@ -2,10 +2,11 @@
 $lineheight: 20px;
 $typeheight: 14px;
 
-$offwhite: #f4f4ff;
+$offwhite: #f8f8ff;
 $blue: #7092FF;
 $lightblue: #B8C5F0;
 $green: #7ebc6f;
+$vibrant-green: #76c551;
 $grey: #CCC;
 $red: red;
 $lightgrey: #EEE;
index 4dbc16fd287dd7a88f2f90703ecbdb19e4d7e53a..db8982d43278237df950f2889b5078b84aef69f2 100644 (file)
@@ -906,21 +906,21 @@ module Api
     # Alternative SQL queries for getway/whichways
 
     def sql_find_ways_in_area(bbox)
-      sql = <<-SQL
-      SELECT DISTINCT current_ways.id AS wayid,current_ways.version AS version
-        FROM current_way_nodes
-      INNER JOIN current_nodes ON current_nodes.id=current_way_nodes.node_id
-      INNER JOIN current_ways  ON current_ways.id =current_way_nodes.id
-         WHERE current_nodes.visible=TRUE
-         AND current_ways.visible=TRUE
-         AND #{OSM.sql_for_area(bbox, 'current_nodes.')}
+      sql = <<~SQL
+        SELECT DISTINCT current_ways.id AS wayid,current_ways.version AS version
+          FROM current_way_nodes
+        INNER JOIN current_nodes ON current_nodes.id=current_way_nodes.node_id
+        INNER JOIN current_ways  ON current_ways.id =current_way_nodes.id
+           WHERE current_nodes.visible=TRUE
+           AND current_ways.visible=TRUE
+           AND #{OSM.sql_for_area(bbox, 'current_nodes.')}
       SQL
       ActiveRecord::Base.connection.select_all(sql).collect { |a| [a["wayid"].to_i, a["version"].to_i] }
     end
 
     def sql_find_pois_in_area(bbox)
       pois = []
-      sql = <<-SQL
+      sql = <<~SQL
         SELECT current_nodes.id,current_nodes.latitude*0.0000001 AS lat,current_nodes.longitude*0.0000001 AS lon,current_nodes.version
         FROM current_nodes
          LEFT OUTER JOIN current_way_nodes cwn ON cwn.node_id=current_nodes.id
@@ -941,7 +941,7 @@ module Api
     def sql_find_relations_in_area_and_ways(bbox, way_ids)
       # ** It would be more Potlatchy to get relations for nodes within ways
       #    during 'getway', not here
-      sql = <<-SQL
+      sql = <<~SQL
         SELECT DISTINCT cr.id AS relid,cr.version AS version
         FROM current_relations cr
         INNER JOIN current_relation_members crm ON crm.id=cr.id
@@ -949,13 +949,13 @@ module Api
          WHERE #{OSM.sql_for_area(bbox, 'cn.')}
       SQL
       unless way_ids.empty?
-        sql += <<-SQL
-         UNION
-          SELECT DISTINCT cr.id AS relid,cr.version AS version
-          FROM current_relations cr
-          INNER JOIN current_relation_members crm ON crm.id=cr.id
-           WHERE crm.member_type='Way'
-           AND crm.member_id IN (#{way_ids.join(',')})
+        sql += <<~SQL
+          UNION
+           SELECT DISTINCT cr.id AS relid,cr.version AS version
+           FROM current_relations cr
+           INNER JOIN current_relation_members crm ON crm.id=cr.id
+            WHERE crm.member_type='Way'
+            AND crm.member_id IN (#{way_ids.join(',')})
         SQL
       end
       ActiveRecord::Base.connection.select_all(sql).collect { |a| [a["relid"].to_i, a["version"].to_i] }
@@ -963,7 +963,7 @@ module Api
 
     def sql_get_nodes_in_way(wayid)
       points = []
-      sql = <<-SQL
+      sql = <<~SQL
         SELECT latitude*0.0000001 AS lat,longitude*0.0000001 AS lon,current_nodes.id,current_nodes.version
         FROM current_way_nodes,current_nodes
          WHERE current_way_nodes.id=#{wayid.to_i}
index 56dba30b875d81d9f37eab7654c323167ee61ae9..00045efc08f992058930b2d18417c29fcc232b16 100644 (file)
@@ -3,11 +3,13 @@
 <% end %>
 
 <table class="messages" width="100%">
-  <tr>
-    <th width="25%"><%= t ".post" %></th>
-    <th width="25%"><%= t ".when" %></th>
-    <th width="50%"><%= t ".comment" %></th>
-  </tr>
+  <thead>
+    <tr>
+      <th width="25%"><%= t ".post" %></th>
+      <th width="25%"><%= t ".when" %></th>
+      <th width="50%"><%= t ".comment" %></th>
+    </tr>
+  </thead>
   <% @comments.each do |comment| -%>
   <% cl = cycle("table0", "table1") %>
   <tr class="<%= cl %><%= " deemphasize" unless comment.visible? %>">
index c7015578b24ed575ba913cfad7cd4567f990c755..266349b30ab9f5d8c916f0993746529b12bd59e4 100644 (file)
@@ -6,14 +6,16 @@
 <%= render :partial => "notes_paging_nav" %>
 
 <table class="note_list">
-  <tr>
-    <th></th>
-    <th><%= t ".id" %></th>
-    <th><%= t ".creator" %></th>
-    <th><%= t ".description" %></th>
-    <th><%= t ".created_at" %></th>
-    <th><%= t ".last_changed" %></th>
-  </tr>
+  <thead>
+    <tr>
+      <th></th>
+      <th><%= t ".id" %></th>
+      <th><%= t ".creator" %></th>
+      <th><%= t ".description" %></th>
+      <th><%= t ".created_at" %></th>
+      <th><%= t ".last_changed" %></th>
+    </tr>
+  </thead>
 <% @notes.each do |note| -%>
   <tr<% if note.author == @user %> class="creator"<% end %>>
     <td>
index f1dc4afcd67e829e5c75ca8a5d37010d695ff995..54bb4f9f6f4133d17341adc6f0751f7810fe30ab 100644 (file)
@@ -6,11 +6,13 @@
 <h3><%= t ".my_tokens" %></h3>
 <p><%= t ".list_tokens" %></p>
 <table>
-  <tr>
-    <th><%= t ".application" %></th>
-    <th><%= t ".issued_at" %></th>
-    <th>&nbsp;</th>
-  </tr>
+  <thead>
+    <tr>
+      <th><%= t ".application" %></th>
+      <th><%= t ".issued_at" %></th>
+      <th>&nbsp;</th>
+    </tr>
+  </thead>
   <% @tokens.each do |token| %>
     <tr>
       <td><%= link_to token.client_application.name, token.client_application.url %></td>
index 2f7f54a19a2638eb4c017f55f3a1b62c060559de..03ee7ae8e0163f61b1374b602c02a3dd373e080b 100644 (file)
@@ -1,20 +1,22 @@
 <table id="block_list" cellpadding="3">
-  <tr>
-    <% if show_user_name %>
-    <th><%= t ".display_name" %></th>
-    <% end %>
-    <% if show_creator_name %>
-    <th><%= t ".creator_name" %></th>
-    <% end %>
-    <th><%= t ".reason" %></th>
-    <th><%= t ".status" %></th>
-    <th><%= t ".revoker_name" %></th>
-    <th></th>
-    <th></th>
-    <% if show_revoke_link %>
-    <th></th>
-    <% end %>
-  </tr>
+  <thead>
+    <tr>
+      <% if show_user_name %>
+      <th><%= t ".display_name" %></th>
+      <% end %>
+      <% if show_creator_name %>
+      <th><%= t ".creator_name" %></th>
+      <% end %>
+      <th><%= t ".reason" %></th>
+      <th><%= t ".status" %></th>
+      <th><%= t ".revoker_name" %></th>
+      <th></th>
+      <th></th>
+      <% if show_revoke_link %>
+      <th></th>
+      <% end %>
+    </tr>
+  </thead>
   <%= render :partial => "block", :locals => { :show_revoke_link => show_revoke_link, :show_user_name => show_user_name, :show_creator_name => show_creator_name }, :collection => @user_blocks %>
 </table>
 
index f1ef5b5380f4460e84b31676b97a3b444c740bf6..01b7c60aa11bbbae82a013d8f7ae1a63c4b30fb6 100644 (file)
     <%= hidden_field_tag :ip, params[:ip] if params[:ip] %>
     <%= hidden_field_tag :page, params[:page] if params[:page] %>
     <table id="user_list">
-      <tr>
-        <td colspan="2">
-          <%= t ".showing",
-                :page => @user_pages.current_page.number,
-                :first_item => @user_pages.current_page.first_item,
-                :last_item => @user_pages.current_page.last_item,
-                :items => @user_pages.item_count,
-                :count => @user_pages.current_page.last_item - @user_pages.current_page.first_item + 1 %>
-          <% if @user_pages.page_count > 1 %>
-          | <%= raw pagination_links_each(@user_pages, {}) { |n| link_to n, @params.merge(:page => n) } %>
-          <% end %>
-        </td>
-        <td>
-          <%= check_box_tag "user_all", "1", false %>
-        </td>
-      </tr>
+      <thead>
+        <tr>
+          <td colspan="2">
+            <%= t ".showing",
+                  :page => @user_pages.current_page.number,
+                  :first_item => @user_pages.current_page.first_item,
+                  :last_item => @user_pages.current_page.last_item,
+                  :items => @user_pages.item_count,
+                  :count => @user_pages.current_page.last_item - @user_pages.current_page.first_item + 1 %>
+            <% if @user_pages.page_count > 1 %>
+            | <%= raw pagination_links_each(@user_pages, {}) { |n| link_to n, @params.merge(:page => n) } %>
+            <% end %>
+          </td>
+          <td>
+            <%= check_box_tag "user_all", "1", false %>
+          </td>
+        </tr>
+      </thead>
       <%= render @users %>
     </table>
 
index be6b84b47aa76e52b3fcbd3c0ff327d628797d14..7579ffee794cbc56d4dd4723bd9eadab9960290a 100644 (file)
@@ -282,7 +282,7 @@ module Api
 
       # simple diff to change a node, way and relation by removing
       # their tags
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset_id}' version='1'/>
@@ -298,7 +298,7 @@ module Api
           </relation>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset_id }, :body => diff
@@ -311,7 +311,7 @@ CHANGESET
 
       # simple diff to change a node, way and relation by removing
       # their tags
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset_id}' version='1'/>
@@ -327,7 +327,7 @@ CHANGESET
           </relation>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset_id }, :body => diff
@@ -340,7 +340,7 @@ CHANGESET
 
       # simple diff to change a node, way and relation by removing
       # their tags
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset_id}' version='1'/>
@@ -356,7 +356,7 @@ CHANGESET
           </relation>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset_id }, :body => diff
@@ -381,7 +381,7 @@ CHANGESET
       basic_authorization user.email, "test"
 
       # simple diff to create a node way and relation using placeholders
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id='-1' lon='0' lat='0' changeset='#{changeset.id}'>
@@ -400,7 +400,7 @@ CHANGESET
           </relation>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -529,7 +529,7 @@ CHANGESET
       changeset_id = @response.body.to_i
 
       # upload some widely-spaced nodes, spiralling positive and negative
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id='-1' lon='-20' lat='-10' changeset='#{changeset_id}'/>
@@ -552,7 +552,7 @@ CHANGESET
           <node id='-18' lon='179.9'  lat='89.9' changeset='#{changeset_id}'/>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it, which used to cause an error like "PGError: ERROR:
       # integer out of range" (bug #2152). but shouldn't any more.
@@ -683,7 +683,7 @@ CHANGESET
       basic_authorization changeset.user.email, "test"
 
       # simple diff to create a node way and relation using placeholders
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id='-1' lon='0' lat='0' changeset='#{changeset.id}'>
@@ -691,7 +691,7 @@ CHANGESET
           </node>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -713,7 +713,7 @@ CHANGESET
       basic_authorization changeset.user.email, "test"
 
       # simple diff to create a node way and relation using placeholders
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id='-1' lon='0' lat='0' changeset='#{changeset.id}'>
@@ -733,7 +733,7 @@ CHANGESET
           </relation>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -772,7 +772,7 @@ CHANGESET
       basic_authorization changeset.user.email, "test"
 
       # simple diff to create a node way and relation using placeholders
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
@@ -794,7 +794,7 @@ CHANGESET
           </node>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -817,7 +817,7 @@ CHANGESET
       # change the location of a node multiple times, each time referencing
       # the last version. doesn't this depend on version numbers being
       # sequential?
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
@@ -830,7 +830,7 @@ CHANGESET
           <node id='#{node.id}' lon='9' lat='9' changeset='#{changeset.id}' version='8'/>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -852,14 +852,14 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
           <node id='#{node.id}' lon='1' lat='1' changeset='#{changeset.id}' version='1'/>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -874,13 +874,13 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
          <node id='1' lon='1' lat='1' changeset='#{changeset.id}'/>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -895,13 +895,13 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
           <ping>
            <node id='1' lon='1' lat='1' changeset='#{changeset.id}' />
           </ping>
         </osmChange>
-CHANGESET
+      CHANGESET
       post :upload, :params => { :id => changeset.id }, :body => diff
       assert_response :bad_request, "Shouldn't be able to upload a diff with the action ping"
       assert_equal @response.body, "Unknown action ping, choices are create, modify, delete"
@@ -920,7 +920,7 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify><node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}'
           version='1'></node>
@@ -932,7 +932,7 @@ CHANGESET
            <member type='relation' role='some' ref='#{other_relation.id}'/>
           </relation>
          </modify></osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -955,7 +955,7 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id='-1' lon='0' lat='0' changeset='#{changeset.id}'>
@@ -969,7 +969,7 @@ CHANGESET
           <node id='-1' lon='2' lat='2' changeset='#{changeset.id}' version='2'/>
          </delete>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -989,7 +989,7 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id='-1' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
@@ -997,7 +997,7 @@ CHANGESET
           <node id='-1' lon='2' lat='2' changeset='#{changeset.id}' version='2'/>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -1014,7 +1014,7 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id="-1" lon="0" lat="0" changeset="#{changeset.id}" version="1"/>
@@ -1028,7 +1028,7 @@ CHANGESET
           </way>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -1037,7 +1037,7 @@ CHANGESET
       assert_equal "Placeholder node not found for reference -4 in way -1", @response.body
 
       # the same again, but this time use an existing way
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id="-1" lon="0" lat="0" changeset="#{changeset.id}" version="1"/>
@@ -1051,7 +1051,7 @@ CHANGESET
           </way>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -1069,7 +1069,7 @@ CHANGESET
 
       basic_authorization changeset.user.email, "test"
 
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id="-1" lon="0" lat="0" changeset="#{changeset.id}" version="1"/>
@@ -1083,7 +1083,7 @@ CHANGESET
           </relation>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -1092,7 +1092,7 @@ CHANGESET
       assert_equal "Placeholder Node not found for reference -4 in relation -1.", @response.body
 
       # the same again, but this time use an existing relation
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <create>
           <node id="-1" lon="0" lat="0" changeset="#{changeset.id}" version="1"/>
@@ -1106,7 +1106,7 @@ CHANGESET
           </relation>
          </create>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset.id }, :body => diff
@@ -1266,7 +1266,7 @@ CHANGESET
       changeset_id = @response.body.to_i
 
       # add a diff to it
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <modify>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset_id}' version='1'/>
@@ -1279,7 +1279,7 @@ CHANGESET
           <node id='#{node.id}' lon='9' lat='9' changeset='#{changeset_id}' version='8'/>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset_id }, :body => diff
@@ -1310,7 +1310,7 @@ CHANGESET
       assert_response :success
       changeset_id = @response.body.to_i
 
-      diff = <<OSMFILE.strip_heredoc
+      diff = <<~OSMFILE
         <osmChange version="0.6" generator="JOSM">
         <create version="0.6" generator="JOSM">
           <node id='-1' visible='true' changeset='#{changeset_id}' lat='51.49619982187321' lon='-0.18722061869438314' />
@@ -1337,7 +1337,7 @@ CHANGESET
           </way>
         </create>
         </osmChange>
-OSMFILE
+      OSMFILE
 
       # upload it
       post :upload, :params => { :id => changeset_id }, :body => diff
@@ -1372,7 +1372,7 @@ OSMFILE
       changeset_id = @response.body.to_i
 
       # add a diff to it
-      diff = <<CHANGESET.strip_heredoc
+      diff = <<~CHANGESET
         <osmChange>
          <delete>
           <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset_id}' version='1'/>
@@ -1392,7 +1392,7 @@ OSMFILE
           </way>
          </modify>
         </osmChange>
-CHANGESET
+      CHANGESET
 
       # upload it
       post :upload, :params => { :id => changeset_id }, :body => diff
index 1b54e4863c52fe6024bd6a0eb1079012b40e1c24..b7c17a176485f3a448539e16cc23a3898b7c13a4 100644 (file)
@@ -737,7 +737,7 @@ module Api
 
       basic_authorization user.email, "test"
 
-      doc_str = <<OSM.strip_heredoc
+      doc_str = <<~OSM
         <osm>
          <relation changeset='#{changeset.id}'>
           <member ref='#{node1.id}' type='node' role='first'/>
@@ -746,7 +746,7 @@ module Api
           <member ref='#{way2.id}' type='way' role='fourth'/>
          </relation>
         </osm>
-OSM
+      OSM
       doc = XML::Parser.string(doc_str).parse
 
       put :create, :body => doc.to_s
@@ -795,7 +795,7 @@ OSM
       node1 = create(:node)
       node2 = create(:node)
 
-      doc_str = <<OSM.strip_heredoc
+      doc_str = <<~OSM
         <osm>
          <relation changeset='#{changeset.id}'>
           <member ref='#{node1.id}' type='node' role='forward'/>
@@ -804,7 +804,7 @@ OSM
           <member ref='#{node2.id}' type='node' role='forward'/>
          </relation>
         </osm>
-OSM
+      OSM
       doc = XML::Parser.string(doc_str).parse
 
       ## First try with the private user
@@ -836,7 +836,7 @@ OSM
       node3 = create(:node)
       node4 = create(:node)
 
-      doc_str = <<OSM.strip_heredoc
+      doc_str = <<~OSM
         <osm>
          <relation changeset='#{changeset.id}'>
           <member ref='#{node1.id}' type='node' role='forward'/>
@@ -845,7 +845,7 @@ OSM
           <member ref='#{node2.id}' type='node' role='forward'/>
          </relation>
         </osm>
-OSM
+      OSM
       doc = XML::Parser.string(doc_str).parse
       basic_authorization user.email, "test"
 
index 6ea875a9d482b8f911b07497f299b21c166fead8..55db373d00963dfb4655cd636860f8d955978076 100644 (file)
@@ -16,7 +16,7 @@ class CompressedRequestsTest < ActionDispatch::IntegrationTest
 
     # simple diff to change a node, way and relation by removing
     # their tags
-    diff = <<CHANGESET.strip_heredoc
+    diff = <<~CHANGESET
       <osmChange>
        <modify>
         <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
@@ -32,7 +32,7 @@ class CompressedRequestsTest < ActionDispatch::IntegrationTest
         </relation>
        </modify>
       </osmChange>
-CHANGESET
+    CHANGESET
 
     # upload it
     post "/api/0.6/changeset/#{changeset.id}/upload",
@@ -65,7 +65,7 @@ CHANGESET
 
     # simple diff to change a node, way and relation by removing
     # their tags
-    diff = <<CHANGESET.strip_heredoc
+    diff = <<~CHANGESET
       <osmChange>
        <modify>
         <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
@@ -81,7 +81,7 @@ CHANGESET
         </relation>
        </modify>
       </osmChange>
-CHANGESET
+    CHANGESET
 
     # upload it
     post "/api/0.6/changeset/#{changeset.id}/upload",
@@ -115,7 +115,7 @@ CHANGESET
 
     # simple diff to change a node, way and relation by removing
     # their tags
-    diff = <<CHANGESET.strip_heredoc
+    diff = <<~CHANGESET
       <osmChange>
        <modify>
         <node id='#{node.id}' lon='0' lat='0' changeset='#{changeset.id}' version='1'/>
@@ -131,7 +131,7 @@ CHANGESET
         </relation>
        </modify>
       </osmChange>
-CHANGESET
+    CHANGESET
 
     # upload it
     post "/api/0.6/changeset/#{changeset.id}/upload",