Site cleanup
authorSaman Bemel-Benrud <samanpwbb@gmail.com>
Thu, 3 Jan 2013 11:20:32 +0000 (11:20 +0000)
committerTom Hughes <tom@compton.nu>
Mon, 14 Jan 2013 21:27:08 +0000 (21:27 +0000)
I set out to do a quick and dirty typography overhaul to make things
more consistent and a bit cleaner, but I kept running into things I
didn't like, so this lead me down something of a rabbit hole of design
tweaks to the OSM site.

Goals here are to have better content hierarchy, better vertical
rhythm, more consistent UI, cleaner markup with less tables, all while
keeping the basics pretty much intact. There are a lot of things I
didn't touch even though they need to be updated (lots of tables where
stuff shouldn't be tables, mostly).

Basic overview of changes:

I added a new persistent header that helps segment pages. It's now
a lot easier to know what you're looking at. The header has a page
title, a description, plus a submenu of actions.

There is now a pattern of 20px/10px margins and padding for more
rhythm and breathing room throughout the site.

I know there are other problems here or things I've missed - would
love another set of eyes to look over this! I am still getting comfortable
working on the site - it's my first time ever digging into a ruby or rails
so I'm not familiar with the templating language yet.

124 files changed:
app/assets/images/RSS.gif [deleted file]
app/assets/images/RSS.png [new file with mode: 0644]
app/assets/images/RSS.svg [new file with mode: 0644]
app/assets/images/color-palette.svg [new file with mode: 0644]
app/assets/images/new.png
app/assets/images/new.svg [new file with mode: 0644]
app/assets/images/notice.png [new file with mode: 0644]
app/assets/images/notice.svg [new file with mode: 0644]
app/assets/images/roles/administrator.png
app/assets/images/roles/administrator.svg [new file with mode: 0644]
app/assets/images/roles/blank_administrator.png
app/assets/images/roles/blank_administrator.svg [new file with mode: 0644]
app/assets/images/roles/blank_moderator.png
app/assets/images/roles/blank_moderator.svg [new file with mode: 0644]
app/assets/images/roles/moderator.png
app/assets/images/roles/moderator.svg [new file with mode: 0644]
app/assets/images/users/images/user-icons.svg [new file with mode: 0644]
app/assets/javascripts/changeset.js
app/assets/javascripts/templates/browse/feature.jst.ejs
app/assets/javascripts/templates/browse/feature_history.jst.ejs
app/assets/javascripts/templates/browse/feature_list.jst.ejs
app/assets/stylesheets/common.css.scss
app/assets/stylesheets/large.css
app/assets/stylesheets/small-rtl.css
app/assets/stylesheets/small.css.scss
app/controllers/changeset_controller.rb
app/controllers/diary_entry_controller.rb
app/helpers/application_helper.rb
app/views/browse/_changeset_details.html.erb
app/views/browse/_common_details.html.erb
app/views/browse/_containing_relation.html.erb
app/views/browse/_map.html.erb
app/views/browse/_navigation.html.erb
app/views/browse/_node_details.html.erb
app/views/browse/_paging_nav.html.erb
app/views/browse/_relation_details.html.erb
app/views/browse/_relation_member.html.erb
app/views/browse/_tag.html.erb
app/views/browse/_tag_details.html.erb
app/views/browse/_way_details.html.erb
app/views/browse/changeset.html.erb
app/views/browse/node.html.erb
app/views/browse/node_history.html.erb
app/views/browse/relation.html.erb
app/views/browse/relation_history.html.erb
app/views/browse/start.html.erb
app/views/browse/way.html.erb
app/views/browse/way_history.html.erb
app/views/changeset/_changeset.html.erb
app/views/changeset/_changeset_paging_nav.html.erb
app/views/changeset/_changesets.html.erb
app/views/changeset/list.html.erb
app/views/changeset/timeout.html.erb
app/views/diary_entry/_diary_comment.html.erb
app/views/diary_entry/_diary_entry.html.erb
app/views/diary_entry/_diary_list_entry.html.erb
app/views/diary_entry/comments.html.erb
app/views/diary_entry/edit.html.erb
app/views/diary_entry/list.html.erb
app/views/diary_entry/no_such_entry.html.erb
app/views/diary_entry/view.html.erb
app/views/export/start.html.erb
app/views/geocoder/description.html.erb
app/views/geocoder/results.html.erb
app/views/geocoder/search.html.erb
app/views/layouts/_flash.html.erb
app/views/layouts/site.html.erb
app/views/message/_message_summary.html.erb
app/views/message/_sent_message_summary.html.erb
app/views/message/inbox.html.erb
app/views/message/new.html.erb
app/views/message/no_such_message.html.erb
app/views/message/outbox.html.erb
app/views/message/read.html.erb
app/views/oauth/authorize.html.erb
app/views/oauth/authorize_failure.html.erb
app/views/oauth/authorize_success.html.erb
app/views/oauth_clients/edit.html.erb
app/views/oauth_clients/index.html.erb
app/views/oauth_clients/new.html.erb
app/views/oauth_clients/show.html.erb
app/views/redactions/edit.html.erb
app/views/redactions/index.html.erb
app/views/redactions/new.html.erb
app/views/redactions/show.html.erb
app/views/site/_home_link.html.erb
app/views/site/_sidebar.html.erb
app/views/site/copyright.html.erb
app/views/trace/_trace.html.erb
app/views/trace/_trace_optionals.html.erb
app/views/trace/create.html.erb
app/views/trace/edit.html.erb
app/views/trace/list.html.erb
app/views/trace/offline.html.erb
app/views/trace/view.html.erb
app/views/user/_contact.html.erb
app/views/user/account.html.erb
app/views/user/blocked.html.erb
app/views/user/confirm.html.erb
app/views/user/confirm_email.html.erb
app/views/user/list.html.erb
app/views/user/login.html.erb
app/views/user/logout.html.erb
app/views/user/lost_password.html.erb
app/views/user/make_friend.html.erb
app/views/user/new.html.erb
app/views/user/no_such_user.html.erb
app/views/user/remove_friend.html.erb
app/views/user/reset_password.html.erb
app/views/user/save.html.erb
app/views/user/suspended.html.erb
app/views/user/terms.html.erb
app/views/user/view.html.erb
app/views/user_blocks/_blocks.html.erb
app/views/user_blocks/blocks_by.html.erb
app/views/user_blocks/blocks_on.html.erb
app/views/user_blocks/edit.html.erb
app/views/user_blocks/index.html.erb
app/views/user_blocks/new.html.erb
app/views/user_blocks/revoke.html.erb
app/views/user_blocks/show.html.erb
config/locales/en.yml
db/structure.sql
test/functional/browse_controller_test.rb

diff --git a/app/assets/images/RSS.gif b/app/assets/images/RSS.gif
deleted file mode 100644 (file)
index b0e4adf..0000000
Binary files a/app/assets/images/RSS.gif and /dev/null differ
diff --git a/app/assets/images/RSS.png b/app/assets/images/RSS.png
new file mode 100644 (file)
index 0000000..4838e5a
Binary files /dev/null and b/app/assets/images/RSS.png differ
diff --git a/app/assets/images/RSS.svg b/app/assets/images/RSS.svg
new file mode 100644 (file)
index 0000000..bd2919e
--- /dev/null
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg7082"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="16"
+   height="16"
+   sodipodi:docname="RSS.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/RSS.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata7088">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs7086" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1182"
+     inkscape:window-height="873"
+     id="namedview7084"
+     showgrid="false"
+     inkscape:zoom="16"
+     inkscape:cx="7.6632237"
+     inkscape:cy="8.8893528"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg7082"
+     inkscape:snap-nodes="true"
+     inkscape:object-paths="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid7111"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true"
+       spacingx="0.5px"
+       spacingy="0.5px" />
+  </sodipodi:namedview>
+  <g
+     id="g8341"
+     transform="translate(31,0)">
+    <path
+       style="color:#000000;fill:#f69e42;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 14 C 0 15.108 0.892 16 2 16 L 14 16 C 15.108 16 16 15.108 16 14 L 16 2 C 16 0.892 15.108 0 14 0 L 2 0 z M 4 3 L 4.5 3 C 9.5 3 13 6.5 13 11.5 L 12.96875 12 L 11 12 L 11 11.5 C 11 8 8 5 4.5 5 L 4 5 L 4 3.5 L 4 3 z M 4 6.5 L 4.5 6.5 C 7 6.5 9.5 9 9.5 11.5 L 9.5 12 L 7.5 12 L 7.5 11.5 C 7.5 10 6 8.5 4.5 8.5 L 4 8.5 L 4 6.5 z M 4.5 10 C 5.328428 10 6 10.671573 6 11.5 C 6 12.328428 5.328428 13 4.5 13 C 3.671572 13 3 12.328428 3 11.5 C 3 10.671573 3.671572 10 4.5 10 z "
+       transform="translate(-31,0)"
+       id="rect7131" />
+  </g>
+  <path
+     style="color:#000000;fill:#f69e42;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="m -18,-60 c -1.108,0 -2,0.892 -2,2 l 0,12 c 0,1.108 0.892,2 2,2 l 12,0 c 1.108,0 2,-0.892 2,-2 l 0,-12 c 0,-1.108 -0.892,-2 -2,-2 l -12,0 z m 3.75,2.1875 c 4.10919,0.731197 7.331303,3.953309 8.0625,8.0625 l -1.90625,0.4375 c -0.554215,-3.370687 -3.223063,-6.039535 -6.59375,-6.59375 l 0.4375,-1.90625 z m -0.875,3.875 c 2.621108,0.378627 4.683873,2.441391 5.0625,5.0625 l -2,0.4375 c -0.203763,-1.856557 -1.643443,-3.296237 -3.5,-3.5 l 0.4375,-2 z M -15.5,-50 c 0.828427,0 1.5,0.671573 1.5,1.5 0,0.828427 -0.671573,1.5 -1.5,1.5 -0.828427,0 -1.5,-0.671573 -1.5,-1.5 0,-0.828427 0.671573,-1.5 1.5,-1.5 z"
+     id="rect7131-9"
+     inkscape:connector-curvature="0" />
+  <g
+     id="g8281"
+     transform="translate(0.5,-0.5)" />
+</svg>
diff --git a/app/assets/images/color-palette.svg b/app/assets/images/color-palette.svg
new file mode 100644 (file)
index 0000000..329288e
--- /dev/null
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="744.09448819"
+   height="1052.3622047"
+   id="svg5480"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   sodipodi:docname="color-palette.svg">
+  <defs
+     id="defs5482" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="2"
+     inkscape:cx="157.80341"
+     inkscape:cy="934.71289"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     inkscape:window-width="980"
+     inkscape:window-height="661"
+     inkscape:window-x="806"
+     inkscape:window-y="270"
+     inkscape:window-maximized="0"
+     inkscape:snap-nodes="false"
+     inkscape:snap-bbox="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid5488" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata5485">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <rect
+       style="color:#000000;fill:#222222;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect5490"
+       width="90"
+       height="90"
+       x="20"
+       y="42.362183"
+       rx="0"
+       ry="0" />
+    <rect
+       style="color:#000000;fill:#1313ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect3924"
+       width="40"
+       height="40"
+       x="120"
+       y="42.362183"
+       rx="0"
+       ry="0" />
+    <rect
+       ry="0"
+       rx="0"
+       y="42.362183"
+       x="170"
+       height="40"
+       width="40"
+       id="rect5510"
+       style="color:#000000;fill:#9ed485;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       style="color:#000000;fill:#cbeea7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6020"
+       width="40"
+       height="40"
+       x="220"
+       y="42.362183"
+       rx="0"
+       ry="0" />
+    <rect
+       style="color:#000000;fill:#faba75;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect6060"
+       width="40"
+       height="40"
+       x="220"
+       y="92.362183"
+       rx="0"
+       ry="0" />
+    <rect
+       ry="0"
+       rx="0"
+       y="142.36218"
+       x="170"
+       height="40"
+       width="40"
+       id="rect6062"
+       style="color:#000000;fill:#ff7070;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       ry="0"
+       rx="0"
+       y="142.86218"
+       x="20.500002"
+       height="89"
+       width="89"
+       id="rect6068"
+       style="color:#000000;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#cccccc;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       ry="0"
+       rx="0"
+       y="92.362183"
+       x="170"
+       height="40"
+       width="40"
+       id="rect7710"
+       style="color:#000000;fill:#f69e42;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       ry="0"
+       rx="0"
+       y="92.362183"
+       x="120"
+       height="40"
+       width="40"
+       id="rect6617"
+       style="color:#000000;fill:#d7d7ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <rect
+       style="color:#000000;fill:#f4f4ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       id="rect7127"
+       width="40"
+       height="40"
+       x="120"
+       y="142.36218"
+       rx="0"
+       ry="0" />
+  </g>
+</svg>
index 202e10e..d6355e0 100644 (file)
Binary files a/app/assets/images/new.png and b/app/assets/images/new.png differ
diff --git a/app/assets/images/new.svg b/app/assets/images/new.svg
new file mode 100644 (file)
index 0000000..ef65650
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3864"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="16"
+   height="16"
+   sodipodi:docname="new.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/new.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata3870">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3868" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1405"
+     inkscape:window-height="1009"
+     id="namedview3866"
+     showgrid="false"
+     inkscape:zoom="1"
+     inkscape:cx="11.60995"
+     inkscape:cy="5.4274399"
+     inkscape:window-x="190"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg3864"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3920"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <path
+     style="color:#000000;fill:#1313ff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 2,0 C 0.892,0 0,0.892 0,2 l 0,12 c 0,1.108 0.892,2 2,2 l 12,0 c 1.108,0 2,-0.892 2,-2 L 16,2 C 16,0.892 15.108,0 14,0 z M 9,4 9,7 12,7 12,9 9,9 9,12 7,12 7,9 4,9 4,7 7,7 7,4 z"
+     id="rect3924"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="sssssssssccccccccccccc" />
+</svg>
diff --git a/app/assets/images/notice.png b/app/assets/images/notice.png
new file mode 100644 (file)
index 0000000..a2698d7
Binary files /dev/null and b/app/assets/images/notice.png differ
diff --git a/app/assets/images/notice.svg b/app/assets/images/notice.svg
new file mode 100644 (file)
index 0000000..cb779ce
--- /dev/null
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg3864"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="16"
+   height="16"
+   sodipodi:docname="notice.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/notice.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata3870">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs3868" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1405"
+     inkscape:window-height="1009"
+     id="namedview3866"
+     showgrid="false"
+     inkscape:zoom="21.536424"
+     inkscape:cx="15.375"
+     inkscape:cy="1.125"
+     inkscape:window-x="326"
+     inkscape:window-y="43"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg3864"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:snap-bbox="true"
+     inkscape:snap-nodes="true">
+    <inkscape:grid
+       type="xygrid"
+       id="grid3920"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+  </sodipodi:namedview>
+  <path
+     style="color:#000000;fill:#333333;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 2 0 C 0.892 0 0 0.892 0 2 L 0 14 C 0 15.108 0.892 16 2 16 L 14 16 C 15.108 16 16 15.108 16 14 L 16 2 C 16 0.892 15.108 0 14 0 L 2 0 z M 7 3 L 9 3 L 9 8 L 7 8 L 7 3 z M 7 10 L 9 10 L 9 12 L 7 12 L 7 10 z "
+     id="rect7131" />
+</svg>
index b566dec..ea363d2 100644 (file)
Binary files a/app/assets/images/roles/administrator.png and b/app/assets/images/roles/administrator.png differ
diff --git a/app/assets/images/roles/administrator.svg b/app/assets/images/roles/administrator.svg
new file mode 100644 (file)
index 0000000..460d9b4
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg5873"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="20"
+   height="20"
+   sodipodi:docname="administrator.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/roles/administrator.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata5879">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs5877" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="640"
+     inkscape:window-height="480"
+     id="namedview5875"
+     showgrid="false"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="37.573963"
+     inkscape:cy="0.44974747"
+     inkscape:window-x="733"
+     inkscape:window-y="118"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg5873" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;fill:#f69e42;fill-opacity:1;fill-rule:nonzero;stroke:#f69e42;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 10,2 8.125,8 2,8 6.96875,11.71875 5,18 10,14 15,18 13.03125,11.71875 18,8 11.875,8 10,2 z"
+     id="path4709" />
+</svg>
index c68f9e4..8f56b6e 100644 (file)
Binary files a/app/assets/images/roles/blank_administrator.png and b/app/assets/images/roles/blank_administrator.png differ
diff --git a/app/assets/images/roles/blank_administrator.svg b/app/assets/images/roles/blank_administrator.svg
new file mode 100644 (file)
index 0000000..3e56c78
--- /dev/null
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg5539"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="20"
+   height="20"
+   sodipodi:docname="blank_administrator.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/roles/blank_administrator.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata5545">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs5543" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1031"
+     inkscape:window-height="802"
+     id="namedview5541"
+     showgrid="false"
+     inkscape:zoom="8"
+     inkscape:cx="10.953608"
+     inkscape:cy="15.654921"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg5539">
+    <inkscape:grid
+       type="xygrid"
+       id="grid5688" />
+  </sodipodi:namedview>
+  <image
+     width="20"
+     height="20"
+     xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAABHNCSVQICAgIfAhkiAAAArVJREFU
+OI2tlU1IVFEUx3/3vZm5fszoNGX5kR8ZWaEYubAE+1LJoCCZRdSiHMqoyI0QLgxauigIgqlNtKhF
+WW6SaqNlrQosKHLScWxS+rBEsJJsSn3vtvAp0+hkUmd3eef8OPd//uc+oZTif4a2mGRhxT8Bw2Hf
+kfCbw2eEEDbABSQKIeLW2RYCOuTKPZrmlEAKkAWMAZ+An4vuMPCqzC4deYUJcm1RVZWnAMgHVgAy
+3tX/CJQyryY1tTLf7a7MrvWVHgYygCWAjFczByiiQso8r5SrdF1PISdn3SZgKZBsAbXYfIjS0BJd
+AjogsrKksNtyN8x8z8wszPZ47O7R0UkX08MZF0IYUb2YQogJ0Rfy1gnhaHY6t0YMw9RNQ4kZa6an
+e5dLmWkDMIyvhPqvfNE1zbA79ClNoAARiTyVfaGh1pq9D84BH1FK0RvcV/H2XXO3YXxXfxumOaEC
+gebhxsaSy8BupgeWgFIKpRTXbxR5enqP3/v2LRBZCDY+/maqveNQuKAg6TSwC1gFJAJiFmitoN7V
+daDp/YerH+LBBgZbxvz+ikeaJmqBEmtQtllGNNCCit7gsbZ4wPYOXxioA4qBpNj6ObbpDmwWzuTV
+a+L5LCe7eGlamgOmN+bHgj40zbRKt7si3zoRCvm/BPvOjyg1CUBunjeloWHjNqt27rbEthwMnmxR
+ylA/J4bNx09ODFRXZ9Rv375s5/MX9c8ikcEppZR60Hn0JbAesM+RLEY/+8Dg2Z6Rkfax223eTpdL
+3wFkAolOl76k8+H+K0NDrZ/7X18YTk93lM6n4W+HjvtVO4J9vk9+/5Ymq4NUQJsZFuC8eKn8YE9v
+3dDNWztPAU5AzAsExJ27VesbG3PXAh5AzucAIKHWl5F79Vp5GeCIzREq6hdgLbg2La0y40066oFV
+KhoA/AI4idurnYfhgQAAAABJRU5ErkJggg==
+"
+     id="image5547"
+     x="-70"
+     y="0" />
+  <path
+     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#f69e42;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 10 2 L 8.125 8 L 2 8 L 6.96875 11.71875 L 5 18 L 10 14 L 15 18 L 13.03125 11.71875 L 18 8 L 11.875 8 L 10 2 z "
+     id="path4709" />
+  <path
+     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 10 2 L 8.125 8 L 2 8 L 6.96875 11.71875 L 5 18 L 10 14 L 15 18 L 13.03125 11.71875 L 18 8 L 11.875 8 L 10 2 z "
+     id="path5684" />
+</svg>
index cf5ceea..7dc3072 100644 (file)
Binary files a/app/assets/images/roles/blank_moderator.png and b/app/assets/images/roles/blank_moderator.png differ
diff --git a/app/assets/images/roles/blank_moderator.svg b/app/assets/images/roles/blank_moderator.svg
new file mode 100644 (file)
index 0000000..1b2a091
--- /dev/null
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg6042"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="20"
+   height="20"
+   sodipodi:docname="blank_moderator.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/roles/blank_moderator.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata6048">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs6046" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1264"
+     inkscape:window-height="776"
+     id="namedview6044"
+     showgrid="false"
+     inkscape:zoom="1"
+     inkscape:cx="10"
+     inkscape:cy="10"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg6042" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;fill:#1313ff;fill-opacity:1;fill-rule:nonzero;stroke:#1313ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 10,2 8.125,8 2,8 6.96875,11.71875 5,18 10,14 15,18 13.03125,11.71875 18,8 11.875,8 10,2 z"
+     id="path4709" />
+  <path
+     inkscape:connector-curvature="0"
+     style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="M 10,2 8.125,8 2,8 6.96875,11.71875 5,18 10,14 15,18 13.03125,11.71875 18,8 11.875,8 10,2 z"
+     id="path5684" />
+</svg>
index eaedf95..f7534be 100644 (file)
Binary files a/app/assets/images/roles/moderator.png and b/app/assets/images/roles/moderator.png differ
diff --git a/app/assets/images/roles/moderator.svg b/app/assets/images/roles/moderator.svg
new file mode 100644 (file)
index 0000000..9288dac
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg4678"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="20"
+   height="20"
+   sodipodi:docname="moderator.svg"
+   inkscape:export-filename="/Users/saman/work_repos/openstreetmap-website/app/assets/images/roles/moderator.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <metadata
+     id="metadata4684">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title></dc:title>
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs4682" />
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1574"
+     inkscape:window-height="831"
+     id="namedview4680"
+     showgrid="false"
+     inkscape:zoom="1"
+     inkscape:cx="9.1260993"
+     inkscape:cy="11.531765"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg4678">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4707" />
+  </sodipodi:namedview>
+  <path
+     style="color:#000000;fill:#0606ff;fill-opacity:1;fill-rule:nonzero;stroke:#0606ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="m 10,2 5,16 -5,-4 -5,4 z"
+     id="path4709"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="ccccc" />
+  <path
+     style="color:#000000;fill:#0606ff;fill-opacity:1;fill-rule:nonzero;stroke:#0606ff;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+     d="m 2,8 16,0 -8,6 z"
+     id="path5479"
+     inkscape:connector-curvature="0"
+     sodipodi:nodetypes="cccc" />
+</svg>
diff --git a/app/assets/images/users/images/user-icons.svg b/app/assets/images/users/images/user-icons.svg
new file mode 100644 (file)
index 0000000..85288b2
--- /dev/null
@@ -0,0 +1,182 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   id="svg54671"
+   version="1.1"
+   inkscape:version="0.48.2 r9819"
+   width="99.999969"
+   height="155"
+   sodipodi:docname="new-user-icon.svg">
+  <metadata
+     id="metadata54677">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+        <dc:title />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <defs
+     id="defs54675">
+    <clipPath
+       clipPathUnits="userSpaceOnUse"
+       id="clipPath55579">
+      <rect
+         y="701"
+         x="157"
+         height="23.000002"
+         width="49.999985"
+         id="rect55581"
+         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    </clipPath>
+  </defs>
+  <sodipodi:namedview
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1"
+     objecttolerance="10"
+     gridtolerance="10"
+     guidetolerance="10"
+     inkscape:pageopacity="0"
+     inkscape:pageshadow="2"
+     inkscape:window-width="1280"
+     inkscape:window-height="756"
+     id="namedview54673"
+     showgrid="true"
+     inkscape:zoom="4.3320463"
+     inkscape:cx="28.49301"
+     inkscape:cy="111.46394"
+     inkscape:window-x="11"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     inkscape:current-layer="svg54671"
+     inkscape:object-nodes="true"
+     inkscape:object-paths="true"
+     showguides="false"
+     inkscape:guide-bbox="true"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0">
+    <inkscape:grid
+       type="xygrid"
+       id="grid54700"
+       empspacing="5"
+       visible="true"
+       enabled="true"
+       snapvisiblegridlinesonly="true" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="1000,117.39694"
+       id="guide54708" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="830,101"
+       id="guide55315" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="815,99.000004"
+       id="guide55317" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="845,99.000004"
+       id="guide55319" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="832,88.000004"
+       id="guide55321" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="805,67.000004"
+       id="guide55323" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="855,73.000004"
+       id="guide55325" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="990,95.000004"
+       id="guide55476" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="1020,73.000004"
+       id="guide55478" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="970,74.000004"
+       id="guide55480" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="1030,76.000004"
+       id="guide55482" />
+    <sodipodi:guide
+       orientation="0,1"
+       position="978,45.000004"
+       id="guide55484" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="960,64.000004"
+       id="guide55486" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="1040,63.000004"
+       id="guide55488" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="980,81.000004"
+       id="guide55490" />
+    <sodipodi:guide
+       orientation="1,0"
+       position="1010,92.518344"
+       id="guide55492" />
+  </sodipodi:namedview>
+  <g
+     id="g55329"
+     transform="translate(-785,-42)">
+    <rect
+       y="42"
+       x="785"
+       height="100.00001"
+       width="99.999969"
+       id="rect54702"
+       style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+    <path
+       sodipodi:nodetypes="sssscssccsscssss"
+       inkscape:connector-curvature="0"
+       id="path54704"
+       d="m 834.99998,53.000004 c -8,0 -12,5 -14,9 -2,4 -2,13 -1,19 0.98639,5.918364 3.9723,8.164584 5,12 0,0 0,3 0,4 l -14,2.999996 c -9.47814,2.03103 -13.23303,8.02944 -14,18 l -1,13 78,0 -1,-13 c -0.76697,-9.97056 -4.40411,-16.62916 -14,-18 L 845,97 l -2e-5,-3.999996 c -2e-5,-4.000002 4.01361,-6.081636 5,-12 1,-6 1,-15 -1,-19 -2.0728,-4.145608 -6,-9 -14,-9 z"
+       style="color:#000000;fill:#dadaff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" />
+  </g>
+  <g
+     id="g3048"
+     transform="translate(-157,-258)">
+    <g
+       transform="matrix(0.5,0,0,0.5,-236.5,342)"
+       id="g55329-6">
+      <rect
+         style="color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+         id="rect54702-3"
+         width="99.999969"
+         height="100.00001"
+         x="787"
+         y="42" />
+    </g>
+    <path
+       style="color:#000000;fill:#dadaff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+       d="m 181.99999,368.5 c -4,0 -6.5,2.5 -7.5,4.5 -1,2 -1,7 -0.5,10 0.4932,2.95918 2,3.43845 2,5.5 0,0.5 0,1 0,1.5 0,0.4714 -1,1 -1,1 l -5,1.5 c -4.64225,1.39267 -6.58477,4.01726 -7,9 l -0.5,6 39,0 -0.5,-6 c -0.41523,-4.98274 -2.35775,-7.60733 -7,-9 l -5,-1.5 c 0,0 -1,-0.5286 -1,-1 0,-0.5 0,-1 0,-1.5 0,-2 1.5068,-2.54082 2,-5.5 0.5,-3 0.5,-8 -0.5,-10 -1.0364,-2.07281 -3.5,-4.5 -7.5,-4.5 z"
+       id="path54704-4"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ssssscssccsscsssss" />
+  </g>
+</svg>
index 152b3b4..9e393ad 100644 (file)
@@ -27,12 +27,12 @@ $(document).ready(function () {
 
   function highlightChangeset(id) {
     rects[id].setStyle({fillOpacity: 0.5});
-    $("#tr-changeset-" + id).addClass("selected");
+    $("#changeset_" + id).addClass("selected");
   }
 
   function unHighlightChangeset(id) {
     rects[id].setStyle({fillOpacity: 0});
-    $("#tr-changeset-" + id).removeClass("selected");
+    $("#changeset_" + id).removeClass("selected");
   }
 
   group.on({
index 5a3fe36..d80c689 100644 (file)
@@ -1,19 +1,15 @@
-<div style="text-align: center; margin-bottom: 20px;">
-  <a href="#" class="browse_show_list"><%- I18n.t('browse.start_rjs.object_list.back') %></a>
-</div>
-<table width="100%" class="browse_heading">
-  <tr>
-    <td><%- name %></td>
-    <td align="right">
-      <a href="<%- url %>"><%- I18n.t('browse.start_rjs.object_list.details') %></a>
-    </td>
-  </tr>
-</table>
 <div class="browse_details">
-  <ul>
+
+  <h4><%- name %></h4>
+  <a class='more-details' href="<%- url %>"><%- I18n.t('browse.start_rjs.object_list.details') %></a>
+
+  <ul class="inner12">
     <% for (var key in attributes) { %>
       <li><b><%- key %></b>: <%- attributes[key] %></li>
     <% } %>
+  <li> <a href="<%- url %>/history" class="browse_show_history"><%- I18n.t('browse.start_rjs.show_history') %></a></li>
   </ul>
-  <a href="<%- url %>/history" class="browse_show_history"><%- I18n.t('browse.start_rjs.show_history') %></a>
+
 </div>
+
+<a href="#" class="browse_show_list button"><%- I18n.t('browse.start_rjs.object_list.back') %></a>
\ No newline at end of file
index 6f870ac..c579070 100644 (file)
@@ -1,13 +1,8 @@
-<table width="100%" class="browse_heading">
-  <tr>
-    <td><%- I18n.t("browse.start_rjs.history_for_feature", {feature: name}) %></td>
-    <td align="right">
-      <a href="<%- url %>/history"><%- I18n.t('browse.start_rjs.details') %></a>
-    </td>
-  </tr>
-</table>
 <div class="browse_details">
-  <ul>
+  <h4><%- I18n.t("browse.start_rjs.history_for_feature", {feature: name}) %></h4>
+  <a class='more-details' href="<%- url %>/history"><%- I18n.t('browse.start_rjs.details') %></a>
+
+  <ul class="inner12">
     <% for (var i = 0; i < history.length; i++) { %>
       <li><%- I18n.t("browse.start_rjs.edited_by_user_at_timestamp", history[i]) %></li>
     <% } %>
index ada7d08..4bb49e4 100644 (file)
@@ -1,9 +1,13 @@
 <div>
-  <p class="browse_heading"><%- I18n.t('browse.start_rjs.object_list.heading') %></p>
-  <ul>
-    <% for (var i = 0; i < features.length; i++) { %>
-      <li><%- features[i].typeName %> <a href="<%- features[i].url %>" data-feature-id="<%- features[i].id %>"><%- features[i].name %></a></li>
-    <% } %>
-  </ul>
-  <a href="<%- url %>"><%- I18n.t('browse.start_rjs.object_list.api') %></a>
+  <h4 class="browse_heading"><%- I18n.t('browse.start_rjs.object_list.heading') %></h4>
+  <div class='inner12'>
+    <ul>
+      <% for (var i = 0; i < features.length; i++) { %>
+        <li><%- features[i].typeName %> <a href="<%- features[i].url %>" data-feature-id="<%- features[i].id %>"><%- features[i].name %></a></li>
+      <% } %>
+    </ul>
+  </div>
+
+  <div class='inner12'><a href="<%- url %>" class='button'><%- I18n.t('browse.start_rjs.object_list.api') %></a></div>
+
 </div>
index 48112c2..255b846 100644 (file)
@@ -1,11 +1,57 @@
 /* Styles common to large and small screens */
 
+/* Minimal CSS reset */
+
+html, body, ul, ol, li, form, fieldset, legend, h1, h2, h3, h4, h5, h6, p {
+  margin: 0;
+  padding: 0;
+  border: 0;
+  font-size:100%;
+}
+
+fieldset,img { border: 0; }
+
+legend { color: #000; }
+
+sup { vertical-align: text-top; }
+
+sub { vertical-align: text-bottom; }
+
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+
+li { list-style: none; }
+
+input,
+select,
+textarea,
+body { font: 14px/20px "Helvetica Neue",Arial,sans-serif; }
+
+abbr, acronym {
+  border-bottom: .1em dotted;
+  cursor: help;
+}
+
+/* Micro Clearfix | Details: http://nicolasgallagher.com/micro-clearfix-hack/ */
+
+.clearfix:before,
+.clearfix:after {
+    content: " ";
+    display: table;
+}
+
+.clearfix:after {
+    clear: both;
+}
+
 /* Default rules for the body of every page */
 
 body {
   font-family: 'Helvetica Neue',Arial,sans-serif;
   font-size: 14px;
-  line-height: 20px;
+  line-height: 1.6666;
   color: #222;
   background-color: #fff;
   margin: 0px;
@@ -17,15 +63,75 @@ body.slim {
   background-color: #f0f0f0;
 }
 
+h1, h2, h3 {
+  margin-top: 10px;
+  margin-bottom: 20px;
+  font-weight: bold;
+  line-height: 1.2;
+}
+
+h1, h2 {
+  font-size: 32px;
+}
+
+#content h2 {
+  font-size: 24px;
+}
+
+h3 {
+  font-size: 21px;
+  margin-top: 10px;
+  margin-bottom: 20px;
+}
+
+h4,h5,h6 {
+  font-size: 14px;
+  margin-top: 10px;
+  margin-bottom: 20px;
+  font-weight: bold;
+  line-height: 1.5;
+}
+
+p, ul {
+  margin-bottom: 20px;
+}
+
+p > img {
+  width: auto;
+  max-width: 100%;
+}
+
+small, aside {
+  font-size: 12px;
+}
+
+h1:first-child,
+h2:first-child,
+h3:first-child,
+h4:first-child,
+h5:first-child,
+h6:first-child {
+  margin-top: 0;
+}
+
+.column-1 {
+  width: 50%;
+  margin-bottom: 20px;
+}
+
+.small_icon {
+  vertical-align: middle;
+  margin-right: 5px;
+}
+
 /* Rules for links */
 
 a {
   color: #00f;
   text-decoration: none;
-}
-
-a:hover {
-  text-decoration: underline;
+  &:hover {
+    text-decoration: underline;
+  }
 }
 
 /* Rules for horizontal lines */
@@ -37,23 +143,34 @@ hr {
   height: 1px;
 }
 
-/* Default rules for headings */
+/* General styles for tables */
 
-h2 {
-  margin: 5px 0;
-  font-size: 25px;
-  line-height: 30px;
+table {
+  width: 100%;
+  margin-bottom: 20px;
+  th, td {
+    text-align: left;
+    padding: 5px;
+    line-height: 20px;
+  }
+  th {
+    font-weight: bold;
+    vertical-align: top;
+  }
+  td {
+    vertical-align: middle;
+  }
 }
 
 /* Rules for the whole left sidebar, including the logo */
 
 #left {
   position: absolute;
-  top: 30px;
-  bottom: 0;
+  height: 100%;
   width: 185px;
   font-size: 11px;
   line-height: 12px;
+  z-index: 100;
   border-right: 1px solid #ccc;
 }
 
@@ -63,15 +180,11 @@ h2 {
   display: block;
   width: 170px;
   min-width: 170px;
-  padding: 5px;
+  padding: 20px 5px;
   text-align: center;
   margin: auto;
 }
 
-#logo img {
-  border: 0px;
-}
-
 #logo h1 {
   font-size: 18px;
   line-height: 20px;
@@ -91,10 +204,6 @@ h2 {
   display: none;
 }
 
-#small-title img {
-  border: 0px;
-}
-
 /* Rules for the introductory text displayed in the left sidebar to new users */
 
 .sidebar-copy {
@@ -117,15 +226,13 @@ h2 {
  */
 
 .sidebar-alert {
-  padding: 4px 5px 4px 5px;
+  padding: 5px;
   border-top: 1px solid #ccc;
   margin-top: 4px;
   margin-bottom: -4px;
   background: #e00;
-  font-size: 13px;
+  font-size: 12px;
   font-weight: bold;
-  line-height: 17px;
-
   p {
     margin: 5px;
   }
@@ -138,14 +245,12 @@ h2 {
  */
 
 .sidebar-notice {
-  padding: 4px 5px 4px 5px;
+  padding: 5px;
   border-top: 1px solid #ccc;
   margin-top: 4px;
   margin-bottom: -4px;
   background: #ea0;
-  font-size: 13px;
-  line-height: 17px;
-
+  font-size: 12px;
   p {
     margin: 5px;
   }
@@ -164,6 +269,10 @@ h2 {
   border-top: 1px solid #ccc;
 }
 
+.left_menu img {
+  margin: 10px 0px;
+}
+
 .left_menu ul {
   padding: 0;
   margin: 0;
@@ -212,23 +321,10 @@ h2 {
   text-align: left;
 }
 
-.optionalbox h1 {
-  font-size: 14px;
-  font-weight: bold;
-  line-height: 20px;
-  margin: 0px;
-  vertical-align: bottom;
-}
-
 /* Rules for the search box */
 
-.whereami {
-}
-
 #search_field form {
   width: 165px;
-  margin: 0px;
-  padding: 0px;
 }
 
 #search_field {
@@ -237,6 +333,7 @@ h2 {
 
 #search_field input[type="text"] {
   width: 165px;
+  padding: 3px;
   font-size: 14px;
   line-height: 15px;
   height: 25px;
@@ -254,18 +351,17 @@ h2 {
 }
 
 #search_field input[type="submit"] {
+  border: 0;
+  margin: 0;
+  padding: 0;
   width: 15px;
   height: 15px;
-  border: 0px;
   text-indent: -1000px;
   overflow: hidden;
-  text-transform: capitalize;
-  padding-left: 0px;
-  padding-right: 0px;
-  background: image-url("sprite.png");
+  background: image-url("sprite.png") 0 0 no-repeat;
   position: absolute;
   top: 5px;
-  right: 4px;
+  right: 5px;
   cursor: pointer;
 }
 
@@ -273,12 +369,13 @@ h2 {
   margin: 5px 0 0 0;
 }
 
+/* Utility for de-emphasizing content */
+
 .deemphasize {
   color: #999;
-}
-
-.deemphasize a {
-  color: #7092FF;
+  a {
+    color: #7092FF;
+  }
 }
 
 /* Rules for donation request box */
@@ -287,7 +384,6 @@ h2 {
   display: block;
   position: relative;
   width: 153px;
-  margin: 10px 10px 0px 10px;
   padding: 5px;
   border: 1px solid #AED1A0;
   background: #cbeea7;
@@ -297,6 +393,7 @@ h2 {
   border-radius: 2px;
   -moz-border-radius: 2px;
   color: #222;
+  margin: 10px 10px 0px 10px;
 }
 
 .donate:hover {
@@ -313,8 +410,6 @@ h2 {
   width: 15px;
   height: 15px;
   border: 0px;
-  padding-left: 0px;
-  padding-right: 0px;
   background: image-url("sprite.png") 0 -30px no-repeat;
   position: absolute;
   top: 8px;
@@ -324,63 +419,65 @@ h2 {
 /* Rules for Creative Commons logo button */
 
 #cclogo {
-  margin-top: 10px;
-  margin-bottom: 10px;
+  margin: 10px 0;
+  float: right;
 }
 
 /* Rules for tabbed navigation bar */
 
 #top-bar {
-  position: absolute;
-  z-index: 10000;
-  top: 0;
-  left: 185px;
-  right: 0;
+  position: relative;
+  margin-left: 185px;
   height: 29px;
   border-bottom: 1px solid #ccc;
   background: white;
+  z-index: 100;
+}
+
+.site-edit #top-bar,
+.site-index #top-bar,
+.site-export #top-bar {
+  position: fixed;
+  left: 0;
+  right: 0;
 }
 
 #tabnav {
-  padding: 0;
-  margin0;
-  overflow:hidden;
+  height: 29px;
+  margin-bottom:0;
+  overflow: hidden;
 }
 
 #tabnav li {
-  margin: 0px;
-  padding: 0px;
   display: inline;
-  list-style-type: none;
 }
 
 #tabnav a, #tabnav a:link, #tabnav a:visited {
   float: left;
   background: #fff;
-  font-size: 14px;
-  line-height: 19px;
   font-weight: bold;
-  padding: 5px 10px;
-  margin-right: 1px;
+  padding: 3px 10px;
   text-decoration: none;
   color: #333;
+  float: left;
+  margin-right: 1px;
   -webkit-transition: color 200ms ease-in;
-  -moz-transition: color 200ms ease-in;
-  -o-transition: color 200ms ease-in;
-  transition: color 200ms ease-in;
+     -moz-transition: color 200ms ease-in;
+       -o-transition: color 200ms ease-in;
+          transition: color 200ms ease-in;
 }
 
-body.site-index #tabnav a#viewanchor,
-body.site-edit #tabnav a#editanchor,
-body.changeset-list #tabnav a#historyanchor,
-body.site-export #tabnav a#exportanchor {
+.site-index #tabnav a#viewanchor,
+.site-edit #tabnav a#editanchor,
+.changeset_list #tabnav a#historyanchor,
+.site-export #tabnav a#exportanchor {
   border-bottom: 1px solid #aaa;
   background: #9ed485;
   color: #000;
 }
 
 #tabnav a:link:hover, #tabnav a:visited:hover {
-  text-decoration:underline;
+  text-decoration: underline;
 }
 
 #tabnav a:link.disabled,
@@ -398,10 +495,12 @@ body.site-export #tabnav a#exportanchor {
   text-decoration: none;
 }
 
+/* Utility for styling notification numbers */
+
 .count-number {
   padding: 2px 5px;
   border-radius: 3px;
-  background: #eee;
+  background: #d7d7ff;
   margin: 0 2px;
   font-size: 11px;
   color: #333;
@@ -411,11 +510,7 @@ body.site-export #tabnav a#exportanchor {
 
 #greeting {
   float: right;
-  height: 28px;
-  margin: 0px;
-  padding-right: 10px;
-  font-size: 13px;
-  line-height: 28px;
+  padding-top: 3px;
 }
 
 .greeting-bar-unread {
@@ -433,16 +528,18 @@ body.site-export #tabnav a#exportanchor {
 
 /* Rules for Leaflet maps */
 
-#map {
-  margin: 0px;
-  border: 0px;
-  padding: 0px;
+#permalink {
+  z-index: 10000;
+  position: absolute;
+  bottom: 0px;
+  right: 0px;
+  padding: 5px;
+  background:#fff;
 }
 
 .site-index .leaflet-top,
 .site-export .leaflet-top {
-  top: 40px !important;
-
+  top: 10px !important;
   .leaflet-control {
     margin-top: 0px !important;
   }
@@ -456,10 +553,10 @@ body.site-export #tabnav a#exportanchor {
 /* Rules for edit menu */
 
 .menuicon {
-  padding: 5px;
-
+  padding: 0 5px;
+  font-weight: normal;
+  display: inline-block;
   &:hover {
-    background: #eee;
     text-decoration: none !important;
   }
 }
@@ -475,13 +572,10 @@ body.site-export #tabnav a#exportanchor {
 
 .menu ul {
   margin: 0px;
-  padding: 0px;
 }
 
 .menu li {
   padding: 2px 5px;
-  margin: 0px;
-  list-style-type: none;
   border-top: 1px solid #eee;
   white-space: nowrap;
 }
@@ -492,7 +586,8 @@ body.site-export #tabnav a#exportanchor {
   display: none;
 }
 
-.attribution_license {
+.attribution_license,
+.attribution_project {
   text-align: left;
 }
 
@@ -500,63 +595,63 @@ body.site-export #tabnav a#exportanchor {
   text-align: center;
 }
 
-.attribution_project {
-  text-align: right;
-}
-
 /* Rules for the popout map sidebar */
 
 #sidebar {
   display: none;
   position: absolute;
-  margin: 30px 0px 0px 0px;
-  padding: 0px;
-  border-right: 1px solid #ccc;
-  width: 30%;
+  overflow: auto;
   top: 0px;
   bottom: 0px;
   left: 0px;
+  border-right: 1px solid #ccc;
+  width: 33.3333%;
+  .sidebar_heading {
+    position: relative;
+    padding: 10px 20px;
+    z-index: 9999;
+    background: #F4F4FF;
+    border-bottom: 1px solid #ccc;
+  }
+  h4 {
+    margin: 0;
+  }
+  ul {
+    margin-bottom: 0;
+    li {
+      margin-bottom: 5px;
+      &:last-child {
+        margin-bottom: 0;
+      }
+    }
+  }
 }
 
-#sidebar #sidebar_content {
-  overflow: auto;
+#sidebar_close {
   position: absolute;
-  font-size: 13px;
-  line-height: 15px;
-  top: 29px;
-  bottom: 0px;
-  left: 0px;
-  right: 0px;
-}
-
-#sidebar .sidebar_title {
-  margin: 0px;
-  padding: 3px 6px 4px 6px;
-  height: 29px;
-  font-size: 14px;
-  line-height: 15px;
-  background: #ccc;
-}
-
-#sidebar #sidebar_title {
-  text-align: left;
+  height: 20px;
+  top: 0px;
+  bottom: 0;
+  right: 20px;
+  margin: auto;
 }
 
