--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
--- /dev/null
+<?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>
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({
-<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
-<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>
<% } %>
<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>
/* 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;
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 */
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;
}
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;
display: none;
}
-#small-title img {
- border: 0px;
-}
-
/* Rules for the introductory text displayed in the left sidebar to new users */
.sidebar-copy {
*/
.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;
}
*/
.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;
}
border-top: 1px solid #ccc;
}
+.left_menu img {
+ margin: 10px 0px;
+}
+
.left_menu ul {
padding: 0;
margin: 0;
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 {
#search_field input[type="text"] {
width: 165px;
+ padding: 3px;
font-size: 14px;
line-height: 15px;
height: 25px;
}
#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;
}
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 */
display: block;
position: relative;
width: 153px;
- margin: 10px 10px 0px 10px;
padding: 5px;
border: 1px solid #AED1A0;
background: #cbeea7;
border-radius: 2px;
-moz-border-radius: 2px;
color: #222;
+ margin: 10px 10px 0px 10px;
}
.donate:hover {
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;
/* 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;
- margin: 0;
- 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,
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;
#greeting {
float: right;
- height: 28px;
- margin: 0px;
- padding-right: 10px;
- font-size: 13px;
- line-height: 28px;
+ padding-top: 3px;
}
.greeting-bar-unread {
/* 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;
}
/* Rules for edit menu */
.menuicon {
- padding: 5px;
-
+ padding: 0 5px;
+ font-weight: normal;
+ display: inline-block;
&:hover {
- background: #eee;
text-decoration: none !important;
}
}
.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;
}
display: none;
}
-.attribution_license {
+.attribution_license,
+.attribution_project {
text-align: left;
}
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 {
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 */
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;
#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 {
margin: 10px;
position: absolute;
top: 0px;
+ margin-right: 5px;
}
#slim_header img {
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;
/* 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;
}
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 {
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 {
}
form#termsForm input#agree {
- margin-left: 50px;
+ margin-left: 40px;
}
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;
}
#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 {
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 {
}
.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 {
}
.info-line {
- border-bottom: 1px solid #ccc;
+ margin-bottom: 20px;
padding: 5px 0px 4px 0px;
+ border-bottom: 1px solid #ccc;
}
.info-line form,
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;
}
#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;
#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;
}
.minorNote {
- font-size: 0.8em;
+ font-size: 12px;
}
input[type="text"],
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;
}
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;
}
.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;
/* 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 {
/*
*= require rtl/common
*= require rtl/small
- */
+ */
\ No newline at end of file
}
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 {
#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;
}
#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 {
left: 5px;
top: 5px;
padding: 2px;
- width: 110px; /* TODO: find better fix for overlap */
+ width: 110px;
background-color: #fff;
z-index: 100;
}
#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 {
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 {
}
#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 {
/* 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 */
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
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
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!
# 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
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
# 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
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.
changeset.update_from(new_changeset, @user)
render :text => changeset.to_xml, :mime_type => "text/xml"
else
-
+
render :nothing => true, :status => :bad_request
end
end
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)
return
end
end
-
+
if params[:friends]
if @user
changesets = changesets.where(:user_id => @user.friend_users.public)
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'
private
#------------------------------------------------------------
# utility functions below.
- #------------------------------------------------------------
+ #------------------------------------------------------------
##
# if a bounding box was specified do some sanity checks.
# 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)
##
# 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)
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)
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
def conditions_nonempty(changesets)
return changesets.where("num_changes > 0")
end
-
+
end
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
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)
:per_page => 20)
else
require_user
- return
+ return
end
elsif params[:nearby]
if @user
: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,
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
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
-<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
-<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 %>
-<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
<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 %>
<% 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 %>
<% 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 %>
-<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
<% 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 %>
<%
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
-<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
<% 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
<% 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 %>
<% 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
<% 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
@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>
<% 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
@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
-<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>
<% 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
@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
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 %>
-<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
<% 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>
<%= 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
-<p><%= t'changeset.timeout.sorry' %></p>
+<p><%= t'changeset.timeout.sorry' %></p>
\ No newline at end of file
-<%= 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
-<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>
-<%= 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
-<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
<%= javascript_include_tag "diary_entry" %>
<% end %>
-<h1><%= @title %></h1>
+<% content_for :heading do %>
+ <h1><%= @title %></h1>
+<% end %>
<%= error_messages_for 'diary_entry' %>
-<% 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 -%>
-<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>
-<%= 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
<%= 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>
<% @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">
<% 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 %>
<% @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>
<% 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 %>
<%= 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 -%>
<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>
<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>
-<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">
<% 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>
-<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' %>
-<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>
-<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">
-<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
-<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] -%>
-<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
-<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>
-<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/>
-<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>
<% end %>
</td>
<% end %>
- <% end %>
+ <% end %>
</table>
<% end %>
<h3><%= t'oauth_clients.index.my_apps' %></h3>
<% 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
-<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
-<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>
<% @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 %>
<% @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' %>
<% @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 %>
<% @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>
<% 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 %>
<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>
+<% 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>
<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>
<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
<% 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>
<% 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 />
-<h1><%= t'trace.create.upload_trace' %></h1>
+<% content_for :heading do %>
+ <h1><%= t'trace.create.upload_trace' %></h1>
+<% end %>
<%= error_messages_for 'trace' %>
-<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 %>">
<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>
-<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' %>
<%= 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' %>
+<% content_for :heading do %>
<h2><%= t 'trace.offline.heading' %></h2>
+<% end %>
+
<p><%= t 'trace.offline.message' %></p>
-<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 %>
<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>
-<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>
-<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| %>
</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
-<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>
$("#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>
$("#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>
<% @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 %>
-<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">
-<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]) %>
-<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>
-<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]) %>
-<h1><%= t 'user.new.heading' %></h1>
+<% content_for :heading do %>
+ <h1><%= t 'user.new.heading' %></h1>
+<% end %>
<p><%= t 'user.new.fill_form' %></p>
-<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>
-<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]) %>
-<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 %>
<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> <!--vertical spacer--></td></tr>
<tr><td></td><td class="submitButton"><input type="submit" value="<%= t'user.reset_password.reset' %>" tabindex="6"></td></tr>
</table>
-blah
-
<%= @user.email %>
<% @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") %>
-<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>
-<%= 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 %>
<%= 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>
<% @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 } %>
<% @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 %>
<% @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 %>
<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
<% @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 } %>
<% @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 %>
<% @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>
<%= 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>
<% @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
relation: relation
changeset: changeset
paging_nav:
- showing_page: "Showing page"
+ showing_page: "page"
of: "of"
redacted:
redaction: "Redaction %{id}"
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"
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)"
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:
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:
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
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:
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:
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:"
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.
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"
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:
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
status: "Status"
revoker_name: "Revoked by"
not_revoked: "(not revoked)"
- showing_page: "Showing page %{page}"
+ showing_page: "Page %{page}"
next: "Next »"
previous: "« Previous"
helper:
CREATE TYPE format_enum AS ENUM (
'html',
- 'markdown',
- 'text'
+ 'markdown'
);
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';
--
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';
--
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 = '';
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,
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
#
# 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