-#sidebar #sidebar_close {
-  text-align: right;
+#sidebar_content {
+  position: relative;
+  bottom: 0;
+  width: 100%;
+  h4 {
+    padding: 0 20px 10px 20px;
+    margin-top: 10px;
+    margin-bottom: 0;
+    border-bottom: 1px solid #ddd;
+  }
 }
 
 /* Rules for the map key which appears in the popout sidebar */
 
-#mapkey h3 {
-  font-size: 110%;
-  font-weight: normal;
-  text-align: center;
-}
-
-#mapkey .mapkey-table {
-  padding-left: 5px;
-  padding-right: 5px;
+#mapkey {
+  padding: 20px;
 }
 
 #mapkey .mapkey-table-key img {
@@ -565,8 +660,8 @@ body.site-export #tabnav a#exportanchor {
   margin-right: auto;
 }
 
-#mapkey .mapkey-table-value {
-  font-size: 90%;
+#mapkey td {
+  padding: 0 5px 5px 5px;
 }
 
 /* Rules for search results which appear in the popout sidebar */
@@ -576,77 +671,80 @@ body.site-export #tabnav a#exportanchor {
   margin-bottom: 5px;
 }
 
-.search_results_heading {
-  margin: 0px;
-  padding: 2px 5px;
-  border-bottom: 1px solid #ccc;
-  font-weight: bold;
+.search_results_entry {
+  margin-bottom: 0 ;
 }
 
-.search_results_entry {
-  margin: 0px;
-  padding: 2px 5px;
+.search_results_entry .search_searching {
+  text-align: center;
+  margin: 20px auto;
+  width: 20px;
+  display: block;
 }
 
+ul.results-list li { border-bottom: 1px solid #ccc; }
+
 .search_results_error {
-  margin: 0px;
-  padding: 2px 6px 0px;
   color: #f00;
 }
 
 /* Rules for data browser information which appears in the popout sidebar */
 
-.browse_heading {
-  margin: 0px;
-  padding: 3px 6px;
-  border: 1px solid #ccc;
-  background: #ddd;
+#browse_content {
+  position: relative;
+  .browse_show_list.button {
+    position: absolute;
+    left: 20px;
+    right: 20px;
+    bottom: -40px;
+    margin-bottom: 0;
+  }
+  a.more-details {
+    position: absolute;
+    top: 0;
+    right: 20px;
+  }
+  ul li {
+    margin-bottom: 0;
+  }
 }
 
 .browse_details {
-  margin: 0px;
-  padding: 0px 6px;
+  position: relative;
 }
 
-/* Rules for export information which appears in the popout sidebar */
-
-.export_heading {
-  margin: 0px;
-  padding: 2px 5px;
-  border-bottom: 1px solid #ccc;
-  font-weight: bold;
+.browse_status {
+  display: none;
 }
 
+/* Rules for export information which appears in the popout sidebar */
+
 .export_bounds {
-  width: 100%;
   text-align: center;
 }
 
-.export_bound {
-  margin: 5px;
+.export_area_inputs {
+  margin-bottom: 10px;
 }
 
-.export_details {
-  padding: 2px 6px;
+.export_bound {
+  margin: 5px;
 }
 
-#export_osm {
-  display: none;
+.export_details input[type="text"]#export_html_text {
+  width: 100%;
 }
 
-#export_mapnik {
-  display: none;
+#sidebar #marker_inputs li:last-child {
+  margin-bottom: 10px;
 }
 
+#export_osm,
+#export_mapnik,
 #export_osmarender {
   display: none;
 }
 
-.export_hint {
-  padding: 0px 12px;
-  font-style: italic;
-}
-
 .export_buttons {
   width: 100%;
   text-align: center;
@@ -656,21 +754,23 @@ body.site-export #tabnav a#exportanchor {
 
 #content {
   padding: 20px;
-  margin: 30px 0px 0px 185px;
-  border-left: 1px solid #ccc;
-  text-align: left;
+  position: relative;
 }
 
 .site-edit #content,
 .site-index #content,
 .site-export #content {
   position: fixed;
-  margin-top: 0px;
-  left: 0px;
-  right: 0px;
-  top: 0px;
-  bottom: 0px;
-  padding: 0px;
+  padding: 0;
+  top: 30px; bottom: 0;
+  left: 185px; right: 0;
+  border-left: 1px solid #ccc;
+}
+
+.wrapper {
+  margin-left: 185px;
+  border-left: 1px solid #ccc;
+  text-align: left;
 }
 
 .site-edit #content {
@@ -701,6 +801,7 @@ body.site-export #tabnav a#exportanchor {
   margin: 10px;
   position: absolute;
   top: 0px;
+  margin-right: 5px;
 }
 
 #slim_header img {
@@ -709,23 +810,44 @@ body.site-export #tabnav a#exportanchor {
   margin-right: 5px;
 }
 
-/* Rules for text content pages */
-
-.wide-table {
-  width: 100%;
-}
-
-/* Rules for the home page */
+.content-heading {
+  position: relative;
+  padding: 20px;
+  background: #F4F4FF;
+  h1, h2 {
+    margin-bottom: 10px;
+    line-height: 100%;
+    &:last-child {
+      margin-bottom: 0;
+    }
+  }
+  p {
+    margin-top: 10px;
+    margin-bottom: 0px;
+  }
+}
 
-.site-index #map {
-  position: absolute;
-  top: 0px;
-  bottom: 0px;
-  left: 0px;
-  right: 0px;
+/* Rules for small maps in content areas */
+
+.content_map {
+  position: relative;
+  width: 45%;
+  height: 398px;
+  border: 1px solid #ccc;
+  margin-bottom: 20px;
+  float: right;
+}
+
+.content_map #small_map {
+  height: 100%;
+  width: 100%;
+  margin-bottom: 20px;
 }
 
-.site-export #map {
+/* Rules for the home page */
+
+.site-export #map,
+.site-index #map {
   position: absolute;
   top: 0px;
   bottom: 0px;
@@ -746,88 +868,88 @@ body.site-export #tabnav a#exportanchor {
 
 /* Rules for the changeset list shown by the history tab etc */
 
-#changeset_list_container {
-  position: relative;
-}
-
 #changeset_list {
-  width: 50%;
-  font-size: small;
-  border-collapse: collapse;
-  border-width: 0px;
-  margin-top: 1px;
-  margin-bottom: 1px;
-  text-align: left;
-}
-
-#changeset_list td {
-  vertical-align: top;
-  padding: 3px;
-}
-
-#changeset_list .date {
-  white-space: nowrap;
-}
-
-#changeset_list .user {
-  white-space: nowrap;
-}
-
-#changeset_list .area {
-  white-space: nowrap;
-}
-
-#changeset_list .selected {
-  background-color: rgb(255, 255, 160);
-  background-color: rgba(255, 255, 85, 0.5);
+  width: 100%;
+  ul {
+    padding: 10px 0;
+    margin-bottom: 0px;
+    border-top: 1px solid #ccc;
+    &:last-child {
+      border-bottom: 1px solid #ccc;
+    }
+  }
+  .selected {
+    background-color: rgb(255, 255, 160);
+  }
+  .date,
+  .user {
+    border-left: 1px solid #ccc;
+    padding-left: 5px;
+    margin-right: 5px;
+  }
 }
 
 #changeset_list_map {
   position: absolute;
-  float: right;
-  top: 0px;
-  bottom: 0px;
-  right: 0px;
-  width: 49%;
-  min-height: 400px;
-  border: solid 1px black;
+  bottom: 20px;
+  top: 20px;
+  right: 20px;
+  width: 45%;
+  min-height: 398px;
+  max-height: 598px;
+  border: 1px solid #ccc;
 }
 
 /* Rules for the data browser */
 
-#browse_navigation {
-  float: right;
-  width: 250px;
-  margin-left: 10px;
-  text-align: center;
-}
-
-table.browse_details th {
-  white-space: nowrap;
-}
-
-#browse_map {
-  float: right;
-  width: 250px;
-  text-align: right;
-  margin-left: 10px;
+.browse-section {
+  border-top: 1px solid #ccc;
+  margin-top: 10px;
+  padding-top: 10px;
+  &:first-child {
+    margin-top: 0;
+  }
+  h4, p {
+    margin-bottom: 5px;
+  }
+  p, ul, .bbox {
+    margin-left: 33.3333%;
+  }
+  h4 {
+    width: 33.3333%;
+    float: left;
+  }
 }
 
-#browse_map #small_map {
-  width: 250px;
-  height: 300px;
-  border: solid 1px black;
+.bbox {
+  div {
+    width: 33.3333%;
+    text-align: center;
+    padding: 5px 0;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    float: left;
+  }
+  .max_lat,
+  .min_lat {
+    margin-left: auto;
+    margin-right: auto;
+    width: 100%;
+  }
 }
 
 #browse_map .geolink {
   display: none;
 }
 
+#browse_map .secondary-actions {
+  margin-bottom: 10px;
+}
+
 /* Rules for the trace list shown by the traces tab etc */
 
 #trace_list {
-  font-size: small;
-  border-collapse: collapse;
+  font-size: 10px;
   border-width: 0px;
   text-align: right;
 }
@@ -857,113 +979,231 @@ table.browse_details th {
   color: red;
 }
 
-/* Rules for the user list */
+/* Rules for the user profile page */
 
-#user_list {
+#userinformation {
+  min-height: 100px;
+  .userinformation-inner {
+    float: left;
+  }
+  h2 {
+    margin-top: 0;
+  }
+  .user-description {
+    width: 100%;
+    clear: both;
+  }
+  .deemphasize {
+    margin: 0;
+  }
+}
+
+.admin-user-info small {
+  margin-bottom: 10px;
+  display: inline;
+  margin-right: 20px;
+}
+
+.activity-block {
+  border-bottom: 1px solid #ccc;
+  padding-bottom: 20px;
+  float: left;
+  h3 {
+    margin-bottom: 10px;
+  }
+}
+
+.contact-activity {
+  margin-top: 20px;
   width: 100%;
-  font-size: small;
 }
 
-#user_list tr {
-  vertical-align: middle;
+.activity-details p {
+  margin-left: 72px;
+  margin-bottom: 0;
 }
 
-#user_list p {
+#friends-container .contact-activity ul {
+  margin-left: 72px;
+  }
+
+.user-view p#no_home_location {
+  margin: 20px;
+}
+
+.user-view .user_thumbnail {
+  margin-top: 5px;
+  float: left;
+}
+
+/* Rules for the user map */
+
+.content_map .leaflet-popup-content {
+  margin: 10px 15px;
+  min-height: 62px;
+}
+
+.content_map .leaflet-popup-content-wrapper {
+-webkit-border-radius: 4px;
+  border-radius: 4px;
+}
+
+/* Rules for user popups on maps */
+
+.user_popup {
+  min-width: 200px;
+}
+
+.user_popup p {
+  padding-top: 3px;
+  padding-bottom: 3px;
   margin-top: 0px;
   margin-bottom: 0px;
+  margin-left: 55px;
+  margin-right: 2px;
 }
 
-#user_list_actions {
-  float: right;
-  margin-top: 10px;
+.user_popup img.user_thumbnail {
+  float: left;
+  margin-right: 10px;
 }
 
-/* Rules for the diary list */
+/* Rules for user popups on maps */
 
-.diary_entry-list img.user_image {
-  float: right;
+.user_popup p {
+  margin-bottom: 0;
+  margin-left: 60px;
+  font-size: 12px;
 }
 
-.diary_entry-list img.user_thumbnail {
-  float: right;
+/* Rules for the user list */
+
+#user_list {
+  font-size: 10px;
+  width: 100%;
 }
 
-/* Rules for the diary entry view */
+#user_list tr {
+  vertical-align: middle;
+}
 
-.diary_entry-view img.user_image {
-  float: right;
+#user_list p {
+  margin-top: 0px;
+  margin-bottom: 0px;
 }
 
-.diary_entry-view img.user_thumbnail {
+#user_list_actions {
   float: right;
+  margin-top: 10px;
 }
 
-/* Rules for the new diary entry page */
+/* Rules for the diary list page */
 
-.diary_entry div#map {
-  position: relative;
-  width: 90%;
-  height: 400px;
-  border: 1px solid #ccc;
-  display: none;
+.diary_entry-list img.user_thumbnail {
+  float: left;
 }
 
-/* Rules for the login page */
+.diary_post {
+  position: relative;
+  margin-top: 20px;
+  padding-top: 20px;
+  border-top: 1px solid #ccc;
 
-#login_wrapper div {
-  margin: 5px;
-  padding: 15px;
-  border-radius: 15px;
-  -moz-border-radius: 15px;
+  &:first-child {
+    margin-top: 0;
+    border-top: 0;
+    padding-top: 0;
+  }
+  h1, h2 {
+    font-size: 21px;
+    line-height: 21px;
+  }
+  small.deemphasize {
+    display: block;
+  }
+  ul,
+  ol {
+    margin-bottom: 20px;
+    font-style: italic;
+    margin-left: 20px;
+  }
+  ul li {
+    list-style: disc;
+  }
+  ol li {
+    list-style: decimal;
+  }
+  ul.secondary-actions { display: inline-block;}
 }
 
-#login_login {
-  background-color: #f5f5ff;
-  border: 1px solid #f3f3ff;
-  border-radius: 15px;
-  -moz-border-radius: 15px;
+.content-heading .hide_unless_logged_in { // hacky selector, better to just add a new class to this div
+  display: inline;
 }
 
-#login_login h1 {
-  margin-top: 5px;
+.post_heading {
+  margin-bottom: 20px;
+  h2 {
+    margin-top: 0;
+    margin-bottom: 0;
+    font-size: 24px;
+    float: left;
+    line-height: 32px;
+  }
 }
 
-table#login_openid_buttons {
-  padding-bottom: 10px;
-}
+/* Rules for the diary entry page */
 
-#login_openid_buttons td {
-  padding-left: 10px;
-  padding-right: 10px;
-  padding-top: 5px;
-  padding-bottom: 5px;
+.diary_entry {
+  #map {
+    position: relative;
+    width: 90%;
+    height: 398px;
+    border: 1px solid #ccc;
+    display: none;
+    margin-bottom: 20px;
+  }
+  #newcomment {
+    border-top: 1px solid #ccc;
+    padding-top: 20px;
+    margin-top: 10px;
+  }
+  .diary-comment {
+    margin-top: 10px;
+    &:first-child {
+      margin-top: 20px;
+      padding-top: 20px;
+      border-top: 1px solid #ccc;
+    }
+    p {
+      margin-bottom: 10px;
+      margin-left: 70px;
+    }
+    .comment-heading {
+      margin-bottom: 0;
+      margin-top: 0;
+    }
+  }
 }
 
-#login_openid_buttons img {
-  border: 0;
+.diary_entry-view img.user_thumbnail {
+  float: left;
 }
 
-#login_signup form.button-to div {
-  margin: 0px;
-  padding: 0px;
+/* Rules for the login page */
+
+#login_openid_buttons li {
+  float: left;
+  padding: 5px 10px;
 }
 
 /* Rules for the account confirmation page */
 
 div#contributorTerms {
-  border: 1px solid black;
-  padding: 4px;
+  border: 1px solid #ccc;
+  padding: 20px;
+  margin-bottom: 20px;
   overflow: auto;
-  width: 95%;
-  height: 400px;
-}
-
-div#slim_content div#contributorTerms {
-  width: auto;
-}
-
-div#contributorTerms p#first {
-  margin-top: 0px;
+  height: 398px;
 }
 
 div#contributorTerms p#last {
@@ -976,14 +1216,7 @@ div#contributorTerms ol {
 
 div#contributorTerms img {
   display: block;
-  margin-left: auto;
-  margin-right: auto;
-  margin-top: 10%;
-}
-
-form#termsForm {
-  width: 95%;
-  margin-bottom: 3em;
+  margin: 20px auto inherit auto;
 }
 
 form#termsForm div#buttons {
@@ -991,7 +1224,7 @@ form#termsForm div#buttons {
 }
 
 form#termsForm input#agree {
-  margin-left: 50px;
+  margin-left: 40px;
 }
 
 div#slim_content form#termsForm {
@@ -999,10 +1232,10 @@ div#slim_content form#termsForm {
 }
 
 p#contributorGuidance {
-  background-color: #f5f5ff;
-  border: 1px solid #f3f3ff;
-  border-radius: 15px;
-  -moz-border-radius: 15px;
+  background-color: #f4f4ff;
+  border-radius: 3px;
+  -moz-border-radius: 3px;
+  margin-top: 20px;
   padding: 10px;
 }
 
@@ -1018,24 +1251,14 @@ p#contributorGuidance {
 
 #accountForm .user_map {
   position: relative;
-  width: 500px;
-  height: 400px;
+  width: 498px;
+  height: 398px;
   border: 1px solid #ccc;
 }
 
-#accountForm td.accountImage {
-  img {
-    vertical-align: top;
-    margin-top: 3px;
-  }
-
-  table {
-    display: inline-block;
-
-    td {
-      padding-bottom: 0px;
-    }
-  }
+.accountImage-options {
+  width: 50%;
+  display: inline-block;
 }
 
 .nohome .location {
@@ -1054,66 +1277,16 @@ p#contributorGuidance {
   margin-top: 15px;
 }
 
-/* Rules for the user view */
-
-.user-view img.user_image {
-  float: right;
-}
-
-.user-view .user_map {
-  float: right;
-  position: relative;
-  width: 400px;
-  height: 400px;
-  border: 1px solid #ccc;
-}
-
-.user-view .user_map p#no_home_location {
-  position: absolute;
-  top: 0px;
-  bottom: 0px;
-  width: 90%;
-  height: 30%;
-  margin: auto 5%
-}
-
-/* Rules for the user map */
-
-.user_map .leaflet-control-pan,
-.user_map .leaflet-control-zoomslider {
-  display: none;
-}
-
-.user_map .leaflet-control-zoom {
-  display: block;
-}
-
-/* Rules for user popups on maps */
-
-.user_popup {
-  min-width: 200px;
-}
-
-.user_popup p {
-  padding-top: 3px;
-  padding-bottom: 3px;
-  margin-top: 0px;
-  margin-bottom: 0px;
-  margin-left: 55px;
-  margin-right: 2px;
-}
-
-.user_popup img.user_thumbnail {
-  float: left;
+.content_map.settings_map {
+  float: none;
+  width: 50%;
 }
 
 /* Rules for message in/out box page */
 
 .messages {
   width: 100%;
-  border-collapse: collapse;
-  border-spacing: 0px;
-  border-width: 0px;
+  border: 1px solid #ddd;
 }
 
 .messages tbody tr {
@@ -1121,12 +1294,20 @@ p#contributorGuidance {
 }
 
 .messages .inbox-row {
-  background: #eee;
+  background: #f8f8ff;
+}
+
+.messages .inbox-row-unread {
+  background:#CBEEA7;
+}
+
+.right {
+  float: right;
 }
 
 .messages tr td,
 .messages tr th {
-  padding: 0px 5px;
+  padding: 5px;
 }
 
 .inbox-row .inbox-mark-read {
@@ -1134,8 +1315,9 @@ p#contributorGuidance {
 }
 
 .info-line {
-  border-bottom: 1px solid #ccc;
+  margin-bottom: 20px;
   padding: 5px 0px 4px 0px;
+  border-bottom: 1px solid #ccc;
 }
 
 .info-line form,
@@ -1147,48 +1329,30 @@ p#contributorGuidance {
   vertical-align: middle;
 }
 
-.right {
-  float: right;
-}
-
 .inbox-row-unread .inbox-mark-unread {
   display: none;
 }
 
 /* Rules for "flash" notice boxes shown at the top of the content area */
 
-#error {
-  border: 1px solid red;
-  padding: 7px;
-  background-color: #fff0f0;
-  margin-bottom: 20px;
-  border-radius: 5px;
-  -moz-border-radius: 5px;
-}
-
-#warning {
-  border: 1px solid orange;
-  padding: 7px;
-  background-color: #fff6f0;
-  margin-bottom: 20px;
-  border-radius: 5px;
-  -moz-border-radius: 5px;
-}
-
-#notice {
-  border: 1px solid green;
-  padding: 7px;
-  background-color: #f0fff0;
-  margin-bottom: 20px;
-  border-radius: 5px;
-  -moz-border-radius: 5px;
+.flash {
+    padding: 20px;
+  &#error {
+    background-color: #ff7070;
+  }
+  &#warning {
+    background-color: #fff6f0;
+  }
+  &#notice {
+    background-color: #CBEEA7;
+  }
 }
 
 /* Rules for highlighting fields with rails validation errors */
 
 .field_with_errors {
   padding: 2px;
-  background-color: red;
+  background-color: #ff7070;
   display: table;
 }
 
@@ -1196,18 +1360,17 @@ p#contributorGuidance {
 
 #errorExplanation {
   width: 400px;
-  border: 2px solid red;
-  padding: 7px;
-  padding-bottom: 12px;
+  border: 2px solid #ff7070;
+  padding: 10px;
   margin-bottom: 20px;
   background-color: #f0f0f0;
 }
 
 #errorExplanation h2 {
+  margin: -10px;
+  padding: 5px 5px 5px 15px;
   font-weight: bold;
   font-size: 12px;
-  padding: 5px 5px 5px 15px;
-  margin: -7px;
   background-color: #c00;
   color: #fff;
   text-align: left;
@@ -1221,11 +1384,15 @@ p#contributorGuidance {
 
 #errorExplanation ul li {
   font-size: 12px;
-  list-style: square;
+  list-style: disc;
 }
 
 /* Rules for forms */
 
+.submitButton {
+  text-align: center;
+}
+
 .fieldName {
   vertical-align: top;
   font-weight: bold;
@@ -1239,7 +1406,7 @@ p#contributorGuidance {
 }
 
 .minorNote {
-  font-size: 0.8em;
+  font-size: 12px;
 }
 
 input[type="text"],
@@ -1250,28 +1417,27 @@ textarea {
   border: 1px solid #ccc;
 }
 
-input.openid_url {
-  background: image-url('openid_input.png') repeat-y left white;
-  padding-left: 16px;
-}
-
 /* Rules for user images */
 
 img.user_image {
-  max-width: 100px;
-  max-height: 100px;
+  width: 100px;
+  height: 100px;
   border: 1px solid #ccc;
+  margin-bottom: 20px;
+  float: left;
+  margin-right: 20px;
 }
 
 img.user_thumbnail {
-  max-width: 50px;
-  max-height: 100px;
+  width: 50px;
+  height: 50px;
   border: 1px solid #ccc;
+  margin-right: 20px;
 }
 
 img.user_thumbnail_tiny {
-  max-width: 25px;
-  max-height: 25px;
+  max-width: 24px;
+  max-height: 24px;
   border: 1px solid #ccc;
 }
 
@@ -1294,13 +1460,87 @@ abbr.geo {
   top: 4px;
 }
 
+/* General styles for action lists / subnavs / pager navs */
+
+ul.secondary-actions {
+  font-style: normal;
+  margin-bottom: 0;
+  margin-left: 0;
+  &.pager {
+    display: inline-block;
+    margin-bottom: 20px;
+    margin-right: 60px;
+  }
+  li {
+    display: block;
+    float: left;
+    list-style: none;
+    border-left: 1px solid #ccc;
+    padding-left: 5px;
+    margin-right: 5px;
+    &:first-child {
+      border-left: 0;
+      padding-left: 0;
+    }
+  }
+  .hidden li,
+  .hide_unless_logged_in li,
+  .hide_unless_administrator li {
+    border-left: 1px solid #ccc;
+    padding-left: 5px;
+    }
+  .hidden:first-child li,
+  .hide_unless_logged_in:first-child li,
+  .hide_unless_administrator:first-child li {
+    border-left: 0;
+    padding-left: 0;
+  }
+}
+
+/* Utility for managing inner content areas */
+
+.inner22 { padding: 20px;}
+
+.inner12 { padding: 10px 20px;}
+
+.inner02 { padding: 0 20px;}
+
+/* Utility for general button styles */
+
+a.button {
+  display: block;
+  padding: 5px;
+  min-width: 120px;
+  margin-bottom: 10px;
+  color: white;
+  background: #7092FF;
+  text-align: center;
+  border-radius: 2px;
+  -moz-border-radius: 2px;
+  &:hover {
+    background: blue;
+    text-decoration: none;
+  }
+  &:last-child {
+    margin-bottom: 0;
+  }
+}
+
+a.button.submit {
+  background-color: #cbeea7;
+  &:hover {
+    background-color: #9ed485;
+  }
+}
 /* Rules for doing distinct colour of alternate table rows */
 
-.table0 {
-  background: #f6f6f6;
+.table0,
+.item0 {
+  background: #F4F4FF;
 }
 
-.table1 {
+.table1,
+.item1 {
   background: #fff;
 }
 
@@ -1315,61 +1555,51 @@ abbr.geo {
 
 .richtext_container {
   white-space: nowrap;
-
   .richtext_content {
     display: inline-block;
     vertical-align: top;
-
     .richtext_preview {
       display: inline-block;
-      margin-top: 1px;
-      margin-bottom: 1px;
-      border: 4px solid #eee;
-      background-color: #eee;
+      padding: 20px;
+      background-color: #f4f4ff;
       white-space: normal;
-
       &.loading {
         background-image: image-url("loading.gif");
         background-repeat: no-repeat;
         background-position: center;
       }
-
       > :first-child {
         margin-top: 0px;
       }
     }
   }
-
   .richtext_help {
     display: inline-block;
     vertical-align: top;
-    background-color: #ddd;
     margin-left: 15px;
-    padding: 5px 10px 10px 10px;
-    font-size: 12px;
-
+    background-color: #f8f8ff;
+    padding: 20px;
     p {
       margin: 0px;
     }
-
     th {
       vertical-align: top;
       text-align: left;
       padding: 0px 15px 0px 0px !important;
     }
-
+    table > thead th {
+      font-weight: bold;
+    }
     td {
-      text-align: left;
       font-family: fixed;
       line-height: 16px;
+      text-align: left;
       padding: 0px !important;
     }
-
     input.richtext_doedit {
       margin-top: 5px !important;
       margin-right: 10px !important;
     }
-
     input.richtext_dopreview {
       margin-top: 5px !important;
       margin-left: 10px !important;
index 5ffaee9..cf7c0c2 100644 (file)
@@ -1,11 +1,5 @@
 /* Styles specific to large screens  */
 
-/* Rules for greeting bar in the top right corner */
-
-#small-greeting {
-  display: none;
-}
-
 /* Rules for OpenLayers maps */
 
 .leaflet-control-zoom {
index 91d9fa3..f4a1a00 100644 (file)
@@ -1,4 +1,4 @@
 /*
  *= require rtl/common
  *= require rtl/small
- */
+ */
\ No newline at end of file
index 5d658fd..7ce0484 100644 (file)
@@ -7,9 +7,33 @@ body {
 }
 
 h1 {
+  font-size: 16px;
+}
+
+h2, h3, h4 {
   font-size: 14px;
 }
 
+.wrapper {
+  margin: 0;
+}
+
+.site-edit #content,
+.site-index #content,
+.site-export #content {
+  left: 0;
+}
+
+.site-edit #top-bar,
+.site-index #top-bar,
+.site-export #top-bar {
+  position: relative;
+}
+
+.column-1 {
+  width: 100%;
+}
+
 /* Rules for the whole left sidebar, including the logo */
 
 #left {
@@ -21,15 +45,15 @@ h1 {
 #top-bar {
   left: 0;
   margin: 0px;
-  height: 39px;
-  padding: 0;
+  height: 24px;
+  position: static;
 }
 
 #tabnav {
-  height: 14px;
+  height: 19px;
   margin: 0px;
   padding-top: 5px;
-  margin-top: 20px;
+  margin-top: 26px;
   font-size: 10px;
   line-height: 10px;
 }
@@ -37,10 +61,12 @@ h1 {
 #tabnav a, #tabnav a:link, #tabnav a:visited {
   font-size: 10px;
   line-height: 10px;
-  padding: 2px 5px;
+  padding: 5px;
   margin-right: 1px;
 }
 
+.menuicon { line-height: 10px;}
+
 /* Rules for the site name - shown when left sidebar is hidden */
 
 #small-title {
@@ -52,7 +78,7 @@ h1 {
   left: 5px;
   top: 5px;
   padding: 2px;
-  width: 110px; /* TODO: find better fix for overlap */
+  width: 110px;
   background-color: #fff;
   z-index: 100;
 }
@@ -63,36 +89,41 @@ h1 {
 
 #small-title h1 {
   position: absolute;
-  left: 18px;
   font-size: 12px;
+  line-height: 18px;
   margin: 0;
+  left: 22px;
 }
 
 /* Rules for greeting bar in the top right corner */
 
 #greeting {
   position: absolute;
-  right: 5px;
-  top: 5px;
-  height: 14px;
-  font-size: 12px;
-  line-height: 12px;
-  white-space: nowrap;
+  right: 0;
+  top: 0;
   background: none;
 }
 
-#full-greeting {
-  display: none;
+#browse_map ul.secondary-actions {
+  float: right;
 }
 
-#small-greeting {
-  display: inline;
+#map {
+  border: 0;
 }
 
-/* Rules for OpenLayers maps */
+.content_map {
+  width: 100%;
+  border: none;
+  float: none;
+  height: 200px;
+  max-height: none;
+  min-height: auto;
+}
 
-#map {
-  border: 0;
+.content_map #small_map {
+  height: 300px;
+  border: 1px solid #ccc;
 }
 
 .leaflet-control-pan, .leaflet-control-zoomslider {
@@ -113,12 +144,19 @@ h1 {
   border-right: 0px;
 }
 
+.site-export #content,
+.site-edit #content,
+.site-index #content {
+  margin-top: 21px;
+}
+
 /* Rules for search sidebar when shown */
 
 #sidebar {
   border: 0px;
-  border-right: 1px solid #ccccdd;
   margin: 0px;
+  width: 50%;
+  border-right: 1px solid #ccccdd;
 }
 
 .sidebar_title, #sidebar_content {
@@ -173,19 +211,23 @@ p.search_results_entry {
 }
 
 #login_openid_buttons td {
-  padding-left: 2px;
-  padding-right: 2px;
-  padding-top: 2px;
-  padding-bottom: 2px;
+  padding: 2px;
 }
 
-/* Rules for the profile page */
+/* Rules for the user view */
 
 .user_map {
   width: 100% !important;
   height: 300px !important;
 }
 
+#userinformation .deemphasize {
+  position: relative;
+  right: auto; left: auto;
+  margin-top: 10px;
+  top: auto;
+}
+
 /* Rules for the user settings page */
 
 #user_new_email {
@@ -202,34 +244,21 @@ p.search_results_entry {
 
 /* Rules for the browse pages */
 
-#browse_navigation {
-  width: 100% !important;
-  margin-top: 0 !important;
-}
-
-#small_map, #browse_map {
-  width: 100% !important;
+.browse-section.common div{
+  clear: both;
 }
 
-#changeset_list tr {
-  display: block;
-  clear: left;
+#changeset_list_map {
+  position: relative;
   width: 100%;
-}
-
-#changeset_list th {
-  display: none;
-}
-
-#changeset_list td {
-  display: block;
-  float: left;
-  padding-right: 10px;
-}
-
-#changeset_list td.comment, #changeset_list td.area {
-  width: 96%;
-  clear: left;
+  right: 0;
+  left: 0;
+  top: 0px;
+  margin-bottom: 20px;
+  float: none;
+  height: 300px !important;
+  max-height: auto;
+  min-height: auto;
 }
 
 /* Rules for the diary entries pages */
index 9a42716..b280de5 100644 (file)
@@ -33,24 +33,24 @@ class ChangesetController < ApplicationController
   end
 
   ##
-  # Return XML giving the basic info about the changeset. Does not 
+  # Return XML giving the basic info about the changeset. Does not
   # return anything about the nodes, ways and relations in the changeset.
   def read
     changeset = Changeset.find(params[:id])
     render :text => changeset.to_xml.to_s, :content_type => "text/xml"
   end
-  
+
   ##
   # marks a changeset as closed. this may be called multiple times
   # on the same changeset, so is idempotent.
-  def close 
+  def close
     assert_method :put
-    
-    changeset = Changeset.find(params[:id])    
+
+    changeset = Changeset.find(params[:id])
     check_changeset_consistency(changeset, @user)
 
     # to close the changeset, we'll just set its closed_at time to
-    # now. this might not be enough if there are concurrency issues, 
+    # now. this might not be enough if there are concurrency issues,
     # but we'll have to wait and see.
     changeset.set_closed_time_now
 
@@ -70,11 +70,11 @@ class ChangesetController < ApplicationController
 
     cs = Changeset.find(params[:id])
     check_changeset_consistency(cs, @user)
-    
+
     # keep an array of lons and lats
     lon = Array.new
     lat = Array.new
-    
+
     # the request is in pseudo-osm format... this is kind-of an
     # abuse, maybe should change to some other format?
     doc = XML::Parser.string(request.raw_post).parse
@@ -82,17 +82,17 @@ class ChangesetController < ApplicationController
       lon << n['lon'].to_f * GeoRecord::SCALE
       lat << n['lat'].to_f * GeoRecord::SCALE
     end
-    
+
     # add the existing bounding box to the lon-lat array
     lon << cs.min_lon unless cs.min_lon.nil?
     lat << cs.min_lat unless cs.min_lat.nil?
     lon << cs.max_lon unless cs.max_lon.nil?
     lat << cs.max_lat unless cs.max_lat.nil?
-    
+
     # collapse the arrays to minimum and maximum
-    cs.min_lon, cs.min_lat, cs.max_lon, cs.max_lat = 
+    cs.min_lon, cs.min_lat, cs.max_lon, cs.max_lat =
       lon.min, lat.min, lon.max, lat.max
-    
+
     # save the larger bounding box and return the changeset, which
     # will include the bigger bounding box.
     cs.save!
@@ -109,7 +109,7 @@ class ChangesetController < ApplicationController
   # Furthermore, each element in the diff can only reference the current
   # changeset.
   #
-  # Returns: a diffResult document, as described in 
+  # Returns: a diffResult document, as described in
   # http://wiki.openstreetmap.org/wiki/OSM_Protocol_Version_0.6
   def upload
     # only allow POST requests, as the upload method is most definitely
@@ -120,7 +120,7 @@ class ChangesetController < ApplicationController
 
     changeset = Changeset.find(params[:id])
     check_changeset_consistency(changeset, @user)
-    
+
     diff_reader = DiffReader.new(request.raw_post, changeset)
     Changeset.transaction do
       result = diff_reader.commit
@@ -132,45 +132,45 @@ class ChangesetController < ApplicationController
   # download the changeset as an osmChange document.
   #
   # to make it easier to revert diffs it would be better if the osmChange
-  # format were reversible, i.e: contained both old and new versions of 
+  # format were reversible, i.e: contained both old and new versions of
   # modified elements. but it doesn't at the moment...
   #
   # this method cannot order the database changes fully (i.e: timestamp and
   # version number may be too coarse) so the resulting diff may not apply
-  # to a different database. however since changesets are not atomic this 
+  # to a different database. however since changesets are not atomic this
   # behaviour cannot be guaranteed anyway and is the result of a design
   # choice.
   def download
     changeset = Changeset.find(params[:id])
-    
+
     # get all the elements in the changeset which haven't been redacted
     # and stick them in a big array.
-    elements = [changeset.old_nodes.unredacted, 
-                changeset.old_ways.unredacted, 
+    elements = [changeset.old_nodes.unredacted,
+                changeset.old_ways.unredacted,
                 changeset.old_relations.unredacted].flatten
-    
-    # sort the elements by timestamp and version number, as this is the 
-    # almost sensible ordering available. this would be much nicer if 
-    # global (SVN-style) versioning were used - then that would be 
+
+    # sort the elements by timestamp and version number, as this is the
+    # almost sensible ordering available. this would be much nicer if
+    # global (SVN-style) versioning were used - then that would be
     # unambiguous.
-    elements.sort! do |a, b| 
+    elements.sort! do |a, b|
       if (a.timestamp == b.timestamp)
         a.version <=> b.version
       else
-        a.timestamp <=> b.timestamp 
+        a.timestamp <=> b.timestamp
       end
     end
-    
+
     # create an osmChange document for the output
     result = OSM::API.new.get_xml_doc
     result.root.name = "osmChange"
 
     # generate an output element for each operation. note: we avoid looking
-    # at the history because it is simpler - but it would be more correct to 
+    # at the history because it is simpler - but it would be more correct to
     # check these assertions.
     elements.each do |elt|
       result.root <<
-        if (elt.version == 1) 
+        if (elt.version == 1)
           # first version, so it must be newly-created.
           created = XML::Node.new "create"
           created << elt.to_xml_node
@@ -217,7 +217,7 @@ class ChangesetController < ApplicationController
 
     render :text => results.to_s, :content_type => "text/xml"
   end
-  
+
   ##
   # updates a changeset's tags. none of the changeset's attributes are
   # user-modifiable, so they will be ignored.
@@ -238,7 +238,7 @@ class ChangesetController < ApplicationController
       changeset.update_from(new_changeset, @user)
       render :text => changeset.to_xml, :mime_type => "text/xml"
     else
-      
+
       render :nothing => true, :status => :bad_request
     end
   end
@@ -253,7 +253,7 @@ class ChangesetController < ApplicationController
 
       if params[:display_name]
         user = User.find_by_display_name(params[:display_name])
-        
+
         if user and user.active?
           if user.data_public? or user == @user
             changesets = changesets.where(:user_id => user.id)
@@ -265,7 +265,7 @@ class ChangesetController < ApplicationController
           return
         end
       end
-      
+
       if params[:friends]
         if @user
           changesets = changesets.where(:user_id => @user.friend_users.public)
@@ -294,11 +294,11 @@ class ChangesetController < ApplicationController
         changesets = conditions_bbox(changesets, bbox)
         bbox_link = render_to_string :partial => "bbox", :object => bbox
       end
-      
+
       if user
         user_link = render_to_string :partial => "user", :object => user
       end
-      
+
       if params[:friends] and @user
         @title =  t 'changeset.list.title_friend'
         @heading =  t 'changeset.list.heading_friend'
@@ -343,7 +343,7 @@ class ChangesetController < ApplicationController
 private
   #------------------------------------------------------------
   # utility functions below.
-  #------------------------------------------------------------  
+  #------------------------------------------------------------
 
   ##
   # if a bounding box was specified do some sanity checks.
@@ -380,13 +380,13 @@ private
       # make sure we found a user
       raise OSM::APINotFoundError.new if u.nil?
 
-      # should be able to get changesets of public users only, or 
+      # should be able to get changesets of public users only, or
       # our own changesets regardless of public-ness.
       unless u.data_public?
         # get optional user auth stuff so that users can see their own
         # changesets if they're non-public
         setup_user_auth
-        
+
         raise OSM::APINotFoundError if @user.nil? or @user.id != u.id
       end
       return changesets.where(:user_id => u.id)
@@ -397,14 +397,14 @@ private
 
   ##
   # restrict changes to those closed during a particular time period
-  def conditions_time(changesets, time) 
+  def conditions_time(changesets, time)
     unless time.nil?
-      # if there is a range, i.e: comma separated, then the first is 
+      # if there is a range, i.e: comma separated, then the first is
       # low, second is high - same as with bounding boxes.
       if time.count(',') == 1
         # check that we actually have 2 elements in the array
         times = time.split(/,/)
-        raise OSM::APIBadUserInput.new("bad time range") if times.size != 2 
+        raise OSM::APIBadUserInput.new("bad time range") if times.size != 2
 
         from, to = times.collect { |t| DateTime.parse(t) }
         return changesets.where("closed_at >= ? and created_at <= ?", from, to)
@@ -432,11 +432,11 @@ private
     if open.nil?
       return changesets
     else
-      return changesets.where("closed_at >= ? and num_changes <= ?", 
+      return changesets.where("closed_at >= ? and num_changes <= ?",
                               Time.now.getutc, Changeset::MAX_ELEMENTS)
     end
   end
-  
+
   ##
   # query changesets which are closed
   # ('closed at' time has passed or changes limit is hit)
@@ -444,7 +444,7 @@ private
     if closed.nil?
       return changesets
     else
-      return changesets.where("closed_at < ? or num_changes > ?", 
+      return changesets.where("closed_at < ? or num_changes > ?",
                               Time.now.getutc, Changeset::MAX_ELEMENTS)
     end
   end
@@ -455,5 +455,5 @@ private
   def conditions_nonempty(changesets)
     return changesets.where("num_changes > 0")
   end
-  
+
 end
index 52ed87f..d69d58d 100644 (file)
@@ -29,7 +29,7 @@ class DiaryEntryController < ApplicationController
         else
           @user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code)
         end
-        redirect_to :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name 
+        redirect_to :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name
       else
         render :action => 'edit'
       end
@@ -79,9 +79,9 @@ class DiaryEntryController < ApplicationController
       if @this_user
         @title = t 'diary_entry.list.user_title', :user => @this_user.display_name
         @entry_pages, @entries = paginate(:diary_entries,
-                                          :conditions => { 
+                                          :conditions => {
                                             :user_id => @this_user.id,
-                                            :visible => true 
+                                            :visible => true
                                           },
                                           :order => 'created_at DESC',
                                           :per_page => 20)
@@ -110,7 +110,7 @@ class DiaryEntryController < ApplicationController
                                           :per_page => 20)
       else
           require_user
-          return     
+          return
       end
     elsif params[:nearby]
       if @user
@@ -121,11 +121,11 @@ class DiaryEntryController < ApplicationController
                                             :visible => true
                                           },
                                           :order => 'created_at DESC',
-                                          :per_page => 20)                                        
+                                          :per_page => 20)
       else
           require_user
-          return     
-      end                                  
+          return
+      end
     else
       @title = t 'diary_entry.list.title'
       @entry_pages, @entries = paginate(:diary_entries, :include => :user,
@@ -189,14 +189,14 @@ class DiaryEntryController < ApplicationController
 
   def comments
     @comment_pages, @comments = paginate(:diary_comments,
-                                         :conditions => { 
+                                         :conditions => {
                                            :user_id => @this_user,
                                            :visible => true
                                          },
                                          :order => 'created_at DESC',
                                          :per_page => 20)
     @page = (params[:page] || 1).to_i
-  end  
+  end
 private
   ##
   # require that the user is a administrator, or fill out a helpful error message
index 0006776..10895dd 100644 (file)
@@ -10,11 +10,11 @@ module ApplicationHelper
   end
 
   def rss_link_to(*args)
-    return link_to(image_tag("RSS.gif", :size => "16x16", :border => 0), Hash[*args], { :class => "rsssmall" });
+    return link_to(image_tag("RSS.png", :size => "16x16", :border => 0), Hash[*args], { :class => "rsssmall" });
   end
 
   def atom_link_to(*args)
-    return link_to(image_tag("RSS.gif", :size => "16x16", :border => 0), Hash[*args], { :class => "rsssmall" });
+    return link_to(image_tag("RSS.png", :size => "16x16", :border => 0), Hash[*args], { :class => "rsssmall" });
   end
 
   def style_rules
index eb90fad..47e3897 100644 (file)
@@ -1,92 +1,78 @@
-<table>
+<div class='column-1'>
+
+  <div class='browse-section common'>
+    <div>
+      <h4><%= t 'browse.changeset_details.created_at' %></h4>
+      <p><%= l changeset_details.created_at %></p>
+    </div>
+
+    <div>
+      <h4><%= t 'browse.changeset_details.closed_at' %></h4>
+      <p><%= l changeset_details.closed_at %></p>
+    </div>
+
+    <% if changeset_details.user.data_public? %>
+      <div>
+        <h4><%= t 'browse.changeset_details.belongs_to' %></h4>
+        <p><%= link_to h(changeset_details.user.display_name), :controller => "user", :action => "view", :display_name => changeset_details.user.display_name %></p>
+      </div>
+    <% end %>
+  </div>
 
-  <tr>
-    <th><%= t 'browse.changeset_details.created_at' %></th>
-    <td><%= l changeset_details.created_at %></td>
-  </tr>
-  
-  <tr>
-    <th><%= t 'browse.changeset_details.closed_at' %></th>
-    <td><%= l changeset_details.closed_at %></td>
-  </tr>
-  
-  <% if changeset_details.user.data_public? %>
-    <tr>
-      <th><%= t 'browse.changeset_details.belongs_to' %></th>
-      <td><%= link_to h(changeset_details.user.display_name), :controller => "user", :action => "view", :display_name => changeset_details.user.display_name %></td>
-    </tr>
-  <% end %>
-  
   <%= render :partial => "tag_details", :object => changeset_details %>
 
-  <tr>
-    <th><%= t 'browse.changeset_details.bounding_box' %></th>
+  <div class='browse-section clearfix'>
+    <h4><%= t 'browse.changeset_details.bounding_box' %></h4>
     <% unless changeset_details.has_valid_bbox? %>
-      <td><%= t 'browse.changeset_details.no_bounding_box' %></td>
-    <% else
-          bbox = changeset_details.bbox.to_unscaled
-    %>
-      <td>
-        <table>
-          <tr>
-            <td colspan="3" style="text-align:center"><%=bbox.max_lat -%></td>
-          </tr>
-          <tr>
-            <td><%=bbox.min_lon -%></td>
-            <td>(<%= link_to t('browse.changeset_details.box'), root_path(:minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => 'yes'), :title => t('browse.changeset_details.show_area_box') %>)</td>
-            <td><%=bbox.max_lon -%></td>
-          </tr>
-          <tr>
-            <td colspan="3" style="text-align:center"><%= bbox.min_lat -%></td>
-          </tr>
-        </table>
-      </td>
+    <p><%= t 'browse.changeset_details.no_bounding_box' %></p>
+    <% else bbox = changeset_details.bbox.to_unscaled %>
+        <div class='bbox'>
+            <div class='max_lat'><%=bbox.max_lat -%></div>
+            <div class='min_lon'><%=bbox.min_lon -%></div>
+            <div class='box'>(<%= link_to t('browse.changeset_details.box'), root_path(:minlon => bbox.min_lon, :minlat => bbox.min_lat, :maxlon => bbox.max_lon, :maxlat => bbox.max_lat, :box => 'yes'), :title => t('browse.changeset_details.show_area_box') %>)</div>
+            <div class='max_lon'><%=bbox.max_lon -%></div>
+            <div class='min_lat'><%= bbox.min_lat -%></div>
+        </div>
     <% end %>
-  </tr>
+  </div>
 
   <% unless @nodes.empty? %>
-    <tr valign="top">
-      <th><%= t 'browse.changeset_details.has_nodes', :count => @node_pages.item_count %></th>
-      <td>
-        <table cellpadding="0">
+    <div class='browse-section'>
+      <h4><%= t 'browse.changeset_details.has_nodes', :count => @node_pages.item_count %></h4>
+      <ul>
           <% @nodes.each do |node| %>
-            <tr><td><%= link_to h(printable_name(node, true)), { :action => "node", :id => node.node_id.to_s }, :class => link_class('node', node), :title => link_title(node) %></td></tr>
+            <li><%= link_to h(printable_name(node, true)), { :action => "node", :id => node.node_id.to_s }, :class => link_class('node', node), :title => link_title(node) %></li>
           <% end %>
-        </table>
-      </td>
-    </tr>
+      </ul>
+    </div>
     <%= render :partial => 'paging_nav', :locals => { :pages => @node_pages, :page_param => "node_page"} %>
   <% end %>
-  
+
   <% unless @ways.empty? %>
-    <tr valign="top">
-      <th><%= t 'browse.changeset_details.has_ways', :count => @way_pages.item_count %></th>
-      <td>
-        <table cellpadding="0">
+    <div class='browse-section'>
+      <h4><%= t 'browse.changeset_details.has_ways', :count => @way_pages.item_count %></h4>
+      <ul>
           <% @ways.each do |way| %>
-          <tr><td><%= link_to h(printable_name(way, true)), { :action => "way", :id => way.way_id.to_s }, :class => link_class('way', way), :title => link_title(way) %></td></tr>
+          <li><%= link_to h(printable_name(way, true)), { :action => "way", :id => way.way_id.to_s }, :class => link_class('way', way), :title => link_title(way) %></li>
           <% end %>
           <%=
-          #render :partial => "containing_relation", :collection => changeset_details.containing_relation_members 
+          #render :partial => "containing_relation", :collection => changeset_details.containing_relation_members
           %>
-        </table>
-      </td>
-    </tr>
+      </ul>
+    </div>
     <%= render :partial => 'paging_nav', :locals => { :pages => @way_pages, :page_param => "way_page" } %>
   <% end %>
-  
+
   <% unless @relations.empty? %>
-    <tr valign="top">
-      <th><%= t 'browse.changeset_details.has_relations', :count => @relation_pages.item_count %></th>
-      <td>
-        <table cellpadding="0">
+    <div class='browse-section'>
+      <h4><%= t 'browse.changeset_details.has_relations', :count => @relation_pages.item_count %></h4>
+        <ul>
           <% @relations.each do |relation| %>
-          <tr><td><%= link_to h(printable_name(relation, true)), { :action => "relation", :id => relation.relation_id.to_s }, :class => link_class('relation', relation), :title => link_title(relation) %></td></tr>
+          <li><%= link_to h(printable_name(relation, true)), { :action => "relation", :id => relation.relation_id.to_s }, :class => link_class('relation', relation), :title => link_title(relation) %></li>
           <% end %>
-        </table>
-      </td>
-    </tr>
+        </ul>
+    </div>
     <%= render :partial => 'paging_nav', :locals => { :pages => @relation_pages, :page_param => "relation_page" } %>
   <% end %>
 
-</table>
+</div>
\ No newline at end of file
index 07b44a9..574242f 100644 (file)
@@ -1,38 +1,39 @@
-<tr>
-  <% if common_details.visible? %>
-    <th><%= t 'browse.common_details.edited_at' %></th>
-  <% else %>
-    <th><%= t 'browse.common_details.deleted_at' %></th>
-  <% end %>
-  <td><%= l common_details.timestamp %></td>
-</tr>
-
-<% if common_details.changeset.user.data_public? %>
-  <tr>
+<div class='browse-section common'>
+  <div>
     <% if common_details.visible? %>
-      <th><%= t 'browse.common_details.edited_by' %></th>
+      <h4><%= t 'browse.common_details.edited_at' %></h4>
     <% else %>
-      <th><%= t 'browse.common_details.deleted_by' %></th>
+      <h4><%= t 'browse.common_details.deleted_at' %></h4>
     <% end %>
-    <td><%= link_to h(common_details.changeset.user.display_name), :controller => "user", :action => "view", :display_name => common_details.changeset.user.display_name %></td>
-  </tr>
-<% end %>
+    <p><%= l common_details.timestamp %></p>
+  </div>
 
-<tr>
-  <th><%= t 'browse.common_details.version' %></th>
-  <td><%= h(common_details.version) %></td>
-</tr>
+  <% if common_details.changeset.user.data_public? %>
+    <div>
+      <% if common_details.visible? %>
+        <h4><%= t 'browse.common_details.edited_by' %></h4>
+      <% else %>
+        <h4><%= t 'browse.common_details.deleted_by' %></h4>
+      <% end %>
+      <p><%= link_to h(common_details.changeset.user.display_name), :controller => "user", :action => "view", :display_name => common_details.changeset.user.display_name %></p>
+    </div>
+  <% end %>
 
-<tr>
-  <th><%= t 'browse.common_details.in_changeset' %></th>
-  <td><%= link_to common_details.changeset_id, :action => :changeset, :id => common_details.changeset_id %></td>
-</tr>
+  <div>
+    <h4><%= t 'browse.common_details.version' %></h4>
+    <p><%= h(common_details.version) %></p>
+  </div>
 
-<% if common_details.changeset.tags['comment'] %>
-  <tr>
-    <th><%= t 'browse.common_details.changeset_comment' %></th>
-    <td><%= linkify(h(common_details.changeset.tags['comment'])) %></td>
-  </tr>
-<% end %>
+  <div>
+    <h4><%= t 'browse.common_details.in_changeset' %></h4>
+    <p><%= link_to common_details.changeset_id, :action => :changeset, :id => common_details.changeset_id %></p>
+  </div>
 
+  <% if common_details.changeset.tags['comment'] %>
+    <div>
+      <h4><%= t 'browse.common_details.changeset_comment' %></h4>
+      <p><%= linkify(h(common_details.changeset.tags['comment'])) %></p>
+    </div>
+  <% end %>
+</div>
 <%= render :partial => "tag_details", :object => common_details %>
index 6cc0cce..de41d92 100644 (file)
@@ -1,11 +1,8 @@
-<tr>
-  <td><%=
-    linked_name = link_to h(printable_name(containing_relation.relation)), :action => "relation", :id => containing_relation.relation.id.to_s
-
-    if containing_relation.member_role.blank?
-      raw t 'browse.containing_relation.entry', :relation_name => linked_name
-    else
-      raw t 'browse.containing_relation.entry_role', :relation_name => linked_name, :relation_role => h(containing_relation.member_role)
-    end
-  %></td>
-</tr>
+<li><%=
+  linked_name = link_to h(printable_name(containing_relation.relation)), :action => "relation", :id => containing_relation.relation.id.to_s
+  if containing_relation.member_role.blank?
+    raw t 'browse.containing_relation.entry', :relation_name => linked_name
+  else
+    raw t 'browse.containing_relation.entry_role', :relation_name => linked_name, :relation_role => h(containing_relation.member_role)
+  end
+%></li>
\ No newline at end of file
index d0e5af8..f44e5bb 100644 (file)
@@ -1,7 +1,7 @@
 <iframe id="linkloader" style="display: none">
 </iframe>
 
-<div id="browse_map">
+<div id="browse_map" class='clearfix content_map'>
   <% if map.instance_of? Changeset or (map.instance_of? Node and map.version > 1) or map.visible %>
 
   <% content_for :head do %>
   <%= content_tag "div", "", :id => "small_map", :data => data %>
   <span id="loading"><%= t 'browse.map.loading' %></span>
 
-  <%= link_to t("browse.map.larger.area"),
-              root_path(:box => "yes"),
-              :id => "area_larger_map",
-              :class => "geolink bbox" %>
-  <br />
-  <%= link_to h(t("browse.map.edit.area")) + content_tag(:span, "▾", :class => "menuicon"),
-              edit_path,
-              :id => "area_edit",
-              :data => { :editor => preferred_editor },
-              :class => "geolink bbox" %>
-
-  <% unless map.instance_of? Changeset %>
-    <br />
-    <%= link_to t("browse.map.larger." + map.class.to_s.downcase),
-                root_path,
-                :id => "object_larger_map",
-                :class => "geolink object" %>
-    <br />
-    <%= link_to h(t("browse.map.edit." + map.class.to_s.downcase)) + content_tag(:span, "▾", :class => "menuicon"),
+<ul class='secondary-actions clearfix'>
+  <li>
+    <%= link_to t("browse.map.larger.area"),
+                root_path(:box => "yes"),
+                :id => "area_larger_map",
+                :class => "geolink bbox" %>
+  </li>
+  <li>
+    <%= link_to h(t("browse.map.edit.area")) + content_tag(:span, "▾", :class => "menuicon"),
                 edit_path,
-                :id => "object_edit",
+                :id => "area_edit",
                 :data => { :editor => preferred_editor },
-                :class => "geolink object" %>
+                :class => "geolink bbox" %>
+  </li>
+</ul>
+
+  <% unless map.instance_of? Changeset %>
+  <ul class='secondary-actions clearfix'>
+    <li>
+      <%= link_to t("browse.map.larger." + map.class.to_s.downcase),
+                  root_path,
+                  :id => "object_larger_map",
+                  :class => "geolink object" %>
+    </li>
+    <li>
+      <%= link_to h(t("browse.map.edit." + map.class.to_s.downcase)) + content_tag(:span, "▾", :class => "menuicon"),
+                  edit_path,
+                  :id => "object_edit",
+                  :data => { :editor => preferred_editor },
+                  :class => "geolink object" %>
+    </li>
+  </ul>
   <% end %>
 
   <% else %>
index 54e792a..0856044 100644 (file)
@@ -1,42 +1,43 @@
 <% type = (@next || @prev).class.name.downcase %>
-<% margin = @next_by_user || @prev_by_user ? 9 : 18 %>
-<div id="browse_navigation" style="margin-top: <%= margin %>px">
-  <% if @next_by_user or @prev_by_user %>
-    <span class="nowrap">
-      <% if @prev_by_user %>
-        <%= link_to t('browse.navigation.paging.user.prev', :id => @prev_by_user.id.to_s),
-                    { :id => @prev_by_user.id },
-                    { :title => t("browse.navigation.user.prev_#{type}_tooltip", :user => @prev_by_user.user.display_name) } %>
-        |
-      <% end %>
-      <%=
-      user = (@prev_by_user || @next_by_user).user.display_name
-      link_to h(user),
-              { :controller => "changeset", :action => "list", :display_name => user },
-              { :title => t("browse.navigation.user.name_#{type}_tooltip", :user => h(user)) }
-      %>
-      <% if @next_by_user %>
-        |
-        <%= link_to t('browse.navigation.paging.user.next', :id => @next_by_user.id.to_s),
-                    { :id => @next_by_user.id },
-                    { :title => t("browse.navigation.user.next_#{type}_tooltip", :user => @next_by_user.user.display_name) } %>
-      <% end %>
-    </span>
-    <br/>
-  <% end %>
-  <span class="nowrap">
+  <ul class='secondary-actions clearfix pager'>
     <% if @prev %>
+    <li>
       <%= link_to t('browse.navigation.paging.all.prev', :id => @prev.id.to_s),
                   { :id => @prev.id },
                   { :title => t("browse.navigation.all.prev_#{type}_tooltip") } %>
-    <% end %>
-    <% if @prev and @next %>
-      | 
+    </li>
     <% end %>
     <% if @next %>
-      <%= link_to t('browse.navigation.paging.all.next', :id => @next.id.to_s),
-                  { :id => @next.id },
-                  { :title => t("browse.navigation.all.next_#{type}_tooltip") } %>
+      <li>
+        <%= link_to t('browse.navigation.paging.all.next', :id => @next.id.to_s),
+                    { :id => @next.id },
+                    { :title => t("browse.navigation.all.next_#{type}_tooltip") } %>
+      </li>
     <% end %>
-  </span>
-</div>
+  </ul>
+  <% if @next_by_user or @prev_by_user %>
+    <ul class='secondary-actions pager clearfix'>
+      <% if @prev_by_user %>
+        <li>
+            <%= link_to t('browse.navigation.paging.user.prev', :id => @prev_by_user.id.to_s),
+                        { :id => @prev_by_user.id },
+                        { :title => t("browse.navigation.user.prev_#{type}_tooltip", :user => @prev_by_user.user.display_name) } %>
+        </li>
+      <% end %>
+        <li>
+          <%=
+          user = (@prev_by_user || @next_by_user).user.display_name
+          link_to h(user),
+                  { :controller => "changeset", :action => "list", :display_name => user },
+                  { :title => t("browse.navigation.user.name_#{type}_tooltip", :user => h(user)) }
+          %>
+        </li>
+      <% if @next_by_user %>
+        <li>
+          <%= link_to t('browse.navigation.paging.user.next', :id => @next_by_user.id.to_s),
+                      { :id => @next_by_user.id },
+                      { :title => t("browse.navigation.user.next_#{type}_tooltip", :user => @next_by_user.user.display_name) } %>
+        </li>
+      <% end %>
+    </ul>
+  <% end %>
index 23176ea..308ccd9 100644 (file)
@@ -1,30 +1,28 @@
 <% if node_details.redacted? %>
 <p><%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.node'), :redaction_link => link_to(t('browse.redacted.redaction', :id => node_details.redaction.id), node_details.redaction), :version => node_details.version %></p>
 <% else %>
-<table class="browse_details" id="<%= node_details.version %>">
+<div class="browse_details" id="<%= node_details.version %>">
 
   <%= render :partial => "common_details", :object => node_details %>
 
   <% if node_details.visible -%>
-  <tr>
-    <th><%= t 'browse.node_details.coordinates' %></th>
-    <td><div class="geo"><%= link_to(content_tag(:span, number_with_delimiter(node_details.lat), :class => "latitude") + ", " + content_tag(:span, number_with_delimiter(node_details.lon), :class => "longitude"), {:controller => 'site', :action => 'index', :lat => h(node_details.lat), :lon => h(node_details.lon), :zoom => "18"}) %></div></td>
-  </tr>
+  <div class='browse-section'>
+    <h4><%= t 'browse.node_details.coordinates' %></h4>
+    <div class="geo"><%= link_to(content_tag(:span, number_with_delimiter(node_details.lat), :class => "latitude") + ", " + content_tag(:span, number_with_delimiter(node_details.lon), :class => "longitude"), {:controller => 'site', :action => 'index', :lat => h(node_details.lat), :lon => h(node_details.lon), :zoom => "18"}) %></div>
+  </div>
   <% end -%>
 
   <% unless node_details.ways.empty? and node_details.containing_relation_members.empty? %>
-    <tr valign="top">
-      <th><%= t 'browse.node_details.part_of' %></th>
-      <td>
-        <table cellpadding="0">
+    <div class='browse-section'>
+      <h4><%= t 'browse.node_details.part_of' %></h4>
+      <ul>
           <% node_details.ways.each do |way| %>
-            <tr><td><%= link_to h(printable_name(way)), { :action => "way", :id => way.id.to_s }, :class => link_class('way', way), :title => link_title(way) %></td></tr>
+            <li><%= link_to h(printable_name(way)), { :action => "way", :id => way.id.to_s }, :class => link_class('way', way), :title => link_title(way) %></li>
           <% end %>
           <%= render :partial => "containing_relation", :collection => node_details.containing_relation_members %>
-        </table>
-      </td>
-    </tr>      
+      </ul>
+    </div>
   <% end %>
 
-</table>
+</div>
 <% end %>
index f034240..f236b44 100644 (file)
@@ -1,15 +1,14 @@
-<tr><td colspan='2'>
+<div>
 <% current_page = pages.current_page %>
 
-<%= t'browse.paging_nav.showing_page' %> 
-<%= current_page.number %> (<%= current_page.first_item %><% 
-if (current_page.first_item < current_page.last_item) # if more than 1 trace on page 
-  %>-<%= current_page.last_item %><% 
+<%= t'browse.paging_nav.showing_page' %>
+<%= current_page.number %> (<%= current_page.first_item %><%
+if (current_page.first_item < current_page.last_item) # if more than 1 trace on page
+  %>-<%= current_page.last_item %><%
 end %>
 <%= t'browse.paging_nav.of'%> <%= pages.item_count %>)
 
 <% if pages.page_count > 1 %>
 | <%= raw pagination_links_each(pages, {}) { |n| link_to_page(n, page_param) } %>
 <% end %>
-</td>
-</tr>
+</div>
\ No newline at end of file
index 5731481..bfa5ede 100644 (file)
@@ -1,31 +1,23 @@
 <% if relation_details.redacted? %>
 <p><%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.relation'), :redaction_link => link_to(t('browse.redacted.redaction', :id => relation_details.redaction.id), relation_details.redaction), :version => relation_details.version %></p>
 <% else %>
-<table class="browse_details" id="<%= relation_details.version %>">
+<div class="browse_details" id="<%= relation_details.version %>">
 
   <%= render :partial => "common_details", :object => relation_details %>
 
   <% unless relation_details.relation_members.empty? %>
-    <tr valign="top">
-      <th><%= t'browse.relation_details.members' %></th>
-      <td>
-        <table cellpadding="0">
-          <%= render :partial => "relation_member", :collection => relation_details.relation_members %>
-        </table>
-      </td>
-    </tr>   
+    <div class='browse-section'>
+      <h4><%= t'browse.relation_details.members' %></h4>
+      <ul><%= render :partial => "relation_member", :collection => relation_details.relation_members %></ul>
+    </div>
   <% end %>
 
   <% unless relation_details.containing_relation_members.empty? %>
-    <tr valign="top">
-      <th><%= t'browse.relation_details.part_of' %></th>
-      <td>
-        <table cellpadding="0">
-          <%= render :partial => "containing_relation", :collection => relation_details.containing_relation_members %>
-        </table>
-      </td>
-    </tr>      
+    <div class='browse-section'>
+      <h4><%= t'browse.relation_details.part_of' %></h4>
+      <ul><%= render :partial => "containing_relation", :collection => relation_details.containing_relation_members %></ul>
+    </div>
   <% end %>
 
-</table>
+</div>
 <% end %>
index 71d2839..2673df3 100644 (file)
@@ -1,14 +1,12 @@
 <%
   member_class = link_class(relation_member.member_type.downcase, relation_member.member)
   linked_name = link_to h(printable_name(relation_member.member)), { :action => relation_member.member_type.downcase, :id => relation_member.member_id.to_s }, :title => link_title(relation_member.member)
-  type_str = t'browse.relation_member.type.' + relation_member.member_type.downcase 
+  type_str = t'browse.relation_member.type.' + relation_member.member_type.downcase
 %>
-<tr>
-  <td class="<%= member_class %>"><%=
+  <li class="<%= member_class %>"><%=
     if relation_member.member_role.blank?
       raw t'browse.relation_member.entry', :type => type_str, :name => linked_name
     else
       raw t'browse.relation_member.entry_role', :type => type_str, :name => linked_name, :role => h(relation_member.member_role)
     end
-  %></td>
-</tr> 
+  %></li>
\ No newline at end of file
index 2eadad4..2983318 100644 (file)
@@ -1,3 +1 @@
-<tr>
-  <td><%= format_key(tag[0]) %> = <%= format_value(tag[0], tag[1]) %></td>
-</tr> 
+  <li><%= format_key(tag[0]) %> = <%= format_value(tag[0], tag[1]) %></li>
\ No newline at end of file
index b5f2d97..9d0a2af 100644 (file)
@@ -1,10 +1,6 @@
 <% unless tag_details.tags.empty? %>
-  <tr valign="top">
-    <th><%= t'browse.tag_details.tags' %></th>
-    <td>
-      <table cellpadding="0">
-        <%= render :partial => "tag", :collection => tag_details.tags.sort %>
-      </table>
-    </td>
-  </tr>
-<% end %>
+  <div class='browse-section'>
+    <h4><%= t'browse.tag_details.tags' %></h4>
+    <ul><%= render :partial => "tag", :collection => tag_details.tags.sort %></ul>
+  </div>
+<% end %>
\ No newline at end of file
index 1313cb2..d21365b 100644 (file)
@@ -1,39 +1,35 @@
 <% if way_details.redacted? %>
 <p><%= t 'browse.redacted.message_html', :type => t('browse.redacted.type.way'), :redaction_link => link_to(t('browse.redacted.redaction', :id => way_details.redaction.id), way_details.redaction), :version => way_details.version %></p>
 <% else %>
-<table class="browse_details" id="<%= way_details.version %>">
+
+<div class="browse_details" id="<%= way_details.version %>">
 
   <%= render :partial => "common_details", :object => way_details %>
 
   <% unless way_details.way_nodes.empty? %>
-    <tr valign="top">
-      <th><%= t'browse.way_details.nodes' %></th>
-      <td>
-        <table cellpadding="0">
+    <div class='browse-section'>
+      <h4><%= t'browse.way_details.nodes' %></h4>
+        <ul>
           <% way_details.way_nodes.each do |wn| %>
-            <tr><td>
+            <li>
               <%= link_to h(printable_name(wn.node)), { :action => "node", :id => wn.node_id.to_s }, :class => link_class('node', wn.node), :title => link_title(wn.node) %>
               <% related_ways = wn.node.ways.reject { |w| w.id == wn.way_id } %>
               <% if related_ways.size > 0 then %>
                 (<%= raw t 'browse.way_details.also_part_of', :count => related_ways.size, :related_ways => related_ways.map { |w| link_to(h(printable_name(w)), { :action => "way", :id => w.id.to_s }, :class => link_class('way', w), :title => link_title(w) ) }.to_sentence %>)
               <% end %>
-            </td></tr>
+            </li>
           <% end %>
-        </table>
-      </td>
-    </tr>
+        </ul>
+    </div>
   <% end %>
 
   <% unless way_details.containing_relation_members.empty? %>
-    <tr valign="top">
-      <th><%= t'browse.way_details.part_of' %></th>
-      <td>
-        <table cellpadding="0">
+    <div class='browse-section'>
+      <h4><%= t'browse.way_details.part_of' %></h4>
+      <ul>
           <%= render :partial => "containing_relation", :collection => way_details.containing_relation_members %>
-        </table>
-      </td>
-    </tr>      
+      </ul>
   <% end %>
 
-</table>
+</div>
 <% end %>
index 2796f7c..96a5280 100644 (file)
@@ -1,12 +1,18 @@
 <% content_for :head do %>
 <%= stylesheet_link_tag 'browse' %>
 <% end %>
+
+<% content_for :heading do %>
+  <h2><%= t 'browse.changeset.changeset', :id => @changeset.id %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.changeset.changesetxml'), :controller => "changeset", :action => "read") %></li>
+    <li><%= link_to(t('browse.changeset.osmchangexml'), :controller => "changeset", :action => "download") %></li>
+  </ul>
+<% end %>
+
 <%= render :partial => "navigation" %>
-<h2><%= t 'browse.changeset.changeset', :id => @changeset.id %></h2>
+
 <% if @changeset.has_valid_bbox? %>
 <%= render :partial => "map", :object => @changeset %>
 <% end %>
-<%= render :partial => "changeset_details", :object => @changeset %>
-<hr />
-<%= link_to(t('browse.changeset.changesetxml'), :controller => "changeset", :action => "read") %>
-| <%= link_to(t('browse.changeset.osmchangexml'), :controller => "changeset", :action => "download") %>
+<%= render :partial => "changeset_details", :object => @changeset %>
\ No newline at end of file
index 8f0a200..f41562a 100644 (file)
@@ -5,15 +5,23 @@
 <% content_for :head do %>
 <%= stylesheet_link_tag 'browse' %>
 <% end %>
+
+<% content_for :heading do %>
+  <h2><%= t'browse.node.node_title', :node_name => @name %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.node.download_xml'), :controller => "node", :action => "read") %></li>
+    <li><%= link_to(t('browse.node.view_history'), :action => "node_history") %></li>
+    <% if @node.visible -%>
+      <li><%= link_to(t('browse.node.edit'), :controller => "site", :action => "edit", :lat => @node.lat, :lon => @node.lon, :zoom => 18, :node => @node.id) %></li>
+    <% end -%>
+  </ul>
+<% end %>
 <%= render :partial => "navigation" %>
-<h2><%= t'browse.node.node_title', :node_name => @name %></h2>
+
 <% if @node.visible -%>
 <%= render :partial => "map", :object => @node %>
 <% end -%>
-<%= render :partial => "node_details", :object => @node %>
-<hr />
-<%= link_to(t('browse.node.download_xml'), :controller => "node", :action => "read") %>
-| <%= link_to(t('browse.node.view_history'), :action => "node_history") %>
-<% if @node.visible -%>
-| <%= link_to(t('browse.node.edit'), :controller => "site", :action => "edit", :lat => @node.lat, :lon => @node.lon, :zoom => 18, :node => @node.id) %>
-<% end -%>
+
+<div class='column-1'>
+  <%= render :partial => "node_details", :object => @node %>
+</div>
\ No newline at end of file
index 937ad7d..61fc834 100644 (file)
@@ -2,13 +2,20 @@
 @name = printable_name @node
 @title = t('browse.node_history.node_history') + ' | ' + @name
 %>
-<h2><%= raw t'browse.node_history.node_history_title', :node_name => link_to(h(@name), :action => "node", :id => @node.id) %></h2>
+<% content_for :heading do %>
+  <h2><%= raw t'browse.node_history.node_history_title', :node_name => link_to(h(@name), :action => "node", :id => @node.id) %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.node_history.download_xml'), :controller => "old_node", :action => "history") %></li>
+    <li><%= link_to(t('browse.node_history.view_details'), :action => "node") %></li>
+  </ul>
+<% end %>
+
 <% if @node.visible -%>
-<%= render :partial => "map", :object => @node %>
+  <%= render :partial => "map", :object => @node %>
 <% end -%>
-<% @node.old_nodes.reverse.each do |node| %>
-  <%= render :partial => "node_details", :object => node %>
-  <hr />
-<% end %>
-<%= link_to(t('browse.node_history.download_xml'), :controller => "old_node", :action => "history") %>
-| <%= link_to(t('browse.node_history.view_details'), :action => "node") %>
+
+<div class='column-1'>
+  <% @node.old_nodes.reverse.each do |node| %>
+    <%= render :partial => "node_details", :object => node %>
+  <% end %>
+</div>
index 28e251a..3ba3550 100644 (file)
@@ -5,10 +5,17 @@
 <% content_for :head do %>
 <%= stylesheet_link_tag 'browse' %>
 <% end %>
+
+<% content_for :heading do %>
+  <h2><%= t'browse.relation.relation_title', :relation_name => @name %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.relation.download_xml'), :controller => "relation", :action => "read") %></li>
+    <li><%= link_to(t('browse.relation.view_history'), :action => "relation_history") %></li>
+  </ul>
+<% end %>
 <%= render :partial => "navigation" %>
-<h2><%= t'browse.relation.relation_title', :relation_name => @name %></h2>
 <%= render :partial => "map", :object => @relation %>
-<%= render :partial => "relation_details", :object => @relation %>
-<hr />
-<%= link_to(t('browse.relation.download_xml'), :controller => "relation", :action => "read") %>
-| <%= link_to(t('browse.relation.view_history'), :action => "relation_history") %>
+
+<div class='column-1'>
+  <%= render :partial => "relation_details", :object => @relation %>
+</div>
\ No newline at end of file
index 8fb08e6..022248f 100644 (file)
@@ -2,11 +2,18 @@
 @name = printable_name @relation
 @title = t('browse.relation_history.relation_history') + ' | ' + @name
 %>
-<h2><%= raw t'browse.relation_history.relation_history_title', :relation_name => link_to(h(@name), :action => "relation", :id => @relation.id) %></h2>
+
+<% content_for :heading do %>
+  <h2><%= raw t'browse.relation_history.relation_history_title', :relation_name => link_to(h(@name), :action => "relation", :id => @relation.id) %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.relation_history.download_xml'), :controller => "old_relation", :action => "history") %></li>
+    <li><%= link_to(t('browse.relation_history.view_details'), :action => "relation") %></li>
+  </ul>
+<% end %>
+
 <%= render :partial => "map", :object => @relation %>
+<div class='column-1'>
 <% @relation.old_relations.reverse.each do |relation| %>
   <%= render :partial => "relation_details", :object => relation %>
-  <hr />
 <% end %>
-<%= link_to(t('browse.relation_history.download_xml'), :controller => "old_relation", :action => "history") %>
-| <%= link_to(t('browse.relation_history.view_details'), :action => "relation") %>
+</div>
\ No newline at end of file
index b0315da..12012a0 100644 (file)
@@ -1,13 +1,6 @@
-<div>
-  <div style="text-align: center">
-    <p style="margin-top: 10px; margin-bottom: 20px">
-      <a id="browse_filter_toggle" href="#"><%= t'browse.start_rjs.manually_select' %></a>
-      <br />
-      <a id="browse_hide_areas_box" href="#"><%= t'browse.start_rjs.hide_areas' %></a>
-    </p>
-  </div>
-  <div id="browse_status" style="text-align: center; display: none">
-  </div>
-  <div id="browse_content">
-  </div>
+<div id="browse_controls" class='inner12'>
+  <a id="browse_filter_toggle" class="button" href="#"><%= t'browse.start_rjs.manually_select' %></a>
+  <a id="browse_hide_areas_box" class="button" href="#"><%= t'browse.start_rjs.hide_areas' %></a>
 </div>
+<div id="browse_status" class='inner12'></div>
+<div id="browse_content"></div>
index aa7b5d0..15a0dca 100644 (file)
@@ -5,11 +5,19 @@
 <% content_for :head do %>
 <%= stylesheet_link_tag 'browse' %>
 <% end %>
+
+<% content_for :heading do %>
+  <h2><%= t'browse.way.way_title', :way_name => @name %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.way.download_xml'), :controller => "way", :action => "read") %></li>
+    <li><%= link_to(t('browse.way.view_history'), :action => "way_history") %></li>
+    <li><%= link_to(t('browse.way.edit'), :controller => "site", :action => "edit", :way => @way.id) %></li>
+  </ul>
+<% end %>
+
 <%= render :partial => "navigation" %>
-<h2><%= t'browse.way.way_title', :way_name => @name %></h2>
 <%= render :partial => "map", :object => @way %>
-<%= render :partial => "way_details", :object => @way %>
-<hr />
-<%= link_to(t('browse.way.download_xml'), :controller => "way", :action => "read") %>
-| <%= link_to(t('browse.way.view_history'), :action => "way_history") %>
-| <%= link_to(t('browse.way.edit'), :controller => "site", :action => "edit", :way => @way.id) %>
+
+<div class='column-1'>
+  <%= render :partial => "way_details", :object => @way %>
+</div>
\ No newline at end of file
index f581dd1..296ebb3 100644 (file)
@@ -2,11 +2,18 @@
 @name = printable_name @way
 @title = t('browse.way_history.way_history') + ' | ' + @name
 %>
-<h2><%= raw t'browse.way_history.way_history_title', :way_name => link_to(h(@name), :action => "way", :id => @way.id) %></h2>
+
+<% content_for :heading do %>
+  <h2><%= raw t'browse.way_history.way_history_title', :way_name => link_to(h(@name), :action => "way", :id => @way.id) %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to(t('browse.way_history.download_xml'), :controller => "old_way", :action => "history") %></li>
+    <li><%= link_to(t('browse.way_history.view_details'), :action => "way") %></li>
+  </ul>
+<% end %>
+
 <%= render :partial => "map", :object => @way %>
+<div class='column-1'>
 <% @way.old_ways.reverse.each do |way| %>
   <%= render :partial => "way_details", :object => way %>
-  <hr />
 <% end %>
-<%= link_to(t('browse.way_history.download_xml'), :controller => "old_way", :action => "history") %>
-| <%= link_to(t('browse.way_history.view_details'), :action => "way") %>
+</div>
\ No newline at end of file
index ba963ea..3e4871e 100644 (file)
    end
 %>
 
-<%= content_tag "tr", :class => cycle('table0', 'table1'), :id => "tr-changeset-#{changeset.id}", :data => {:changeset => changeset_data} do %>
-  <td>
-    <%=
-      id_link = link_to(changeset.id,
-                        {:controller => 'browse', :action => 'changeset', :id => changeset.id},
-                        {:title => t('changeset.changeset.view_changeset_details')})
-      raw t 'changeset.changeset.id', :id => id_link
-    %>
-  </td>
+<%= content_tag "ul", :class => 'changeset_item', :id => "changeset_#{changeset.id}", :data => {:changeset => changeset_data} do %>
+  <li>
 
-  <td class="date">
-    <span class="date">
+    <span class="changeset_id">
+      <%=
+        link_to(changeset.id,
+          {:controller => 'browse', :action => 'changeset', :id => changeset.id},
+          {:title => t('changeset.changeset.view_changeset_details')})
+      %>
+    </span>
+
+    <span class='date'>
       <% if changeset.closed_at > DateTime.now %> <%= t'changeset.changeset.still_editing' %>
       <% else %><%= l changeset.closed_at, :format => :long %><% end %>
     </span>
-    
+
     <%if showusername %>
-      <br />
       <span class="user">
-      <% if changeset.user.data_public? %>
-        <%= link_to h(changeset.user.display_name), :controller => "changeset", :action => "list", :display_name => changeset.user.display_name %>
-      <% else %>
-        <i><%= t'changeset.changeset.anonymous' %></i>
-      <% end %>
+        <% if changeset.user.data_public? %>
+          <%= link_to h(changeset.user.display_name), :controller => "changeset", :action => "list", :display_name => changeset.user.display_name %>
+        <% else %>
+          <i><%= t'changeset.changeset.anonymous' %></i>
+        <% end %>
       </span>
     <% end %>
-  </td>
-    
-  <td class="comment">
+  </li>
+
+  <li class="comment deemphasize">
     <% if changeset.tags['comment'].to_s != '' %>
       <%= linkify(h(changeset.tags['comment'])) %>
     <% else %>
       <%= t'changeset.changeset.no_comment' %>
     <% end %>
-  </td>
+  </li>
+
 <% end %>
index 52c3dec..46b4635 100644 (file)
@@ -1,17 +1,15 @@
-<p>
-
-<% if @page > 1 %>
-<%= link_to t('changeset.changeset_paging_nav.previous'), params.merge({ :page => @page - 1 }) %>
-<% else %>
-<%= t('changeset.changeset_paging_nav.previous') %>
-<% end %>
-
-| <%= t('changeset.changeset_paging_nav.showing_page', :page => @page) %> |
-
-<% if @edits.size < @page_size %>
-<%= t('changeset.changeset_paging_nav.next') %>
-<% else %>
-<%= link_to t('changeset.changeset_paging_nav.next'), params.merge({ :page => @page + 1 }) %>
-<% end %>
-
-</p>
+<ul class='secondary-actions pager clearfix'>
+  <% if @page > 1 %>
+    <li><%= link_to t('changeset.changeset_paging_nav.previous'), params.merge({ :page => @page - 1 }) %></li>
+  <% else %>
+    <li><%= t('changeset.changeset_paging_nav.previous') %></li>
+  <% end %>
+
+  <li><%= t('changeset.changeset_paging_nav.showing_page', :page => @page) %></li>
+
+  <% if @edits.size < @page_size %>
+    <li><%= t('changeset.changeset_paging_nav.next') %></li>
+  <% else %>
+    <li><%= link_to t('changeset.changeset_paging_nav.next'), params.merge({ :page => @page + 1 }) %></li>
+  <% end %>
+</ul>
\ No newline at end of file
index 2bd40da..fe8da2b 100644 (file)
@@ -1,4 +1,4 @@
 <% showusername = true if showusername.nil? %>
-<table id="changeset_list">
+<div id="changeset_list">
   <%= render :partial => 'changeset', :locals => {:showusername => showusername}, :collection => @edits unless @edits.nil? %>
-</table>
+</div>
index abeea65..8ecdda9 100644 (file)
@@ -2,28 +2,34 @@
   <%= javascript_include_tag "changeset" %>
 <% end -%>
 
-<h1><%= @heading %></h1>
-<p><%= raw(@description) %></p>
+<% content_for :heading do %>
 
-<% if @edits.size > 0 %>
-  <%= render :partial => 'changeset_paging_nav' %>
+  <h1><%= @heading %></h1>
+  <ul class='secondary-actions clearfix'>
+    <li><%= raw(@description) %></li>
+    <% unless params[:friends] or params[:nearby] -%>
+      <li><%= atom_link_to params.merge({ :page => nil, :action => :feed }) %></li>
+    <% end -%>
+  </ul>
+
+<% end %>
+
+<%= render :partial => 'changeset_paging_nav' %>
 
-  <div id="changeset_list_container">
-    <%= render :partial => 'map' %>
+<% if @edits.size > 0 %>
+  <%= render :partial => 'map' %>
+  <div class='column-1'>
     <%= render :partial => 'changesets', :locals => { :showusername => !params.has_key?(:display_name) } %>
   </div>
-
   <%= render :partial => 'changeset_paging_nav' %>
 <% elsif @user and @user.display_name == params[:display_name] %>
-  <p><%= t('changeset.list.empty_user_html') %></p>
+  <h4><%= t('changeset.list.empty_user_html') %></h4>
 <% else %>
-  <p><%= t('changeset.list.empty_anon_html') %></p>
+  <h4><%= t('changeset.list.empty_anon_html') %></h4>
 <% end %>
 
 <% unless params[:friends] or params[:nearby] -%>
-<%= atom_link_to params.merge({ :page => nil, :action => :feed }) %>
-
-<% content_for :head do -%>
-<%= auto_discovery_link_tag :atom, params.merge({ :page => nil, :action => :feed }) %>
-<% end -%>
-<% end -%>
+  <% content_for :head do -%>
+    <%= auto_discovery_link_tag :atom, params.merge({ :page => nil, :action => :feed }) %>
+  <% end -%>
+<% end -%>
\ No newline at end of file
index a522557..3ba59fa 100644 (file)
@@ -1 +1 @@
-<p><%= t'changeset.timeout.sorry' %></p>
+<p><%= t'changeset.timeout.sorry' %></p>
\ No newline at end of file
index 163af88..ccc1c74 100644 (file)
@@ -1,7 +1,8 @@
-<%= user_thumbnail diary_comment.user %>
-<h4 id="comment<%= diary_comment.id %>"><%= raw(t('diary_entry.diary_comment.comment_from', :link_user => (link_to h(diary_comment.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name), :comment_created_at => l(diary_comment.created_at, :format => :friendly))) %></h4>
-<%= diary_comment.body.to_html %>
-<%= if_administrator(:span) do %> 
-  <%= link_to t('diary_entry.diary_comment.hide_link'), hide_diary_comment_path(:display_name => diary_comment.diary_entry.user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id), :method => :post, :data=> { :confirm => t('diary_entry.diary_comment.confirm') } %>
-<% end %>
-<hr />
+<div class='clearfix diary-comment'>
+  <%= user_thumbnail diary_comment.user %>
+  <p class='deemphasize comment-heading' id="comment<%= diary_comment.id %>"><%= raw(t('diary_entry.diary_comment.comment_from', :link_user => (link_to h(diary_comment.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_comment.user.display_name), :comment_created_at => l(diary_comment.created_at, :format => :friendly))) %></p>
+  <%= diary_comment.body.to_html %>
+  <%= if_administrator(:span) do %>
+    <%= link_to t('diary_entry.diary_comment.hide_link'), hide_diary_comment_path(:display_name => diary_comment.diary_entry.user.display_name, :id => diary_comment.diary_entry.id, :comment => diary_comment.id), :method => :post, :data=> { :confirm => t('diary_entry.diary_comment.confirm') } %>
+  <% end %>
+</div>
\ No newline at end of file
index eae60e8..a88e8ad 100644 (file)
@@ -1,30 +1,36 @@
-<b><%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %></b><br />
+<div class='diary_post'>
+  <div class='post_heading clearfix'>
+    <% if !@this_user %>
+      <%= user_thumbnail diary_entry.user %>
+    <% end %>
 
-<div xml:lang="<%= diary_entry.language_code %>" lang="<%= diary_entry.language_code %>">
-  <%= diary_entry.body.to_html %>
-</div>
+    <h2><%= link_to h(diary_entry.title), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id %></h2>
+  </div>
+  <div xml:lang="<%= diary_entry.language_code %>" lang="<%= diary_entry.language_code %>">
+    <%= diary_entry.body.to_html %>
+  </div>
+
+  <% if diary_entry.latitude and diary_entry.longitude %>
+    <%= render :partial => "location", :object => diary_entry %>
+  <% end %>
 
-<% if diary_entry.latitude and diary_entry.longitude %>
-  <%= render :partial => "location", :object => diary_entry %>
-  <br />
-<% end %>
+  <small class='deemphasize'>
+    <%= raw(t 'diary_entry.diary_entry.posted_by', :link_user => (link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name), :created => l(diary_entry.created_at, :format => :friendly), :language_link => (link_to h(diary_entry.language.name), :controller => 'diary_entry', :action => 'list', :display_name => nil, :language => diary_entry.language_code)) %>
+  </small>
 
-<%= raw(t 'diary_entry.diary_entry.posted_by', :link_user => (link_to h(diary_entry.user.display_name), :controller => 'user', :action => 'view', :display_name => diary_entry.user.display_name), :created => l(diary_entry.created_at, :format => :friendly), :language_link => (link_to h(diary_entry.language.name), :controller => 'diary_entry', :action => 'list', :display_name => nil, :language => diary_entry.language_code)) %> 
+  <ul class='secondary-actions clearfix'>
+    <% if params[:action] == 'list' %>
+      <li><%= link_to t('diary_entry.diary_entry.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %></li>
+      <li><%= link_to t('diary_entry.diary_entry.reply_link'), :controller => 'message', :action => 'new', :display_name => diary_entry.user.display_name, :title => "Re: #{diary_entry.title}" %></li>
+      <li><%= link_to t('diary_entry.diary_entry.comment_count', :count => diary_entry.visible_comments.count), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %></li>
+    <% end %>
 
-<% if params[:action] == 'list' %>
-  <br />
-  <%= link_to t('diary_entry.diary_entry.comment_link'), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'newcomment' %>
-  |
-  <%= link_to t('diary_entry.diary_entry.reply_link'), :controller => 'message', :action => 'new', :display_name => diary_entry.user.display_name, :title => "Re: #{diary_entry.title}" %>
-  |
-  <%= link_to t('diary_entry.diary_entry.comment_count', :count => diary_entry.visible_comments.count), :action => 'view', :display_name => diary_entry.user.display_name, :id => diary_entry.id, :anchor => 'comments' %>
-<% end %>
-<%= if_user(diary_entry.user, :span) do %>
-  | <%= link_to t('diary_entry.diary_entry.edit_link'), :action => 'edit', :display_name => diary_entry.user.display_name, :id => diary_entry.id %>
-<% end %>
-<%= if_administrator(:span) do %>
-  | <%= link_to t('diary_entry.diary_entry.hide_link'), hide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t('diary_entry.diary_entry.confirm') } %>
-<% end %>
+    <%= if_user(diary_entry.user, :span) do %>
+      <li><%= link_to t('diary_entry.diary_entry.edit_link'), :action => 'edit', :display_name => diary_entry.user.display_name, :id => diary_entry.id %></li>
+    <% end %>
 
-<br />
-<hr />
+    <%= if_administrator(:span) do %>
+      <li><%= link_to t('diary_entry.diary_entry.hide_link'), hide_diary_entry_path(:display_name => diary_entry.user.display_name, :id => diary_entry.id), :method => :post, :data => { :confirm => t('diary_entry.diary_entry.confirm') } %></li>
+    <% end %>
+  </ul>
+</div>
index 4964432..ca583ef 100644 (file)
@@ -1,2 +1 @@
-<%= user_thumbnail diary_list_entry.user %>
-<%= render :partial => "diary_entry", :object => diary_list_entry %>
+<%= render :partial => "diary_entry", :object => diary_list_entry %>
\ No newline at end of file
index f477ab8..e486308 100644 (file)
@@ -1,23 +1,24 @@
-<h1><%= t('diary_entry.comments.has_commented_on', :display_name => @this_user.display_name) %></h1>
+<% content_for :heading do %>
+  <h1><%= t('diary_entry.comments.has_commented_on', :display_name => @this_user.display_name) %></h1>
+<% end %>
 
-<table width="100%">
+<table class="comments-table" width="100%">
   <tr>
-    <th><%= t 'diary_entry.comments.post' %></th>
-    <th><%= t 'diary_entry.comments.when' %></th>
-    <th><%= t 'diary_entry.comments.comment' %></th>
+    <th width="25%"><%= t 'diary_entry.comments.post' %></th>
+    <th width="25%"><%= t 'diary_entry.comments.when' %></th>
+    <th width="50%"><%= t 'diary_entry.comments.comment' %></th>
   </tr>
   <% @comments.each do |comment| -%>
   <% cl = cycle('table0', 'table1') %>
   <tr class="<%= cl %>">
-    <td><%= link_to comment.diary_entry.title, :action => :view, :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id %></td>
-    <td><span title="<%= l comment.created_at, :format => :friendly %>"><%= t 'diary_entry.comments.ago', :ago => time_ago_in_words(comment.created_at) %></span></td>
-    <td><%= comment.body.to_html %></td>
+    <td width="25%"><%= link_to comment.diary_entry.title, :action => :view, :display_name => comment.diary_entry.user.display_name, :id => comment.diary_entry.id %></td>
+    <td width="25%"><span title="<%= l comment.created_at, :format => :friendly %>"><%= t 'diary_entry.comments.ago', :ago => time_ago_in_words(comment.created_at) %></span></td>
+    <td width="50%"><%= comment.body.to_html %></td>
   </tr>
   <% end -%>
 </table>
 
-<%= link_to t('diary_entry.comments.older_comments') , { :page => @comment_pages.current.next} if @comment_pages.current.next %>
-<% if @comment_pages.current.next and @comment_pages.current.previous %>
-|
-<% end %>
-<%= link_to t('diary_entry.comments.newer_comments'), { :page => @comment_pages.current.previous } if @comment_pages.current.previous %>
+<ul class='secondary-actions clearfix'>
+  <li><%= link_to t('diary_entry.comments.older_comments') , { :page => @comment_pages.current.next} if @comment_pages.current.next %></li>
+  <li><%= link_to t('diary_entry.comments.newer_comments'), { :page => @comment_pages.current.previous } if @comment_pages.current.previous %></li>
+</ul>
\ No newline at end of file
index 0cdd3b0..0c83ef4 100644 (file)
@@ -2,7 +2,9 @@
   <%= javascript_include_tag "diary_entry" %>
 <% end %>
 
-<h1><%= @title %></h1>
+<% content_for :heading do %>
+  <h1><%= @title %></h1>
+<% end %>
 
 <%= error_messages_for 'diary_entry' %>
 
index 9de2efe..3353fef 100644 (file)
@@ -1,43 +1,47 @@
-<% if @this_user %>
-  <%= user_image @this_user %>
+<% content_for :heading do %>
+  <div <% if @this_user %> id="userinformation"<% end %> >
+    <% if @this_user %>
+      <%= user_image @this_user %>
+    <% end %>
+    <h2><%= h(@title) %></h2>
+
+    <ul class='secondary-actions clearfix'>
+      <% unless params[:friends] or params[:nearby] -%>
+        <li><%= rss_link_to :action => 'rss', :language => params[:language] %></li>
+      <% end -%>
+
+      <% if @this_user %>
+        <%= if_user(@this_user) do %>
+          <li><%= link_to image_tag("new.png", :class => "small_icon", :border=>0) + t('diary_entry.list.new'), {:controller => 'diary_entry', :action => 'new'}, {:title => t('diary_entry.list.new_title')} %></li>
+        <% end %>
+      <% else %>
+        <%= if_logged_in do %>
+          <li><%= link_to image_tag("new.png", :class => "small_icon", :border=>0) + t('diary_entry.list.new'), {:controller => 'diary_entry', :action => 'new'}, {:title => t('diary_entry.list.new_title')} %></li>
+        <% end %>
+      <% end %>
+    </ul>
+  </div>
 <% end %>
 
-<h2><%= h(@title) %></h2>
+<% if @entries.empty? %>
+  <h4><%= t 'diary_entry.list.no_entries' %></h4>
+<% else %>
+  <h4><%= t 'diary_entry.list.recent_entries' %></h4>
 
 <% if @this_user %>
-  <%= if_user(@this_user) do %>
-    <%= link_to image_tag("new.png", :border=>0) + t('diary_entry.list.new'), {:controller => 'diary_entry', :action => 'new'}, {:title => t('diary_entry.list.new_title')} %>
-  <% end %>
+  <%= render :partial => 'diary_entry', :collection => @entries %>
 <% else %>
-  <%= if_logged_in do %>
-    <%= link_to image_tag("new.png", :border=>0) + t('diary_entry.list.new'), {:controller => 'diary_entry', :action => 'new'}, {:title => t('diary_entry.list.new_title')} %>
-  <% end %>
+  <%= render :partial => 'diary_list_entry', :collection => @entries %>
 <% end %>
 
-<% if @entries.empty? %>
-  <p><%= t 'diary_entry.list.no_entries' %></p>
-<% else %>
-  <p><%= t 'diary_entry.list.recent_entries' %></p>
-
-  <hr />
-
-  <% if @this_user %>
-    <%= render :partial => 'diary_entry', :collection => @entries %>
-  <% else %>
-    <%= render :partial => 'diary_list_entry', :collection => @entries %>
-  <% end %>
-
-  <%= link_to t('diary_entry.list.older_entries'), { :page => @entry_pages.current.next, :language => params[:language] } if @entry_pages.current.next %>
-  <% if @entry_pages.current.next and @entry_pages.current.previous %>|<% end %>
-  <%= link_to t('diary_entry.list.newer_entries'), { :page => @entry_pages.current.previous, :language => params[:language] } if @entry_pages.current.previous %>
+<%= link_to t('diary_entry.list.older_entries'), { :page => @entry_pages.current.next, :language => params[:language] } if @entry_pages.current.next %>
+<% if @entry_pages.current.next and @entry_pages.current.previous %>|<% end %>
+<%= link_to t('diary_entry.list.newer_entries'), { :page => @entry_pages.current.previous, :language => params[:language] } if @entry_pages.current.previous %>
 
-  <br />
 <% end %>
 
 <% unless params[:friends] or params[:nearby] -%>
-<%= rss_link_to :action => 'rss', :language => params[:language] %>
-
-<% content_for :head do -%>
-<%= auto_discovery_link_tag :atom, :action => 'rss', :language => params[:language] %>
-<% end -%>
+  <% content_for :head do -%>
+  <%= auto_discovery_link_tag :atom, :action => 'rss', :language => params[:language] %>
+  <% end -%>
 <% end -%>
index eef0e47..ff9a811 100644 (file)
@@ -1,2 +1,5 @@
-<h2><%= t 'diary_entry.no_such_entry.heading', :id => h(params[:id]) %></h2>
+<% content_for :heading do %>
+  <h2><%= t 'diary_entry.no_such_entry.heading', :id => h(params[:id]) %></h2>
+<% end %>
+
 <p><%= t 'diary_entry.no_such_entry.body', :id => h(params[:id]) %></p>
index 1bce441..5735188 100644 (file)
@@ -1,26 +1,27 @@
-<%= user_image @entry.user %>
-
-<h2><%= link_to t('diary_entry.view.user_title', :user => h(@entry.user.display_name)), :action => :list %></h2>
+<% content_for :heading do %>
+  <div id="userinformation" >
+    <%= user_image @entry.user %>
+    <h2><%= link_to t('diary_entry.view.user_title', :user => h(@entry.user.display_name)), :action => :list %></h2>
+  </div>
+<% end %>
 
 <%= render :partial => 'diary_entry', :object => @entry %>
 
 <a id="comments"></a>
-
+<div class='comments'>
 <%= render :partial => 'diary_comment', :collection => @entry.visible_comments %>
-
+</div>
 <%= if_logged_in(:div) do %>
-  <h4 id="newcomment"><%= t 'diary_entry.view.leave_a_comment' %></h4>
+  <h3 id="newcomment"><%= t 'diary_entry.view.leave_a_comment' %></h3>
 
   <%= error_messages_for 'diary_comment' %>
 
   <%= form_for :diary_comment, :url => { :action => 'comment' } do |f| %>
     <%= richtext_area :diary_comment, :body, :cols => 80, :rows => 15 %>
-    <br />
-    <br />
     <%= submit_tag t('diary_entry.view.save_button') %>
   <% end %>
 <% end %>
 
 <%= if_not_logged_in(:div) do %>
-  <h4 id="newcomment"><%= raw t("diary_entry.view.login_to_leave_a_comment", :login_link => link_to(t("diary_entry.view.login"), :controller => 'user', :action => 'login', :referer => request.fullpath)) %></h4>
-<% end %>
+  <h3 id="newcomment"><%= raw t("diary_entry.view.login_to_leave_a_comment", :login_link => link_to(t("diary_entry.view.login"), :controller => 'user', :action => 'login', :referer => request.fullpath)) %></h3>
+<% end %>
\ No newline at end of file
index 539c6f4..f5dcb14 100644 (file)
@@ -1,73 +1,69 @@
 <%= form_tag :action => "finish" do %>
 
-  <p class="export_heading"><%= t'export.start.area_to_export' %></p>
-
-  <div class="export_bounds">
-    <%= text_field_tag('maxlat', nil, :size => 10, :class => "export_bound") %>
-    <br/>
-    <%= text_field_tag('minlon', nil, :size => 10, :class => "export_bound") %>
-    <%= text_field_tag('maxlon', nil, :size => 10, :class => "export_bound") %>
-    <br/>
-    <%= text_field_tag('minlat', nil, :size => 10, :class => "export_bound") %>
-    <p class="export_hint">
-      <a id="drag_box" href="#"><%= t'export.start.manually_select' %></a>  
-    </p>
-  </div>
-
-  <p class="export_heading"><%= t'export.start.format_to_export' %></p>
+  <h4><%= t'export.start.area_to_export' %></h4>
 
-  <div class="export_details">
-    <p>
-      <%= radio_button_tag("format", "osm") %> <%= t'export.start.osm_xml_data' %>
+  <div class="export_bounds inner12">
+    <div class='export_area_inputs'>
+      <%= text_field_tag('maxlat', nil, :size => 10, :class => "export_bound") %>
       <br/>
-      <%= radio_button_tag("format", "mapnik") %> <%= t'export.start.map_image' %>
+      <%= text_field_tag('minlon', nil, :size => 10, :class => "export_bound") %>
+      <%= text_field_tag('maxlon', nil, :size => 10, :class => "export_bound") %>
       <br/>
-      <%= radio_button_tag("format", "html") %> <%= t'export.start.embeddable_html' %>
-    </p>
+      <%= text_field_tag('minlat', nil, :size => 10, :class => "export_bound") %>
+    </div>
+    <a id="drag_box" class='export_hint button' href="#"><%= t'export.start.manually_select' %></a>
   </div>
 
+  <h4><%= t'export.start.format_to_export' %></h4>
+
+  <ul class="export_details inner12">
+    <li><%= radio_button_tag("format", "osm") %> <%= t'export.start.osm_xml_data' %></li>
+    <li><%= radio_button_tag("format", "mapnik") %> <%= t'export.start.map_image' %></li>
+    <li><%= radio_button_tag("format", "html") %> <%= t'export.start.embeddable_html' %></li>
+  </ul>
+
   <div id="export_osm">
-    <p class="export_heading"><%= t'export.start.licence' %></p>
+    <h4><%= t'export.start.licence' %></h4>
 
-    <div class="export_details">
+    <div class="export_details inner12">
       <p><%= raw t'export.start.export_details' %></p>
     </div>
 
     <div  id="export_osm_too_large">
-      <p class="export_heading"><%= t'export.start.too_large.heading' %></p>
+      <h4><%= t'export.start.too_large.heading' %></h4>
 
-      <div class="export_details">
+      <div class="export_details inner12">
         <p><%= t'export.start.too_large.body' %></p>
       </div>
     </div>
   </div>
 
   <div id="export_mapnik">
-    <p class="export_heading"><%= t'export.start.options' %></p>
+    <h4><%= t'export.start.options' %></h4>
 
-    <div class="export_details">
-      <p><%= t'export.start.format' %> <%= select_tag("mapnik_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"], ["SVG", "svg"], ["PDF", "pdf"]], "png")) %></p>
-      <p><%= t'export.start.scale' %> 1 : <%= text_field_tag("mapnik_scale", nil, :size => 8) %> <span class="export_hint">(<%= t'export.start.max' %> 1 : <span id="mapnik_max_scale"></span>)</span></p>
-      <p><%= t'export.start.image_size' %> <span id="mapnik_image_width"></span> x <span id="mapnik_image_height"></span></p>
-    </div>
+    <ul class="export_details inner12">
+      <li><%= t'export.start.format' %> <%= select_tag("mapnik_format", options_for_select([["PNG", "png"], ["JPEG", "jpeg"], ["SVG", "svg"], ["PDF", "pdf"]], "png")) %></li>
+      <li><%= t'export.start.scale' %> 1 : <%= text_field_tag("mapnik_scale", nil) %> <p class="deemphasize export_hint">(<%= t'export.start.max' %> 1 : <span id="mapnik_max_scale"></span>)</p></li>
+      <li><%= t'export.start.image_size' %> <span id="mapnik_image_width"></span> x <span id="mapnik_image_height"></span></li>
+    </ul>
   </div>
 
   <div id="export_html">
-    <p class="export_heading"><%= t'export.start.options' %></p>
-
-    <div class="export_details">
-      <p><a id="add_marker" href="#"><%= t'export.start.add_marker' %></a></p>
-      <p id="marker_inputs" style="display:none">
-        <%= t'export.start.latitude' %> <input type="text" id="marker_lat" size="9" />
-        <%= t'export.start.longitude' %> <input type="text" id="marker_lon" size="9" />
-      </p>
+    <h4><%= t'export.start.options' %></h4>
+
+    <div class="export_details inner12">
+      <ul id="marker_inputs" style="display:none">
+        <li><%= t'export.start.latitude' %> <input type="text" id="marker_lat"/></li>
+        <li><%= t'export.start.longitude' %> <input type="text" id="marker_lon"/></li>
+      </ul>
+      <a id="add_marker" class='button' href="#"><%= t'export.start.add_marker' %></a>
     </div>
 
-    <p class="export_heading"><%= t'export.start.output' %></p>
+    <h4><%= t'export.start.output' %></h4>
 
-    <div class="export_details">
-      <p><input type="text" id="export_html_text" style="width:95%" /></p>
-      <p><%= t'export.start.paste_html' %></p>
+    <div class="export_details inner12">
+      <input type="text" id="export_html_text"/>
+      <p class='deemphasize'><%= t'export.start.paste_html' %></p>
     </div>
   </div>
 
index a01954d..018f777 100644 (file)
@@ -1,10 +1,10 @@
 <% @sources.each do |source| %>
   <% if source[:types] %>
-    <p class="search_results_heading"><%= raw(t("geocoder.description.title.#{source[:name]}", :types => t("geocoder.description.types.#{source[:types]}"))) %></p>
+    <h4><%= raw(t("geocoder.description.title.#{source[:name]}", :types => t("geocoder.description.types.#{source[:types]}"))) %></h4>
   <% else %>
-    <p class="search_results_heading"><%= raw(t("geocoder.description.title.#{source[:name]}")) %></p>
+    <h4><%= raw(t("geocoder.description.title.#{source[:name]}")) %></h4>
   <% end %>
-  <div class='search_results_entry' id='<%= "description_#{source[:name]}_#{source[:types]}" %>'>
+  <div class='search_results_entry inner12' id='<%= "description_#{source[:name]}_#{source[:types]}" %>'>
     <%= image_tag "searching.gif", :class => "search_searching" %>
   </div>
   <script type="text/javascript">
index 61d2869..4b2d6e8 100644 (file)
@@ -1,25 +1,26 @@
 <% if @results.empty? %>
-  <p class="search_results_entry"><%= t 'geocoder.results.no_results' %></p>
+  <p class="search_results_entry inner12"><%= t 'geocoder.results.no_results' %></p>
 <% else %>
+  <ul class='results-list'>
   <% @results.each do |result| %>
-    <p class="search_results_entry"><%= result_to_html(result) %></p>
+    <li><p class="inner12 search_results_entry deemphasize"><%= result_to_html(result) %></p></li>
   <% end %>
+</ul>
   <% if @more_params %>
     <div id="search_more_<%= @more_params.hash %>">
-      <p class="search_results_entry">
-        <%= link_to t('geocoder.results.more_results'), "#" %>
-      </p>
+      <div class="inner12 search_results_entry">
+        <%= link_to t('geocoder.results.more_results'), "#", :class => "button" %>
+      </div>
       <%= image_tag "searching.gif", :class => "search_searching" %>
     </div>
     <script type="text/javascript">
-    $("#search_more_<%= @more_params.hash %> .search_searching").hide();
+      $("#search_more_<%= @more_params.hash %> .search_searching").hide();
 
-    $("#search_more_<%= @more_params.hash %> a").click(function () {
-      $("#search_more_<%= @more_params.hash %> .search_results_entry").hide();
-      $("#search_more_<%= @more_params.hash %> .search_searching").show();
-
-      $("#search_more_<%= @more_params.hash %>").load("<%= raw url_for(@more_params) %>");
-    });
+      $("#search_more_<%= @more_params.hash %> a").click(function () {
+        $("#search_more_<%= @more_params.hash %> .search_results_entry").hide();
+        $("#search_more_<%= @more_params.hash %> .search_searching").show();
+        $("#search_more_<%= @more_params.hash %>").load("<%= raw url_for(@more_params) %>");
+      });
     </script>
   <% end %>
 <% end %>
index 7bc8fcd..8674c95 100644 (file)
@@ -1,5 +1,5 @@
 <% @sources.each do |source| %>
-  <p class="search_results_heading"><%= raw(t "geocoder.search.title.#{source}") %></p>
+  <h4><%= raw(t "geocoder.search.title.#{source}") %></h4>
   <div class="search_results_entry" id="<%= "search_#{source}" %>">
     <%= image_tag "searching.gif", :class => "search_searching" %>
   </div>
index 0380a50..a3cbbc2 100644 (file)
@@ -1,11 +1,11 @@
 <% if flash[:error] %>
-  <div id="error"><%= raw flash[:error] %></div>
+  <div id="error" class="flash"><%=image_tag("notice.png", :class => "small_icon", :border=>0)%><%= raw flash[:error] %></div>
 <% end %>
 
 <% if flash[:warning] %>
-  <div id="warning"><%= raw flash[:warning] %></div>
+  <div id="warning" class="flash"><%=image_tag("notice.png", :class => "small_icon", :border=>0)%><%= raw flash[:warning] %></div>
 <% end %>
 
 <% if flash[:notice] %>
-  <div id="notice"><%= raw flash[:notice] %></div>
+  <div id="notice" class="flash"><%=image_tag("notice.png", :class => "small_icon", :border=>0)%><%= raw flash[:notice] %></div>
 <% end %>
index f1ae440..d36681d 100644 (file)
@@ -6,66 +6,7 @@
       <%= link_to(image_tag("osm_logo.png", :size => "16x16", :alt => t('layouts.logo.alt_text')), root_path) %>
       <h1><%= t 'layouts.project_name.h1' %></h1>
     </div>
-    <div id="content">
-      <%= render :partial => "layouts/flash", :locals => { :flash => flash } %>
-      <%= yield %>
-    </div>
-    <div id='top-bar'>
-      <span id="greeting">
-         <% if @user and @user.id %>
-           <span id="full-greeting"><%= raw(t 'layouts.welcome_user', :user_link => (link_to h(@user.display_name), user_path(:display_name => @user.display_name), :title => t('layouts.welcome_user_link_tooltip'))) %></span>
-           <span id="small-greeting"><%= link_to t('layouts.welcome_user_link_tooltip'), user_path(:display_name => @user.display_name) %></span> |
-           <%= yield :greeting %>
-           <%= render :partial => "layouts/inbox" %> |
-           <%= link_to t('layouts.logout'), logout_path(:session => request.session_options[:id], :referer => request.fullpath), {:id => 'logoutanchor', :title => t('layouts.logout_tooltip')}%>
-         <% else %>
-           <%= link_to t('layouts.log_in'), login_path(:referer => request.fullpath), {:id => 'loginanchor', :title => t('layouts.log_in_tooltip')} %> |
-           <%= link_to t('layouts.sign_up'), user_new_path, {:id => 'registeranchor', :title => t('layouts.sign_up_tooltip')} %>
-         <% end %>
-      </span>
-      <ul id="tabnav">
-        <li><%= link_to t('layouts.view'), root_path, {
-          :id => 'viewanchor',
-          :title => t('layouts.view_tooltip'),
-          :class => 'geolink llz layers'
-        } %></li>
-        <li><%= link_to h(t('layouts.edit')) + content_tag(:span, "▾", :class => "menuicon"), edit_path, {
-          :id => 'editanchor',
-          :title => t('javascripts.site.edit_tooltip'),
-          :data => { :minzoom => 13, :editor => preferred_editor },
-          :class => 'geolink llz object disabled'
-        } %></li>
-        <li><%= link_to t('layouts.history'), browse_changesets_path, {
-          :id => 'historyanchor',
-          :data => { :minzoom => 11 },
-          :title => t('javascripts.site.history_tooltip'),
-          :class => 'geolink bbox'
-        } %></li>
-        <li><%= link_to t('layouts.export'), export_path, {
-          :id => 'exportanchor',
-          :title => t('layouts.export_tooltip'),
-          :data => { :url => url_for(:controller => :export, :action => :start) },
-          :class => 'geolink llz layers'
-        } %></li>
-      </ul>
-    </div>
-    <div id="editmenu" class="menu">
-      <ul>
-        <% Editors::RECOMMENDED_EDITORS.each do |editor| %>
-          <li><%= link_to t('layouts.edit_with',
-            :editor => t("editor.#{editor}.description")),
-            edit_path(:editor => editor), {
-            :data => { :editor => editor },
-            :class => "geolink llz object"
-          } %></li>
-        <% end %>
-        <%= yield :editmenu %>
-      </ul>
-    </div>
-    <script type="text/javascript">
-      createMenu("editanchor", "editmenu", "left");
-    </script>
-    <div id="left">
+        <div id="left">
       <div id="logo">
         <%= link_to(image_tag("osm_logo.png",
           :size => "120x120",
         </p>
       </div>
     </div>
+    <div id='top-bar'>
+      <ul class='secondary-actions' id="greeting">
+         <% if @user and @user.id %>
+           <li id="full-greeting"><%=link_to h(@user.display_name), user_path(:display_name => @user.display_name), :title => t('layouts.welcome_user_link_tooltip') %></li>
+           <li><%= yield :greeting %></li>
+           <li><%= render :partial => "layouts/inbox" %></li>
+           <li><%= link_to t('layouts.logout'), logout_path(:session => request.session_options[:id], :referer => request.fullpath), {:id => 'logoutanchor', :title => t('layouts.logout_tooltip')}%></li>
+         <% else %>
+           <li><%= link_to t('layouts.log_in'), login_path(:referer => request.fullpath), {:id => 'loginanchor', :title => t('layouts.log_in_tooltip')} %></li>
+           <li><%= link_to t('layouts.sign_up'), user_new_path, {:id => 'registeranchor', :title => t('layouts.sign_up_tooltip')} %></li>
+         <% end %>
+      </ul>
+      <ul id="tabnav">
+        <li><%= link_to t('layouts.view'), root_path, {
+          :id => 'viewanchor',
+          :title => t('layouts.view_tooltip'),
+          :class => 'geolink llz layers'
+        } %></li>
+        <li><%= link_to h(t('layouts.edit')) + content_tag(:span, "▾", :class => "menuicon"), edit_path, {
+          :id => 'editanchor',
+          :title => t('javascripts.site.edit_tooltip'),
+          :data => { :minzoom => 13, :editor => preferred_editor },
+          :class => 'geolink llz object disabled'
+        } %></li>
+        <li><%= link_to t('layouts.history'), browse_changesets_path, {
+          :id => 'historyanchor',
+          :data => { :minzoom => 11 },
+          :title => t('javascripts.site.history_tooltip'),
+          :class => 'geolink bbox'
+        } %></li>
+        <li><%= link_to t('layouts.export'), export_path, {
+          :id => 'exportanchor',
+          :title => t('layouts.export_tooltip'),
+          :data => { :url => url_for(:controller => :export, :action => :start) },
+          :class => 'geolink llz layers'
+        } %></li>
+      </ul>
+    </div>
+    <div id="editmenu" class="menu">
+      <ul>
+        <% Editors::RECOMMENDED_EDITORS.each do |editor| %>
+          <li><%= link_to t('layouts.edit_with',
+            :editor => t("editor.#{editor}.description")),
+            edit_path(:editor => editor), {
+            :data => { :editor => editor },
+            :class => "geolink llz object"
+          } %></li>
+        <% end %>
+        <%= yield :editmenu %>
+      </ul>
+    </div>
+    <script type="text/javascript">
+      createMenu("editanchor", "editmenu", "left");
+    </script>
+    <div class="wrapper">
+      <%= render :partial => "layouts/flash", :locals => { :flash => flash } %>
+      <% if content_for? :heading %>
+      <div class="content-heading">
+        <%= yield :heading %>
+      </div>
+      <% end %>
+      <div id="content" class="clearfix">
+        <%= yield %>
+      </div>
+    </div>
     <% if defined?(PIWIK_LOCATION) and defined?(PIWIK_SITE) -%>
     <noscript><p><img src="<%= request.protocol %><%= PIWIK_LOCATION %>/piwik.php?idsite=<%= PIWIK_SITE %>" style="border:0" alt="" /></p></noscript>
     <% end -%>
index b52eb1f..26001c0 100644 (file)
@@ -1,7 +1,7 @@
 <tr id="inbox-<%= message_summary.id %>" class="inbox-row<%= "-unread" if not message_summary.message_read? %>">
   <td class="inbox-sender"><%= link_to h(message_summary.sender.display_name), :controller => 'user', :action => 'view', :display_name => message_summary.sender.display_name %></td>
   <td class="inbox-subject"><%= link_to h(message_summary.title), :controller => 'message', :action => 'read', :message_id => message_summary.id  %></td>
-  <td class="inbox-sent nowrap"><%= l message_summary.sent_on, :format => :friendly %></td>
+  <td class="inbox-sent"><%= l message_summary.sent_on, :format => :friendly %></td>
   <td class="inbox-mark-unread"><%= button_to t('message.message_summary.unread_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}, { :remote => true } %></td>
   <td class="inbox-mark-read"><%= button_to t('message.message_summary.read_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read'}, { :remote => true } %></td>
   <td><%= button_to t('message.message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.fullpath %></td>
index 962cf0a..3580822 100644 (file)
@@ -1,6 +1,6 @@
 <tr class="inbox-row">
   <td class="inbox-sender"><%= link_to h(sent_message_summary.recipient.display_name), :controller => 'user', :action => 'view', :display_name => sent_message_summary.recipient.display_name %></td>
   <td class="inbox-subject"><%= link_to h(sent_message_summary.title), :controller => 'message', :action => 'read', :message_id => sent_message_summary.id  %></td>
-  <td class="inbox-sent nowrap"><%= l sent_message_summary.sent_on, :format => :friendly %></td>
+  <td class="inbox-sent"><%= l sent_message_summary.sent_on, :format => :friendly %></td>
   <td><%= button_to t('message.sent_message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => sent_message_summary.id, :referer => request.fullpath %></td>
 </tr>
index ec14607..4a898c0 100644 (file)
@@ -1,7 +1,8 @@
-<div class='text-content'>
-<h2><%= t'message.inbox.my_inbox'%>/<%= link_to t('message.inbox.outbox'), outbox_path(@user.display_name) %></h2>
+<% content_for :heading do %>
+  <h2><%= t'message.inbox.my_inbox'%>/<%= link_to t('message.inbox.outbox'), outbox_path(@user.display_name) %></h2>
+<% end %>
 
-<%= render :partial => "message_count" %>
+  <h4><%= render :partial => "message_count" %></h4>
 
 <% if @user.messages.size > 0 %>
   <table class="messages">
@@ -21,4 +22,3 @@
 <% else %>
   <div><%= raw(t'message.inbox.no_messages_yet', :people_mapping_nearby_link => link_to(t('message.inbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name)) %></div>
 <% end %>
-</div>
index ed95e22..96f6b08 100644 (file)
@@ -1,4 +1,6 @@
-<h2><%= raw(t'message.new.send_message_to', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name})) %></h2>
+<% content_for :heading do %>
+  <h2><%= raw(t'message.new.send_message_to', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name})) %></h2>
+<% end %>
 
 <%= error_messages_for 'message' %>
 
index 6fd5212..9bf6ddb 100644 (file)
@@ -1,2 +1,5 @@
-<h1><%= t'message.no_such_message.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t'message.no_such_message.heading' %></h1>
+<% end %>
+
 <p><%= t'message.no_such_message.body' %></p>
index 30d55e1..ebf04c9 100644 (file)
@@ -1,6 +1,8 @@
-<h2><%= raw(t'message.outbox.my_inbox', :inbox_link => link_to(t('message.outbox.inbox'), inbox_path(@user.display_name))) %>/<%= t'message.outbox.outbox' %></h2>
+<% content_for :heading do %>
+  <h2><%= raw(t'message.outbox.my_inbox', :inbox_link => link_to(t('message.outbox.inbox'), inbox_path(@user.display_name))) %>/<%= t'message.outbox.outbox' %></h2>
+<% end %>
 
-<p><%= t'message.outbox.messages', :count => @user.sent_messages.size %></p>
+<h4><%= t'message.outbox.messages', :count => @user.sent_messages.size %></h4>
 
 <% if @user.sent_messages.size > 0 %>
   <table class="messages">
index de36caf..e62873a 100644 (file)
@@ -1,37 +1,36 @@
-<div class='text-content'>
 <% if @user == @message.recipient %>
-
+  <% content_for :heading do %>
     <h2><%= h(@message.title) %></h2>
-
-    <div class='info-line'>
-        <%= user_thumbnail_tiny @message.sender %>
-        <%= link_to h(@message.sender.display_name), :controller => 'user', :action => 'view', :display_name => @message.sender.display_name %></td>
-        <div class='right'>
-            <%= l @message.sent_on, :format => :friendly %>
-            <%= button_to t('message.read.reply_button'), :controller => 'message', :action => 'reply', :message_id => @message.id %>
-            <%= button_to t('message.read.unread_button'), :controller => 'message', :action => 'mark', :message_id => @message.id, :mark => 'unread' %>
-        </div>
+  <% end %>
+
+  <div class='info-line clearfix'>
+    <%= user_thumbnail_tiny @message.sender %>
+    <%= link_to h(@message.sender.display_name), :controller => 'user', :action => 'view', :display_name => @message.sender.display_name %></td>
+    <div class='right'>
+      <%= l @message.sent_on, :format => :friendly %>
+      <%= button_to t('message.read.reply_button'), :controller => 'message', :action => 'reply', :message_id => @message.id %>
+      <%= button_to t('message.read.unread_button'), :controller => 'message', :action => 'mark', :message_id => @message.id, :mark => 'unread' %>
     </div>
+  </div>
 
-    <%= @message.body.to_html %></td>
+  <%= @message.body.to_html %></td>
 
-    <%= link_to t('message.read.back_to_inbox'), :controller => 'message', :action => 'inbox', :display_name => @user.display_name %>
+  <%= link_to t('message.read.back_to_inbox'), :controller => 'message', :action => 'inbox', :display_name => @user.display_name %>
 
 <% else %>
 
-    <h2><%= h(@message.title) %></h2>
+  <h2><%= h(@message.title) %></h2>
 
-    <div class='info-line'>
-        <%= user_thumbnail_tiny @message.recipient %>
-        <%= link_to h(@message.recipient.display_name), :controller => 'user', :action => 'view', :display_name => @message.recipient.display_name %></td>
-        <div class='right'>
-            <%= l @message.sent_on, :format => :friendly %>
-        </div>
+  <div class='info-line clearfix'>
+    <%= user_thumbnail_tiny @message.recipient %>
+    <%= link_to h(@message.recipient.display_name), :controller => 'user', :action => 'view', :display_name => @message.recipient.display_name %></td>
+    <div class='right'>
+      <%= l @message.sent_on, :format => :friendly %>
     </div>
+  </div>
 
-    <%= @message.body.to_html %></td>
+  <%= @message.body.to_html %></td>
 
-    <%= link_to t('message.read.back_to_outbox'), :controller => 'message', :action => 'outbox', :display_name => @user.display_name %>
+  <%= link_to t('message.read.back_to_outbox'), :controller => 'message', :action => 'outbox', :display_name => @user.display_name %>
 
-<% end %>
-</div>
+<% end %>
\ No newline at end of file
index eaf43f9..31729d4 100644 (file)
@@ -1,5 +1,8 @@
-<h1>Authorize access to your account</h1>
-<p><%= raw t('oauth.oauthorize.request_access', :app_name => link_to(@token.client_application.name, @token.client_application.url), :user => link_to(@user.display_name, :controller => :user, :action => :view, :display_name => @user.display_name)) %></p>
+<% content_for :heading do %>
+  <h1>Authorize access to your account</h1>
+  <p><%= raw t('oauth.oauthorize.request_access', :app_name => link_to(@token.client_application.name, @token.client_application.url), :user => link_to(@user.display_name, :controller => :user, :action => :view, :display_name => @user.display_name)) %></p>
+<% end %>
+
 <%= form_tag authorize_url do %>
   <%= hidden_field_tag "oauth_token", @token.token %>
   <%- if params[:oauth_callback] -%>
index d8110c9..d5e53e4 100644 (file)
@@ -1 +1,3 @@
-<h1>You have disallowed this request</h1>
+<% content_for :heading do %>
+  <h1>You have disallowed this request</h1>
+<% end %>
\ No newline at end of file
index 89512db..aa2a52f 100644 (file)
@@ -1,4 +1,6 @@
-<h1>You have allowed this request</h1>
+<% content_for :heading do %>
+  <h1>You have allowed this request</h1>
+<% end %>
 
 <% if @token.oob? and not @token.oauth10? %>
 <p>The verification code is <%= @token.verifier %></p>
index b27f9b8..99aab0e 100644 (file)
@@ -1,4 +1,7 @@
-<h1><%= t'oauth_clients.edit.title' %></h1>
+<% content_for :heading do %>
+  <h1><%= t'oauth_clients.edit.title' %></h1>
+<% end %>
+
 <%= form_for @client_application, :url => oauth_client_path(@client_application.user.display_name, @client_application), :html => { :method => :put } do |f| %>
   <%= render :partial => "form", :locals => { :f => f } %>
   <br/>
index d698728..80dbc60 100644 (file)
@@ -1,4 +1,7 @@
-<h1><%= t'oauth_clients.index.title' %></h1>
+<% content_for :heading do %>
+  <h1><%= t'oauth_clients.index.title' %></h1>
+<% end %>
+
 <% unless @tokens.empty? %>
 <h3><%= t'oauth_clients.index.my_tokens' %></h3>
 <p><%= t'oauth_clients.index.list_tokens' %></p>
@@ -16,7 +19,7 @@
        <% end %>
       </td>
     <% end %>
-  <% end %>    
+  <% end %>
 </table>
 <% end %>
 <h3><%= t'oauth_clients.index.my_apps' %></h3>
@@ -30,4 +33,4 @@
   <% end %>
 <% end %>
 <% end %>
-<h3><%= link_to t('oauth_clients.index.register_new'), :action => :new %></h3>
+<h3><%= link_to t('oauth_clients.index.register_new'), :action => :new %></h3>
\ No newline at end of file
index 2cd748a..1c18857 100644 (file)
@@ -1,6 +1,9 @@
-<h1><%= t'oauth_clients.new.title' %></h1>
+<% content_for :heading do %>
+  <h1><%= t'oauth_clients.new.title' %></h1>
+<% end %>
+
 <%= form_for :client_application, :url => { :action => :create } do |f| %>
    <%= render :partial => "form", :locals => { :f => f } %>
    <br />
    <%= submit_tag t('oauth_clients.new.submit') %>
-<% end %>
+<% end %>
\ No newline at end of file
index 8139a2d..6b91692 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t('oauth_clients.show.title', :app_name => @client_application.name) %></h1>
+<% content_for :heading do %>
+  <h1><%= t('oauth_clients.show.title', :app_name => @client_application.name) %></h1>
+<% end %>
 <p>
   <b><%= t'oauth_clients.show.key' %></b> <%=@client_application.key %>
 </p>
index 2a5e69d..2dd63c9 100644 (file)
@@ -1,5 +1,8 @@
 <% @title = t 'redaction.edit.title' %>
-<h1><%= t 'redaction.edit.heading' %></h1>
+
+<% content_for :heading do %>
+  <h1><%= t 'redaction.edit.heading' %></h1>
+<% end %>
 
 <%= form_for(@redaction) do |f| %>
   <%= f.error_messages %>
index 1fa683d..a5a85c3 100644 (file)
@@ -1,5 +1,7 @@
 <% @title = t('redaction.index.title') %>
-<h1><%= t('redaction.index.heading') %></h1>
+<% content_for :heading do %>
+  <h1><%= t('redaction.index.heading') %></h1>
+<% end %>
 
 <% unless @redactions.empty? %>
   <%= render :partial => 'redactions' %>
index c714acd..5004c0e 100644 (file)
@@ -1,5 +1,7 @@
 <% @title = t 'redaction.new.title' %>
-<h1><%= t 'redaction.new.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'redaction.new.heading' %></h1>
+<% end %>
 
 <%= form_for(@redaction) do |f| %>
   <%= f.error_messages %>
index 1a24f15..798ed96 100644 (file)
@@ -1,5 +1,7 @@
 <% @title = t('redaction.show.title') %>
-<h1><%= t('redaction.show.heading', :title => @redaction.title) %></h1>
+<% content_for :heading do %>
+  <h1><%= t('redaction.show.heading', :title => @redaction.title) %></h1>
+<% end %>
 
 <p>
   <b><%= t 'redaction.show.user' %></b>
index 615200b..4d781c1 100644 (file)
@@ -1,5 +1,5 @@
 <% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %>
   <% content_for :greeting do %>
-    <%= link_to t("layouts.home"), "#", :class => "set_position", :data => { :lat => @user.home_lat, :lon => @user.home_lon, :zoom => 15 }, :title => t("layouts.home_tooltip") %> |
+    <%= link_to t("layouts.home"), "#", :class => "set_position", :data => { :lat => @user.home_lat, :lon => @user.home_lon, :zoom => 15 }, :title => t("layouts.home_tooltip") %>
   <% end %>
 <% end %>
index bea37d0..60d0575 100644 (file)
@@ -1,10 +1,8 @@
 <div id="sidebar">
-  <table class="sidebar_title" width="100%">
-    <tr>
-      <td id="sidebar_title"><% t 'site.sidebar.search_results' %></td>
-      <td id="sidebar_close"><a class="sidebar_close" href="#"><%= t 'site.sidebar.close' %></a></td>
-    </tr>
-  </table>
+  <div class="sidebar_heading">
+    <h4 id="sidebar_title"><% t 'site.sidebar.search_results' %></h4>
+    <div id="sidebar_close"><a class="sidebar_close" href="#"><%= t 'site.sidebar.close' %></a></div>
+  </div>
   <div id="sidebar_content">
   </div>
 </div>
index 2f44386..160dfea 100644 (file)
@@ -1,35 +1,39 @@
+<% content_for :heading do %>
 <% if @locale == 'en' %>
   <!-- Maybe ease foreigners back to their native page -->
-  <% if t('license_page.legal_babble', :locale => I18n.locale) != t('license_page.legal_babble', :locale => :en) %>
-    <h2><%= t 'license_page.native.title' %></h2>
-    <p>
-      <%= raw t 'license_page.native.text',
-                  :native_link => link_to(t('license_page.native.native_link'),
-                                              :controller => 'site',
-                                              :action => 'copyright',
-                                              :copyright_locale => nil),
-                  :mapping_link => link_to(t('license_page.native.mapping_link'),
-                                              :controller => 'site',
-                                              :action => 'index') %>
-    </p>
-    <hr />
-  <% end %>
-<% else %>
-  <!-- Maybe note that this page has been translated -->
-  <% if t('license_page.legal_babble', :locale => @locale) != t('license_page.legal_babble', :locale => :en) %>
-    <h2><%= t 'license_page.foreign.title' %></h2>
-    <p>
-      <%= raw t 'license_page.foreign.text',
-                  :english_original_link => link_to(t('license_page.foreign.english_link'),
-                                                        :controller => 'site',
-                                                        :action => 'copyright',
-                                                        :copyright_locale => 'en') %>
-    </p>
-    <hr />
+
+    <% if t('license_page.legal_babble', :locale => I18n.locale) != t('license_page.legal_babble', :locale => :en) %>
+      <h2><%= t 'license_page.native.title' %></h2>
+      <p>
+        <%= raw t 'license_page.native.text',
+                    :native_link => link_to(t('license_page.native.native_link'),
+                                                :controller => 'site',
+                                                :action => 'copyright',
+                                                :copyright_locale => nil),
+                    :mapping_link => link_to(t('license_page.native.mapping_link'),
+                                                :controller => 'site',
+                                                :action => 'index') %>
+      </p>
+      <hr />
+    <% end %>
+  <% else %>
+    <!-- Maybe note that this page has been translated -->
+    <% if t('license_page.legal_babble', :locale => @locale) != t('license_page.legal_babble', :locale => :en) %>
+      <h2><%= t 'license_page.foreign.title' %></h2>
+      <p>
+        <%= raw t 'license_page.foreign.text',
+                    :english_original_link => link_to(t('license_page.foreign.english_link'),
+                                                          :controller => 'site',
+                                                          :action => 'copyright',
+                                                          :copyright_locale => 'en') %>
+      </p>
+      <hr />
+    <% end %>
   <% end %>
-<% end %>
 
-<h2><%= t "license_page.legal_babble.title_html", :locale => @locale %></h2>
+  <h2><%= t "license_page.legal_babble.title_html", :locale => @locale %></h2>
+
+<% end %>
 
 <p><%= t "license_page.legal_babble.intro_1_html", :locale => @locale %></p>
 <p><%= t "license_page.legal_babble.intro_2_html", :locale => @locale %></p>
@@ -42,8 +46,6 @@
 <p><%= image_tag("attribution_example.png",
               :alt => t('license_page.legal_babble.attribution_example.alt'),
               :border => 0,
-              :width => 193,
-              :height => 69,
               :title => t('license_page.legal_babble.attribution_example.title')) %>
 
 <h3><%= t "license_page.legal_babble.more_title_html", :locale => @locale %></h3>
@@ -66,4 +68,4 @@
 
 <h3><%= t "license_page.legal_babble.infringement_title_html", :locale => @locale %></h3>
 <p><%= t "license_page.legal_babble.infringement_1_html", :locale => @locale %></p>
-<p><%= t "license_page.legal_babble.infringement_2_html", :locale => @locale %></p>
+<p><%= t "license_page.legal_babble.infringement_2_html", :locale => @locale %></p>
\ No newline at end of file
index 32717d8..ac52336 100644 (file)
     <% end %>
   </td>
   <td class="<%= cl %>"><%= link_to trace.name, {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id} %>
-    <span class="trace_summary" title="<%= trace.timestamp %>"> ... 
-      <% if trace.inserted %> 
+    <span class="trace_summary" title="<%= trace.timestamp %>"> ...
+      <% if trace.inserted %>
         (<%= t'trace.trace.count_points', :count => trace.size.to_s.gsub(/(\d)(?=(\d{3})+$)/,'\1,') %>)
-      <% end %> 
+      <% end %>
       ... <%= t'trace.trace.ago', :time_in_words_ago => time_ago_in_words(trace.timestamp) %></span>
       <%= link_to t('trace.trace.more'), {:controller => 'trace', :action => 'view', :display_name => trace.user.display_name, :id => trace.id}, {:title => t('trace.trace.trace_details')} %> /
       <%= link_to_if trace.inserted?, t('trace.trace.map'), {:controller => 'site', :action => 'index', :lat => trace.latitude, :lon => trace.longitude, :zoom => 14}, {:title => t('trace.trace.view_map')} %> /
       <%= link_to t('trace.trace.edit'), {:controller => 'site', :action => 'edit', :gpx => trace.id }, {:title => t('trace.trace.edit_map')} %>
       <span class="trace_<%= trace.visibility %>"><%= t('trace.trace.' + trace.visibility) %></span>
       <br />
-      <%= h(trace.description) %>
+      <%= t('trace.list.description') %>
     <br />
     <%= t'trace.trace.by' %> <%=link_to h(trace.user.display_name), {:controller => 'user', :action => 'view', :display_name => trace.user.display_name} %>
     <% if !trace.tags.empty? %>
-      <%= t'trace.trace.in' %> 
+      <%= t'trace.trace.in' %>
       <%= raw(trace.tags.collect { |tag| link_to_tag tag.tag }.join(", ")) %>
     <% end %>
   </td>
index d541c98..a20091c 100644 (file)
@@ -1,7 +1,6 @@
 <% content_for :optionals do %>
   <div class="optionalbox">
-    <h1><%= t'trace.trace_optionals.tags' %></h1>
-    <br />
+    <h4><%= t'trace.trace_optionals.tags' %></h4>
     <% if @all_tags %>
       <% @all_tags.each do |tag| %>
         <%= link_to_tag tag %><br />
index 23346a9..1f91ef8 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t'trace.create.upload_trace' %></h1>
+<% content_for :heading do %>
+  <h1><%= t'trace.create.upload_trace' %></h1>
+<% end %>
 
 <%= error_messages_for 'trace' %>
 
index a694d55..32c07db 100644 (file)
@@ -1,4 +1,6 @@
-<h2><%= t 'trace.edit.heading', :name => h(@trace.name) %></h2>
+<% content_for :heading do %>
+  <h2><%= t 'trace.edit.heading', :name => h(@trace.name) %></h2>
+<% end %>
 
 <img src="<%= url_for :controller => 'trace', :action => 'picture', :id => @trace.id, :display_name => @trace.user.display_name %>">
 
@@ -8,7 +10,7 @@
   <tr>
     <td><%= t'trace.edit.filename' %></td>
     <td><%= @trace.name %> (<%= link_to t('trace.edit.download'), :controller => 'trace', :action => 'data', :id => @trace.id %>)</td>
-  </tr> 
+  </tr>
   <tr>
     <td><%= t'trace.edit.uploaded_at' %></td>
     <td><%= l @trace.timestamp, :format => :friendly %></td>
index 5a33def..c600df1 100644 (file)
@@ -1,25 +1,27 @@
-<h1><%= h(@title) %></h1>
+<% content_for :heading do %>
+  <h1><%= h(@title) %></h1>
+  <ul class='secondary-actions clearfix'>
+    <li><%= t('trace.list.description') %></li>
+    <li><%= rss_link_to :action => 'georss', :display_name => @display_name, :tag => @tag %></li>
+    <li><%= link_to t('trace.trace_header.upload_trace'), :action => 'create' %></li>
+    <% if @tag %>
+      <li><%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list', :display_name => nil, :tag => nil, :page => nil %></li>
+      <li><%= link_to t('trace.trace_header.see_your_traces'), :action => 'mine', :tag => nil, :page => nil %></li>
+    <% else %>
+      <% if @display_name %>
+        <li><%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list', :display_name => nil, :tag => nil, :page => nil %></li>
+      <% end %>
+      <%= unless_user(@target_user, :li) do %>
+        <%= link_to t('trace.trace_header.see_your_traces'), :action => 'mine', :tag => nil, :page => nil %>
+      <% end %>
+    <% end %>
+  </ul>
+<% end %>
 
 <% content_for :head do %>
 <%= auto_discovery_link_tag :atom, :action => 'georss', :display_name => @display_name, :tag => @tag %>
 <% end %>
 
-<p>
-  <%= rss_link_to :action => 'georss', :display_name => @display_name, :tag => @tag %>
-  | <%= link_to t('trace.trace_header.upload_trace'), :action => 'create' %>
-  <% if @tag %>
-    | <%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list', :display_name => nil, :tag => nil, :page => nil %>
-    | <%= link_to t('trace.trace_header.see_your_traces'), :action => 'mine', :tag => nil, :page => nil %>
-  <% else %>
-    <% if @display_name %>
-      | <%= link_to t('trace.trace_header.see_all_traces'), :controller => 'trace', :action => 'list', :display_name => nil, :tag => nil, :page => nil %>
-    <% end %>
-    <%= unless_user(@target_user, :span) do %>
-      | <%= link_to t('trace.trace_header.see_your_traces'), :action => 'mine', :tag => nil, :page => nil %>
-    <% end %>
-  <% end %>
-</p>
-
 <% if @traces.size > 0 %>
   <%= render :partial => 'trace_paging_nav' %>
 
@@ -33,7 +35,7 @@
 
   <%= render :partial => 'trace_paging_nav' %>
 <% else %>
-  <p><%= t 'trace.list.empty_html', :upload_link => trace_create_path %></p>
+  <h4><%= t 'trace.list.empty_html', :upload_link => trace_create_path %></h4>
 <% end %>
 
 <%= render :partial => 'trace_optionals' %>
index d9cfb39..ed6c1c5 100644 (file)
@@ -1,2 +1,5 @@
+<% content_for :heading do %>
 <h2><%= t 'trace.offline.heading' %></h2>
+<% end %>
+
 <p><%= t 'trace.offline.message' %></p>
index 5a7c5bc..0887e56 100644 (file)
@@ -1,4 +1,6 @@
-<h2><%= t 'trace.view.heading', :name => h(@trace.name) %></h2>
+<% content_for :heading do %>
+  <h2><%= t 'trace.view.heading', :name => h(@trace.name) %></h2>
+<% end %>
 
 <% if STATUS != :gpx_offline %>
   <% if @trace.inserted %>
@@ -12,7 +14,7 @@
   <tr>
     <td><%= t'trace.view.filename' %></td>
     <td><%= @trace.name %> (<%= link_to t('trace.view.download'), :controller => 'trace', :action => 'data', :id => @trace.id %>)</td>
-  </tr> 
+  </tr>
   <tr>
     <td><%= t'trace.view.uploaded' %></td>
     <td><%= l @trace.timestamp, :format => :friendly %></td>
index 1a28c21..e723af9 100644 (file)
@@ -1,4 +1,4 @@
-<tr>
+<div class='contact-activity clearfix'>
   <%
      user_data = {
        :lon => contact.home_lon,
   <%= content_tag "td", :rowspan => 3, :data => {:user => user_data} do %>
     <%= user_thumbnail contact %>
   <% end %>
-  <td>
-    <%= link_to h(contact.display_name), :controller => 'user', :action => 'view',  :display_name => contact.display_name %>
-    <% if @this_user.home_lon and @this_user.home_lat and contact.home_lon and contact.home_lat %>
-      <% distance = @this_user.distance(contact) %>
-      <% if distance < 1 %>
-        (<%= t 'user.view.m away', :count => (distance * 1000).round %>)
+  <div class='activity-details'>
+    <p class='deemphasize'>
+      <%= link_to h(contact.display_name), :controller => 'user', :action => 'view',  :display_name => contact.display_name %>
+      <% if @this_user.home_lon and @this_user.home_lat and contact.home_lon and contact.home_lat %>
+        <% distance = @this_user.distance(contact) %>
+        <% if distance < 1 %>
+          (<%= t 'user.view.m away', :count => (distance * 1000).round %>)
+        <% else %>
+          (<%= t 'user.view.km away', :count => distance.round %>)
+        <% end %>
+      <% end %>
+    </p>
+    <p>
+      <% changeset = contact.changesets.first %>
+      <% if changeset %>
+        <%= t('user.view.latest edit', :ago => t('user.view.ago', :time_in_words_ago => time_ago_in_words(changeset.created_at))) %>
+        <% comment = changeset.tags['comment'].to_s != '' ? changeset.tags['comment'] : t('changeset.changeset.no_comment') %>
+        "<%= link_to(comment,
+                            {:controller => 'browse', :action => 'changeset', :id => changeset.id},
+                            {:title => t('changeset.changeset.view_changeset_details')})
+        %>"
       <% else %>
-        (<%= t 'user.view.km away', :count => distance.round %>)
+       <%= t'changeset.changeset.no_edits' %>
+      <% end %>
+    </p>
+
+    <ul class='secondary-actions clearfix deemphasize'>
+      <li><%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => contact.display_name %></li>
+      <li>
+        <% if @user.is_friends_with?(contact) %>
+          <%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
+        <% else %>
+          <%= link_to t('user.view.add as friend'), make_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
       <% end %>
-    <% end %>
-  </td>
-</tr>
-<tr>
-  <td>
-    <% changeset = contact.changesets.first %>
-    <% if changeset %>
-      <%= t('user.view.latest edit', :ago => t('user.view.ago', :time_in_words_ago => time_ago_in_words(changeset.created_at))) %>
-      <% comment = changeset.tags['comment'].to_s != '' ? changeset.tags['comment'] : t('changeset.changeset.no_comment') %>
-      "<%= link_to(comment,
-                          {:controller => 'browse', :action => 'changeset', :id => changeset.id},
-                          {:title => t('changeset.changeset.view_changeset_details')})
-      %>"
-    <% else %>
-     <%= t'changeset.changeset.no_edits' %>
-    <% end %>
-  </td>
-</tr>
-<tr>
-  <td>
-    <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => contact.display_name %>
-    |
-    <% if @user.is_friends_with?(contact) %>
-      <%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
-    <% else %>
-      <%= link_to t('user.view.add as friend'), make_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
-    <% end %>
-  </td>
-</tr>
+      </li>
+    </ul>
+  </div>
+</div>
index 179e1b2..2782fc8 100644 (file)
@@ -1,7 +1,10 @@
-<h2><%= t 'user.account.my settings' %></h2>
-
-<%= link_to t('user.account.return to profile'), :controller => 'user', :action => 'view', :display_name => @user.display_name %> |
-<%= link_to t('user.view.oauth settings'), :controller => 'oauth_clients', :action => 'index' %>
+<% content_for :heading do %>
+  <h2><%= t 'user.account.my settings' %></h2>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to t('user.account.return to profile'), :controller => 'user', :action => 'view', :display_name => @user.display_name %></li>
+    <li><%= link_to t('user.view.oauth settings'), :controller => 'oauth_clients', :action => 'index' %></li>
+  </ul>
+<% end %>
 
 <%= error_messages_for 'user' %>
 <%= form_for :user, :html => { :multipart => true } do |f| %>
@@ -86,7 +89,7 @@
     </td>
     <td class="accountImage">
       <%= user_image @user %>
-      <table>
+      <table class="accountImage-options">
         <% if @user.image.file? %>
         <tr>
           <td><%= radio_button_tag "image_action", "keep", !@user.image_use_gravatar %></td>
       <% content_for :head do %>
         <%= javascript_include_tag "user" %>
       <% end %>
-      <%= content_tag "div", "", :id => "map", :class => "user_map set_location" %>
+      <%= content_tag "div", "", :id => "map", :class => "content_map settings_map set_location" %>
     </td>
   </tr>
 
 <h2><%= t 'user.account.public editing note.heading' %></h2>
 <%= raw t 'user.account.public editing note.text' %>
   <%= button_to t('user.account.make edits public button'), :action => :go_public %>
-<% end %>
+<% end %>
\ No newline at end of file
index 69e7006..f175fe1 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t 'user.new.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.new.heading' %></h1>
+<% end %>
 
 <p><%= t 'user.new.no_auto_account_create' %></p>
 
index f48cd88..3b68ddd 100644 (file)
@@ -2,7 +2,9 @@
 $("#content").hide();
 </script>
 
-<h1><%= t 'user.confirm.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.confirm.heading' %></h1>
+<% end %>
 
 <p><%= t 'user.confirm.press confirm button' %></p>
 
index 5efc6a2..1170631 100644 (file)
@@ -2,7 +2,9 @@
 $("#content").hide();
 </script>
 
-<h1><%= t 'user.confirm_email.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.confirm_email.heading' %></h1>
+<% end %>
 
 <p><%= t 'user.confirm_email.press confirm button' %></p>
 
index 398debe..240a759 100644 (file)
@@ -1,6 +1,8 @@
 <% @title = t('user.list.title') %>
 
-<h1><%= t('user.list.heading') %></h1>
+<% content_for :heading do %>
+  <h1><%= t('user.list.heading') %></h1>
+<% end %>
 
 <% unless @users.empty? %>
   <%= form_tag do %>
index 5208d0a..c2deada 100644 (file)
@@ -1,67 +1,61 @@
-<div id="login_wrapper">
 
-  <div id="login_login">
-    <h1><%= t 'user.login.heading' %></h1>
+<div id="login_login">
+<% content_for :heading do %>
+  <h1><%= t 'user.login.heading' %></h1>
+<% end %>
 
-    <%= form_tag({ :action => "login" }, { :id => "login_form" }) do %>
-      <%= hidden_field_tag('referer', h(params[:referer])) %>
+  <%= form_tag({ :action => "login" }, { :id => "login_form" }) do %>
+    <%= hidden_field_tag('referer', h(params[:referer])) %>
 
-      <p><%= t 'user.login.no account' %> <%= link_to t('user.login.register now'), :action => :new, :referer => params[:referer] %></p>
+    <p><%= t 'user.login.no account' %> <%= link_to t('user.login.register now'), :action => :new, :referer => params[:referer] %></p>
 
-      <table id="loginForm">
-        <tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field_tag "username", params[:username], :size => 28, :maxlength => 255, :tabindex => 1 %></td></tr>
-        <tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field_tag "password", "", :size => 28, :maxlength => 255, :tabindex => 2 %> <span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
-        <tr>
-          <td></td>
-          <td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %>
-            <label for="remember_me">
-              <%= t 'user.login.remember' %></label>
-          </td>
-        </tr>
-        <tr>
-          <td></td>
-          <td>
-            <%= submit_tag t('user.login.login_button'), :tabindex => 4 %>
-          </td>
-        </tr>
-      </table>
+    <table id="loginForm">
+      <tr><td class="fieldName"><%= t 'user.login.email or username' %></td><td><%= text_field_tag "username", params[:username], :size => 28, :maxlength => 255, :tabindex => 1 %></td></tr>
+      <tr><td class="fieldName"><%= t 'user.login.password' %></td><td><%= password_field_tag "password", "", :size => 28, :maxlength => 255, :tabindex => 2 %> <span class="minorNote">(<%= link_to t('user.login.lost password link'), :controller => 'user', :action => 'lost_password' %>)</span></td></tr>
+      <tr>
+        <td></td>
+        <td><%= check_box_tag "remember_me", "yes", false, :tabindex => 3 %>
+          <label for="remember_me">
+            <%= t 'user.login.remember' %></label>
+        </td>
+      </tr>
+      <tr>
+        <td></td>
+        <td>
+          <%= submit_tag t('user.login.login_button'), :tabindex => 4 %>
+        </td>
+      </tr>
+    </table>
+    <p><%= t 'user.login.with openid' %></p>
 
-      <br clear="all" />
+    <ul id="login_openid_buttons">
+        <li><%= link_to image_tag("openid.png", :alt => t("user.login.openid_providers.openid.title")), "#", :id => "openid_open_url", :title => t("user.login.openid_providers.openid.title") %></li>
+        <li><%= openid_button "google", "gmail.com" %></li>
+        <li><%= openid_button "yahoo", "me.yahoo.com" %></li>
+        <li><%= openid_button "myopenid", "myopenid.com" %></li>
+        <li><%= openid_button "wordpress", "wordpress.com" %></li>
+        <li><%= openid_button "aol", "aol.com" %></li>
+    </ul>
 
-      <p><%= t 'user.login.with openid' %></p>
+    <table>
+      <tr id="login_openid_url">
+        <td class="fieldName nowrap">
+          <%= raw t 'user.login.openid', :logo => openid_logo %>
+        </td>
+        <td>
+          <%= url_field_tag("openid_url", "", { :size => 28, :maxlength => 255, :tabindex => 3, :class => "openid_url" }) %>
+          <span class="minorNote">(<a href="<%= t 'user.account.openid.link' %>" target="_new"><%= t 'user.account.openid.link text' %></a>)</span>
+        </td>
+      </tr>
+      <tr>
+        <td class="fieldName nowrap" id="remember_me_label"><label for="remember_me"><%= t 'user.login.remember' %></label></td>
+        <td width="100%"><%= check_box_tag "remember_me", "yes", false, :tabindex => 5 %></td>
+      </tr>
+    </table>
 
-      <table id="login_openid_buttons">
-        <tr>
-          <td><%= link_to image_tag("openid.png", :alt => t("user.login.openid_providers.openid.title")), "#", :id => "openid_open_url", :title => t("user.login.openid_providers.openid.title") %></td>
-          <td><%= openid_button "google", "gmail.com" %></td>
-          <td><%= openid_button "yahoo", "me.yahoo.com" %></td>
-          <td><%= openid_button "myopenid", "myopenid.com" %></td>
-          <td><%= openid_button "wordpress", "wordpress.com" %></td>
-          <td><%= openid_button "aol", "aol.com" %></td>
-        </tr>
-      </table>
+    <%= submit_tag t('user.login.login_button'), :tabindex => 6, :id => "login_openid_submit" %>
+  <% end %>
 
-      <table>
-        <tr id="login_openid_url">
-          <td class="fieldName nowrap">
-            <%= raw t 'user.login.openid', :logo => openid_logo %>
-          </td>
-          <td>
-            <%= url_field_tag("openid_url", "", { :size => 28, :maxlength => 255, :tabindex => 3, :class => "openid_url" }) %>
-            <span class="minorNote">(<a href="<%= t 'user.account.openid.link' %>" target="_new"><%= t 'user.account.openid.link text' %></a>)</span>
-          </td>
-        </tr>
-        <tr>
-          <td class="fieldName nowrap" id="remember_me_label"><label for="remember_me"><%= t 'user.login.remember' %></label></td>
-          <td width="100%"><%= check_box_tag "remember_me", "yes", false, :tabindex => 5 %></td>
-        </tr>
-      </table>
-
-      <%= submit_tag t('user.login.login_button'), :tabindex => 6, :id => "login_openid_submit" %>
-    <% end %>
-
-    <br clear="all" />
-  </div>
 </div>
 
 <script type="text/javascript">
index 8cf7624..bb67d15 100644 (file)
@@ -1,4 +1,7 @@
-<h1><%= t 'user.logout.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.logout.heading' %></h1>
+<% end %>
+
 <%= form_tag :action => "logout" do %>
   <%= hidden_field_tag("referer", h(params[:referer])) %>
   <%= hidden_field_tag("session", request.session_options[:id]) %>
index db1ee74..4d1689e 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t 'user.lost_password.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.lost_password.heading' %></h1>
+<% end %>
 
 <p><%= t 'user.lost_password.help_text' %></p>
 
index abae0d2..9adffad 100644 (file)
@@ -1,4 +1,7 @@
-<h1><%= t "user.make_friend.heading", :user => @new_friend.display_name %></h1>
+<% content_for :heading do %>
+  <h1><%= t "user.make_friend.heading", :user => @new_friend.display_name %></h1>
+<% end %>
+
 <%= form_tag do %>
   <% if params[:referer] -%>
   <%= hidden_field_tag("referer", params[:referer]) %>
index f45072a..71d3e87 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t 'user.new.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.new.heading' %></h1>
+<% end %>
 
 <p><%= t 'user.new.fill_form' %></p>
 
index 8507f5a..d472f96 100644 (file)
@@ -1,2 +1,4 @@
-<h2><%= t 'user.no_such_user.heading', :user => h(@not_found_user) %></h2>
+<% content_for :heading do %>
+  <h2><%= t 'user.no_such_user.heading', :user => h(@not_found_user) %></h2>
+<% end %>
 <p><%= t 'user.no_such_user.body', :user => h(@not_found_user) %></p>
index 0919bc9..9e9a5e5 100644 (file)
@@ -1,4 +1,7 @@
-<h1><%= t "user.remove_friend.heading", :user => @friend.display_name %></h1>
+<% content_for :heading do %>
+  <h1><%= t "user.remove_friend.heading", :user => @friend.display_name %></h1>
+<% end %>
+
 <%= form_tag do %>
   <% if params[:referer] -%>
   <%= hidden_field_tag("referer", params[:referer]) %>
index adb714b..36dd741 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t 'user.reset_password.heading', :user => @user.display_name %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.reset_password.heading', :user => @user.display_name %></h1>
+<% end %>
 
 <%= error_messages_for :user %>
 
@@ -7,7 +9,7 @@
 <table id="loginForm">
   <tr><td class="fieldName"><%= t 'user.reset_password.password' %></td><td><%= password_field(:user, :pass_crypt, {:value => '', :size => 30, :maxlength => 255, :tabindex => 4}) %></td></tr>
   <tr><td class="fieldName"><%= t 'user.reset_password.confirm password' %></td><td><%= password_field(:user, :pass_crypt_confirmation, {:value => '', :size => 30, :maxlength => 255, :tabindex => 5}) %></td></tr>
-  
+
   <tr><td colspan=2>&nbsp;<!--vertical spacer--></td></tr>
   <tr><td></td><td class="submitButton"><input type="submit" value="<%= t'user.reset_password.reset' %>" tabindex="6"></td></tr>
 </table>
index 53a4eb0..674f8bc 100644 (file)
@@ -1,5 +1,7 @@
 <% @title = t "user.suspended.title" %>
 
-<h1><%= t "user.suspended.heading" %></h1>
+<% content_for :heading do %>
+  <h1><%= t "user.suspended.heading" %></h1>
+<% end %>
 
 <%= raw t "user.suspended.body", :webmaster => link_to(t("user.suspended.webmaster"), "mailto:webmaster@openstreetmap.org") %>
index f006fde..a2d33e3 100644 (file)
@@ -1,4 +1,6 @@
-<h1><%= t 'user.terms.heading' %></h1>
+<% content_for :heading do %>
+  <h1><%= t 'user.terms.heading' %></h1>
+<% end %>
 
 <p><%= t 'user.terms.read and accept' %></p>
 
index a8fce11..de2e93f 100644 (file)
-<%= user_image @this_user %>
+<% content_for :heading do %>
+  <div id='userinformation'>
+    <%= user_image @this_user %>
+    <div class='userinformation-inner'>
+      <h2><%= @this_user.display_name %><%= role_icons(@this_user) %></h2>
+      <% if @user and @this_user.id == @user.id %>
+        <!-- Displaying user's own profile page -->
+        <ul class='secondary-actions clearfix'>
+          <li>
+            <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
+            <span class='count-number'><%= number_with_delimiter(@user.changesets.size) %></span>
+          </li>
+          <li>
+            <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
+            <span class='count-number'><%= number_with_delimiter(@user.traces.size) %></span>
+          </li>
+          <li>
+            <%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
+            <span class='count-number'><%= number_with_delimiter(@user.diary_entries.size) %></span>
+          </li>
+          <li>
+            <%= link_to t('user.view.my comments' ), :controller => 'diary_entry', :action => 'comments', :display_name => @user.display_name %>
+          </li>
+          <li>
+            <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
+          </li>
 
-<h2><%= @this_user.display_name %><%= role_icons(@this_user) %></h2>
+          <% if @user.blocks.exists? %>
+            <li>
+              <%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %>
+              <span class='count-number'><%= number_with_delimiter(@user.blocks.active.size) %></span>
+            </li>
+          <% end %>
+
+          <% if @user and @user.moderator? and @user.blocks_created.exists? %>
+            <li>
+              <%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %>
+              <span class='count-number'><%= number_with_delimiter(@user.blocks_created.active.size) %></span>
+            </li>
+          <% end %>
+
+        </ul>
+
+        <% else %>
+
+        <ul class='secondary-actions clearfix'>
+
+          <li>
+            <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %>
+            <span class='count-number'><%= number_with_delimiter(@this_user.changesets.size) %></span>
+          </li>
+          <li>
+            <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'list', :display_name => @this_user.display_name %>
+            <span class='count-number'><%= number_with_delimiter(@this_user.traces.size) %></span>
+          </li>
+
+          <!-- Displaying another user's profile page -->
+
+          <li>
+            <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @this_user.display_name %>
+          </li>
+          <li>
+            <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
+            <span class='count-number'><%= number_with_delimiter(@this_user.diary_entries.size) %></span>
+          </li>
+          <li>
+            <%= link_to t('user.view.comments'), :controller => 'diary_entry', :action => 'comments', :display_name => @this_user.display_name %>
+          </li>
+          <li>
+            <% if @user and @user.is_friends_with?(@this_user) %>
+              <%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => @this_user.display_name), :method => :post %>
+            <% else %>
+              <%= link_to t('user.view.add as friend'), make_friend_path(:display_name => @this_user.display_name), :method => :post %>
+            <% end %>
+          </li>
+
+          <% if @this_user.blocks.exists? %>
+            <li>
+              <%= link_to t('user.view.block_history'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @this_user.display_name %>
+              <span class='count-number'><%= number_with_delimiter(@this_user.blocks.active.size) %></span>
+            </li>
+          <% end %>
+
+          <% if @this_user.moderator? and @this_user.blocks_created.exists? %>
+            <li>
+              <%= link_to t('user.view.moderator_history'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @this_user.display_name %>
+              <span class='count-number'><%= number_with_delimiter(@this_user.blocks_created.active.size) %></span>
+            </li>
+          <% end %>
+
+          <% if @user and @user.moderator? %>
+            <li>
+            <%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %>
+            </li>
+          <% end %>
+
+        </ul>
+
+      <% end %>
+
+      <% if @user and @user.administrator? %>
+
+        <ul class='secondary-actions clearfix'>
+          <% if ["active", "confirmed"].include? @this_user.status %>
+            <li>
+              <%= link_to t('user.view.deactivate_user'), set_status_user_path(:status => 'pending', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
+            </li>
+          <% elsif ["pending"].include? @this_user.status %>
+            <li>
+              <%= link_to t('user.view.activate_user'), set_status_user_path(:status => 'active', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
+            </li>
+          <% end %>
+
+          <% if ["active", "suspended"].include? @this_user.status %>
+            <li>
+              <%= link_to t('user.view.confirm_user'), set_status_user_path(:status => 'confirmed', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
+            </li>
+          <% end %>
+            <li>
+              <% if ["pending", "active", "confirmed", "suspended"].include? @this_user.status %>
+                <%= link_to t('user.view.hide_user'), set_status_user_path(:status => 'deleted', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
+            <% else %>
+              <%= link_to t('user.view.unhide_user'), set_status_user_path(:status => 'active', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
+            </li>
+          <% end %>
+          <li>
+            <%= link_to t('user.view.delete_user'), delete_user_path(:display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
+          </li>
+        </ul>
+
+        <% end %>
+
+      <p class='deemphasize'>
+        <small>
+          <%= t 'user.view.mapper since' %> <%= l @this_user.creation_time.to_date, :format => :long %>
+          |
+          <%= t 'user.view.ct status' %>
+          <% if not @this_user.terms_agreed.nil? -%>
+          <%= t 'user.view.ct accepted', :ago =>time_ago_in_words(@this_user.terms_agreed)  %>
+          <% elsif not @this_user.terms_seen? -%>
+          <%= t 'user.view.ct undecided' %>
+          <% else -%>
+          <%= t 'user.view.ct declined' %>
+          <% end -%>
+        </small>
+      </p>
+    </div>
+
+    <div class='user-description'><%= @this_user.description.to_html %></div>
+
+  </div>
+
+  <% if @user and @user.administrator? -%>
+    <div class='admin-user-info deemphasize'>
+      <small><b><%= t 'user.view.email address' %></b> <%= @this_user.email %></small>
+      <% unless @this_user.creation_ip.nil? -%>
+        <small><b><%= t 'user.view.created from' %></b> <%= @this_user.creation_ip %></small>
+      <% end -%>
+      <small><b><%= t 'user.view.status' %></b> <%= @this_user.status.capitalize %></small>
+      <small><b><%= t 'user.view.spam score' %></b> <%= @this_user.spam_score %></small>
+    </div>
+  <% end -%>
+
+<% end %>
 
-<div id="userinformation">
   <% if @user and @this_user.id == @user.id %>
-    <!-- Displaying user's own profile page -->
-    <%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
-    <span class='count-number'><%= number_with_delimiter(@user.changesets.size) %></span>
-    |
-    <%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
-    <span class='count-number'><%= number_with_delimiter(@user.traces.size) %></span>
-    |
-    <%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
-    <span class='count-number'><%= number_with_delimiter(@user.diary_entries.size) %></span>
-    |
-    <%= link_to t('user.view.my comments' ), :controller => 'diary_entry', :action => 'comments', :display_name => @user.display_name %>
-    |
-    <%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
-    <% if @user.blocks.exists? %>
-      |
-      <%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %>
-      <span class='count-number'><%= number_with_delimiter(@user.blocks.active.size) %></span>
-    <% end %>
-    <% if @user and @user.moderator? and @user.blocks_created.exists? %>
-      |
-      <%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %>
-      <span class='count-number'><%= number_with_delimiter(@user.blocks_created.active.size) %></span>
-    <% end %>
-  <% else %>
-    <%= link_to t('user.view.edits'), :controller => 'changeset', :action => 'list', :display_name => @this_user.display_name %>
-    <span class='count-number'><%= number_with_delimiter(@this_user.changesets.size) %></span>
-    |
-    <%= link_to t('user.view.traces'), :controller => 'trace', :action => 'list', :display_name => @this_user.display_name %>
-    <span class='count-number'><%= number_with_delimiter(@this_user.traces.size) %></span>
-    |
-    <!-- Displaying another user's profile page -->
-    <%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => @this_user.display_name %>
-    |
-    <%= link_to t('user.view.diary'), :controller => 'diary_entry', :action => 'list', :display_name => @this_user.display_name %>
-    <span class='count-number'><%= number_with_delimiter(@this_user.diary_entries.size) %></span>
-    |
-    <%= link_to t('user.view.comments'), :controller => 'diary_entry', :action => 'comments', :display_name => @this_user.display_name %>
-    |
-    <% if @user and @user.is_friends_with?(@this_user) %>
-      <%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => @this_user.display_name), :method => :post %>
+    <% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %>
+      <div id="map" class="content_map">
+        <p id="no_home_location"><%= raw(t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name)) %></p>
+      </div>
     <% else %>
-      <%= link_to t('user.view.add as friend'), make_friend_path(:display_name => @this_user.display_name), :method => :post %>
-    <% end %>
-    <% if @this_user.blocks.exists? %>
-      |
-      <%= link_to t('user.view.block_history'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @this_user.display_name %>
-      <span class='count-number'><%= number_with_delimiter(@this_user.blocks.active.size) %></span>
-    <% end %>
-    <% if @this_user.moderator? and @this_user.blocks_created.exists? %>
-      |
-      <%= link_to t('user.view.moderator_history'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @this_user.display_name %>
-      <span class='count-number'><%= number_with_delimiter(@this_user.blocks_created.active.size) %></span>
-    <% end %>
-    <% if @user and @user.moderator? %>
-      | <%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %>
+      <% content_for :head do %>
+        <%= javascript_include_tag "user" %>
+      <% end %>
+      <%
+        user_data = {
+          :lon => @user.home_lon,
+          :lat => @user.home_lat,
+          :icon => image_path("marker-red.png"),
+          :description => render(:partial => "popup", :object => @user, :locals => {:type => "your location"})
+        }
+      %>
+      <%= content_tag "div", "", :id => "map", :class => "content_map", :data => {:user => user_data} %>
     <% end %>
-  <% end %>
-  <% if @user and @user.administrator? %>
-    <br/>
-    <% if ["active", "confirmed"].include? @this_user.status %>
-      <%= link_to t('user.view.deactivate_user'), set_status_user_path(:status => 'pending', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %> |
-    <% elsif ["pending"].include? @this_user.status %>
-      <%= link_to t('user.view.activate_user'), set_status_user_path(:status => 'active', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %> |
-    <% end %>
-    <% if ["active", "suspended"].include? @this_user.status %>
-      <%= link_to t('user.view.confirm_user'), set_status_user_path(:status => 'confirmed', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %> |
-    <% end %>
-    <% if ["pending", "active", "confirmed", "suspended"].include? @this_user.status %>
-      <%= link_to t('user.view.hide_user'), set_status_user_path(:status => 'deleted', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %> |
+
+    <% friends = @this_user.friends.collect { |f| f.befriendee } %>
+    <% nearby = @this_user.nearby - friends %>
+
+  <div class="activity-block column-1">
+    <h3><%= t 'user.view.your friends' %></h3>
+
+    <% if friends.empty? %>
+      <%= t 'user.view.no friends' %>
     <% else %>
-      <%= link_to t('user.view.unhide_user'), set_status_user_path(:status => 'active', :display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %> |
+      <ul class='secondary-actions clearfix'>
+        <li><%= link_to t('user.view.friends_changesets'), friend_changesets_path %></li>
+        <li><%= link_to t('user.view.friends_diaries'), friend_diaries_path %></li>
+      </ul>
+      <div id="friends-container">
+        <%= render :partial => "contact", :collection => friends, :locals => {:type => "friend"} %>
+      </div>
     <% end %>
-    <%= link_to t('user.view.delete_user'), delete_user_path(:display_name => @this_user.display_name), :data => { :confirm => t('user.view.confirm') } %>
-  <% end %>
-</div>
-
-<div id="description"><%= @this_user.description.to_html %></div>
-
-<p class='deemphasize'><small>
-<%= t 'user.view.mapper since' %> <%= l @this_user.creation_time.to_date, :format => :long %>
-/
-<%= t 'user.view.ct status' %>
-<% if not @this_user.terms_agreed.nil? -%>
-<%= t 'user.view.ct accepted', :ago =>time_ago_in_words(@this_user.terms_agreed)  %>
-<% elsif not @this_user.terms_seen? -%>
-<%= t 'user.view.ct undecided' %>
-<% else -%>
-<%= t 'user.view.ct declined' %>
-<% end -%>
-</small>
-</p>
-
-<% if @user and @user.administrator? -%>
-  <p><b><%= t 'user.view.email address' %></b> <%= @this_user.email %></p>
-  <% unless @this_user.creation_ip.nil? -%>
-  <p><b><%= t 'user.view.created from' %></b> <%= @this_user.creation_ip %></p>
-  <% end -%>
-  <p><b><%= t 'user.view.status' %></b> <%= @this_user.status.capitalize %></p>
-  <p><b><%= t 'user.view.spam score' %></b> <%= @this_user.spam_score %></p>
-<% end -%>
-
-<% if @user and @this_user.id == @user.id %>
-  <% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %>
-    <div id="map" class="user_map">
-      <p id="no_home_location"><%= raw(t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name)) %></p>
-    </div>
-  <% else %>
-    <% content_for :head do %>
-      <%= javascript_include_tag "user" %>
+  </div>
+
+  <div class="activity-block column-1">
+    <h3><%= t 'user.view.nearby users' %></h3>
+
+    <% if nearby.empty? %>
+      <%= t 'user.view.no nearby users' %>
+    <% else %>
+      <ul class='secondary-actions clearfix'>
+        <li><%= link_to t('user.view.nearby_changesets'), nearby_changesets_path %></li>
+        <li><%= link_to t('user.view.nearby_diaries'), nearby_diaries_path %></li>
+      </ul>
+      <div id="nearbyusers">
+        <%= render :partial => "contact", :collection => nearby, :locals => {:type => "nearby mapper"} %>
+      </div>
     <% end %>
-    <%
-      user_data = {
-        :lon => @user.home_lon,
-        :lat => @user.home_lat,
-        :icon => image_path("marker-red.png"),
-        :description => render(:partial => "popup", :object => @user, :locals => {:type => "your location"})
-      }
-    %>
-    <%= content_tag "div", "", :id => "map", :class => "user_map", :data => {:user => user_data} %>
-  <% end %>
-
-  <% friends = @this_user.friends.collect { |f| f.befriendee } %>
-  <% nearby = @this_user.nearby - friends %>
-
-  <h3 style="margin-top: 0"><%= t 'user.view.your friends' %></h3>
-
-  <% if friends.empty? %>
-    <%= t 'user.view.no friends' %>
-  <% else %>
-    <%= link_to t('user.view.friends_changesets'), friend_changesets_path %><br/>
-    <%= link_to t('user.view.friends_diaries'), friend_diaries_path %><br/><br/>
-    <table id="friends">
-      <%= render :partial => "contact", :collection => friends, :locals => {:type => "friend"} %>
-    </table>
-  <% end %>
-
-  <h3><%= t 'user.view.nearby users' %></h3>
-
-  <% if nearby.empty? %>
-    <%= t 'user.view.no nearby users' %>
-  <% else %>
-    <%= link_to t('user.view.nearby_changesets'), nearby_changesets_path %><br/>
-    <%= link_to t('user.view.nearby_diaries'), nearby_diaries_path %><br/><br/>
-    <table id="nearbyusers">
-      <%= render :partial => "contact", :collection => nearby, :locals => {:type => "nearby mapper"} %>
-    </table>
-  <% end %>
+  </div>
 <% end %>
index 12f0c7c..d3908da 100644 (file)
   <%= 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>
 
-<p>
+<ul class='secondary-actions'>
   <% if @user_blocks_pages.current_page.number > 1 -%>
-    <%= link_to t('user_block.partial.previous'), params.merge({ :page => @user_blocks_pages.current_page.number - 1 }) %>
+    <li><%= link_to t('user_block.partial.previous'), params.merge({ :page => @user_blocks_pages.current_page.number - 1 }) %></li>
   <% else -%>
-    <%= t('user_block.partial.previous') %>
+    <li><%= t('user_block.partial.previous') %></li>
   <% end -%>
 
-  | <%= t('user_block.partial.showing_page', :page => @user_blocks_pages.current_page.number) %> |
+  <li><%= t('user_block.partial.showing_page', :page => @user_blocks_pages.current_page.number) %></li>
 
   <% if @user_blocks_pages.current_page.number < @user_blocks_pages.page_count -%>
-    <%= link_to t('user_block.partial.next'), params.merge({ :page => @user_blocks_pages.current_page.number + 1 }) %>
+    <li><%= link_to t('user_block.partial.next'), params.merge({ :page => @user_blocks_pages.current_page.number + 1 }) %></li>
   <% else -%>
-    <%= t('user_block.partial.next') %>
+    <li><%= t('user_block.partial.next') %></li>
   <% end -%>
-</p>
+</ul>
index dc523ce..a8d7612 100644 (file)
@@ -1,5 +1,7 @@
 <% @title = t('user_block.blocks_by.title', :name => h(@this_user.display_name)) %>
-<h1><%= raw(t('user_block.blocks_by.heading', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name}))) %></h1>
+<% content_for :heading do %>
+  <h1><%= raw(t('user_block.blocks_by.heading', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name}))) %></h1>
+<% end %>
 
 <% unless @user_blocks.empty? %>
 <%= render :partial => 'blocks', :locals => { :show_revoke_link => (@user and @user.moderator?), :show_user_name => true, :show_creator_name => false } %>
index 86ae110..8e91935 100644 (file)
@@ -1,6 +1,7 @@
 <% @title = t('user_block.blocks_on.title', :name => h(@this_user.display_name)) %>
-<h1><%= raw(t('user_block.blocks_on.heading', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name}))) %></h1>
-
+<% content_for :heading do %>
+  <h1><%= raw(t('user_block.blocks_on.heading', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name}))) %></h1>
+<% end %>
 <% unless @user_blocks.empty? %>
 <%= render :partial => 'blocks', :locals => { :show_revoke_link => (@user and @user.moderator?), :show_user_name => false, :show_creator_name => true } %>
 <% else %>
index d78bd11..0b928de 100644 (file)
@@ -1,8 +1,14 @@
 <% @title = t 'user_block.edit.title', :name => h(@user_block.user.display_name) %>
-<h1><%= raw t('user_block.edit.title',
-              :name => link_to(
-                               h(@user_block.user.display_name),
-                               {:controller => 'user', :action => 'view', :display_name => @user_block.user.display_name})) %></h1>
+<% content_for :heading do %>
+  <h1><%= raw t('user_block.edit.title',
+                :name => link_to(
+                                 h(@user_block.user.display_name),
+                                 {:controller => 'user', :action => 'view', :display_name => @user_block.user.display_name})) %></h1>
+  <ul class='secondary-actions clearfix'>
+    <li><%= link_to t('user_block.edit.show'), @user_block %></li>
+    <li><%= link_to t('user_block.edit.back'), user_blocks_path %></li>
+  </ul>
+<% end %>
 
 <%= form_for(@user_block) do |f| %>
   <%= f.error_messages %>
@@ -22,7 +28,4 @@
   <p>
     <%= f.submit t('user_block.edit.submit') %>
   </p>
-<% end %>
-
-<%= link_to t('user_block.edit.show'), @user_block %> |
-<%= link_to t('user_block.edit.back'), user_blocks_path %>
+<% end %>
\ No newline at end of file
index 2baf91e..8cf7e81 100644 (file)
@@ -1,5 +1,7 @@
 <% @title = t('user_block.index.title') %>
-<h1><%= t('user_block.index.heading') %></h1>
+<% content_for :heading do %>
+  <h1><%= t('user_block.index.heading') %></h1>
+<% end %>
 
 <% unless @user_blocks.empty? %>
 <%= render :partial => 'blocks', :locals => { :show_revoke_link => (@user and @user.moderator?), :show_user_name => true, :show_creator_name => true } %>
index f632983..9ea63f8 100644 (file)
@@ -1,9 +1,10 @@
 <% @title = t 'user_block.new.title', :name => h(@this_user.display_name) %>
-<h1><%= raw t('user_block.new.heading',
-              :name => link_to(
-                               h(@this_user.display_name),
-                               {:controller => 'user', :action => 'view', :display_name => @this_user.display_name})) %></h1>
-
+<% content_for :heading do %>
+  <h1><%= raw t('user_block.new.heading',
+                :name => link_to(
+                                 h(@this_user.display_name),
+                                 {:controller => 'user', :action => 'view', :display_name => @this_user.display_name})) %></h1>
+<% end %>
 <%= form_for(@user_block) do |f| %>
   <%= f.error_messages %>
 
index 28ae019..c67f7cd 100644 (file)
@@ -1,13 +1,16 @@
 <% @title = t('user_block.revoke.title',
               :block_on => h(@user_block.user.display_name),
               :block_by => h(@user_block.creator.display_name)) %>
-<h1><%= raw t('user_block.revoke.heading',
-              :block_on => link_to(
-                                   h(@user_block.user.display_name),
-                                   {:controller => 'user', :action => 'view', :display_name => @user_block.user.display_name}),
-              :block_by => link_to(
-                                   h(@user_block.creator.display_name),
-                                   {:controller => 'user', :action => 'view', :display_name => @user_block.creator.display_name})) %></h1>
+
+<% content_for :heading do %>
+  <h1><%= raw t('user_block.revoke.heading',
+                :block_on => link_to(
+                                     h(@user_block.user.display_name),
+                                     {:controller => 'user', :action => 'view', :display_name => @user_block.user.display_name}),
+                :block_by => link_to(
+                                     h(@user_block.creator.display_name),
+                                     {:controller => 'user', :action => 'view', :display_name => @user_block.creator.display_name})) %></h1>
+<% end %>
 
 <% if @user_block.ends_at > Time.now %>
 <p><b>
@@ -16,7 +19,7 @@
 
 <%= form_for :revoke, :url => { :action => "revoke" } do |f| %>
   <%= f.error_messages %>
-<p>  
+<p>
   <%= check_box_tag 'confirm', 'yes' %>
   <%= label_tag 'confirm', t('user_block.revoke.confirm') %>
 </p>
index 2311541..73b26b9 100644 (file)
@@ -1,13 +1,28 @@
 <% @title = t('user_block.show.title',
               :block_on => @user_block.user.display_name,
               :block_by => @user_block.creator.display_name) %>
-<h1><%= raw t('user_block.show.heading',
-              :block_on => link_to(
-                                   h(@user_block.user.display_name),
-                                   {:controller => 'user', :action => 'view', :display_name => @user_block.user.display_name}),
-              :block_by => link_to(
-                                   h(@user_block.creator.display_name),
-                                   {:controller => 'user', :action => 'view', :display_name => @user_block.creator.display_name})) %></h1>
+
+<% content_for :heading do %>
+  <h1><%= raw t('user_block.show.heading',
+                :block_on => link_to(
+                                     h(@user_block.user.display_name),
+                                     {:controller => 'user', :action => 'view', :display_name => @user_block.user.display_name}),
+                :block_by => link_to(
+                                     h(@user_block.creator.display_name),
+                                     {:controller => 'user', :action => 'view', :display_name => @user_block.creator.display_name})) %></h1>
+<ul class='secondary-actions clearfix'>
+  <% if @user_block.ends_at > Time.now.getutc %>
+    <% if @user and @user.id == @user_block.creator_id %>
+      <li><%= link_to t('user_block.show.edit'), edit_user_block_path(@user_block) %></li>
+    <% end %>
+    <% if @user and @user.moderator? %>
+      <li><%= link_to(t('user_block.show.revoke'),{:controller => 'user_blocks', :action => 'revoke', :id => @user_block.id}) %></li>
+    <% end %>
+  <% end %>
+  <li><%= link_to t('user_block.show.back'), user_blocks_path %></li>
+</ul>
+<% end %>
+
 <% if @user_block.revoker %>
 <p>
   <b><%= t'user_block.show.revoker' %></b>
 <p><b><%= t'user_block.show.status' %></b>: <%= block_status(@user_block) %></p>
 
 <p><b><%= t'user_block.show.reason' %></b></p>
-<%= @user_block.reason.to_html %>
-
-<% if @user_block.ends_at > Time.now.getutc %>
-<% if @user and @user.id == @user_block.creator_id %>
-<%= link_to t('user_block.show.edit'), edit_user_block_path(@user_block) %> |
-<% end %>
-<% if @user and @user.moderator? %>
-<%= link_to(t('user_block.show.revoke'),{:controller => 'user_blocks', :action => 'revoke', :id => @user_block.id}) %> |
-<% end %>
-<% end %>
-<%= link_to t('user_block.show.back'), user_blocks_path %>
+<%= @user_block.reason.to_html %>
\ No newline at end of file
index 0c21b90..8313116 100644 (file)
@@ -190,7 +190,7 @@ en:
         relation: relation
         changeset: changeset
     paging_nav:
-      showing_page: "Showing page"
+      showing_page: "page"
       of: "of"
     redacted:
       redaction: "Redaction %{id}"
@@ -239,7 +239,7 @@ en:
       edited_by_user_at_timestamp: "Edited by %{user} at %{timestamp}"
       object_list:
         heading: "Object list"
-        back: "Display object list"
+        back: "Back to object list"
         type:
           node: "Node"
           way: "Way"
@@ -281,11 +281,10 @@ en:
       edit: "Edit way"
   changeset:
     changeset_paging_nav:
-      showing_page: "Showing page %{page}"
+      showing_page: "Page %{page}"
       next: "Next »"
       previous: "« Previous"
     changeset:
-      id: "#%{id}"
       still_editing: "(still editing)"
       anonymous: "Anonymous"
       no_comment: "(none)"
@@ -312,14 +311,14 @@ en:
       heading_user_bbox: "Changesets"
       heading_friend: "Changesets"
       heading_nearby: "Changesets"
-      description: "Recent changes"
+      description: "Browse recent contributions to the map"
       description_user: "Changesets by %{user}"
       description_bbox: "Changesets within %{bbox}"
       description_user_bbox: "Changesets by %{user} within %{bbox}"
       description_friend: "Changesets by your friends"
       description_nearby: "Changesets by nearby users"
       empty_user_html: "It looks you haven't made any edits yet. To get started, check out the <a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.3'>Beginners Guide</a>."
-      empty_anon_html: "No edits made yet"
+      empty_anon_html: "No edits made yet."
     timeout:
       sorry: "Sorry, the list of changesets you requested took too long to retrieve."
   diary_entry:
@@ -334,7 +333,7 @@ en:
       new: New Diary Entry
       new_title: Compose a new entry in your user diary
       no_entries: No diary entries
-      recent_entries: "Recent diary entries:"
+      recent_entries: "Recent diary entries"
       older_entries: Older Entries
       newer_entries: Newer Entries
     edit:
@@ -933,7 +932,6 @@ en:
       h1: OpenStreetMap
     logo:
       alt_text: OpenStreetMap logo
-    welcome_user: "Welcome, %{user_link}"
     welcome_user_link_tooltip: Your user page
     home: home
     home_tooltip: Go to home location
@@ -1444,7 +1442,7 @@ en:
       trace_not_found: "Trace not found!"
       visibility: "Visibility:"
     trace_paging_nav:
-      showing_page: "Showing page %{page}"
+      showing_page: "Page %{page}"
       older: "Older Traces"
       newer: "Newer Traces"
     trace:
@@ -1467,6 +1465,7 @@ en:
       public_traces: "Public GPS traces"
       your_traces: "Your GPS traces"
       public_traces_from: "Public GPS traces from %{user}"
+      description: "Browse recent GPS track uploads"
       tagged_with: " tagged with %{tags}"
       empty_html: "Nothing here yet. <a href='%{upload_link}'>Upload a new trace</a> or learn more about GPS tracing on the <a href='http://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2'>wiki page</a>."
     delete:
@@ -1685,8 +1684,8 @@ en:
       diary: diary
       edits: edits
       traces: traces
-      remove as friend: remove as friend
-      add as friend: add as friend
+      remove as friend: unfriend
+      add as friend: add friend
       mapper since: "Mapper since:"
       ago: "(%{time_in_words_ago} ago)"
       ct status: "Contributor terms:"
@@ -1700,7 +1699,7 @@ en:
       spam score: "Spam Score:"
       description: Description
       user location: User location
-      if set location: "If you set your location, a pretty map and stuff will appear here. You can set your home location on your %{settings_link} page."
+      if set location: "Set your home location on the %{settings_link} page to see nearby users."
       settings_link_text: settings
       your friends: Your friends
       no friends: You have not added any friends yet.
@@ -1728,10 +1727,10 @@ en:
       unhide_user: "unhide this user"
       delete_user: "delete this user"
       confirm: "Confirm"
-      friends_changesets: "Browse all changesets by friends"
-      friends_diaries: "Browse all diary entries by friends"
-      nearby_changesets: "Browse all changesets by nearby users"
-      nearby_diaries: "Browse all diary entries by nearby users"
+      friends_changesets: "friends' changesets"
+      friends_diaries: "friends' diary entries"
+      nearby_changesets: "nearby user changesets"
+      nearby_diaries: "nearby user diary entries"
     popup:
       your location: "Your location"
       nearby mapper: "Nearby mapper"
@@ -1812,12 +1811,12 @@ en:
     make_friend:
       heading: "Add %{user} as a friend?"
       button: "Add as friend"
-      success: "%{name} is now your friend."
+      success: "%{name} is now your friend!"
       failed: "Sorry, failed to add %{name} as a friend."
       already_a_friend: "You are already friends with %{name}."
     remove_friend:
-      heading: "Remove %{user} as a friend?"
-      button: "Remove as friend"
+      heading: "Unfriend %{user}?"
+      button: "Unfriend"
       success: "%{name} was removed from your friends."
       not_a_friend: "%{name} is not one of your friends."
     filter:
@@ -1826,8 +1825,8 @@ en:
       title: Users
       heading: Users
       showing:
-        one: Showing page %{page} (%{first_item} of %{items})
-        other: Showing page %{page} (%{first_item}-%{last_item} of %{items})
+        one: Page %{page} (%{first_item} of %{items})
+        other: Page %{page} (%{first_item}-%{last_item} of %{items})
       summary: "%{name} created from %{ip_address} on %{date}"
       summary_no_ip: "%{name} created on %{date}"
       confirm: Confirm Selected Users
@@ -1926,7 +1925,7 @@ en:
       status: "Status"
       revoker_name: "Revoked by"
       not_revoked: "(not revoked)"
-      showing_page: "Showing page %{page}"
+      showing_page: "Page %{page}"
       next: "Next »"
       previous: "« Previous"
     helper:
index 339533b..de3de0e 100644 (file)
@@ -44,8 +44,7 @@ SET search_path = public, pg_catalog;
 
 CREATE TYPE format_enum AS ENUM (
     'html',
-    'markdown',
-    'text'
+    'markdown'
 );
 
 
@@ -101,7 +100,7 @@ CREATE TYPE user_status_enum AS ENUM (
 
 CREATE FUNCTION maptile_for_point(bigint, bigint, integer) RETURNS integer
     LANGUAGE c STRICT
-    AS '/srv/www/master.osm.compton.nu/db/functions/libpgosm.so', 'maptile_for_point';
+    AS '/srv/www/next.osm.compton.nu/db/functions/libpgosm.so', 'maptile_for_point';
 
 
 --
@@ -110,7 +109,7 @@ CREATE FUNCTION maptile_for_point(bigint, bigint, integer) RETURNS integer
 
 CREATE FUNCTION tile_for_point(integer, integer) RETURNS bigint
     LANGUAGE c STRICT
-    AS '/srv/www/master.osm.compton.nu/db/functions/libpgosm.so', 'tile_for_point';
+    AS '/srv/www/next.osm.compton.nu/db/functions/libpgosm.so', 'tile_for_point';
 
 
 --
@@ -119,7 +118,7 @@ CREATE FUNCTION tile_for_point(integer, integer) RETURNS bigint
 
 CREATE FUNCTION xid_to_int4(xid) RETURNS integer
     LANGUAGE c IMMUTABLE STRICT
-    AS '/srv/www/master.osm.compton.nu/db/functions/libpgosm.so', 'xid_to_int4';
+    AS '/srv/www/next.osm.compton.nu/db/functions/libpgosm.so', 'xid_to_int4';
 
 
 SET default_tablespace = '';
@@ -1000,11 +999,11 @@ CREATE TABLE users (
     status user_status_enum DEFAULT 'pending'::user_status_enum NOT NULL,
     terms_agreed timestamp without time zone,
     consider_pd boolean DEFAULT false NOT NULL,
+    openid_url character varying(255),
     preferred_editor character varying(255),
     terms_seen boolean DEFAULT false NOT NULL,
-    openid_url character varying(255),
-    description_format format_enum DEFAULT 'html'::format_enum NOT NULL,
     image_fingerprint character varying(255),
+    description_format format_enum DEFAULT 'html'::format_enum NOT NULL,
     changesets_count integer DEFAULT 0 NOT NULL,
     traces_count integer DEFAULT 0 NOT NULL,
     diary_entries_count integer DEFAULT 0 NOT NULL,
index 4cc19b2..b6c11fd 100644 (file)
@@ -45,31 +45,31 @@ class BrowseControllerTest < ActionController::TestCase
     xhr :get, :start
     assert_response :success
   end
-  
+
   def test_read_relation
     browse_check 'relation', relations(:visible_relation).relation_id
   end
-  
+
   def test_read_relation_history
     browse_check 'relation_history', relations(:visible_relation).relation_id
   end
-  
+
   def test_read_way
     browse_check 'way', ways(:visible_way).way_id
   end
-  
+
   def test_read_way_history
     browse_check 'way_history', ways(:visible_way).way_id
   end
-  
+
   def test_read_node
     browse_check 'node', nodes(:visible_node).node_id
   end
-  
+
   def test_read_node_history
     browse_check 'node_history', nodes(:visible_node).node_id
   end
-  
+
   def test_read_changeset
     browse_check 'changeset', changesets(:normal_user_first_change).id
   end
@@ -79,51 +79,51 @@ class BrowseControllerTest < ActionController::TestCase
   #
   # note that these are presently highly reliant on the structure of the
   # page for the selection tests, which doesn't work out particularly
-  # well if that structure changes. so... if you change the page layout 
+  # well if that structure changes. so... if you change the page layout
   # then please make it more easily (and robustly) testable!
   ##
   def test_redacted_node_history
     get :node_history, :id => nodes(:redacted_node_redacted_version).node_id
     assert_response :success
     assert_template 'node_history'
-    
+
     # there are 2 revisions of the redacted node, but only one
     # should be showing up here.
-    assert_select "body div[id=content] table[class=browse_details]", 1
-    assert_select "body div[id=content] table[class=browse_details][id=1]", 0
+    assert_select "body div[id=content] div[class=browse_details]", 1
+    assert_select "body div[id=content] div[class=browse_details][id=1]", 0
   end
-  
+
   def test_redacted_way_history
     get :way_history, :id => ways(:way_with_redacted_versions_v1).way_id
     assert_response :success
     assert_template 'way_history'
-    
+
     # there are 4 revisions of the redacted way, but only 2
     # should be showing up here.
-    assert_select "body div[id=content] table[class=browse_details]", 2
+    assert_select "body div[id=content] div[class=browse_details]", 2
     # redacted revisions are 2 & 3
-    assert_select "body div[id=content] table[class=browse_details][id=2]", 0
-    assert_select "body div[id=content] table[class=browse_details][id=3]", 0
+    assert_select "body div[id=content] div[class=browse_details][id=2]", 0
+    assert_select "body div[id=content] div[class=browse_details][id=3]", 0
   end
-  
+
   def test_redacted_relation_history
     get :relation_history, :id => relations(:relation_with_redacted_versions_v1).relation_id
     assert_response :success
     assert_template 'relation_history'
-    
+
     # there are 4 revisions of the redacted relation, but only 2
     # should be showing up here.
-    assert_select "body div[id=content] table[class=browse_details]", 2
+    assert_select "body div[id=content] div[class=browse_details]", 2
     # redacted revisions are 2 & 3
-    assert_select "body div[id=content] table[class=browse_details][id=2]", 0
-    assert_select "body div[id=content] table[class=browse_details][id=3]", 0
+    assert_select "body div[id=content] div[class=browse_details][id=2]", 0
+    assert_select "body div[id=content] div[class=browse_details][id=3]", 0
   end
-  
+
   # This is a convenience method for most of the above checks
   # First we check that when we don't have an id, it will correctly return a 404
   # then we check that we get the correct 404 when a non-existant id is passed
   # then we check that it will get a successful response, when we do pass an id
-  def browse_check(type, id) 
+  def browse_check(type, id)
     assert_raise ActionController::RoutingError do
       get type
     end