]> git.openstreetmap.org Git - rails.git/commitdiff
Merge pull request #1151 from polarbearing/patch-1
authorAndy Allan <github@gravitystorm.co.uk>
Wed, 16 Jan 2019 13:30:28 +0000 (14:30 +0100)
committerGitHub <noreply@github.com>
Wed, 16 Jan 2019 13:30:28 +0000 (14:30 +0100)
Holiday Apartment is more specific for tourism=apartment

1234 files changed:
.gitignore
.mailmap
.rubocop.yml
.rubocop_todo.yml
.travis.yml
CONFIGURE.md
CONTRIBUTING.md
FAQ.md [new file with mode: 0644]
Gemfile
Gemfile.lock
INSTALL.md
README.md
Rakefile
VAGRANT.md
Vagrantfile
Vendorfile
app/abilities/ability.rb [new file with mode: 0644]
app/abilities/capability.rb [new file with mode: 0644]
app/assets/images/banners/.keep [moved from app/views/user/index.html.erb with 100% similarity]
app/assets/images/banners/sotm2018.png [new file with mode: 0644]
app/assets/images/github.png [new file with mode: 0644]
app/assets/images/google.png
app/assets/images/key/cyclemap/bicycle_parking.png [new file with mode: 0644]
app/assets/images/key/cyclemap/bicycle_shop.png [new file with mode: 0644]
app/assets/images/key/cyclemap/common.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway_local.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway_local13.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway_national.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway_national13.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway_regional.png [new file with mode: 0644]
app/assets/images/key/cyclemap/cycleway_regional13.png [new file with mode: 0644]
app/assets/images/key/cyclemap/footway.png [new file with mode: 0644]
app/assets/images/key/cyclemap/forest.png [new file with mode: 0644]
app/assets/images/key/cyclemap/lake.png [new file with mode: 0644]
app/assets/images/key/cyclemap/motorway.png [new file with mode: 0644]
app/assets/images/key/cyclemap/motorway12.png [new file with mode: 0644]
app/assets/images/key/cyclemap/primary.png [new file with mode: 0644]
app/assets/images/key/cyclemap/primary12.png [new file with mode: 0644]
app/assets/images/key/cyclemap/rail.png [new file with mode: 0644]
app/assets/images/key/cyclemap/rail14.png [new file with mode: 0644]
app/assets/images/key/cyclemap/secondary.png [new file with mode: 0644]
app/assets/images/key/cyclemap/secondary12.png [new file with mode: 0644]
app/assets/images/key/cyclemap/toilets.png [new file with mode: 0644]
app/assets/images/key/cyclemap/track.png [new file with mode: 0644]
app/assets/images/key/cyclemap/trunk.png [new file with mode: 0644]
app/assets/images/key/cyclemap/trunk12.png [new file with mode: 0644]
app/assets/images/osm_logo_30.png [new file with mode: 0644]
app/assets/images/routing-sprite.png
app/assets/images/routing-sprite.svg [new file with mode: 0644]
app/assets/images/sprite.png
app/assets/images/sprite.svg
app/assets/images/tab-icon.svg [new file with mode: 0644]
app/assets/images/wikipedia.png [new file with mode: 0644]
app/assets/images/wordpress.png
app/assets/javascripts/application.js
app/assets/javascripts/diary_entry.js
app/assets/javascripts/edit/id.js.erb [new file with mode: 0644]
app/assets/javascripts/edit/potlatch.js.erb [new file with mode: 0644]
app/assets/javascripts/edit/potlatch2.js.erb [new file with mode: 0644]
app/assets/javascripts/embed.js.erb
app/assets/javascripts/id.js
app/assets/javascripts/index.js
app/assets/javascripts/index/contextmenu.js [new file with mode: 0644]
app/assets/javascripts/index/directions.js
app/assets/javascripts/index/directions/graphhopper.js
app/assets/javascripts/index/directions/mapquest.js
app/assets/javascripts/index/directions/mapzen.js [deleted file]
app/assets/javascripts/index/directions/osrm.js
app/assets/javascripts/index/export.js
app/assets/javascripts/index/history.js
app/assets/javascripts/index/new_note.js
app/assets/javascripts/index/note.js
app/assets/javascripts/index/notes.js
app/assets/javascripts/index/query.js
app/assets/javascripts/index/search.js
app/assets/javascripts/leaflet.key.js
app/assets/javascripts/leaflet.layers.js
app/assets/javascripts/leaflet.map.js
app/assets/javascripts/leaflet.share.js
app/assets/javascripts/leaflet.zoom.js
app/assets/javascripts/messages.js [new file with mode: 0644]
app/assets/javascripts/oauth.js
app/assets/javascripts/osm.js.erb
app/assets/javascripts/user.js
app/assets/opensearch/osm.xml
app/assets/stylesheets/browse.scss
app/assets/stylesheets/common.scss
app/assets/stylesheets/errors.scss [new file with mode: 0644]
app/assets/stylesheets/leaflet-all.scss
app/assets/stylesheets/parameters.scss
app/assets/stylesheets/small.scss
app/controllers/amf_controller.rb
app/controllers/api_controller.rb
app/controllers/application_controller.rb
app/controllers/browse_controller.rb
app/controllers/changeset_comments_controller.rb [new file with mode: 0644]
app/controllers/changesets_controller.rb [moved from app/controllers/changeset_controller.rb with 58% similarity]
app/controllers/diary_entries_controller.rb [new file with mode: 0644]
app/controllers/diary_entry_controller.rb [deleted file]
app/controllers/directions_controller.rb
app/controllers/errors_controller.rb [new file with mode: 0644]
app/controllers/export_controller.rb
app/controllers/geocoder_controller.rb
app/controllers/issue_comments_controller.rb [new file with mode: 0644]
app/controllers/issues_controller.rb [new file with mode: 0644]
app/controllers/message_controller.rb [deleted file]
app/controllers/messages_controller.rb [new file with mode: 0644]
app/controllers/nodes_controller.rb [moved from app/controllers/node_controller.rb with 55% similarity]
app/controllers/notes_controller.rb
app/controllers/oauth_clients_controller.rb
app/controllers/oauth_controller.rb
app/controllers/old_controller.rb
app/controllers/old_nodes_controller.rb [moved from app/controllers/old_node_controller.rb with 84% similarity]
app/controllers/old_relations_controller.rb [moved from app/controllers/old_relation_controller.rb with 83% similarity]
app/controllers/old_ways_controller.rb [moved from app/controllers/old_way_controller.rb with 84% similarity]
app/controllers/redactions_controller.rb
app/controllers/relations_controller.rb [moved from app/controllers/relation_controller.rb with 68% similarity]
app/controllers/reports_controller.rb [new file with mode: 0644]
app/controllers/search_controller.rb
app/controllers/site_controller.rb
app/controllers/swf_controller.rb
app/controllers/trace_controller.rb [deleted file]
app/controllers/traces_controller.rb [new file with mode: 0644]
app/controllers/user_blocks_controller.rb
app/controllers/user_preferences_controller.rb [moved from app/controllers/user_preference_controller.rb with 56% similarity]
app/controllers/user_roles_controller.rb
app/controllers/users_controller.rb [moved from app/controllers/user_controller.rb with 52% similarity]
app/controllers/ways_controller.rb [moved from app/controllers/way_controller.rb with 65% similarity]
app/helpers/application_helper.rb
app/helpers/asset_helper.rb
app/helpers/banner_helper.rb [new file with mode: 0644]
app/helpers/browse_helper.rb
app/helpers/browse_tags_helper.rb [new file with mode: 0644]
app/helpers/changesets_helper.rb [moved from app/helpers/changeset_helper.rb with 60% similarity]
app/helpers/issues_helper.rb [new file with mode: 0644]
app/helpers/note_helper.rb
app/helpers/notifier_helper.rb
app/helpers/open_graph_helper.rb
app/helpers/reports_helper.rb [new file with mode: 0644]
app/helpers/title_helper.rb
app/helpers/trace_helper.rb
app/helpers/user_blocks_helper.rb
app/helpers/user_helper.rb
app/helpers/user_roles_helper.rb
app/mailers/notifier.rb [moved from app/models/notifier.rb with 65% similarity]
app/models/access_token.rb
app/models/acl.rb
app/models/changeset.rb
app/models/changeset_comment.rb
app/models/changeset_tag.rb
app/models/client_application.rb
app/models/concerns/geo_record.rb [moved from lib/geo_record.rb with 55% similarity]
app/models/concerns/not_redactable.rb [moved from lib/not_redactable.rb with 54% similarity]
app/models/concerns/object_metadata.rb [moved from lib/object_metadata.rb with 97% similarity]
app/models/diary_comment.rb
app/models/diary_entry.rb
app/models/diary_entry_subscription.rb [new file with mode: 0644]
app/models/friend.rb
app/models/issue.rb [new file with mode: 0644]
app/models/issue_comment.rb [new file with mode: 0644]
app/models/language.rb
app/models/message.rb
app/models/node.rb
app/models/node_tag.rb
app/models/note.rb
app/models/note_comment.rb
app/models/oauth2_token.rb
app/models/oauth2_verifier.rb
app/models/oauth_nonce.rb
app/models/oauth_token.rb
app/models/old_node.rb
app/models/old_node_tag.rb
app/models/old_relation.rb
app/models/old_relation_member.rb
app/models/old_relation_tag.rb
app/models/old_way.rb
app/models/old_way_node.rb
app/models/old_way_tag.rb
app/models/redaction.rb
app/models/relation.rb
app/models/relation_member.rb
app/models/relation_tag.rb
app/models/report.rb [new file with mode: 0644]
app/models/request_token.rb
app/models/trace.rb
app/models/tracepoint.rb
app/models/tracetag.rb
app/models/user.rb
app/models/user_block.rb
app/models/user_preference.rb
app/models/user_role.rb
app/models/user_token.rb
app/models/way.rb
app/models/way_node.rb
app/models/way_tag.rb
app/validators/characters_validator.rb [new file with mode: 0644]
app/validators/whitespace_validator.rb [new file with mode: 0644]
app/views/api/capabilities.builder [new file with mode: 0644]
app/views/api/permissions.builder
app/views/browse/_containing_relation.html.erb
app/views/browse/_relation.html.erb
app/views/browse/_relation_member.html.erb
app/views/browse/_tag_details.html.erb
app/views/browse/_way.html.erb
app/views/browse/changeset.html.erb
app/views/browse/feature.html.erb
app/views/browse/history.html.erb
app/views/browse/new_note.html.erb
app/views/browse/not_found.html.erb
app/views/browse/note.html.erb
app/views/browse/query.html.erb
app/views/browse/timeout.html.erb
app/views/changeset/_user.atom.builder [deleted file]
app/views/changeset/history.html.erb [deleted file]
app/views/changeset/list.html.erb [deleted file]
app/views/changeset/timeout.atom.builder [deleted file]
app/views/changeset/timeout.html.erb [deleted file]
app/views/changeset_comments/_comment.html.erb [moved from app/views/changeset/_comment.html.erb with 51% similarity]
app/views/changeset_comments/_comments.rss.builder [moved from app/views/changeset/_comments.rss.builder with 67% similarity]
app/views/changeset_comments/index.rss.builder [moved from app/views/changeset/comments_feed.rss.builder with 63% similarity]
app/views/changeset_comments/timeout.atom.builder [new file with mode: 0644]
app/views/changeset_comments/timeout.html.erb [new file with mode: 0644]
app/views/changesets/_changeset.html.erb [moved from app/views/changeset/_changeset.html.erb with 91% similarity]
app/views/changesets/_user.atom.builder [new file with mode: 0644]
app/views/changesets/history.html.erb [new file with mode: 0644]
app/views/changesets/index.atom.builder [moved from app/views/changeset/list.atom.builder with 57% similarity]
app/views/changesets/index.html.erb [new file with mode: 0644]
app/views/changesets/timeout.atom.builder [new file with mode: 0644]
app/views/changesets/timeout.html.erb [new file with mode: 0644]
app/views/diary_entries/_diary_comment.html.erb [new file with mode: 0644]
app/views/diary_entries/_diary_entry.html.erb [new file with mode: 0644]
app/views/diary_entries/_diary_index_entry.html.erb [new file with mode: 0644]
app/views/diary_entries/_location.html.erb [moved from app/views/diary_entry/_location.html.erb with 90% similarity]
app/views/diary_entries/comments.html.erb [new file with mode: 0644]
app/views/diary_entries/edit.html.erb [moved from app/views/diary_entry/edit.html.erb with 63% similarity]
app/views/diary_entries/index.html.erb [new file with mode: 0644]
app/views/diary_entries/no_such_entry.html.erb [new file with mode: 0644]
app/views/diary_entries/rss.rss.builder [new file with mode: 0644]
app/views/diary_entries/show.html.erb [new file with mode: 0644]
app/views/diary_entry/_diary_comment.html.erb [deleted file]
app/views/diary_entry/_diary_entry.html.erb [deleted file]
app/views/diary_entry/_diary_list_entry.html.erb [deleted file]
app/views/diary_entry/comments.html.erb [deleted file]
app/views/diary_entry/list.html.erb [deleted file]
app/views/diary_entry/no_such_entry.html.erb [deleted file]
app/views/diary_entry/rss.rss.builder [deleted file]
app/views/diary_entry/view.html.erb [deleted file]
app/views/errors/forbidden.html.erb [new file with mode: 0644]
app/views/errors/internal_server_error.html.erb [new file with mode: 0644]
app/views/errors/not_found.html.erb [new file with mode: 0644]
app/views/geocoder/results.html.erb
app/views/geocoder/search.html.erb
app/views/issues/_comments.html.erb [new file with mode: 0644]
app/views/issues/_reports.html.erb [new file with mode: 0644]
app/views/issues/index.html.erb [new file with mode: 0644]
app/views/issues/show.html.erb [new file with mode: 0644]
app/views/layouts/_banner.html.erb [new file with mode: 0644]
app/views/layouts/_head.html.erb
app/views/layouts/_header.html.erb
app/views/layouts/_inbox.html.erb
app/views/layouts/_search.html.erb
app/views/layouts/error.html.erb [new file with mode: 0644]
app/views/layouts/map.html.erb
app/views/layouts/notifier.html.erb [new file with mode: 0644]
app/views/layouts/site.html.erb
app/views/message/_message_count.html.erb [deleted file]
app/views/message/_message_summary.html.erb [deleted file]
app/views/message/_sent_message_summary.html.erb [deleted file]
app/views/message/delete.js.erb [deleted file]
app/views/message/inbox.html.erb [deleted file]
app/views/message/mark.js.erb [deleted file]
app/views/message/new.html.erb [deleted file]
app/views/message/no_such_message.html.erb [deleted file]
app/views/message/outbox.html.erb [deleted file]
app/views/message/read.html.erb [deleted file]
app/views/messages/_message_count.html.erb [new file with mode: 0644]
app/views/messages/_message_summary.html.erb [new file with mode: 0644]
app/views/messages/_sent_message_summary.html.erb [new file with mode: 0644]
app/views/messages/destroy.json.jsonify [new file with mode: 0644]
app/views/messages/inbox.html.erb [new file with mode: 0644]
app/views/messages/mark.json.jsonify [new file with mode: 0644]
app/views/messages/new.html.erb [new file with mode: 0644]
app/views/messages/no_such_message.html.erb [new file with mode: 0644]
app/views/messages/outbox.html.erb [new file with mode: 0644]
app/views/messages/show.html.erb [new file with mode: 0644]
app/views/notes/_comment.html.erb
app/views/notes/_entry.html.erb
app/views/notes/_note.gpx.builder
app/views/notes/_note.json.jsonify
app/views/notes/_note.rss.builder
app/views/notes/_note.xml.builder
app/views/notes/_notes_paging_nav.html.erb
app/views/notes/_user.html.erb
app/views/notes/feed.rss.builder
app/views/notes/index.gpx.builder
app/views/notes/index.rss.builder
app/views/notes/index.xml.builder
app/views/notes/mine.html.erb
app/views/notes/show.gpx.builder
app/views/notes/show.rss.builder
app/views/notes/show.xml.builder
app/views/notifier/_gpx_description.html.erb
app/views/notifier/_message_body.html.erb [new file with mode: 0644]
app/views/notifier/changeset_comment_notification.html.erb
app/views/notifier/changeset_comment_notification.text.erb
app/views/notifier/diary_comment_notification.html.erb
app/views/notifier/diary_comment_notification.text.erb
app/views/notifier/friend_notification.html.erb
app/views/notifier/friend_notification.text.erb
app/views/notifier/gpx_failure.html.erb
app/views/notifier/gpx_success.html.erb
app/views/notifier/message_notification.html.erb
app/views/notifier/message_notification.text.erb
app/views/notifier/note_comment_notification.html.erb
app/views/notifier/note_comment_notification.text.erb
app/views/notifier/signup_confirm.html.erb
app/views/notifier/signup_confirm.text.erb
app/views/oauth/authorize.html.erb
app/views/oauth/authorize_failure.html.erb
app/views/oauth/authorize_success.html.erb
app/views/oauth_clients/_form.html.erb
app/views/oauth_clients/edit.html.erb
app/views/oauth_clients/index.html.erb
app/views/oauth_clients/new.html.erb
app/views/oauth_clients/not_found.erb
app/views/oauth_clients/show.html.erb
app/views/redactions/edit.html.erb
app/views/redactions/index.html.erb
app/views/redactions/new.html.erb
app/views/redactions/show.html.erb
app/views/reports/new.html.erb [new file with mode: 0644]
app/views/site/_id.html.erb
app/views/site/_markdown_help.html.erb
app/views/site/_potlatch.html.erb
app/views/site/_potlatch2.html.erb
app/views/site/about.html.erb
app/views/site/copyright.html.erb
app/views/site/edit.html.erb
app/views/site/export.html.erb
app/views/site/fixthemap.html.erb
app/views/site/help.html.erb
app/views/site/id.html.erb
app/views/site/key.html.erb
app/views/site/welcome.html.erb
app/views/trace/_description.html.erb [deleted file]
app/views/trace/_trace.html.erb [deleted file]
app/views/trace/_trace_paging_nav.html.erb [deleted file]
app/views/trace/create.html.erb [deleted file]
app/views/trace/edit.html.erb [deleted file]
app/views/trace/offline.html.erb [deleted file]
app/views/trace/view.html.erb [deleted file]
app/views/traces/_description.html.erb [new file with mode: 0644]
app/views/traces/_trace.html.erb [new file with mode: 0644]
app/views/traces/_trace_optionals.html.erb [moved from app/views/trace/_trace_optionals.html.erb with 80% similarity]
app/views/traces/_trace_paging_nav.html.erb [new file with mode: 0644]
app/views/traces/edit.html.erb [new file with mode: 0644]
app/views/traces/georss.rss.builder [moved from app/views/trace/georss.rss.builder with 53% similarity]
app/views/traces/index.html.erb [moved from app/views/trace/list.html.erb with 53% similarity]
app/views/traces/new.html.erb [new file with mode: 0644]
app/views/traces/offline.html.erb [new file with mode: 0644]
app/views/traces/show.html.erb [new file with mode: 0644]
app/views/user/_auth_association.html.erb [deleted file]
app/views/user/_contact.html.erb [deleted file]
app/views/user/_popup.html.erb [deleted file]
app/views/user/account.html.erb [deleted file]
app/views/user/api_read.builder [deleted file]
app/views/user/blocked.html.erb [deleted file]
app/views/user/confirm_email.html.erb [deleted file]
app/views/user/logout.html.erb [deleted file]
app/views/user/lost_password.html.erb [deleted file]
app/views/user/new.html.erb [deleted file]
app/views/user/no_such_user.html.erb [deleted file]
app/views/user/save.html.erb [deleted file]
app/views/user/suspended.html.erb [deleted file]
app/views/user/terms.html.erb [deleted file]
app/views/user/view.html.erb [deleted file]
app/views/user_blocks/_block.html.erb
app/views/user_blocks/_blocks.html.erb
app/views/user_blocks/blocks_by.html.erb
app/views/user_blocks/blocks_on.html.erb
app/views/user_blocks/edit.html.erb
app/views/user_blocks/index.html.erb
app/views/user_blocks/new.html.erb
app/views/user_blocks/not_found.html.erb
app/views/user_blocks/revoke.html.erb
app/views/user_blocks/show.html.erb
app/views/users/_api_user.builder [new file with mode: 0644]
app/views/users/_auth_association.html.erb [new file with mode: 0644]
app/views/users/_contact.html.erb [new file with mode: 0644]
app/views/users/_popup.html.erb [new file with mode: 0644]
app/views/users/_terms.html.erb [moved from app/views/user/_terms.html.erb with 95% similarity]
app/views/users/_user.html.erb [moved from app/views/user/_user.html.erb with 66% similarity]
app/views/users/account.html.erb [new file with mode: 0644]
app/views/users/api_read.builder [new file with mode: 0644]
app/views/users/api_users.builder [new file with mode: 0644]
app/views/users/blocked.html.erb [new file with mode: 0644]
app/views/users/confirm.html.erb [moved from app/views/user/confirm.html.erb with 55% similarity]
app/views/users/confirm_email.html.erb [new file with mode: 0644]
app/views/users/index.html.erb [moved from app/views/user/list.html.erb with 68% similarity]
app/views/users/login.html.erb [moved from app/views/user/login.html.erb with 61% similarity]
app/views/users/logout.html.erb [new file with mode: 0644]
app/views/users/lost_password.html.erb [new file with mode: 0644]
app/views/users/make_friend.html.erb [moved from app/views/user/make_friend.html.erb with 56% similarity]
app/views/users/new.html.erb [new file with mode: 0644]
app/views/users/no_such_user.html.erb [new file with mode: 0644]
app/views/users/remove_friend.html.erb [moved from app/views/user/remove_friend.html.erb with 56% similarity]
app/views/users/reset_password.html.erb [moved from app/views/user/reset_password.html.erb with 52% similarity]
app/views/users/show.html.erb [new file with mode: 0644]
app/views/users/suspended.html.erb [new file with mode: 0644]
app/views/users/terms.html.erb [new file with mode: 0644]
bin/bundle [new file with mode: 0755]
bin/rails [new file with mode: 0755]
bin/rake [new file with mode: 0755]
bin/setup [new file with mode: 0755]
bin/update [new file with mode: 0755]
bin/yarn [new file with mode: 0755]
config.ru
config/application.rb
config/banners.yml [new file with mode: 0644]
config/boot.rb
config/cable.yml [new file with mode: 0644]
config/credentials.yml.enc [new file with mode: 0644]
config/daemons.yml [deleted file]
config/environment.rb
config/environments/development.rb
config/environments/production.rb
config/environments/test.rb
config/example.application.yml
config/i18n-js.yml
config/image_optim.yml
config/image_optim/test.yml [new file with mode: 0644]
config/initializers/abstract_adapter.rb
config/initializers/action_dispatch.rb [deleted file]
config/initializers/action_mailer.rb
config/initializers/application_controller_renderer.rb [new file with mode: 0644]
config/initializers/assets.rb
config/initializers/banners.rb [new file with mode: 0644]
config/initializers/better_errors.rb [new file with mode: 0644]
config/initializers/canonical_rails.rb [new file with mode: 0644]
config/initializers/compressed_requests.rb [new file with mode: 0644]
config/initializers/content_security_policy.rb [new file with mode: 0644]
config/initializers/cookies_serializer.rb
config/initializers/cors.rb
config/initializers/errors.rb [new file with mode: 0644]
config/initializers/i18n.rb
config/initializers/konacha.rb
config/initializers/libxml.rb
config/initializers/oauth.rb
config/initializers/omniauth.rb
config/initializers/paperclip.rb
config/initializers/piwik.rb
config/initializers/r2.rb
config/initializers/router.rb
config/initializers/sanitize.rb
config/initializers/secure_headers.rb [new file with mode: 0644]
config/initializers/session.rb [deleted file]
config/initializers/session_store.rb
config/initializers/streaming.rb [deleted file]
config/initializers/wiki_pages.rb
config/initializers/wrap_parameters.rb
config/jshint.yml
config/key.yml
config/lighttpd-host-blocks.sh [deleted file]
config/lighttpd.conf [deleted file]
config/locales/af.yml
config/locales/aln.yml
config/locales/ar.yml
config/locales/arz.yml
config/locales/ast.yml
config/locales/az.yml
config/locales/ba.yml [new file with mode: 0644]
config/locales/be-Tarask.yml
config/locales/be.yml
config/locales/bg.yml
config/locales/bn.yml [new file with mode: 0644]
config/locales/br.yml
config/locales/bs.yml
config/locales/ca.yml
config/locales/ce.yml [new file with mode: 0644]
config/locales/cs.yml
config/locales/cy.yml
config/locales/da.yml
config/locales/de.yml
config/locales/diq.yml
config/locales/dsb.yml
config/locales/el.yml
config/locales/en-GB.yml
config/locales/en.yml
config/locales/eo.yml
config/locales/es.yml
config/locales/et.yml
config/locales/eu.yml
config/locales/fa.yml
config/locales/fi.yml
config/locales/fr.yml
config/locales/fur.yml
config/locales/fy.yml [new file with mode: 0644]
config/locales/ga.yml [new file with mode: 0644]
config/locales/gd.yml
config/locales/gl.yml
config/locales/he.yml
config/locales/hr.yml
config/locales/hsb.yml
config/locales/hu.yml
config/locales/ia.yml
config/locales/id.yml
config/locales/is.yml
config/locales/it.yml
config/locales/ja.yml
config/locales/ka.yml
config/locales/kab.yml [new file with mode: 0644]
config/locales/km.yml
config/locales/kn.yml [new file with mode: 0644]
config/locales/ko.yml
config/locales/ku-Latn.yml [new file with mode: 0644]
config/locales/lb.yml
config/locales/lt.yml
config/locales/lv.yml
config/locales/mk.yml
config/locales/mo.yml [new file with mode: 0644]
config/locales/mr.yml
config/locales/ms.yml
config/locales/nb.yml
config/locales/nds.yml
config/locales/ne.yml
config/locales/nl.yml
config/locales/nn.yml
config/locales/oc.yml
config/locales/pa.yml
config/locales/pl.yml
config/locales/pt-BR.yml
config/locales/pt-PT.yml
config/locales/ro.yml
config/locales/ru.yml
config/locales/scn.yml
config/locales/sco.yml
config/locales/sk.yml
config/locales/sl.yml
config/locales/sq.yml
config/locales/sr-Latn.yml
config/locales/sr.yml
config/locales/sv.yml
config/locales/ta.yml
config/locales/te.yml
config/locales/th.yml [new file with mode: 0644]
config/locales/tl.yml
config/locales/tr.yml
config/locales/uk.yml
config/locales/vi.yml
config/locales/zh-CN.yml
config/locales/zh-TW.yml
config/master.key [new file with mode: 0644]
config/mongrel_cluster.yml [deleted file]
config/nginx.conf [deleted file]
config/potlatch/locales/en.yml
config/puma.rb [new file with mode: 0644]
config/routes.rb
config/secrets.yml [deleted file]
config/spring.rb [new file with mode: 0644]
config/storage.yml [new file with mode: 0644]
config/wiki_pages.yml
db/README [deleted file]
db/functions/Makefile
db/functions/xid_to_int4.c
db/migrate/001_create_osm_db.rb
db/migrate/002_cleanup_osm_db.rb
db/migrate/003_sql_session_store_setup.rb
db/migrate/004_user_enhancements.rb
db/migrate/005_tile_tracepoints.rb
db/migrate/006_tile_nodes.rb
db/migrate/007_add_relations.rb
db/migrate/008_remove_segments.rb
db/migrate/009_way_nodes_node_idx.rb
db/migrate/010_diary_comments.rb
db/migrate/011_add_user_image.rb
db/migrate/012_add_admin_flag.rb
db/migrate/013_add_email_valid.rb
db/migrate/014_add_new_email.rb
db/migrate/015_add_user_visible.rb
db/migrate/016_add_creation_ip.rb
db/migrate/017_add_gpx_indexes.rb
db/migrate/018_create_acls.rb
db/migrate/019_add_timestamp_indexes.rb
db/migrate/020_populate_node_tags_and_remove.rb
db/migrate/021_move_to_innodb.rb
db/migrate/022_key_constraints.rb
db/migrate/023_add_changesets.rb
db/migrate/024_order_relation_members.rb
db/migrate/025_add_end_time_to_changesets.rb
db/migrate/026_add_changeset_user_index.rb
db/migrate/027_add_changeset_indexes.rb
db/migrate/028_add_more_changeset_indexes.rb
db/migrate/029_add_user_foreign_keys.rb
db/migrate/030_add_foreign_keys.rb
db/migrate/031_create_countries.rb
db/migrate/032_add_user_locale.rb
db/migrate/033_change_diary_entries_language.rb
db/migrate/034_create_languages.rb
db/migrate/035_change_user_locale.rb
db/migrate/036_add_visible_to_message.rb
db/migrate/037_add_sender_visible_to_message.rb
db/migrate/038_add_message_sender_index.rb
db/migrate/039_add_more_controls_to_gpx_files.rb
db/migrate/040_create_oauth_tables.rb
db/migrate/041_add_fine_o_auth_permissions.rb
db/migrate/042_add_foreign_keys_to_oauth_tables.rb
db/migrate/043_add_referer_to_user_token.rb
db/migrate/044_create_user_roles.rb
db/migrate/045_create_user_blocks.rb
db/migrate/046_alter_user_roles_and_blocks.rb
db/migrate/047_add_visible_to_diaries.rb
db/migrate/048_add_diary_creation_indexes.rb
db/migrate/049_improve_changeset_user_index.rb
db/migrate/050_add_user_index_to_diary_comments.rb
db/migrate/051_add_status_to_user.rb
db/migrate/052_add_contributor_terms_to_user.rb
db/migrate/053_add_map_bug_tables.rb
db/migrate/054_refactor_map_bug_tables.rb
db/migrate/055_change_map_bug_comment_type.rb
db/migrate/056_add_date_closed.rb
db/migrate/057_add_map_bug_comment_event.rb
db/migrate/20100513171259_add_user_date_index_to_changeset.rb
db/migrate/20100516124737_add_open_id.rb
db/migrate/20100910084426_add_callback_to_oauth_tokens.rb
db/migrate/20101114011429_add_editor_preference_to_user.rb
db/migrate/20110322001319_add_terms_seen_to_user.rb
db/migrate/20110508145337_cleanup_bug_tables.rb
db/migrate/20110521142405_rename_bugs_to_notes.rb
db/migrate/20110925112722_rename_ids.rb
db/migrate/20111116184519_update_oauth.rb
db/migrate/20111212183945_add_lowercase_user_indexes.rb
db/migrate/20120123184321_switch_to_paperclip.rb
db/migrate/20120208122334_merge_acl_address_and_mask.rb
db/migrate/20120208194454_add_domain_to_acl.rb
db/migrate/20120214210114_add_text_format.rb
db/migrate/20120219161649_add_user_image_fingerprint.rb
db/migrate/20120318201948_create_redactions.rb
db/migrate/20120328090602_drop_session_table.rb
db/migrate/20120404205604_add_user_and_description_to_redaction.rb
db/migrate/20120808231205_add_counter_caches.rb
db/migrate/20121005195010_add_diary_entry_counter_caches.rb
db/migrate/20121012044047_add_image_use_gravatar_to_users.rb
db/migrate/20121119165817_drop_nearby_place_from_notes.rb
db/migrate/20121202155309_remove_author_name_from_note_comment.rb
db/migrate/20121203124841_change_note_address_to_inet.rb
db/migrate/20130328184137_add_write_notes_permission.rb
db/migrate/20131212124700_add_created_at_index_to_note_comments.rb
db/migrate/20140115192822_add_text_index_to_note_comments.rb
db/migrate/20140117185510_drop_countries.rb
db/migrate/20140210003018_add_user_image_content_type.rb
db/migrate/20140507110937_create_changeset_comments.rb
db/migrate/20140519141742_add_join_table_between_users_and_changesets.rb
db/migrate/20150110152606_change_default_formats.rb
db/migrate/20150111192335_subscribe_old_changesets.rb
db/migrate/20150222101847_rename_openid_url.rb
db/migrate/20150818224516_set_default_gravatar_to_false_for_privacy.rb [new file with mode: 0644]
db/migrate/20160822153055_create_issues_and_reports.rb [new file with mode: 0644]
db/migrate/20161002153425_add_join_table_between_users_and_diary_entries.rb [new file with mode: 0644]
db/migrate/20161011010929_subscribe_authors_to_diary_entries.rb [new file with mode: 0644]
db/migrate/20170222134109_add_user_indexes.rb [new file with mode: 0644]
db/migrate/20180204153242_tile_users.rb [new file with mode: 0644]
db/migrate/20181031113522_create_delayed_jobs.rb [new file with mode: 0644]
db/seeds.rb
db/structure.sql
lib/auth.rb
lib/bounding_box.rb
lib/classic_pagination/pagination.rb
lib/classic_pagination/pagination_helper.rb
lib/consistency_validations.rb
lib/country.rb
lib/daemons/gpx_import.rb
lib/daemons/gpx_import_ctl
lib/diff_reader.rb
lib/editors.rb
lib/gpx.rb
lib/id.rb
lib/migrate.rb
lib/nominatim.rb
lib/osm.rb
lib/password_hash.rb
lib/potlatch.rb
lib/potlatch2.rb
lib/quad_tile.rb [deleted file]
lib/quad_tile/.gitignore [deleted file]
lib/quad_tile/extconf.rb [deleted file]
lib/quad_tile/quad_tile.c [deleted file]
lib/quad_tile/quad_tile.h [deleted file]
lib/quova.rb [deleted file]
lib/redactable.rb
lib/rich_text.rb
lib/session_persistence.rb
lib/tasks/add_version_to_nodes.rake
lib/tasks/auto_annotate_models.rake [new file with mode: 0644]
lib/tasks/testing.rake
lib/utf8.rb
public/403.html [deleted file]
public/404.html [deleted file]
public/500.html [deleted file]
public/api/crossdomain.xml
public/oauth/crossdomain.xml
script/cleanup
script/deliver-message
script/gravatar [new file with mode: 0755]
script/misc/update-wiki-pages
script/rails [deleted file]
script/statistics
script/update-spam-blocks
script/vagrant/setup/provision.sh
storage/.keep [moved from db/MAKE_MIGRATIONS_AND_TEST_THEM_DONT_PUT_SQL_HERE_ANY_MORE with 100% similarity]
test/abilities/abilities_test.rb [new file with mode: 0644]
test/abilities/capability_test.rb [new file with mode: 0644]
test/application_system_test_case.rb [new file with mode: 0644]
test/controllers/amf_controller_test.rb
test/controllers/api_controller_test.rb
test/controllers/browse_controller_test.rb
test/controllers/changeset_comments_controller_test.rb [new file with mode: 0644]
test/controllers/changeset_controller_test.rb [deleted file]
test/controllers/changesets_controller_test.rb [new file with mode: 0644]
test/controllers/diary_entries_controller_test.rb [new file with mode: 0644]
test/controllers/diary_entry_controller_test.rb [deleted file]
test/controllers/errors_controller_test.rb [new file with mode: 0644]
test/controllers/export_controller_test.rb
test/controllers/geocoder_controller_test.rb
test/controllers/issue_comments_controller_test.rb [new file with mode: 0644]
test/controllers/issues_controller_test.rb [new file with mode: 0644]
test/controllers/message_controller_test.rb [deleted file]
test/controllers/messages_controller_test.rb [new file with mode: 0644]
test/controllers/nodes_controller_test.rb [moved from test/controllers/node_controller_test.rb with 51% similarity]
test/controllers/notes_controller_test.rb
test/controllers/oauth_clients_controller_test.rb
test/controllers/old_nodes_controller_test.rb [moved from test/controllers/old_node_controller_test.rb with 51% similarity]
test/controllers/old_relation_controller_test.rb [deleted file]
test/controllers/old_relations_controller_test.rb [new file with mode: 0644]
test/controllers/old_way_controller_test.rb [deleted file]
test/controllers/old_ways_controller_test.rb [new file with mode: 0644]
test/controllers/redactions_controller_test.rb
test/controllers/relations_controller_test.rb [moved from test/controllers/relation_controller_test.rb with 54% similarity]
test/controllers/reports_controller_test.rb [new file with mode: 0644]
test/controllers/search_controller_test.rb
test/controllers/site_controller_test.rb
test/controllers/swf_controller_test.rb
test/controllers/trace_controller_test.rb [deleted file]
test/controllers/traces_controller_test.rb [new file with mode: 0644]
test/controllers/user_blocks_controller_test.rb
test/controllers/user_preference_controller_test.rb [deleted file]
test/controllers/user_preferences_controller_test.rb [new file with mode: 0644]
test/controllers/user_roles_controller_test.rb
test/controllers/users_controller_test.rb [moved from test/controllers/user_controller_test.rb with 51% similarity]
test/controllers/ways_controller_test.rb [moved from test/controllers/way_controller_test.rb with 55% similarity]
test/factories/access_tokens.rb [new file with mode: 0644]
test/factories/acls.rb [new file with mode: 0644]
test/factories/changeset_comments.rb [new file with mode: 0644]
test/factories/changeset_tags.rb [new file with mode: 0644]
test/factories/changesets.rb [new file with mode: 0644]
test/factories/client_applications.rb [new file with mode: 0644]
test/factories/diary_comments.rb [new file with mode: 0644]
test/factories/diary_entries.rb [new file with mode: 0644]
test/factories/friends.rb [new file with mode: 0644]
test/factories/issues.rb [new file with mode: 0644]
test/factories/languages.rb [new file with mode: 0644]
test/factories/messages.rb [new file with mode: 0644]
test/factories/node.rb [new file with mode: 0644]
test/factories/node_tags.rb [new file with mode: 0644]
test/factories/note_comments.rb [new file with mode: 0644]
test/factories/notes.rb [new file with mode: 0644]
test/factories/old_node.rb [new file with mode: 0644]
test/factories/old_node_tags.rb [new file with mode: 0644]
test/factories/old_relation.rb [new file with mode: 0644]
test/factories/old_relation_member.rb [new file with mode: 0644]
test/factories/old_relation_tags.rb [new file with mode: 0644]
test/factories/old_way.rb [new file with mode: 0644]
test/factories/old_way_node.rb [new file with mode: 0644]
test/factories/old_way_tags.rb [new file with mode: 0644]
test/factories/redaction.rb [new file with mode: 0644]
test/factories/relation.rb [new file with mode: 0644]
test/factories/relation_member.rb [new file with mode: 0644]
test/factories/relation_tags.rb [new file with mode: 0644]
test/factories/reports.rb [new file with mode: 0644]
test/factories/tracepoints.rb [new file with mode: 0644]
test/factories/traces.rb [new file with mode: 0644]
test/factories/tracetags.rb [new file with mode: 0644]
test/factories/user.rb [new file with mode: 0644]
test/factories/user_blocks.rb [new file with mode: 0644]
test/factories/user_preferences.rb [new file with mode: 0644]
test/factories/user_role.rb [new file with mode: 0644]
test/factories/way.rb [new file with mode: 0644]
test/factories/way_node.rb [new file with mode: 0644]
test/factories/way_tags.rb [new file with mode: 0644]
test/fixtures/acls.yml [deleted file]
test/fixtures/changeset_comments.yml [deleted file]
test/fixtures/changeset_tags.yml [deleted file]
test/fixtures/changesets.yml [deleted file]
test/fixtures/changesets_subscribers.yml [deleted file]
test/fixtures/client_applications.yml [deleted file]
test/fixtures/countries.yml [deleted file]
test/fixtures/current_node_tags.yml [deleted file]
test/fixtures/current_nodes.yml [deleted file]
test/fixtures/current_relation_members.yml [deleted file]
test/fixtures/current_relation_tags.yml [deleted file]
test/fixtures/current_relations.yml [deleted file]
test/fixtures/current_way_nodes.yml [deleted file]
test/fixtures/current_way_tags.yml [deleted file]
test/fixtures/current_ways.yml [deleted file]
test/fixtures/diary_comments.yml [deleted file]
test/fixtures/diary_entries.yml [deleted file]
test/fixtures/friends.yml [deleted file]
test/fixtures/gps_points.yml [deleted file]
test/fixtures/gpx_file_tags.yml [deleted file]
test/fixtures/gpx_files.yml [deleted file]
test/fixtures/languages.yml [deleted file]
test/fixtures/messages.yml [deleted file]
test/fixtures/node_tags.yml [deleted file]
test/fixtures/nodes.yml [deleted file]
test/fixtures/note_comments.yml [deleted file]
test/fixtures/notes.yml [deleted file]
test/fixtures/redactions.yml [deleted file]
test/fixtures/relation_members.yml [deleted file]
test/fixtures/relation_tags.yml [deleted file]
test/fixtures/relations.yml [deleted file]
test/fixtures/user_blocks.yml [deleted file]
test/fixtures/user_preferences.yml [deleted file]
test/fixtures/user_roles.yml [deleted file]
test/fixtures/users.yml [deleted file]
test/fixtures/way_nodes.yml [deleted file]
test/fixtures/way_tags.yml [deleted file]
test/fixtures/ways.yml [deleted file]
test/gpx/fixtures/a.gif [moved from test/traces/1.gif with 100% similarity]
test/gpx/fixtures/a.gpx [moved from test/traces/1.gpx with 100% similarity]
test/gpx/fixtures/a_icon.gif [moved from test/traces/1_icon.gif with 100% similarity]
test/gpx/fixtures/b.gif [moved from test/traces/2.gif with 100% similarity]
test/gpx/fixtures/b.gpx [moved from test/traces/10.gpx with 100% similarity]
test/gpx/fixtures/b_icon.gif [moved from test/traces/2_icon.gif with 100% similarity]
test/gpx/fixtures/c.gif [moved from test/traces/3.gif with 100% similarity]
test/gpx/fixtures/c.gpx [moved from test/traces/3.gpx with 100% similarity]
test/gpx/fixtures/c_icon.gif [moved from test/traces/3_icon.gif with 100% similarity]
test/gpx/fixtures/d.gif [moved from test/traces/4.gif with 100% similarity]
test/gpx/fixtures/d.gpx [moved from test/traces/4.gpx with 100% similarity]
test/gpx/fixtures/d_icon.gif [moved from test/traces/4_icon.gif with 100% similarity]
test/gpx/fixtures/f.gif [moved from test/traces/6.gif with 100% similarity]
test/gpx/fixtures/f.gpx [moved from test/traces/6.gpx with 100% similarity]
test/gpx/fixtures/f_icon.gif [moved from test/traces/6_icon.gif with 100% similarity]
test/gpx/fixtures/g.gif [moved from test/traces/7.gif with 100% similarity]
test/gpx/fixtures/g.gpx [moved from test/traces/7.gpx with 100% similarity]
test/gpx/fixtures/g_icon.gif [moved from test/traces/7_icon.gif with 100% similarity]
test/gpx/fixtures/h.gif [moved from test/traces/8.gif with 100% similarity]
test/gpx/fixtures/h.gpx [moved from test/traces/8.gpx with 100% similarity]
test/gpx/fixtures/h_icon.gif [moved from test/traces/8_icon.gif with 100% similarity]
test/gpx/fixtures/i.gif [moved from test/traces/9.gif with 100% similarity]
test/gpx/fixtures/i.gpx [moved from test/traces/9.gpx with 100% similarity]
test/gpx/fixtures/i_icon.gif [moved from test/traces/9_icon.gif with 100% similarity]
test/gpx/fixtures/j.gpx [moved from test/traces/2.gpx with 100% similarity]
test/gpx/images/.gitkeep [moved from test/fixtures/user_tokens.yml with 100% similarity]
test/gpx/traces/.gitkeep [new file with mode: 0644]
test/helpers/application_helper_test.rb
test/helpers/browse_helper_test.rb
test/helpers/browse_tags_helper_test.rb [new file with mode: 0644]
test/helpers/changeset_helper_test.rb [deleted file]
test/helpers/changesets_helper_test.rb [new file with mode: 0644]
test/helpers/note_helper_test.rb
test/helpers/title_helper_test.rb
test/helpers/user_blocks_helper_test.rb [new file with mode: 0644]
test/helpers/user_helper_test.rb [new file with mode: 0644]
test/helpers/user_roles_helper_test.rb
test/http/geocoder_ca.yml
test/http/geocoder_us.yml [deleted file]
test/http/geonames.yml
test/http/nominatim.yml
test/http/npemap.yml [deleted file]
test/integration/client_applications_test.rb
test/integration/compressed_requests_test.rb [new file with mode: 0644]
test/integration/cors_test.rb
test/integration/oauth_test.rb
test/integration/page_locale_test.rb
test/integration/user_blocks_test.rb
test/integration/user_changeset_comments_test.rb
test/integration/user_creation_test.rb
test/integration/user_diaries_test.rb
test/integration/user_login_test.rb
test/integration/user_roles_test.rb [deleted file]
test/integration/user_terms_seen_test.rb
test/lib/bounding_box_test.rb
test/lib/country_test.rb
test/lib/i18n_test.rb
test/lib/locale_test.rb
test/lib/password_hash_test.rb
test/lib/rich_text_test.rb
test/lib/utf8_test.rb
test/models/acl_test.rb
test/models/changeset_comment_test.rb
test/models/changeset_tag_test.rb
test/models/changeset_test.rb
test/models/client_application_test.rb
test/models/diary_comment_test.rb
test/models/diary_entry_test.rb
test/models/friend_test.rb
test/models/issue_comment_test.rb [new file with mode: 0644]
test/models/issue_test.rb [new file with mode: 0644]
test/models/language_test.rb
test/models/message_test.rb
test/models/node_tag_test.rb
test/models/node_test.rb
test/models/note_comment_test.rb
test/models/note_test.rb
test/models/oauth_nonce_test.rb
test/models/oauth_token_test.rb
test/models/old_node_tag_test.rb
test/models/old_node_test.rb
test/models/old_relation_tag_test.rb
test/models/old_relation_test.rb
test/models/old_way_tag_test.rb
test/models/old_way_test.rb
test/models/redaction_test.rb
test/models/relation_member_test.rb
test/models/relation_tag_test.rb
test/models/relation_test.rb
test/models/report_test.rb [new file with mode: 0644]
test/models/request_token_test.rb
test/models/trace_test.rb
test/models/tracepoint_test.rb
test/models/tracetag_test.rb
test/models/user_preference_test.rb
test/models/user_test.rb
test/models/user_token_test.rb
test/models/way_node_test.rb
test/models/way_tag_test.rb
test/models/way_test.rb
test/system/diary_entry_test.rb [new file with mode: 0644]
test/system/issues_test.rb [new file with mode: 0644]
test/system/report_diary_comment_test.rb [new file with mode: 0644]
test/system/report_diary_entry_test.rb [new file with mode: 0644]
test/system/report_note_test.rb [new file with mode: 0644]
test/system/report_user_test.rb [new file with mode: 0644]
test/system/site_test.rb [new file with mode: 0644]
test/test_helper.rb
test/validators/characters_validator_test.rb [new file with mode: 0644]
test/validators/whitespace_validator_test.rb [new file with mode: 0644]
vendor/assets/iD/iD.css.erb
vendor/assets/iD/iD.js
vendor/assets/iD/iD/img/arrow-icon.png
vendor/assets/iD/iD/img/background-pattern-1.png [deleted file]
vendor/assets/iD/iD/img/background-pattern-opacity.png [deleted file]
vendor/assets/iD/iD/img/bing_maps.png [deleted file]
vendor/assets/iD/iD/img/community-sprite.svg [new file with mode: 0644]
vendor/assets/iD/iD/img/cursor-draw-connect-line.png
vendor/assets/iD/iD/img/cursor-draw-connect-line2x.png
vendor/assets/iD/iD/img/cursor-draw-connect-vertex.png
vendor/assets/iD/iD/img/cursor-draw-connect-vertex2x.png
vendor/assets/iD/iD/img/cursor-draw.png
vendor/assets/iD/iD/img/cursor-grab2x.png
vendor/assets/iD/iD/img/cursor-grabbing.png
vendor/assets/iD/iD/img/cursor-grabbing2x.png
vendor/assets/iD/iD/img/cursor-pointer.png [deleted file]
vendor/assets/iD/iD/img/cursor-pointer2x.png [deleted file]
vendor/assets/iD/iD/img/cursor-pointing.png
vendor/assets/iD/iD/img/cursor-pointing2x.png
vendor/assets/iD/iD/img/cursor-select-acting.png
vendor/assets/iD/iD/img/cursor-select-acting2x.png
vendor/assets/iD/iD/img/cursor-select-add.png
vendor/assets/iD/iD/img/cursor-select-area.png
vendor/assets/iD/iD/img/cursor-select-area2x.png
vendor/assets/iD/iD/img/cursor-select-line.png
vendor/assets/iD/iD/img/cursor-select-line2x.png
vendor/assets/iD/iD/img/cursor-select-mapillary.png
vendor/assets/iD/iD/img/cursor-select-mapillary2x.png
vendor/assets/iD/iD/img/cursor-select-point.png
vendor/assets/iD/iD/img/cursor-select-point2x.png
vendor/assets/iD/iD/img/cursor-select-remove.png
vendor/assets/iD/iD/img/cursor-select-split.png
vendor/assets/iD/iD/img/cursor-select-split2x.png
vendor/assets/iD/iD/img/cursor-select-vertex.png
vendor/assets/iD/iD/img/fa-sprite.svg [new file with mode: 0644]
vendor/assets/iD/iD/img/iD-sprite.svg
vendor/assets/iD/iD/img/logo.png
vendor/assets/iD/iD/img/maki-sprite.svg
vendor/assets/iD/iD/img/mapillary-sprite.svg [new file with mode: 0644]
vendor/assets/iD/iD/img/mini-loader.gif
vendor/assets/iD/iD/img/pattern/bushes.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/cemetery.png
vendor/assets/iD/iD/img/pattern/cemetery_buddhist.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/cemetery_christian.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/cemetery_jewish.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/cemetery_muslim.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/construction.png
vendor/assets/iD/iD/img/pattern/dots.png
vendor/assets/iD/iD/img/pattern/farmland.png
vendor/assets/iD/iD/img/pattern/farmyard.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/forest.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/forest_broadleaved.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/forest_leafless.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/forest_needleleaved.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/grass.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/landfill.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/orchard.png
vendor/assets/iD/iD/img/pattern/pond.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/quarry.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/vineyard.png
vendor/assets/iD/iD/img/pattern/waves.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/wetland.png
vendor/assets/iD/iD/img/pattern/wetland_bog.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/wetland_marsh.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/wetland_reedbed.png [new file with mode: 0644]
vendor/assets/iD/iD/img/pattern/wetland_swamp.png [new file with mode: 0644]
vendor/assets/iD/iD/img/temaki-sprite.svg [new file with mode: 0644]
vendor/assets/iD/iD/img/tr_inspect.gif [new file with mode: 0644]
vendor/assets/iD/iD/img/tr_modify.gif [new file with mode: 0644]
vendor/assets/iD/iD/locales/af.json
vendor/assets/iD/iD/locales/ar-AA.json
vendor/assets/iD/iD/locales/ar.json
vendor/assets/iD/iD/locales/ast.json
vendor/assets/iD/iD/locales/be.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/bg-BG.json [deleted file]
vendor/assets/iD/iD/locales/bg.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/bn.json
vendor/assets/iD/iD/locales/bs.json
vendor/assets/iD/iD/locales/ca.json
vendor/assets/iD/iD/locales/ckb.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/cs.json
vendor/assets/iD/iD/locales/cy.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/da.json
vendor/assets/iD/iD/locales/de.json
vendor/assets/iD/iD/locales/dv.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/el.json
vendor/assets/iD/iD/locales/en-AU.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/en-GB.json
vendor/assets/iD/iD/locales/en.json
vendor/assets/iD/iD/locales/eo.json
vendor/assets/iD/iD/locales/es.json
vendor/assets/iD/iD/locales/et.json
vendor/assets/iD/iD/locales/eu.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/fa.json
vendor/assets/iD/iD/locales/fi.json
vendor/assets/iD/iD/locales/fil.json [deleted file]
vendor/assets/iD/iD/locales/fr.json
vendor/assets/iD/iD/locales/gan.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/gl.json
vendor/assets/iD/iD/locales/gu.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/he.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/hi.json
vendor/assets/iD/iD/locales/hr.json
vendor/assets/iD/iD/locales/hu.json
vendor/assets/iD/iD/locales/hy.json
vendor/assets/iD/iD/locales/ia.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/id.json
vendor/assets/iD/iD/locales/is.json
vendor/assets/iD/iD/locales/it.json
vendor/assets/iD/iD/locales/ja.json
vendor/assets/iD/iD/locales/jv.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/km.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/kn.json
vendor/assets/iD/iD/locales/ko-KR.json [deleted file]
vendor/assets/iD/iD/locales/ko.json
vendor/assets/iD/iD/locales/ku.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/lij.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/lt.json
vendor/assets/iD/iD/locales/lv.json
vendor/assets/iD/iD/locales/mg.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/mk.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/ml.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/mn.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/ms.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/ne.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/nl.json
vendor/assets/iD/iD/locales/nn.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/no.json
vendor/assets/iD/iD/locales/nv.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/pl.json
vendor/assets/iD/iD/locales/pt-BR.json
vendor/assets/iD/iD/locales/pt.json
vendor/assets/iD/iD/locales/rm.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/ro.json
vendor/assets/iD/iD/locales/ru.json
vendor/assets/iD/iD/locales/sc.json
vendor/assets/iD/iD/locales/si.json
vendor/assets/iD/iD/locales/sk.json
vendor/assets/iD/iD/locales/sl.json
vendor/assets/iD/iD/locales/so.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/sq.json
vendor/assets/iD/iD/locales/sr.json
vendor/assets/iD/iD/locales/sv.json
vendor/assets/iD/iD/locales/ta.json
vendor/assets/iD/iD/locales/te.json
vendor/assets/iD/iD/locales/th.json
vendor/assets/iD/iD/locales/tl.json
vendor/assets/iD/iD/locales/tr.json
vendor/assets/iD/iD/locales/uk.json
vendor/assets/iD/iD/locales/ur.json [new file with mode: 0644]
vendor/assets/iD/iD/locales/vi.json
vendor/assets/iD/iD/locales/yue.json
vendor/assets/iD/iD/locales/zh-CN.json
vendor/assets/iD/iD/locales/zh-HK.json
vendor/assets/iD/iD/locales/zh-TW.json
vendor/assets/iD/iD/locales/zh.json
vendor/assets/iD/iD/mapillary-js/mapillary.js [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.js.map [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.min.css [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/mapillary.min.js [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/pointer-wheat.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/pointer-white.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/stepper-left.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-play.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-right.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/stepper-stop.svg [new file with mode: 0644]
vendor/assets/iD/iD/mapillary-js/turn-around.svg [new file with mode: 0755]
vendor/assets/iD/iD/mapillary-js/turn.svg [new file with mode: 0755]
vendor/assets/iD/iD/pannellum-streetside/pannellum.css [new file with mode: 0644]
vendor/assets/iD/iD/pannellum-streetside/pannellum.htm [new file with mode: 0644]
vendor/assets/iD/iD/pannellum-streetside/pannellum.js [new file with mode: 0644]
vendor/assets/iD/imagery.js [deleted file]
vendor/assets/iD/presets.js [deleted file]
vendor/assets/javascripts/bowser.js [new file with mode: 0644]
vendor/assets/leaflet/images/layers-2x.png
vendor/assets/leaflet/images/layers.png
vendor/assets/leaflet/images/marker-icon-2x.png
vendor/assets/leaflet/images/marker-icon.png
vendor/assets/leaflet/images/marker-shadow.png
vendor/assets/leaflet/leaflet.contextmenu.css [new file with mode: 0644]
vendor/assets/leaflet/leaflet.contextmenu.js [new file with mode: 0644]
vendor/assets/leaflet/leaflet.css
vendor/assets/leaflet/leaflet.js
vendor/assets/leaflet/leaflet.locate.js
vendor/assets/leaflet/leaflet.locationfilter.css
vendor/assets/leaflet/leaflet.locationfilter.js
vendor/assets/leaflet/leaflet.osm.js
vendor/assets/leaflet/leaflet.polyline.js
vendor/assets/openlayers/OpenStreetMap.js
vendor/assets/potlatch2/potlatch2.swf
vendor/assets/potlatch2/potlatch2/assets.zip
vendor/assets/potlatch2/potlatch2/locales/af.swf
vendor/assets/potlatch2/potlatch2/locales/ar.swf
vendor/assets/potlatch2/potlatch2/locales/arc.swf
vendor/assets/potlatch2/potlatch2/locales/ast.swf
vendor/assets/potlatch2/potlatch2/locales/az.swf
vendor/assets/potlatch2/potlatch2/locales/ba.swf
vendor/assets/potlatch2/potlatch2/locales/be-tarask.swf
vendor/assets/potlatch2/potlatch2/locales/be.swf
vendor/assets/potlatch2/potlatch2/locales/bg.swf
vendor/assets/potlatch2/potlatch2/locales/bn.swf
vendor/assets/potlatch2/potlatch2/locales/br.swf
vendor/assets/potlatch2/potlatch2/locales/bs.swf
vendor/assets/potlatch2/potlatch2/locales/ca.swf
vendor/assets/potlatch2/potlatch2/locales/ce.swf
vendor/assets/potlatch2/potlatch2/locales/cs_CZ.swf
vendor/assets/potlatch2/potlatch2/locales/cy.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/da.swf
vendor/assets/potlatch2/potlatch2/locales/de-formal.swf
vendor/assets/potlatch2/potlatch2/locales/de_DE.swf
vendor/assets/potlatch2/potlatch2/locales/diq.swf
vendor/assets/potlatch2/potlatch2/locales/dsb.swf
vendor/assets/potlatch2/potlatch2/locales/el.swf
vendor/assets/potlatch2/potlatch2/locales/en_GB.swf
vendor/assets/potlatch2/potlatch2/locales/en_US.swf
vendor/assets/potlatch2/potlatch2/locales/eo.swf
vendor/assets/potlatch2/potlatch2/locales/es_ES.swf
vendor/assets/potlatch2/potlatch2/locales/et.swf
vendor/assets/potlatch2/potlatch2/locales/eu.swf
vendor/assets/potlatch2/potlatch2/locales/fa.swf
vendor/assets/potlatch2/potlatch2/locales/fi.swf
vendor/assets/potlatch2/potlatch2/locales/fo.swf
vendor/assets/potlatch2/potlatch2/locales/fr_FR.swf
vendor/assets/potlatch2/potlatch2/locales/fur.swf
vendor/assets/potlatch2/potlatch2/locales/fy.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/ga.swf
vendor/assets/potlatch2/potlatch2/locales/gd.swf
vendor/assets/potlatch2/potlatch2/locales/gl.swf
vendor/assets/potlatch2/potlatch2/locales/grc.swf
vendor/assets/potlatch2/potlatch2/locales/he.swf
vendor/assets/potlatch2/potlatch2/locales/hr.swf
vendor/assets/potlatch2/potlatch2/locales/hsb.swf
vendor/assets/potlatch2/potlatch2/locales/hu.swf
vendor/assets/potlatch2/potlatch2/locales/ia.swf
vendor/assets/potlatch2/potlatch2/locales/id.swf
vendor/assets/potlatch2/potlatch2/locales/is.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/it_IT.swf
vendor/assets/potlatch2/potlatch2/locales/ja_JP.swf
vendor/assets/potlatch2/potlatch2/locales/ka.swf
vendor/assets/potlatch2/potlatch2/locales/kab.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/km.swf
vendor/assets/potlatch2/potlatch2/locales/kn.swf
vendor/assets/potlatch2/potlatch2/locales/ko.swf
vendor/assets/potlatch2/potlatch2/locales/krc.swf
vendor/assets/potlatch2/potlatch2/locales/ksh.swf
vendor/assets/potlatch2/potlatch2/locales/ku-latn.swf
vendor/assets/potlatch2/potlatch2/locales/ky.swf
vendor/assets/potlatch2/potlatch2/locales/lb.swf
vendor/assets/potlatch2/potlatch2/locales/lez.swf
vendor/assets/potlatch2/potlatch2/locales/lt.swf
vendor/assets/potlatch2/potlatch2/locales/lv.swf
vendor/assets/potlatch2/potlatch2/locales/lzz.swf
vendor/assets/potlatch2/potlatch2/locales/mg.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/mk.swf
vendor/assets/potlatch2/potlatch2/locales/mr.swf
vendor/assets/potlatch2/potlatch2/locales/ms.swf
vendor/assets/potlatch2/potlatch2/locales/my.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/nb_NO.swf
vendor/assets/potlatch2/potlatch2/locales/ne.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/nl_NL.swf
vendor/assets/potlatch2/potlatch2/locales/nn_NO.swf
vendor/assets/potlatch2/potlatch2/locales/oc.swf
vendor/assets/potlatch2/potlatch2/locales/pa.swf
vendor/assets/potlatch2/potlatch2/locales/pl_PL.swf
vendor/assets/potlatch2/potlatch2/locales/ps.swf
vendor/assets/potlatch2/potlatch2/locales/pt_BR.swf
vendor/assets/potlatch2/potlatch2/locales/pt_PT.swf
vendor/assets/potlatch2/potlatch2/locales/ro.swf
vendor/assets/potlatch2/potlatch2/locales/ru.swf
vendor/assets/potlatch2/potlatch2/locales/rue.swf
vendor/assets/potlatch2/potlatch2/locales/sah.swf
vendor/assets/potlatch2/potlatch2/locales/scn.swf
vendor/assets/potlatch2/potlatch2/locales/shn.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/sk.swf
vendor/assets/potlatch2/potlatch2/locales/skr-arab.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/sl.swf
vendor/assets/potlatch2/potlatch2/locales/sq.swf
vendor/assets/potlatch2/potlatch2/locales/sr-ec.swf
vendor/assets/potlatch2/potlatch2/locales/sr-el.swf
vendor/assets/potlatch2/potlatch2/locales/sty.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/sv_SE.swf
vendor/assets/potlatch2/potlatch2/locales/ta.swf
vendor/assets/potlatch2/potlatch2/locales/te.swf
vendor/assets/potlatch2/potlatch2/locales/th.swf [new file with mode: 0644]
vendor/assets/potlatch2/potlatch2/locales/tl.swf
vendor/assets/potlatch2/potlatch2/locales/tly.swf
vendor/assets/potlatch2/potlatch2/locales/tr.swf
vendor/assets/potlatch2/potlatch2/locales/tyv.swf
vendor/assets/potlatch2/potlatch2/locales/tzm.swf
vendor/assets/potlatch2/potlatch2/locales/uk.swf
vendor/assets/potlatch2/potlatch2/locales/vi_VN.swf
vendor/assets/potlatch2/potlatch2/locales/vo.swf
vendor/assets/potlatch2/potlatch2/locales/yi.swf
vendor/assets/potlatch2/potlatch2/locales/zh_CN.swf
vendor/assets/potlatch2/potlatch2/locales/zh_TW.swf
vendor/assets/swfobject/expressInstall.swf [changed mode: 0644->0755]
vendor/assets/swfobject/swfobject.js [changed mode: 0644->0755]

index 920ca1120ba51aa6171900e39560d36c48d1343f..1a2d35c6a28cc056de2646690384138a52a03caf 100644 (file)
@@ -1,5 +1,6 @@
 log
 config/piwik.yml
+app/assets/javascripts/i18n
 public/assets
 public/attachments
 public/export
index c576a560fbb160af75b4765a82cc7b427cc1a837..761478b563baaec90676ac4ae7a9d35edd41e271 100644 (file)
--- a/.mailmap
+++ b/.mailmap
@@ -5,4 +5,6 @@ Grant Slater <openstreetmap@firefishy.com> <github@firefishy.com>
 Harry Wood <git@harrywood.co.uk> <mail@harrywood.co.uk> <github@onlineanimals.co.uk>
 Kai Krueger <kakrueger@gmail.com> <kai@aiputerlx.(none)>
 Michael Glanznig <nebulon42@yandex.com>
+Petr Kadlec <mormegil@centrum.cz>
 Richard Fairhurst <richard@systemeD.net> <richard@systemed.net>
+Simon Poole <simon@poole.ch> <simon@rails-dev.poole.ch> <simonpoole@users.noreply.github.com>
index 62685c8ed9298696a03a7f920037b4b36ff6f02b..b33f9046cb87c117925cc8e290392f2021aae270 100644 (file)
@@ -1,26 +1,60 @@
 inherit_from: .rubocop_todo.yml
 
+AllCops:
+  TargetRubyVersion: 2.3
+
 Rails:
   Enabled: true
 
-Style/BracesAroundHashParameters:
-  EnforcedStyle: context_dependent
-
-Style/ExtraSpacing:
+Layout/ExtraSpacing:
   AllowForAlignment: true
 
-Style/FileName:
+Lint/PercentStringArray:
+  Exclude:
+    - 'config/initializers/secure_headers.rb'
+    - 'app/controllers/application_controller.rb'
+    - 'app/controllers/site_controller.rb'
+
+Naming/FileName:
   Exclude:
     - 'script/deliver-message'
     - 'script/locale/reload-languages'
     - 'script/update-spam-blocks'
 
-Style/IfInsideElse:
+Naming/UncommunicativeMethodParamName:
+  Enabled: false
+
+Rails/ApplicationRecord:
+  Enabled: false
+
+Rails/CreateTableWithTimestamps:
+  Enabled: false
+
+Rails/FindEach:
+  Enabled: false
+
+Rails/HasManyOrHasOneDependent:
   Enabled: false
 
-Style/GlobalVars:
+Rails/HttpPositionalArguments:
+  Enabled: false
+
+Rails/InverseOf:
+  Enabled: false
+
+Rails/SkipsModelValidations:
   Exclude:
-    - 'lib/quad_tile/extconf.rb'
+    - 'db/migrate/*.rb'
+    - 'app/controllers/users_controller.rb'
+
+Style/BracesAroundHashParameters:
+  EnforcedStyle: context_dependent
+
+Style/FormatStringToken:
+  EnforcedStyle: template
+
+Style/IfInsideElse:
+  Enabled: false
 
 Style/GuardClause:
   Enabled: false
@@ -31,9 +65,13 @@ Style/HashSyntax:
     - 'lib/tasks/testing.rake'
     - 'config/initializers/wrap_parameters.rb'
 
+Style/MixinUsage:
+  Exclude:
+    - 'bin/setup'
+    - 'bin/update'
+
 Style/StringLiterals:
   EnforcedStyle: double_quotes
 
-Style/WordArray:
-  Exclude:
-    - 'test/models/message_test.rb'
+Style/SymbolArray:
+  EnforcedStyle: brackets
index b317054b6f6bbd7b77c8105a18da46467c41dd08..35107e9b9b2ea961b3949d10ec50b4caef6ba16d 100644 (file)
 # This configuration was generated by
 # `rubocop --auto-gen-config`
-# on 2015-08-18 20:27:49 +0100 using RuboCop version 0.33.0.
+# on 2018-09-19 14:24:02 +0100 using RuboCop version 0.58.2.
 # The point is for the user to remove these configuration records
 # one by one as the offenses are removed from the code base.
 # Note that changes in the inspected code, or installation of new
 # versions of RuboCop, may require this file to be generated again.
 
-# Offense count: 34
-Lint/AmbiguousOperator:
-  Exclude:
-    - 'test/controllers/amf_controller_test.rb'
-    - 'test/controllers/changeset_controller_test.rb'
-    - 'test/lib/bounding_box_test.rb'
-    - 'test/lib/country_test.rb'
-
-# Offense count: 115
-Lint/AmbiguousRegexpLiteral:
-  Enabled: false
-
-# Offense count: 29
+# Offense count: 32
 # Configuration parameters: AllowSafeAssignment.
 Lint/AssignmentInCondition:
   Exclude:
     - 'app/controllers/application_controller.rb'
     - 'app/controllers/geocoder_controller.rb'
     - 'app/controllers/notes_controller.rb'
-    - 'app/controllers/trace_controller.rb'
-    - 'app/controllers/user_controller.rb'
-    - 'app/controllers/user_preference_controller.rb'
+    - 'app/controllers/traces_controller.rb'
+    - 'app/controllers/users_controller.rb'
+    - 'app/controllers/user_preferences_controller.rb'
     - 'app/helpers/application_helper.rb'
     - 'app/helpers/browse_helper.rb'
+    - 'app/helpers/browse_tags_helper.rb'
     - 'app/models/client_application.rb'
-    - 'app/models/notifier.rb'
+    - 'app/mailers/notifier.rb'
     - 'lib/nominatim.rb'
     - 'lib/osm.rb'
     - 'script/deliver-message'
 
-# Offense count: 3
-Lint/FormatParameterMismatch:
-  Exclude:
-    - 'app/controllers/swf_controller.rb'
-
-# Offense count: 5
+# Offense count: 4
 Lint/HandleExceptions:
   Exclude:
     - 'app/controllers/amf_controller.rb'
-    - 'app/controllers/user_controller.rb'
-    - 'config/initializers/session.rb'
-
-# Offense count: 8
-Lint/ParenthesesAsGroupedExpression:
-  Exclude:
-    - 'test/controllers/amf_controller_test.rb'
-    - 'test/lib/bounding_box_test.rb'
-    - 'test/models/user_preference_test.rb'
+    - 'app/controllers/users_controller.rb'
 
-# Offense count: 671
+# Offense count: 692
 Metrics/AbcSize:
-  Max: 277
+  Max: 283
+
+# Offense count: 40
+# Configuration parameters: CountComments, ExcludedMethods.
+# ExcludedMethods: refine
+Metrics/BlockLength:
+  Max: 262
 
-# Offense count: 12
+# Offense count: 11
+# Configuration parameters: CountBlocks.
 Metrics/BlockNesting:
   Max: 5
 
-# Offense count: 62
+# Offense count: 63
 # Configuration parameters: CountComments.
 Metrics/ClassLength:
-  Max: 1653
+  Max: 1627
 
-# Offense count: 67
+# Offense count: 72
 Metrics/CyclomaticComplexity:
-  Max: 20
-
-# Offense count: 2535
-# Configuration parameters: AllowURI, URISchemes.
-Metrics/LineLength:
-  Max: 962
+  Max: 23
 
-# Offense count: 628
+# Offense count: 691
 # Configuration parameters: CountComments.
 Metrics/MethodLength:
   Max: 179
 
-# Offense count: 1
+# Offense count: 2
 # Configuration parameters: CountComments.
 Metrics/ModuleLength:
-  Max: 129
+  Max: 135
 
 # Offense count: 4
 # Configuration parameters: CountKeywordArgs.
 Metrics/ParameterLists:
   Max: 9
 
-# Offense count: 69
+# Offense count: 72
 Metrics/PerceivedComplexity:
   Max: 23
 
-# Offense count: 2
-# Configuration parameters: Include.
-Rails/HasAndBelongsToMany:
-  Exclude:
-    - 'app/models/changeset.rb'
-    - 'app/models/user.rb'
-
-# Offense count: 66
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Rails/TimeZone:
-  Enabled: false
-
-# Offense count: 5
-Style/AccessorMethodName:
+# Offense count: 6
+Naming/AccessorMethodName:
   Exclude:
     - 'app/controllers/application_controller.rb'
     - 'app/helpers/title_helper.rb'
@@ -117,88 +83,111 @@ Style/AccessorMethodName:
     - 'lib/osm.rb'
     - 'lib/potlatch.rb'
 
-# Offense count: 1
-Style/AsciiComments:
+# Offense count: 8
+# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist, MethodDefinitionMacros.
+# NamePrefix: is_, has_, have_
+# NamePrefixBlacklist: is_, has_, have_
+# NameWhitelist: is_a?
+# MethodDefinitionMacros: define_method, define_singleton_method
+Naming/PredicateName:
   Exclude:
-    - 'test/models/message_test.rb'
+    - 'spec/**/*'
+    - 'app/models/changeset.rb'
+    - 'app/models/old_node.rb'
+    - 'app/models/old_relation.rb'
+    - 'app/models/old_way.rb'
+    - 'app/models/user.rb'
+    - 'lib/classic_pagination/pagination.rb'
 
-# Offense count: 310
-Style/Documentation:
-  Enabled: false
+# Offense count: 6
+# Configuration parameters: Database, Include.
+# SupportedDatabases: mysql, postgresql
+# Include: db/migrate/*.rb
+Rails/BulkChangeTable:
+  Exclude:
+    - 'db/migrate/20111116184519_update_oauth.rb'
+    - 'db/migrate/20120208122334_merge_acl_address_and_mask.rb'
+    - 'db/migrate/20120208194454_add_domain_to_acl.rb'
+    - 'db/migrate/20120404205604_add_user_and_description_to_redaction.rb'
 
-# Offense count: 38
-# Configuration parameters: MinBodyLength.
-Style/GuardClause:
+# Offense count: 2
+# Configuration parameters: Include.
+# Include: app/**/*.rb, config/**/*.rb, lib/**/*.rb
+Rails/Exit:
+  Exclude:
+    - 'lib/**/*.rake'
+    - 'lib/daemons/gpx_import.rb'
+
+# Offense count: 2
+# Configuration parameters: Include.
+# Include: app/models/**/*.rb
+Rails/HasAndBelongsToMany:
   Exclude:
-    - 'app/controllers/application_controller.rb'
-    - 'app/controllers/diary_entry_controller.rb'
-    - 'app/controllers/message_controller.rb'
-    - 'app/controllers/notes_controller.rb'
-    - 'app/controllers/site_controller.rb'
-    - 'app/controllers/user_blocks_controller.rb'
-    - 'app/controllers/user_controller.rb'
-    - 'app/controllers/user_roles_controller.rb'
-    - 'app/helpers/application_helper.rb'
     - 'app/models/changeset.rb'
     - 'app/models/user.rb'
-    - 'lib/diff_reader.rb'
-    - 'lib/object_metadata.rb'
 
-# Offense count: 60
-# Cop supports --auto-correct.
-Style/LineEndConcatenation:
+# Offense count: 5
+# Configuration parameters: Include.
+# Include: db/migrate/*.rb
+Rails/NotNullColumn:
   Exclude:
-    - 'db/migrate/008_remove_segments.rb'
+    - 'db/migrate/002_cleanup_osm_db.rb'
     - 'db/migrate/020_populate_node_tags_and_remove.rb'
-    - 'db/migrate/023_add_changesets.rb'
-    - 'lib/bounding_box.rb'
-    - 'lib/diff_reader.rb'
-    - 'lib/osm.rb'
-    - 'test/controllers/changeset_controller_test.rb'
-    - 'test/controllers/node_controller_test.rb'
-    - 'test/controllers/relation_controller_test.rb'
-    - 'test/controllers/way_controller_test.rb'
-
-# Offense count: 69
-# Cop supports --auto-correct.
-Style/NumericLiterals:
-  MinDigits: 11
+    - 'db/migrate/021_move_to_innodb.rb'
+    - 'db/migrate/025_add_end_time_to_changesets.rb'
+    - 'db/migrate/20120404205604_add_user_and_description_to_redaction.rb'
 
-# Offense count: 42
-# Cop supports --auto-correct.
-Style/PerlBackrefs:
+# Offense count: 20
+Rails/OutputSafety:
   Exclude:
-    - 'app/controllers/amf_controller.rb'
-    - 'app/controllers/application_controller.rb'
-    - 'app/helpers/browse_helper.rb'
-    - 'config/initializers/paperclip.rb'
-    - 'lib/id.rb'
-    - 'lib/potlatch.rb'
-    - 'test/lib/i18n_test.rb'
+    - 'app/controllers/users_controller.rb'
+    - 'app/helpers/application_helper.rb'
+    - 'app/helpers/changesets_helper.rb'
+    - 'app/helpers/geocoder_helper.rb'
+    - 'app/helpers/note_helper.rb'
+    - 'app/helpers/open_graph_helper.rb'
+    - 'app/helpers/user_blocks_helper.rb'
+    - 'app/helpers/user_roles_helper.rb'
+    - 'lib/rich_text.rb'
+    - 'test/helpers/application_helper_test.rb'
+
+# Offense count: 86
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: strict, flexible
+Rails/TimeZone:
+  Enabled: false
 
-# Offense count: 8
-# Configuration parameters: NamePrefix, NamePrefixBlacklist.
-Style/PredicateName:
+# Offense count: 1
+# Configuration parameters: AllowedChars.
+Style/AsciiComments:
   Exclude:
-    - 'app/models/changeset.rb'
-    - 'app/models/old_node.rb'
-    - 'app/models/old_relation.rb'
-    - 'app/models/old_way.rb'
-    - 'app/models/user.rb'
-    - 'lib/classic_pagination/pagination.rb'
+    - 'test/models/message_test.rb'
+
+# Offense count: 230
+Style/Documentation:
+  Enabled: false
 
-# Offense count: 97
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/RaiseArgs:
+# Offense count: 462
+# Cop supports --auto-correct.
+# Configuration parameters: EnforcedStyle.
+# SupportedStyles: when_needed, always, never
+Style/FrozenStringLiteralComment:
   Enabled: false
 
 # Offense count: 2
-Style/RescueModifier:
+# Cop supports --auto-correct.
+Style/IfUnlessModifier:
   Exclude:
-    - 'app/helpers/browse_helper.rb'
+    - 'app/controllers/ways_controller.rb'
 
-# Offense count: 8
+# Offense count: 70
 # Cop supports --auto-correct.
-# Configuration parameters: EnforcedStyle, SupportedStyles.
-Style/StringLiteralsInInterpolation:
-  Enabled: false
+# Configuration parameters: Strict.
+Style/NumericLiterals:
+  MinDigits: 11
+
+# Offense count: 3080
+# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, IgnoredPatterns.
+# URISchemes: http, https
+Metrics/LineLength:
+  Max: 1073
index 6c41bc8b82521802dc6ec577ea93e38b2ceff9f0..3b56d2b4b666af3b77fb9df25838a6259b0def03 100644 (file)
@@ -1,13 +1,13 @@
 sudo: false
 language: ruby
 rvm:
-  - 2.1.8
+  - 2.3.3
 cache: bundler
 addons:
-  postgresql: 9.1
+  postgresql: 9.5
   apt:
     packages:
-      - postgresql-server-dev-9.1
+      - postgresql-server-dev-9.5
 services:
   - memcached
 env:
@@ -18,12 +18,14 @@ before_script:
   - psql -U postgres -c "CREATE DATABASE openstreetmap"
   - psql -U postgres -c "CREATE EXTENSION btree_gist" openstreetmap
   - make -C db/functions libpgosm.so
-  - psql -U postgres -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '${PWD}/db/functions/libpgosm', 'maptile_for_point' LANGUAGE C STRICT" openstreetmap
-  - psql -U postgres -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '${PWD}/db/functions/libpgosm', 'tile_for_point' LANGUAGE C STRICT" openstreetmap
-  - psql -U postgres -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '${PWD}/db/functions/libpgosm', 'xid_to_int4' LANGUAGE C STRICT" openstreetmap
+  - ln db/functions/libpgosm.so /tmp
+  - psql -U postgres -c "CREATE FUNCTION maptile_for_point(int8, int8, int4) RETURNS int4 AS '/tmp/libpgosm', 'maptile_for_point' LANGUAGE C STRICT" openstreetmap
+  - psql -U postgres -c "CREATE FUNCTION tile_for_point(int4, int4) RETURNS int8 AS '/tmp/libpgosm', 'tile_for_point' LANGUAGE C STRICT" openstreetmap
+  - psql -U postgres -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '/tmp/libpgosm', 'xid_to_int4' LANGUAGE C STRICT" openstreetmap
   - cp config/travis.database.yml config/database.yml
   - bundle exec rake db:migrate
+  - bundle exec rake i18n:js:export
 script:
   - bundle exec rubocop -f fuubar
   - bundle exec rake jshint
-  - bundle exec rake test
+  - bundle exec rake test:db
index 9b7bb90e89e9cfef6af644966d447ed0f49e9c2b..0b8af0483fbe7a7d5cecbb669142cdd1981ecbf7 100644 (file)
@@ -6,7 +6,7 @@ After [installing](INSTALL.md) this software, you may need to carry out some of
 
 Your installation comes with no geographic data loaded. You can either create new data using one of the editors (Potlatch 2, iD, JOSM etc) or by loading an OSM extract.
 
-After installing but before creating any users or data, import an extract with [Osmosis](http://wiki.openstreetmap.org/wiki/Osmosis) and the [``--write-apidb``](http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#--write-apidb_.28--wd.29) task.
+After installing but before creating any users or data, import an extract with [Osmosis](https://wiki.openstreetmap.org/wiki/Osmosis) and the [``--write-apidb``](https://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#--write-apidb_.28--wd.29) task.
 
 ```
 osmosis --read-pbf greater-london-latest.osm.pbf \
@@ -14,7 +14,7 @@ osmosis --read-pbf greater-london-latest.osm.pbf \
   user="openstreetmap" password="" validateSchemaVersion="no"
 ```
 
-Loading an apidb database with Osmosis is about **twenty** times slower than loading the equivalent data with osm2pgsql into a rendering database. [``--log-progress``](http://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#--log-progress_.28--lp.29) may be desirable for status updates.
+Loading an apidb database with Osmosis is about **twenty** times slower than loading the equivalent data with osm2pgsql into a rendering database. [``--log-progress``](https://wiki.openstreetmap.org/wiki/Osmosis/Detailed_Usage#--log-progress_.28--lp.29) may be desirable for status updates.
 
 To be able to edit the data you have loaded, you will need to use this [yet-to-be-written script](https://github.com/openstreetmap/openstreetmap-website/issues/282).
 
@@ -86,6 +86,8 @@ potlatch2_key: "8lFmZPsagHV4l3rkAHq0hWY5vV3Ctl3oEFY1aXth"
 
 Follow the same process for registering and configuring iD (`id_key`) and the website/Notes (`oauth_key`), or to save time, simply reuse the same consumer key for each.
 
+**NOTE:** If you forget to set up OAuth, then you will get an error message similar to `uninitialized constant ActionView::CompiledTemplates::ID_KEY`.
+
 ## Troubleshooting
 
 Rails has its own log.  To inspect the log, do this:
@@ -94,7 +96,7 @@ Rails has its own log.  To inspect the log, do this:
 tail -f log/development.log
 ```
 
-If you have more problems, please ask on the [rails-dev@openstreetmap.org mailing list](http://lists.openstreetmap.org/listinfo/rails-dev) or on the [#osm-dev IRC Channel](http://wiki.openstreetmap.org/wiki/IRC)
+If you have more problems, please ask on the [rails-dev@openstreetmap.org mailing list](https://lists.openstreetmap.org/listinfo/rails-dev) or on the [#osm-dev IRC Channel](https://wiki.openstreetmap.org/wiki/IRC)
 
 ## Maintaining your installation
 
@@ -110,7 +112,7 @@ bundle exec rake db:migrate
 
 ## Testing on the osm dev server
 
-For example, after developing a patch for the rails_port, you might want to demonstrate it to others or ask for comments and testing. To do this one can [set up an instance of the rails_port on the dev server in ones user directory](http://wiki.openstreetmap.org/wiki/Using_the_dev_server#Rails_Applications).
+For example, after developing a patch for the rails_port, you might want to demonstrate it to others or ask for comments and testing. To do this one can [set up an instance of the rails_port on the dev server in ones user directory](https://wiki.openstreetmap.org/wiki/Using_the_dev_server#Rails_Applications).
 
 # Contributing
 
@@ -124,6 +126,6 @@ If you want to deploy The Rails Port for production use, you'll need to make a f
 * Passenger will, by design, use the Production environment and therefore the production database - make sure it contains the appropriate data and user accounts.
 * Your production database will also need the extensions and functions installed - see [INSTALL.md](INSTALL.md)
 * The included version of the map call is quite slow and eats a lot of memory. You should consider using [CGIMap](https://github.com/zerebubuth/openstreetmap-cgimap) instead.
-* The included version of the GPX importer is slow and/or completely inoperable. You should consider using [the high-speed GPX importer](http://git.openstreetmap.org/gpx-import.git/).
+* The included version of the GPX importer is slow and/or completely inoperable. You should consider using [the high-speed GPX importer](https://git.openstreetmap.org/gpx-import.git/).
 * Make sure you precompile the production assets: `RAILS_ENV=production rake assets:precompile`
 * Make sure the web server user as well as the rails user can read, write and create directories in `tmp/`.
index 9da33fe8c21cfa3d78cfadbd2486962a4c7e964b..acb7807461ea56621f0bf950e324ac110965e5d3 100644 (file)
@@ -1,4 +1,4 @@
-* http://www.ruby-lang.org/ - The homepage of Ruby which has more links and some great tutorials.
+* https://www.ruby-lang.org/ - The homepage of Ruby which has more links and some great tutorials.
 * http://rubyonrails.org/ - The homepage of Rails, also has links and tutorials
 
 ## Coding style
@@ -6,7 +6,7 @@
 When writing code it is generally a good idea to try and match your
 formatting to that of any existing code in the same file, or to other
 similar files if you are writing new code. Consistency of layout is
-far more important that the layout itself as it makes reading code
+far more important than the layout itself as it makes reading code
 much easier.
 
 One golden rule of formatting -- please don't use tabs in your code
@@ -42,7 +42,8 @@ sudo gem install rcov
 rcov -x gems test/*/*.rb
 ```
 
-The tests are automatically run on commit with the results shown at [http://cruise.openstreetmap.org/](http://cruise.openstreetmap.org/)
+The tests are automatically run on Pull Requests and other commits with the
+results shown on [Travis CI](https://travis-ci.org/openstreetmap/openstreetmap-website).
 
 ## Comments
 
@@ -93,7 +94,6 @@ If you have forked on GitHub then the best way to submit your patches is to
 push your changes back to GitHub and then send a "pull request" on GitHub.
 
 Otherwise you should either push your changes to a publicly visible git repository
-and send the details to the [rails-dev](http://lists.openstreetmap.org/listinfo/rails-dev)
+and send the details to the [rails-dev](https://lists.openstreetmap.org/listinfo/rails-dev)
 list or generate patches with `git format-patch` and send them to the
-[rails-dev](http://lists.openstreetmap.org/listinfo/rails-dev) list.
-
+[rails-dev](https://lists.openstreetmap.org/listinfo/rails-dev) list.
diff --git a/FAQ.md b/FAQ.md
new file mode 100644 (file)
index 0000000..423ef70
--- /dev/null
+++ b/FAQ.md
@@ -0,0 +1,30 @@
+## How do I create a banner to promote my OpenStreetMap event?
+
+We occasionally display banner images on the main page of [openstreetmap.org](https://www.openstreetmap.org/) to
+promote a large OpenStreetMap focused conference or host a worldwide donation
+drive.  This is a great way to reach a lot of people!
+
+1. Please review [openstreetmap/operations#150](https://github.com/openstreetmap/operations/issues/150) to
+know whether your event qualifies for a front-page banner.
+
+2. Create the banner image.  Some guidelines:
+  * Image should be 350px wide (exactly) x 350px tall (or shorter).
+  * Use a standard web image format (.gif, .jpg, .png)
+  * Note that a close 'X' button will be drawn over the top right 60x60px
+  corner of the banner, so please do not put anything important in that space.
+
+3. Prepare a pull request which includes the following:
+  * The banner should be saved under the
+  [`app/assets/images/banners/`](https://github.com/openstreetmap/openstreetmap-website/tree/master/app/assets/images/banners) folder, and should have a name that makes it clear what it is for (e.g. `donate-2017.jpg`)
+  * Edit [`config/banners.yml`](https://github.com/openstreetmap/openstreetmap-website/blob/master/config/banners.yml)
+  to contain an entry for the event banner.  It should contain the following:
+    * `id` - a unique identifier (e.g. `donate2017`)
+    * `alt` - alt name for the image (e.g. `OpenStreetMap Funding Drive 2017`)
+    * `link` - URL for your event page (e.g. `https://donate.openstreetmap.org/`)
+    * `img` - the filename for the banner image (e.g. `banners/donate-2017.jpg`)
+    * `enddate` - the final date that the banner will be shown (e.g. `2017-oct-31`)
+  * (optional) Feel free to cleanup the old images from the `app/assets/images/banners/`
+  folder and old entries in the `config/banners.yml` file.
+
+See [PR #1296](https://github.com/openstreetmap/openstreetmap-website/pull/1296)
+as an example.
diff --git a/Gemfile b/Gemfile
index 1653c98469030d4969a7f7c5aed3df650b2f0925..3cf07504549ec3038bb67402b51de2db2904a387 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -1,7 +1,7 @@
 source "https://rubygems.org"
 
 # Require rails
-gem "rails", "4.2.5.1"
+gem "rails", "5.2.2"
 
 # Require things which have moved to gems in ruby 1.9
 gem "bigdecimal", "~> 1.1.0", :platforms => :ruby_19
@@ -13,16 +13,16 @@ gem "psych", :platforms => :ruby_20
 gem "json"
 
 # Use postgres as the database
-gem "pg"
+gem "pg", "~> 0.18"
 
 # Use SCSS for stylesheets
-gem "sass-rails", "~> 5.0"
+gem "sassc-rails"
 
 # Use Uglifier as compressor for JavaScript assets
 gem "uglifier", ">= 1.3.0"
 
 # Use CoffeeScript for .js.coffee assets and views
-gem "coffee-rails", "~> 4.1.0"
+gem "coffee-rails", "~> 4.2"
 
 # Use jquery as the JavaScript library
 gem "jquery-rails"
@@ -31,48 +31,63 @@ gem "jquery-rails"
 # gem 'jbuilder', '~> 2.0'
 gem "jsonify-rails"
 
+# Reduces boot times through caching; required in config/boot.rb
+gem "bootsnap", ">= 1.1.0", :require => false
+
 # Use R2 for RTL conversion
-gem "r2"
+gem "r2", "~> 0.2.7"
 
 # Use autoprefixer to generate CSS prefixes
-gem "autoprefixer-rails"
+gem "autoprefixer-rails", "~> 8.6.3"
 
 # Use image_optim to optimise images
-gem "image_optim", ">= 0.22.0"
+gem "image_optim_rails"
 
 # Load rails plugins
-gem "rails-i18n", "~> 4.0.0"
+gem "actionpack-page_caching"
+gem "active_record_union"
+gem "cancancan"
+gem "composite_primary_keys", "~> 11.1.0"
+gem "delayed_job_active_record"
 gem "dynamic_form"
-gem "rinku", ">= 1.2.2", :require => "rails_rinku"
-gem "oauth-plugin", ">= 0.5.1"
-gem "validates_email_format_of", ">= 1.5.1"
-gem "composite_primary_keys", "~> 8.1.0"
 gem "http_accept_language", "~> 2.0.0"
-gem "paperclip", "~> 4.0"
-gem "deadlock_retry", ">= 1.2.0"
-gem "i18n-js", ">= 3.0.0.rc10"
+gem "i18n-js", ">= 3.0.0"
+gem "oauth-plugin", ">= 0.5.1"
+gem "openstreetmap-deadlock_retry", ">= 1.3.0", :require => "deadlock_retry"
+gem "paperclip", "~> 5.2"
 gem "rack-cors"
-gem "actionpack-page_caching"
+gem "rails-i18n", "~> 4.0.0"
+gem "record_tag_helper"
+gem "rinku", ">= 1.2.2", :require => "rails_rinku"
+gem "validates_email_format_of", ">= 1.5.1"
+
+# Native OSM extensions
+gem "quad_tile", "~> 1.0.1"
 
 # Sanitise URIs
 gem "rack-uri_sanitizer"
 
 # Omniauth for authentication
 gem "omniauth"
-gem "omniauth-openid"
-gem "omniauth-google-oauth2", ">= 0.2.7"
 gem "omniauth-facebook"
+gem "omniauth-github"
+gem "omniauth-google-oauth2", ">= 0.6.0"
+gem "omniauth-mediawiki", ">= 0.0.4"
+gem "omniauth-openid"
 gem "omniauth-windowslive"
 
 # Markdown formatting support
-gem "redcarpet"
+gem "kramdown"
+
+# For status transitions of Issues
+gem "aasm"
 
 # Load libxml support for XML parsing and generation
 gem "libxml-ruby", ">= 2.0.5", :require => "libxml"
 
 # Use for HTML sanitisation
-gem "sanitize"
 gem "htmlentities"
+gem "sanitize"
 
 # Load SystemTimer for implementing request timeouts
 gem "SystemTimer", ">= 1.1.3", :require => "system_timer", :platforms => :ruby_18
@@ -80,36 +95,48 @@ gem "SystemTimer", ">= 1.1.3", :require => "system_timer", :platforms => :ruby_1
 # Load faraday for mockable HTTP client
 gem "faraday"
 
-# Load httpclient and soap4r for SOAP support for Quova GeoIP queries
-gem "httpclient"
-gem "soap4r-ruby1.9"
+# Load geoip for querying Maxmind GeoIP database
+gem "geoip"
+
+# Load rotp to generate TOTP tokens
+gem "rotp"
 
 # Load memcache client in case we are using it
 gem "dalli"
 gem "kgio"
 
+# Load secure_headers for Content-Security-Policy support
+gem "secure_headers"
+
+# Load canonical-rails to generate canonical URLs
+gem "canonical-rails"
+
 # Used to generate logstash friendly log files
 gem "logstasher"
 
-# Stay with sprockets-rails 2.x pending fix for konacha
-gem "sprockets-rails", "< 3"
-
 # Gems useful for development
 group :development do
+  gem "annotate"
+  gem "better_errors"
+  gem "binding_of_caller"
+  gem "listen"
   gem "vendorer"
 end
 
 # Gems needed for running tests
 group :test do
-  gem "rubocop"
-  gem "timecop"
   gem "minitest", "~> 5.1", :platforms => [:ruby_19, :ruby_20]
+  gem "rails-controller-testing"
+  gem "rubocop"
+  gem "webmock"
 end
 
 # Needed in development as well so rake can see konacha tasks
 group :development, :test do
+  gem "capybara", "~> 2.13"
+  gem "coveralls", :require => false
+  gem "factory_bot_rails"
   gem "jshint"
-  gem "konacha"
   gem "poltergeist"
-  gem "coveralls", :require => false
+  gem "puma", "~> 3.7"
 end
index 53b7f69b16df796650d40ffe64ab4af9165b2acc..3b70d157a1218d4bbfa28706ed4bb398b37b13e2 100644 (file)
@@ -2,365 +2,453 @@ GEM
   remote: https://rubygems.org/
   specs:
     SystemTimer (1.2.3)
-    actionmailer (4.2.5.1)
-      actionpack (= 4.2.5.1)
-      actionview (= 4.2.5.1)
-      activejob (= 4.2.5.1)
+    aasm (5.0.1)
+      concurrent-ruby (~> 1.0)
+    actioncable (5.2.2)
+      actionpack (= 5.2.2)
+      nio4r (~> 2.0)
+      websocket-driver (>= 0.6.1)
+    actionmailer (5.2.2)
+      actionpack (= 5.2.2)
+      actionview (= 5.2.2)
+      activejob (= 5.2.2)
       mail (~> 2.5, >= 2.5.4)
-      rails-dom-testing (~> 1.0, >= 1.0.5)
-    actionpack (4.2.5.1)
-      actionview (= 4.2.5.1)
-      activesupport (= 4.2.5.1)
-      rack (~> 1.6)
-      rack-test (~> 0.6.2)
-      rails-dom-testing (~> 1.0, >= 1.0.5)
-      rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    actionpack-page_caching (1.0.2)
-      actionpack (>= 4.0.0, < 5)
-    actionview (4.2.5.1)
-      activesupport (= 4.2.5.1)
-      builder (~> 3.1)
-      erubis (~> 2.7.0)
-      rails-dom-testing (~> 1.0, >= 1.0.5)
+      rails-dom-testing (~> 2.0)
+    actionpack (5.2.2)
+      actionview (= 5.2.2)
+      activesupport (= 5.2.2)
+      rack (~> 2.0)
+      rack-test (>= 0.6.3)
+      rails-dom-testing (~> 2.0)
       rails-html-sanitizer (~> 1.0, >= 1.0.2)
-    activejob (4.2.5.1)
-      activesupport (= 4.2.5.1)
-      globalid (>= 0.3.0)
-    activemodel (4.2.5.1)
-      activesupport (= 4.2.5.1)
+    actionpack-page_caching (1.1.1)
+      actionpack (>= 4.0.0, < 6)
+    actionview (5.2.2)
+      activesupport (= 5.2.2)
       builder (~> 3.1)
-    activerecord (4.2.5.1)
-      activemodel (= 4.2.5.1)
-      activesupport (= 4.2.5.1)
-      arel (~> 6.0)
-    activesupport (4.2.5.1)
-      i18n (~> 0.7)
-      json (~> 1.7, >= 1.7.7)
+      erubi (~> 1.4)
+      rails-dom-testing (~> 2.0)
+      rails-html-sanitizer (~> 1.0, >= 1.0.3)
+    active_record_union (1.3.0)
+      activerecord (>= 4.0)
+    activejob (5.2.2)
+      activesupport (= 5.2.2)
+      globalid (>= 0.3.6)
+    activemodel (5.2.2)
+      activesupport (= 5.2.2)
+    activerecord (5.2.2)
+      activemodel (= 5.2.2)
+      activesupport (= 5.2.2)
+      arel (>= 9.0)
+    activestorage (5.2.2)
+      actionpack (= 5.2.2)
+      activerecord (= 5.2.2)
+      marcel (~> 0.3.1)
+    activesupport (5.2.2)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
       minitest (~> 5.1)
-      thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    addressable (2.4.0)
-    arel (6.0.3)
-    ast (2.2.0)
-    autoprefixer-rails (6.3.1)
+    addressable (2.5.2)
+      public_suffix (>= 2.0.2, < 4.0)
+    annotate (2.7.4)
+      activerecord (>= 3.2, < 6.0)
+      rake (>= 10.4, < 13.0)
+    arel (9.0.0)
+    ast (2.4.0)
+    autoprefixer-rails (8.6.5)
       execjs
-      json
+    better_errors (2.5.0)
+      coderay (>= 1.0.0)
+      erubi (>= 1.0.0)
+      rack (>= 0.9.0)
     bigdecimal (1.1.0)
-    builder (3.2.2)
-    capybara (2.6.0)
+    binding_of_caller (0.8.0)
+      debug_inspector (>= 0.0.1)
+    bootsnap (1.3.2)
+      msgpack (~> 1.0)
+    builder (3.2.3)
+    cancancan (2.3.0)
+    canonical-rails (0.2.4)
+      rails (>= 4.1, < 5.3)
+    capybara (2.18.0)
       addressable
-      mime-types (>= 1.16)
+      mini_mime (>= 0.1.3)
       nokogiri (>= 1.3.3)
       rack (>= 1.0.0)
       rack-test (>= 0.5.4)
-      xpath (~> 2.0)
-    climate_control (0.0.3)
-      activesupport (>= 3.0)
+      xpath (>= 2.0, < 4.0)
+    climate_control (0.2.0)
     cliver (0.3.2)
-    cocaine (0.5.8)
-      climate_control (>= 0.0.3, < 1.0)
-    coffee-rails (4.1.1)
+    coderay (1.1.2)
+    coffee-rails (4.2.2)
       coffee-script (>= 2.2.0)
-      railties (>= 4.0.0, < 5.1.x)
+      railties (>= 4.0.0)
     coffee-script (2.4.1)
       coffee-script-source
       execjs
-    coffee-script-source (1.10.0)
-    colorize (0.7.7)
-    composite_primary_keys (8.1.2)
-      activerecord (~> 4.2.0)
-    concurrent-ruby (1.0.0)
-    coveralls (0.8.10)
-      json (~> 1.8)
-      rest-client (>= 1.6.8, < 2)
-      simplecov (~> 0.11.0)
+    coffee-script-source (1.12.2)
+    composite_primary_keys (11.1.0)
+      activerecord (~> 5.2.1)
+    concurrent-ruby (1.1.4)
+    coveralls (0.8.22)
+      json (>= 1.8, < 3)
+      simplecov (~> 0.16.1)
       term-ansicolor (~> 1.3)
-      thor (~> 0.19.1)
-      tins (~> 1.6.0)
-    crass (1.0.2)
-    dalli (2.7.5)
-    deadlock_retry (1.2.0)
-    docile (1.1.5)
-    domain_name (0.5.25)
-      unf (>= 0.0.5, < 1.0.0)
+      thor (~> 0.19.4)
+      tins (~> 1.6)
+    crack (0.4.3)
+      safe_yaml (~> 1.0.0)
+    crass (1.0.4)
+    dalli (2.7.9)
+    debug_inspector (0.0.3)
+    delayed_job (4.1.5)
+      activesupport (>= 3.0, < 5.3)
+    delayed_job_active_record (4.1.3)
+      activerecord (>= 3.0, < 5.3)
+      delayed_job (>= 3.0, < 5)
+    docile (1.3.1)
     dynamic_form (1.1.4)
-    erubis (2.7.0)
-    execjs (2.6.0)
-    exifr (1.2.4)
-    faraday (0.9.2)
+    erubi (1.8.0)
+    execjs (2.7.0)
+    exifr (1.3.5)
+    factory_bot (4.11.1)
+      activesupport (>= 3.0.0)
+    factory_bot_rails (4.11.1)
+      factory_bot (~> 4.11.1)
+      railties (>= 3.0.0)
+    faraday (0.15.4)
       multipart-post (>= 1.2, < 3)
-    fspath (2.1.1)
-    globalid (0.3.6)
-      activesupport (>= 4.1.0)
-    hashie (3.4.3)
+    ffi (1.9.25)
+    fspath (3.1.0)
+    geoip (1.6.4)
+    globalid (0.4.1)
+      activesupport (>= 4.2.0)
+    hashdiff (0.3.8)
+    hashie (3.6.0)
     htmlentities (4.3.4)
-    http-cookie (1.0.2)
-      domain_name (~> 0.5)
     http_accept_language (2.0.5)
-    httpclient (2.7.1)
-    i18n (0.7.0)
-    i18n-js (3.0.0.rc12)
-      i18n (~> 0.6, >= 0.6.6)
-    image_optim (0.22.0)
+    i18n (0.9.5)
+      concurrent-ruby (~> 1.0)
+    i18n-js (3.2.0)
+      i18n (>= 0.8.0, < 2)
+    image_optim (0.26.3)
       exifr (~> 1.2, >= 1.2.2)
-      fspath (~> 2.1)
-      image_size (~> 1.3)
+      fspath (~> 3.0)
+      image_size (>= 1.5, < 3)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_size (1.4.1)
-    in_threads (1.3.1)
-    jquery-rails (4.1.0)
-      rails-dom-testing (~> 1.0)
+    image_optim_rails (0.4.1)
+      image_optim (~> 0.24)
+      rails
+      sprockets
+    image_size (2.0.0)
+    in_threads (1.5.1)
+    jaro_winkler (1.5.2)
+    jquery-rails (4.3.3)
+      rails-dom-testing (>= 1, < 3)
       railties (>= 4.2.0)
       thor (>= 0.14, < 2.0)
-    jshint (1.4.0)
+    jshint (1.5.0)
       execjs (>= 1.4.0)
       multi_json (~> 1.0)
       therubyracer (~> 0.12.1)
-    json (1.8.3)
+    json (2.1.0)
     jsonify (0.3.1)
       multi_json (~> 1.0)
     jsonify-rails (0.3.2)
       actionpack
       jsonify (< 0.4.0)
-    jwt (1.5.2)
-    kgio (2.10.0)
-    konacha (3.7.0)
-      actionpack (>= 3.1, < 5)
-      capybara
-      colorize
-      railties (>= 3.1, < 5)
-      sprockets (>= 2, < 4)
-      tilt
-    libv8 (3.16.14.13)
-    libxml-ruby (2.8.0)
+    jwt (2.1.0)
+    kgio (2.11.2)
+    kramdown (1.17.0)
+    libv8 (3.16.14.19)
+    libxml-ruby (3.1.0)
+    listen (3.1.5)
+      rb-fsevent (~> 0.9, >= 0.9.4)
+      rb-inotify (~> 0.9, >= 0.9.7)
+      ruby_dep (~> 1.2)
     logstash-event (1.2.02)
-    logstasher (0.8.6)
-      activerecord (>= 3.0)
-      activesupport (>= 3.0)
+    logstasher (1.3.0)
+      activesupport (>= 4.0)
       logstash-event (~> 1.2.0)
       request_store
-    loofah (2.0.3)
+    loofah (2.2.3)
+      crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
-    mail (2.6.3)
-      mime-types (>= 1.16, < 3)
-    mime-types (2.99)
-    mimemagic (0.3.0)
-    mini_portile2 (2.0.0)
-    minitest (5.8.4)
-    multi_json (1.11.2)
-    multi_xml (0.5.5)
+    mail (2.7.1)
+      mini_mime (>= 0.1.1)
+    marcel (0.3.3)
+      mimemagic (~> 0.3.2)
+    method_source (0.9.2)
+    mime-types (3.2.2)
+      mime-types-data (~> 3.2015)
+    mime-types-data (3.2018.0812)
+    mimemagic (0.3.3)
+    mini_mime (1.0.1)
+    mini_portile2 (2.4.0)
+    minitest (5.11.3)
+    msgpack (1.2.6)
+    multi_json (1.13.1)
+    multi_xml (0.6.0)
     multipart-post (2.0.0)
-    netrc (0.11.0)
-    nokogiri (1.6.7.2)
-      mini_portile2 (~> 2.0.0.rc2)
-    nokogumbo (1.4.7)
-      nokogiri
+    nio4r (2.3.1)
+    nokogiri (1.10.0)
+      mini_portile2 (~> 2.4.0)
+    nokogumbo (2.0.1)
+      nokogiri (~> 1.8, >= 1.8.4)
     oauth (0.4.7)
     oauth-plugin (0.5.1)
       multi_json
       oauth (~> 0.4.4)
       oauth2 (>= 0.5.0)
       rack
-    oauth2 (1.0.0)
-      faraday (>= 0.8, < 0.10)
-      jwt (~> 1.0)
+    oauth2 (1.4.1)
+      faraday (>= 0.8, < 0.16.0)
+      jwt (>= 1.0, < 3.0)
       multi_json (~> 1.3)
       multi_xml (~> 0.5)
-      rack (~> 1.2)
-    omniauth (1.3.1)
-      hashie (>= 1.2, < 4)
-      rack (>= 1.0, < 3)
-    omniauth-facebook (3.0.0)
+      rack (>= 1.2, < 3)
+    omniauth (1.9.0)
+      hashie (>= 3.4.6, < 3.7.0)
+      rack (>= 1.6.2, < 3)
+    omniauth-facebook (5.0.0)
       omniauth-oauth2 (~> 1.2)
-    omniauth-google-oauth2 (0.3.0)
-      addressable (~> 2.3)
-      jwt (~> 1.0)
-      multi_json (~> 1.3)
+    omniauth-github (1.3.0)
+      omniauth (~> 1.5)
+      omniauth-oauth2 (>= 1.4.0, < 2.0)
+    omniauth-google-oauth2 (0.6.0)
+      jwt (>= 2.0)
       omniauth (>= 1.1.1)
-      omniauth-oauth2 (>= 1.3.1)
-    omniauth-oauth2 (1.4.0)
-      oauth2 (~> 1.0)
-      omniauth (~> 1.2)
+      omniauth-oauth2 (>= 1.5)
+    omniauth-mediawiki (0.0.4)
+      jwt (~> 2.0)
+      omniauth-oauth (~> 1.0)
+    omniauth-oauth (1.1.0)
+      oauth
+      omniauth (~> 1.0)
+    omniauth-oauth2 (1.6.0)
+      oauth2 (~> 1.1)
+      omniauth (~> 1.9)
     omniauth-openid (1.0.1)
       omniauth (~> 1.0)
       rack-openid (~> 1.3.1)
-    omniauth-windowslive (0.0.9.1)
-      multi_json (>= 1.0.3)
-      omniauth-oauth2 (~> 1.0)
-    paperclip (4.3.2)
-      activemodel (>= 3.2.0)
-      activesupport (>= 3.2.0)
-      cocaine (~> 0.5.5)
+    omniauth-windowslive (0.0.12)
+      multi_json (~> 1.12)
+      omniauth-oauth2 (~> 1.4)
+    openstreetmap-deadlock_retry (1.3.0)
+    paperclip (5.3.0)
+      activemodel (>= 4.2.0)
+      activesupport (>= 4.2.0)
       mime-types
-      mimemagic (= 0.3.0)
-    parser (2.3.0.2)
-      ast (~> 2.2)
-    pg (0.18.4)
-    poltergeist (1.8.1)
-      capybara (~> 2.1)
+      mimemagic (~> 0.3.0)
+      terrapin (~> 0.6.0)
+    parallel (1.12.1)
+    parser (2.5.3.0)
+      ast (~> 2.4.0)
+    pg (0.21.0)
+    poltergeist (1.18.1)
+      capybara (>= 2.1, < 4)
       cliver (~> 0.3.1)
-      multi_json (~> 1.0)
       websocket-driver (>= 0.2.0)
-    powerpack (0.1.1)
-    progress (3.1.1)
-    psych (2.0.17)
-    r2 (0.2.6)
-    rack (1.6.4)
-    rack-cors (0.4.0)
+    powerpack (0.1.2)
+    progress (3.5.0)
+    psych (3.1.0)
+    public_suffix (3.0.3)
+    puma (3.12.0)
+    quad_tile (1.0.1)
+    r2 (0.2.7)
+    rack (2.0.6)
+    rack-cors (1.0.2)
     rack-openid (1.3.1)
       rack (>= 1.1.0)
       ruby-openid (>= 2.1.8)
-    rack-test (0.6.3)
-      rack (>= 1.0)
+    rack-test (1.1.0)
+      rack (>= 1.0, < 3)
     rack-uri_sanitizer (0.0.2)
-    rails (4.2.5.1)
-      actionmailer (= 4.2.5.1)
-      actionpack (= 4.2.5.1)
-      actionview (= 4.2.5.1)
-      activejob (= 4.2.5.1)
-      activemodel (= 4.2.5.1)
-      activerecord (= 4.2.5.1)
-      activesupport (= 4.2.5.1)
-      bundler (>= 1.3.0, < 2.0)
-      railties (= 4.2.5.1)
-      sprockets-rails
-    rails-deprecated_sanitizer (1.0.3)
-      activesupport (>= 4.2.0.alpha)
-    rails-dom-testing (1.0.7)
-      activesupport (>= 4.2.0.beta, < 5.0)
-      nokogiri (~> 1.6.0)
-      rails-deprecated_sanitizer (>= 1.0.1)
-    rails-html-sanitizer (1.0.3)
-      loofah (~> 2.0)
-    rails-i18n (4.0.8)
-      i18n (~> 0.7)
-      railties (~> 4.0)
-    railties (4.2.5.1)
-      actionpack (= 4.2.5.1)
-      activesupport (= 4.2.5.1)
+    rails (5.2.2)
+      actioncable (= 5.2.2)
+      actionmailer (= 5.2.2)
+      actionpack (= 5.2.2)
+      actionview (= 5.2.2)
+      activejob (= 5.2.2)
+      activemodel (= 5.2.2)
+      activerecord (= 5.2.2)
+      activestorage (= 5.2.2)
+      activesupport (= 5.2.2)
+      bundler (>= 1.3.0)
+      railties (= 5.2.2)
+      sprockets-rails (>= 2.0.0)
+    rails-controller-testing (1.0.4)
+      actionpack (>= 5.0.1.x)
+      actionview (>= 5.0.1.x)
+      activesupport (>= 5.0.1.x)
+    rails-dom-testing (2.0.3)
+      activesupport (>= 4.2.0)
+      nokogiri (>= 1.6)
+    rails-html-sanitizer (1.0.4)
+      loofah (~> 2.2, >= 2.2.2)
+    rails-i18n (4.0.2)
+      i18n (~> 0.6)
+      rails (>= 4.0)
+    railties (5.2.2)
+      actionpack (= 5.2.2)
+      activesupport (= 5.2.2)
+      method_source
       rake (>= 0.8.7)
-      thor (>= 0.18.1, < 2.0)
-    rainbow (2.1.0)
-    rake (10.5.0)
-    redcarpet (3.3.4)
+      thor (>= 0.19.0, < 2.0)
+    rainbow (3.0.0)
+    rake (12.3.2)
+    rb-fsevent (0.10.3)
+    rb-inotify (0.10.0)
+      ffi (~> 1.0)
+    record_tag_helper (1.0.0)
+      actionview (~> 5.x)
     ref (2.0.0)
-    request_store (1.3.0)
-    rest-client (1.8.0)
-      http-cookie (>= 1.0.2, < 2.0)
-      mime-types (>= 1.16, < 3.0)
-      netrc (~> 0.7)
-    rinku (1.7.3)
-    rubocop (0.36.0)
-      parser (>= 2.3.0.0, < 3.0)
+    request_store (1.4.1)
+      rack (>= 1.4)
+    rinku (2.0.4)
+    rotp (4.0.2)
+      addressable (~> 2.5)
+    rubocop (0.62.0)
+      jaro_winkler (~> 1.5.1)
+      parallel (~> 1.10)
+      parser (>= 2.5, != 2.5.1.1)
       powerpack (~> 0.1)
-      rainbow (>= 1.99.1, < 3.0)
+      rainbow (>= 2.2.2, < 4.0)
       ruby-progressbar (~> 1.7)
+      unicode-display_width (~> 1.4.0)
     ruby-openid (2.7.0)
-    ruby-progressbar (1.7.5)
-    sanitize (4.0.1)
+    ruby-progressbar (1.10.0)
+    ruby_dep (1.5.0)
+    safe_yaml (1.0.4)
+    sanitize (5.0.0)
       crass (~> 1.0.2)
-      nokogiri (>= 1.4.4)
-      nokogumbo (~> 1.4.1)
-    sass (3.4.21)
-    sass-rails (5.0.4)
-      railties (>= 4.0.0, < 5.0)
-      sass (~> 3.1)
-      sprockets (>= 2.8, < 4.0)
-      sprockets-rails (>= 2.0, < 4.0)
-      tilt (>= 1.1, < 3)
-    simplecov (0.11.1)
-      docile (~> 1.1.0)
-      json (~> 1.8)
+      nokogiri (>= 1.8.0)
+      nokogumbo (~> 2.0)
+    sassc (2.0.0)
+      ffi (~> 1.9.6)
+      rake
+    sassc-rails (2.1.0)
+      railties (>= 4.0.0)
+      sassc (>= 2.0)
+      sprockets (> 3.0)
+      sprockets-rails
+      tilt
+    secure_headers (6.0.0)
+    simplecov (0.16.1)
+      docile (~> 1.1)
+      json (>= 1.8, < 3)
       simplecov-html (~> 0.10.0)
-    simplecov-html (0.10.0)
-    soap4r-ruby1.9 (2.0.5)
-    sprockets (3.5.2)
+    simplecov-html (0.10.2)
+    sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-rails (2.3.3)
-      actionpack (>= 3.0)
-      activesupport (>= 3.0)
-      sprockets (>= 2.8, < 4.0)
-    term-ansicolor (1.3.2)
+    sprockets-rails (3.2.1)
+      actionpack (>= 4.0)
+      activesupport (>= 4.0)
+      sprockets (>= 3.0.0)
+    term-ansicolor (1.7.0)
       tins (~> 1.0)
-    therubyracer (0.12.2)
-      libv8 (~> 3.16.14.0)
+    terrapin (0.6.0)
+      climate_control (>= 0.0.3, < 1.0)
+    therubyracer (0.12.3)
+      libv8 (~> 3.16.14.15)
       ref
-    thor (0.19.1)
-    thread_safe (0.3.5)
-    tilt (2.0.2)
-    timecop (0.8.0)
-    tins (1.6.0)
-    tzinfo (1.2.2)
+    thor (0.19.4)
+    thread_safe (0.3.6)
+    tilt (2.0.9)
+    tins (1.20.2)
+    tzinfo (1.2.5)
       thread_safe (~> 0.1)
-    uglifier (2.7.2)
-      execjs (>= 0.3.0)
-      json (>= 1.8.0)
-    unf (0.1.4)
-      unf_ext
-    unf_ext (0.0.7.1)
+    uglifier (4.1.20)
+      execjs (>= 0.3.0, < 3)
+    unicode-display_width (1.4.1)
     validates_email_format_of (1.6.3)
       i18n
-    vendorer (0.1.16)
-    websocket-driver (0.6.3)
+    vendorer (0.2.0)
+    webmock (3.5.1)
+      addressable (>= 2.3.6)
+      crack (>= 0.3.2)
+      hashdiff
+    websocket-driver (0.7.0)
       websocket-extensions (>= 0.1.0)
-    websocket-extensions (0.1.2)
-    xpath (2.0.0)
-      nokogiri (~> 1.3)
+    websocket-extensions (0.1.3)
+    xpath (3.2.0)
+      nokogiri (~> 1.8)
 
 PLATFORMS
   ruby
 
 DEPENDENCIES
   SystemTimer (>= 1.1.3)
+  aasm
   actionpack-page_caching
-  autoprefixer-rails
+  active_record_union
+  annotate
+  autoprefixer-rails (~> 8.6.3)
+  better_errors
   bigdecimal (~> 1.1.0)
-  coffee-rails (~> 4.1.0)
-  composite_primary_keys (~> 8.1.0)
+  binding_of_caller
+  bootsnap (>= 1.1.0)
+  cancancan
+  canonical-rails
+  capybara (~> 2.13)
+  coffee-rails (~> 4.2)
+  composite_primary_keys (~> 11.1.0)
   coveralls
   dalli
-  deadlock_retry (>= 1.2.0)
+  delayed_job_active_record
   dynamic_form
+  factory_bot_rails
   faraday
+  geoip
   htmlentities
   http_accept_language (~> 2.0.0)
-  httpclient
-  i18n-js (>= 3.0.0.rc10)
-  image_optim (>= 0.22.0)
+  i18n-js (>= 3.0.0)
+  image_optim_rails
   jquery-rails
   jshint
   json
   jsonify-rails
   kgio
-  konacha
+  kramdown
   libxml-ruby (>= 2.0.5)
+  listen
   logstasher
   minitest (~> 5.1)
   oauth-plugin (>= 0.5.1)
   omniauth
   omniauth-facebook
-  omniauth-google-oauth2 (>= 0.2.7)
+  omniauth-github
+  omniauth-google-oauth2 (>= 0.6.0)
+  omniauth-mediawiki (>= 0.0.4)
   omniauth-openid
   omniauth-windowslive
-  paperclip (~> 4.0)
-  pg
+  openstreetmap-deadlock_retry (>= 1.3.0)
+  paperclip (~> 5.2)
+  pg (~> 0.18)
   poltergeist
   psych
-  r2
+  puma (~> 3.7)
+  quad_tile (~> 1.0.1)
+  r2 (~> 0.2.7)
   rack-cors
   rack-uri_sanitizer
-  rails (= 4.2.5.1)
+  rails (= 5.2.2)
+  rails-controller-testing
   rails-i18n (~> 4.0.0)
-  redcarpet
+  record_tag_helper
   rinku (>= 1.2.2)
+  rotp
   rubocop
   sanitize
-  sass-rails (~> 5.0)
-  soap4r-ruby1.9
-  sprockets-rails (< 3)
-  timecop
+  sassc-rails
+  secure_headers
   uglifier (>= 1.3.0)
   validates_email_format_of (>= 1.5.1)
   vendorer
+  webmock
+
+BUNDLED WITH
+   1.16.2
index 61dcbd7f2cbcf7211f182f683a0653a3c799082f..8e47cb2667473bac991125e237138ac39e0d457f 100644 (file)
@@ -5,10 +5,10 @@ If you want to deploy the software for your own project, then see the notes at t
 
 You can install the software directly on your machine, which is the traditional and probably best-supported approach. However, there is an alternative which may be easier: Vagrant. This installs the software into a virtual machine, which makes it easier to get a consistent development environment and may avoid installation difficulties. For Vagrant instructions, see [VAGRANT.md](VAGRANT.md).
 
-These instructions are based on Ubuntu 12.04 LTS, which is the platform used by the OSMF servers.
+These instructions are based on Ubuntu 16.04 LTS, which is the platform used by the OSMF servers.
 The instructions also work, with only minor amendments, for all other current Ubuntu releases, Fedora and MacOSX
 
-We don't recommend attempting to develop or deploy this software on Windows. If you need to use Windows, then try developing this sofware using Ubuntu in a virtual machine, or use [Vagrant](VAGRANT.md).
+We don't recommend attempting to develop or deploy this software on Windows. If you need to use Windows, then try developing this software using Ubuntu in a virtual machine, or use [Vagrant](VAGRANT.md).
 
 ## Dependencies
 
@@ -18,22 +18,22 @@ of packages required before you can get the various gems installed.
 
 ## Minimum requirements
 
-* Ruby 2.0
+* Ruby 2.3
 * RubyGems 1.3.1+
-* Postgres 8.3+
+* PostgreSQL 9.1+
 * ImageMagick
 * Bundler
 * Javascript Runtime
 
-These can be installed on Ubuntu 14.04 or later with:
+These can be installed on Ubuntu 16.04 or later with:
 
 ```
-sudo apt-get install ruby2.0 libruby2.0 ruby2.0-dev \
+sudo apt-get install ruby2.3 libruby2.3 ruby2.3-dev \
                      libmagickwand-dev libxml2-dev libxslt1-dev nodejs \
-                     apache2 apache2-threaded-dev build-essential git-core \
+                     apache2 apache2-dev build-essential git-core \
                      postgresql postgresql-contrib libpq-dev postgresql-server-dev-all \
-                     libsasl2-dev imagemagick
-sudo gem2.0 install bundler
+                     libsasl2-dev imagemagick libffi-dev
+sudo gem2.3 install bundler
 ```
 
 ### Alternative platforms
@@ -47,17 +47,17 @@ sudo yum install ruby ruby-devel rubygem-rdoc rubygem-bundler rubygems \
                  libxml2-devel js \
                  gcc gcc-c++ git \
                  postgresql postgresql-server postgresql-contrib postgresql-devel \
-                 perl-podlators ImageMagick
+                 perl-podlators ImageMagick libffi-devel
 ```
 
-If you didn't already have Postgres installed then create a Postgres instance and start the server:
+If you didn't already have PostgreSQL installed then create a PostgreSQL instance and start the server:
 
 ```
 sudo postgresql-setup initdb
 sudo systemctl start postgresql.service
 ```
 
-Optionally set Postgres to start on boot:
+Optionally set PostgreSQL to start on boot:
 
 ```
 sudo systemctl enable postgresql.service
@@ -67,10 +67,10 @@ sudo systemctl enable postgresql.service
 
 For MacOSX, you will need XCode installed from the Mac App Store; OS X 10.7 (Lion) or later; and some familiarity with Unix development via the Terminal.
 
-Installing Postgres:
+Installing PostgreSQL:
 
-* Install Postgres.app from http://postgresapp.com/
-* Add Postgres to your path, by editing your profile:
+* Install Postgres.app from https://postgresapp.com/
+* Add PostgreSQL to your path, by editing your profile:
 
 `nano ~/.profile`
 
@@ -80,10 +80,12 @@ and adding:
 
 Installing other dependencies:
 
-* Install Homebrew from http://mxcl.github.io/homebrew/
-* Install the latest version of Ruby: brew install ruby
-* Install ImageMagick: brew install imagemagick
-* Install Bundler: gem install bundler
+* Install Homebrew from https://brew.sh/
+* Install the latest version of Ruby: `brew install ruby`
+* Install ImageMagick: `brew install imagemagick`
+* Install libxml2: `brew install libxml2 --with-xml2-config`
+* If you want to run the tests, you need `phantomjs` as well: `brew install phantomjs`
+* Install Bundler: `gem install bundler`
 
 Note that OS X does not have a /home directory by default, so if you are using the GPX functions, you will need to change the directories specified in config/application.yml.
 
@@ -138,7 +140,7 @@ instructions below as appropriate.
 
 ### PostgreSQL account setup
 
-We need to create a PostgreSQL role (i.e. user account) for your current user, and it needs to be a superuser so that we can create more database.
+We need to create a PostgreSQL role (i.e. user account) for your current user, and it needs to be a superuser so that we can create more databases.
 
 ```
 sudo -u postgres -i
@@ -156,7 +158,7 @@ bundle exec rake db:create
 
 ### PostgreSQL Btree-gist Extension
 
-We need to load the btree-gist extension, which is needed for showing changesets on the history tab.
+We need to load the `btree-gist` extension, which is needed for showing changesets on the history tab.
 
 ```
 psql -d openstreetmap -c "CREATE EXTENSION btree_gist"
@@ -164,7 +166,7 @@ psql -d openstreetmap -c "CREATE EXTENSION btree_gist"
 
 ### PostgreSQL Functions
 
-We need to install special functions into the postgresql databases, and these are provided by a library that needs compiling first.
+We need to install special functions into the PostgreSQL databases, and these are provided by a library that needs compiling first.
 
 ```
 cd db/functions
@@ -193,7 +195,7 @@ bundle exec rake db:migrate
 To ensure that everything is set up properly, you should now run:
 
 ```
-bundle exec rake test
+bundle exec rake test:db
 ```
 
 This test will take a few minutes, reporting tests run, assertions, and any errors. If you receive no errors, then your installation is successful.
index d53bae1577d56071ad0ce0250dea7153fc871476..9162a38de691c33a979bfa68938c9bebb339fe50 100644 (file)
--- a/README.md
+++ b/README.md
@@ -4,14 +4,14 @@
 [![Coverage Status](https://coveralls.io/repos/openstreetmap/openstreetmap-website/badge.svg?branch=master)](https://coveralls.io/r/openstreetmap/openstreetmap-website?branch=master)
 
 This is The Rails Port, the [Ruby on Rails](http://rubyonrails.org/)
-application that powers the [OpenStreetMap](http://www.openstreetmap.org) website and API.
+application that powers the [OpenStreetMap](https://www.openstreetmap.org) website and API.
 The software is also known as "openstreetmap-website".
 
 This repository consists of:
 
 * The web site, including user accounts, diary entries, user-to-user messaging
-* The XML-based editing [API](http://wiki.openstreetmap.org/wiki/API_v0.6)
-* The integrated versions of the [Potlatch](http://wiki.openstreetmap.org/wiki/Potlatch_1), [Potlatch 2](http://wiki.openstreetmap.org/wiki/Potlatch_2) and [iD](http://wiki.openstreetmap.org/wiki/ID) editors
+* The XML-based editing [API](https://wiki.openstreetmap.org/wiki/API_v0.6)
+* The integrated versions of the [Potlatch](https://wiki.openstreetmap.org/wiki/Potlatch_1), [Potlatch 2](https://wiki.openstreetmap.org/wiki/Potlatch_2) and [iD](https://wiki.openstreetmap.org/wiki/ID) editors
 * The Browse pages - a web front-end to the OpenStreetMap data
 * The GPX uploads, browsing and API.
 
@@ -21,7 +21,7 @@ uses publicly-available services to help with development and testing.
 
 # License
 
-This software is licensed under the [GNU General Public License 2.0](http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt),
+This software is licensed under the [GNU General Public License 2.0](https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt),
 a copy of which can be found in the [LICENSE](LICENSE) file.
 
 # Installation
@@ -36,8 +36,12 @@ We're always keen to have more developers! Pull requests are very welcome.
 * Bugs are recorded in the [issue tracker](https://github.com/openstreetmap/openstreetmap-website/issues).
 * Some bug reports are also found on the [OpenStreetMap trac](https://trac.openstreetmap.org/) system, in the "[website](https://trac.openstreetmap.org/query?status=new&status=assigned&status=reopened&component=website&order=priority)" and "[api](https://trac.openstreetmap.org/query?status=new&status=assigned&status=reopened&component=api&order=priority)" components
 * Translation is managed by [Translatewiki](https://translatewiki.net/wiki/Translating:OpenStreetMap)
-* There is a [rails-dev@openstreetmap.org](http://lists.openstreetmap.org/listinfo/rails-dev) mailing list for development discussion.
+* There is a [rails-dev@openstreetmap.org](https://lists.openstreetmap.org/listinfo/rails-dev) mailing list for development discussion.
 * IRC - there is the #osm-dev channel on irc.oftc.net.
-* There are also weekly meetings of the OpenStreetMap Foundation Engineering Working Group (EWG) on Mondays at 1700 UTC on the #osm-ewg channel.
 
 More details on contributing to the code are in the [CONTRIBUTING.md](CONTRIBUTING.md) file.
+
+# Maintainers
+
+* Tom Hughes [@tomhughes](https://github.com/tomhughes/)
+* Andy Allan [@gravitystorm](https://github.com/gravitystorm/)
index 39f9f3564686f928792b3a771866a14924fb6f20..9a5ea7383aa83eec12490380a7391d1bb93eeb96 100644 (file)
--- a/Rakefile
+++ b/Rakefile
@@ -1,6 +1,6 @@
 # Add your own tasks in files placed in lib/tasks ending in .rake,
 # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
 
-require File.expand_path("../config/application", __FILE__)
+require_relative "config/application"
 
-OpenStreetMap::Application.load_tasks
+Rails.application.load_tasks
index d71483569df2b443cda3228cd2cfdb9d0511e1fb..9dea618616ff66c2687b727eadb092f8de263c42 100644 (file)
@@ -6,9 +6,12 @@ On Ubuntu, it should be as simple as:
 sudo apt-get install vagrant
 ```
 
-Other Linux distributions should have similar installation instructions using `yum` or similar.
+Other Linux distributions should have similar installation instructions using `dnf`, `pacman`, or similar.
 
-Installers are available for Mac OS X and Windows, please see the [Vagrant project download page](http://www.vagrantup.com/downloads) for more information.
+Installers are available for Mac OS X and Windows, please see the [Vagrant project download page](https://www.vagrantup.com/downloads.html) for more information.
+
+Note than until there are suitable _xenial64_ [vagrant boxes](https://atlas.hashicorp.com/boxes/search?utf8=%E2%9C%93&sort=&provider=&q=xenial64) for other providers,
+the only virtualization provider supported is virtualbox. You might need to install it and specify `--provider virtualbox` when setting up your environment.
 
 # Setting up openstreetmap-website
 
index 24d62bb7a4a95e56a4d2ad01526c6cce533061d2..fcb4790fef74461c0f028afc5c1a6d8032426522 100644 (file)
@@ -3,21 +3,27 @@
 
 Vagrant.configure("2") do |config|
   # use official ubuntu image for virtualbox
-  config.vm.provider "virtualbox" do |_, override|
-    override.vm.box = "ubuntu/trusty64"
+  config.vm.provider "virtualbox" do |vb, override|
+    override.vm.box = "ubuntu/bionic64"
     override.vm.synced_folder ".", "/srv/openstreetmap-website"
+    vb.customize ["modifyvm", :id, "--memory", "1024"]
+    vb.customize ["modifyvm", :id, "--cpus", "2"]
+    vb.customize ["modifyvm", :id, "--uartmode1", "disconnected"]
   end
 
-  # use third party image and NFS sharing for lxc
+  # Use sshfs sharing if available, otherwise NFS sharing
+  sharing_type = Vagrant.has_plugin?("vagrant-sshfs") ? "sshfs" : "nfs"
+
+  # use third party image and sshfs or NFS sharing for lxc
   config.vm.provider "lxc" do |_, override|
-    override.vm.box = "sputnik13/trusty64"
-    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => "nfs"
+    override.vm.box = "generic/ubuntu1804"
+    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
   end
 
-  # use third party image and NFS sharing for libvirt
+  # use third party image and sshfs or NFS sharing for libvirt
   config.vm.provider "libvirt" do |_, override|
-    override.vm.box = "sputnik13/trusty64"
-    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => "nfs"
+    override.vm.box = "generic/ubuntu1804"
+    override.vm.synced_folder ".", "/srv/openstreetmap-website", :type => sharing_type
   end
 
   # configure shared package cache if possible
index a9ec0a671f6388bb45a496bb74c1fd78398b4e14..c4128262340b1819928e3369768144687a70b104 100644 (file)
@@ -11,13 +11,18 @@ folder 'vendor/assets' do
   end
 
   folder 'leaflet' do
-    file 'leaflet.js', 'http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet-src.js'
-    file 'leaflet.css', 'http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css'
+    file 'leaflet.js', 'https://unpkg.com/leaflet@1.4.0/dist/leaflet-src.js'
+    file 'leaflet.css', 'https://unpkg.com/leaflet@1.4.0/dist/leaflet.css'
 
     [ 'layers.png', 'layers-2x.png',
       'marker-icon.png', 'marker-icon-2x.png',
       'marker-shadow.png' ].each do |image|
-      file "images/#{image}", "http://cdn.leafletjs.com/leaflet/v0.7.7/images/#{image}"
+      file "images/#{image}", "https://unpkg.com/leaflet@1.4.0/dist/images/#{image}"
+    end
+
+    from 'git://github.com/aratcliffe/Leaflet.contextmenu.git', :tag => 'v1.5.0' do
+      file 'leaflet.contextmenu.js', 'dist/leaflet.contextmenu.js'
+      file 'leaflet.contextmenu.css', 'dist/leaflet.contextmenu.css'
     end
 
     from 'git://github.com/kajic/leaflet-locationfilter.git' do
@@ -26,7 +31,7 @@ folder 'vendor/assets' do
       folder 'img', 'src/img'
     end
 
-    from 'git://github.com/domoritz/leaflet-locatecontrol.git' do
+    from 'git://github.com/domoritz/leaflet-locatecontrol.git', :tag => 'v0.66.0' do
       file 'leaflet.locate.js', 'src/L.Control.Locate.js'
     end
 
@@ -34,7 +39,7 @@ folder 'vendor/assets' do
       file 'leaflet.osm.js', 'leaflet-osm.js'
     end
 
-    from 'git://github.com/jieter/Leaflet.encoded.git' do
+    from 'git://github.com/jieter/Leaflet.encoded.git', :tag => '0.0.8' do
       file 'leaflet.polyline.js', 'Polyline.encoded.js'
     end
   end
@@ -49,16 +54,28 @@ folder 'vendor/assets' do
     from 'git://github.com/openstreetmap/iD', :branch => 'release' do
       folder 'iD/img', 'dist/img'
       folder 'iD/locales', 'dist/locales'
+      folder 'iD/mapillary-js', 'dist/mapillary-js'
+      folder 'iD/pannellum-streetside', 'dist/pannellum-streetside'
+
       file 'iD.css.erb', 'dist/iD.css' do |path|
-        rewrite(path) { |content| content.gsub(/url\('?(img\/[^')]+)'?\)/, 'url(<%= asset_path("iD/\1") %>)') }
+        rewrite(path) do |content|
+          content.gsub(/url\('?(img\/[^')]+)'?\)/, 'url(<%= asset_path("iD/\1") %>)')
+        end
       end
+
       file 'iD.js', 'dist/iD.js'
-      file 'presets.js', 'dist/presets.js'
-      file 'imagery.js', 'dist/imagery.js'
     end
   end
 
   folder 'javascripts' do
     file 'html5shiv.js', 'https://raw.githubusercontent.com/aFarkas/html5shiv/master/src/html5shiv.js'
+    file 'bowser.js', 'https://github.com/lancedikson/bowser/releases/download/1.9.4/bowser.js'
+  end
+
+  folder 'swfobject' do
+    from 'git://github.com/swfobject/swfobject.git', :tag => '2.2' do
+      file 'expressInstall.swf', 'swfobject/expressInstall.swf'
+      file 'swfobject.js', 'swfobject/src/swfobject.js'
+    end
   end
 end
diff --git a/app/abilities/ability.rb b/app/abilities/ability.rb
new file mode 100644 (file)
index 0000000..c4cca7c
--- /dev/null
@@ -0,0 +1,103 @@
+# frozen_string_literal: true
+
+class Ability
+  include CanCan::Ability
+
+  def initialize(user)
+    can [:trackpoints, :map, :changes, :capabilities, :permissions], :api
+    can [:relation, :relation_history, :way, :way_history, :node, :node_history,
+         :changeset, :note, :new_note, :query], :browse
+    can [:index, :feed, :show, :download, :query], Changeset
+    can :index, ChangesetComment
+    can :search, :direction
+    can [:index, :permalink, :edit, :help, :fixthemap, :offline, :export, :about, :preview, :copyright, :key, :id], :site
+    can [:index, :rss, :show, :comments], DiaryEntry
+    can [:finish, :embed], :export
+    can [:search, :search_latlon, :search_ca_postcode, :search_osm_nominatim,
+         :search_geonames, :search_osm_nominatim_reverse, :search_geonames_reverse], :geocoder
+    can [:index, :create, :comment, :feed, :show, :search, :mine], Note
+    can [:token, :request_token, :access_token, :test_request], :oauth
+    can [:index, :show], Redaction
+    can [:search_all, :search_nodes, :search_ways, :search_relations], :search
+    can [:trackpoints], :swf
+    can [:index, :show, :data, :georss, :picture, :icon], Trace
+    can [:terms, :api_users, :login, :logout, :new, :create, :save, :confirm, :confirm_resend, :confirm_email, :lost_password, :reset_password, :show, :api_read, :auth_success, :auth_failure], User
+    can [:index, :show, :blocks_on, :blocks_by], UserBlock
+    can [:index, :show], Node
+    can [:index, :show, :full, :ways_for_node], Way
+    can [:index, :show, :full, :relations_for_node, :relations_for_way, :relations_for_relation], Relation
+    can [:history, :version], OldNode
+    can [:history, :version], OldWay
+    can [:history, :version], OldRelation
+
+    if user
+      can :welcome, :site
+      can [:index, :new, :create, :show, :edit, :update, :destroy], ClientApplication
+      can [:create, :edit, :comment, :subscribe, :unsubscribe], DiaryEntry
+      can [:new, :create, :reply, :show, :inbox, :outbox, :mark, :destroy], Message
+      can [:close, :reopen], Note
+      can [:revoke, :authorize], :oauth
+      can [:new, :create], Report
+      can [:mine, :new, :create, :edit, :update, :delete, :api_create, :api_read, :api_update, :api_delete, :api_data], Trace
+      can [:account, :go_public, :make_friend, :remove_friend, :api_details, :api_gpx_files], User
+      can [:read, :read_one, :update, :update_one, :delete_one], UserPreference
+
+      if user.terms_agreed? || !REQUIRE_TERMS_AGREED
+        can [:create, :update, :upload, :close, :subscribe, :unsubscribe, :expand_bbox], Changeset
+        can :create, ChangesetComment
+        can [:create, :update, :delete], Node
+        can [:create, :update, :delete], Way
+        can [:create, :update, :delete], Relation
+      end
+
+      if user.moderator?
+        can [:destroy, :restore], ChangesetComment
+        can [:index, :show, :resolve, :ignore, :reopen], Issue
+        can :create, IssueComment
+        can :destroy, Note
+        can [:new, :create, :edit, :update, :destroy], Redaction
+        can [:new, :edit, :create, :update, :revoke], UserBlock
+        if user.terms_agreed? || !REQUIRE_TERMS_AGREED
+          can :redact, OldNode
+          can :redact, OldWay
+          can :redact, OldRelation
+        end
+      end
+
+      if user.administrator?
+        can [:hide, :hidecomment], [DiaryEntry, DiaryComment]
+        can [:index, :show, :resolve, :ignore, :reopen], Issue
+        can :create, IssueComment
+        can [:set_status, :delete, :index], User
+        can [:grant, :revoke], UserRole
+      end
+    end
+
+    # Define abilities for the passed in user here. For example:
+    #
+    #   user ||= User.new # guest user (not logged in)
+    #   if user.admin?
+    #     can :manage, :all
+    #   else
+    #     can :read, :all
+    #   end
+    #
+    # The first argument to `can` is the action you are giving the user
+    # permission to do.
+    # If you pass :manage it will apply to every action. Other common actions
+    # here are :read, :create, :update and :destroy.
+    #
+    # The second argument is the resource the user can perform the action on.
+    # If you pass :all it will apply to every resource. Otherwise pass a Ruby
+    # class of the resource.
+    #
+    # The third argument is an optional hash of conditions to further filter the
+    # objects.
+    # For example, here the user can only update published articles.
+    #
+    #   can :update, Article, :published => true
+    #
+    # See the wiki for details:
+    # https://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities
+  end
+end
diff --git a/app/abilities/capability.rb b/app/abilities/capability.rb
new file mode 100644 (file)
index 0000000..3d95190
--- /dev/null
@@ -0,0 +1,39 @@
+# frozen_string_literal: true
+
+class Capability
+  include CanCan::Ability
+
+  def initialize(token)
+    can [:create, :comment, :close, :reopen], Note if capability?(token, :allow_write_notes)
+    can [:api_read, :api_data], Trace if capability?(token, :allow_read_gpx)
+    can [:api_create, :api_update, :api_delete], Trace if capability?(token, :allow_write_gpx)
+    can [:api_details], User if capability?(token, :allow_read_prefs)
+    can [:api_gpx_files], User if capability?(token, :allow_read_gpx)
+    can [:read, :read_one], UserPreference if capability?(token, :allow_read_prefs)
+    can [:update, :update_one, :delete_one], UserPreference if capability?(token, :allow_write_prefs)
+
+    if token&.user&.terms_agreed? || !REQUIRE_TERMS_AGREED
+      can [:create, :update, :upload, :close, :subscribe, :unsubscribe, :expand_bbox], Changeset if capability?(token, :allow_write_api)
+      can :create, ChangesetComment if capability?(token, :allow_write_api)
+      can [:create, :update, :delete], Node if capability?(token, :allow_write_api)
+      can [:create, :update, :delete], Way if capability?(token, :allow_write_api)
+      can [:create, :update, :delete], Relation if capability?(token, :allow_write_api)
+    end
+
+    if token&.user&.moderator?
+      can [:destroy, :restore], ChangesetComment if capability?(token, :allow_write_api)
+      can :destroy, Note if capability?(token, :allow_write_notes)
+      if token&.user&.terms_agreed? || !REQUIRE_TERMS_AGREED
+        can :redact, OldNode if capability?(token, :allow_write_api)
+        can :redact, OldWay if capability?(token, :allow_write_api)
+        can :redact, OldRelation if capability?(token, :allow_write_api)
+      end
+    end
+  end
+
+  private
+
+  def capability?(token, cap)
+    token&.read_attribute(cap)
+  end
+end
diff --git a/app/assets/images/banners/sotm2018.png b/app/assets/images/banners/sotm2018.png
new file mode 100644 (file)
index 0000000..c7411a5
Binary files /dev/null and b/app/assets/images/banners/sotm2018.png differ
diff --git a/app/assets/images/github.png b/app/assets/images/github.png
new file mode 100644 (file)
index 0000000..b797e24
Binary files /dev/null and b/app/assets/images/github.png differ
index 39f6bc2080a21f9264799f610dfcff5c45270c81..b273b6b6ef21e633019cf486c05657a83ffdc4ce 100644 (file)
Binary files a/app/assets/images/google.png and b/app/assets/images/google.png differ
diff --git a/app/assets/images/key/cyclemap/bicycle_parking.png b/app/assets/images/key/cyclemap/bicycle_parking.png
new file mode 100644 (file)
index 0000000..c900a44
Binary files /dev/null and b/app/assets/images/key/cyclemap/bicycle_parking.png differ
diff --git a/app/assets/images/key/cyclemap/bicycle_shop.png b/app/assets/images/key/cyclemap/bicycle_shop.png
new file mode 100644 (file)
index 0000000..5ccf714
Binary files /dev/null and b/app/assets/images/key/cyclemap/bicycle_shop.png differ
diff --git a/app/assets/images/key/cyclemap/common.png b/app/assets/images/key/cyclemap/common.png
new file mode 100644 (file)
index 0000000..7c10815
Binary files /dev/null and b/app/assets/images/key/cyclemap/common.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway.png b/app/assets/images/key/cyclemap/cycleway.png
new file mode 100644 (file)
index 0000000..13bed4a
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway_local.png b/app/assets/images/key/cyclemap/cycleway_local.png
new file mode 100644 (file)
index 0000000..2a29331
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway_local.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway_local13.png b/app/assets/images/key/cyclemap/cycleway_local13.png
new file mode 100644 (file)
index 0000000..3f2c535
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway_local13.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway_national.png b/app/assets/images/key/cyclemap/cycleway_national.png
new file mode 100644 (file)
index 0000000..0f5455f
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway_national.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway_national13.png b/app/assets/images/key/cyclemap/cycleway_national13.png
new file mode 100644 (file)
index 0000000..252b07a
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway_national13.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway_regional.png b/app/assets/images/key/cyclemap/cycleway_regional.png
new file mode 100644 (file)
index 0000000..7e3306e
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway_regional.png differ
diff --git a/app/assets/images/key/cyclemap/cycleway_regional13.png b/app/assets/images/key/cyclemap/cycleway_regional13.png
new file mode 100644 (file)
index 0000000..9b3409f
Binary files /dev/null and b/app/assets/images/key/cyclemap/cycleway_regional13.png differ
diff --git a/app/assets/images/key/cyclemap/footway.png b/app/assets/images/key/cyclemap/footway.png
new file mode 100644 (file)
index 0000000..c78756f
Binary files /dev/null and b/app/assets/images/key/cyclemap/footway.png differ
diff --git a/app/assets/images/key/cyclemap/forest.png b/app/assets/images/key/cyclemap/forest.png
new file mode 100644 (file)
index 0000000..a7ebe8e
Binary files /dev/null and b/app/assets/images/key/cyclemap/forest.png differ
diff --git a/app/assets/images/key/cyclemap/lake.png b/app/assets/images/key/cyclemap/lake.png
new file mode 100644 (file)
index 0000000..918d496
Binary files /dev/null and b/app/assets/images/key/cyclemap/lake.png differ
diff --git a/app/assets/images/key/cyclemap/motorway.png b/app/assets/images/key/cyclemap/motorway.png
new file mode 100644 (file)
index 0000000..296f176
Binary files /dev/null and b/app/assets/images/key/cyclemap/motorway.png differ
diff --git a/app/assets/images/key/cyclemap/motorway12.png b/app/assets/images/key/cyclemap/motorway12.png
new file mode 100644 (file)
index 0000000..749493a
Binary files /dev/null and b/app/assets/images/key/cyclemap/motorway12.png differ
diff --git a/app/assets/images/key/cyclemap/primary.png b/app/assets/images/key/cyclemap/primary.png
new file mode 100644 (file)
index 0000000..78ae0e4
Binary files /dev/null and b/app/assets/images/key/cyclemap/primary.png differ
diff --git a/app/assets/images/key/cyclemap/primary12.png b/app/assets/images/key/cyclemap/primary12.png
new file mode 100644 (file)
index 0000000..fed37d0
Binary files /dev/null and b/app/assets/images/key/cyclemap/primary12.png differ
diff --git a/app/assets/images/key/cyclemap/rail.png b/app/assets/images/key/cyclemap/rail.png
new file mode 100644 (file)
index 0000000..0abf0c1
Binary files /dev/null and b/app/assets/images/key/cyclemap/rail.png differ
diff --git a/app/assets/images/key/cyclemap/rail14.png b/app/assets/images/key/cyclemap/rail14.png
new file mode 100644 (file)
index 0000000..957f17c
Binary files /dev/null and b/app/assets/images/key/cyclemap/rail14.png differ
diff --git a/app/assets/images/key/cyclemap/secondary.png b/app/assets/images/key/cyclemap/secondary.png
new file mode 100644 (file)
index 0000000..7928b18
Binary files /dev/null and b/app/assets/images/key/cyclemap/secondary.png differ
diff --git a/app/assets/images/key/cyclemap/secondary12.png b/app/assets/images/key/cyclemap/secondary12.png
new file mode 100644 (file)
index 0000000..cde0085
Binary files /dev/null and b/app/assets/images/key/cyclemap/secondary12.png differ
diff --git a/app/assets/images/key/cyclemap/toilets.png b/app/assets/images/key/cyclemap/toilets.png
new file mode 100644 (file)
index 0000000..d1c7a00
Binary files /dev/null and b/app/assets/images/key/cyclemap/toilets.png differ
diff --git a/app/assets/images/key/cyclemap/track.png b/app/assets/images/key/cyclemap/track.png
new file mode 100644 (file)
index 0000000..f294edc
Binary files /dev/null and b/app/assets/images/key/cyclemap/track.png differ
diff --git a/app/assets/images/key/cyclemap/trunk.png b/app/assets/images/key/cyclemap/trunk.png
new file mode 100644 (file)
index 0000000..d312a65
Binary files /dev/null and b/app/assets/images/key/cyclemap/trunk.png differ
diff --git a/app/assets/images/key/cyclemap/trunk12.png b/app/assets/images/key/cyclemap/trunk12.png
new file mode 100644 (file)
index 0000000..51230a0
Binary files /dev/null and b/app/assets/images/key/cyclemap/trunk12.png differ
diff --git a/app/assets/images/osm_logo_30.png b/app/assets/images/osm_logo_30.png
new file mode 100644 (file)
index 0000000..c963f4f
Binary files /dev/null and b/app/assets/images/osm_logo_30.png differ
index 42ec7b4cdf94c3098160e40542d81ca645bc3b32..079f4dd7fe229513f8c48a85d9d79df8adc5823c 100644 (file)
Binary files a/app/assets/images/routing-sprite.png and b/app/assets/images/routing-sprite.png differ
diff --git a/app/assets/images/routing-sprite.svg b/app/assets/images/routing-sprite.svg
new file mode 100644 (file)
index 0000000..15aa57b
--- /dev/null
@@ -0,0 +1,573 @@
+<?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"
+   width="520"
+   height="20"
+   viewBox="0 0 520.00001 20"
+   id="svg2"
+   version="1.1"
+   inkscape:version="0.91 r13725"
+   sodipodi:docname="routing-sprite.svg"
+   inkscape:export-filename="/home/patrick/Code/openstreetmap-website/app/assets/images/routing-sprite.png"
+   inkscape:export-xdpi="90"
+   inkscape:export-ydpi="90">
+  <defs
+     id="defs4" />
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="5.6568542"
+     inkscape:cx="131.24519"
+     inkscape:cy="13.736603"
+     inkscape:document-units="px"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:showpageshadow="false"
+     inkscape:window-width="1920"
+     inkscape:window-height="1080"
+     inkscape:window-x="0"
+     inkscape:window-y="0"
+     inkscape:window-maximized="0"
+     showguides="false"
+     inkscape:guide-bbox="true"
+     units="px">
+    <inkscape:grid
+       type="xygrid"
+       id="grid4224" />
+    <sodipodi:guide
+       position="20.000001,31"
+       orientation="1,0"
+       id="guide4226" />
+    <sodipodi:guide
+       position="40.000001,19"
+       orientation="1,0"
+       id="guide4245" />
+    <sodipodi:guide
+       position="60.000002,29"
+       orientation="1,0"
+       id="guide4299" />
+    <sodipodi:guide
+       position="80.000002,35"
+       orientation="1,0"
+       id="guide4388" />
+    <sodipodi:guide
+       position="71.000002,10"
+       orientation="-0.7193398,-0.69465837"
+       id="guide4432"
+       inkscape:label=""
+       inkscape:color="rgb(0,0,255)" />
+    <sodipodi:guide
+       position="100,15"
+       orientation="1,0"
+       id="guide4499" />
+    <sodipodi:guide
+       position="120,15"
+       orientation="1,0"
+       id="guide4578" />
+    <sodipodi:guide
+       position="140,16"
+       orientation="1,0"
+       id="guide4580" />
+    <sodipodi:guide
+       position="160,21"
+       orientation="1,0"
+       id="guide4582" />
+    <sodipodi:guide
+       position="180,15"
+       orientation="1,0"
+       id="guide4729" />
+    <sodipodi:guide
+       position="200.00001,15"
+       orientation="1,0"
+       id="guide4731" />
+    <sodipodi:guide
+       position="220.00001,11"
+       orientation="1,0"
+       id="guide4747" />
+    <sodipodi:guide
+       position="78.000002,12"
+       orientation="-0.70710678,0.70710678"
+       id="guide4212"
+       inkscape:label=""
+       inkscape:color="rgb(0,0,255)" />
+    <sodipodi:guide
+       position="240.00001,19"
+       orientation="1,0"
+       id="guide4264" />
+    <sodipodi:guide
+       position="260.00001,19"
+       orientation="1,0"
+       id="guide4266" />
+    <sodipodi:guide
+       position="280.00001,5"
+       orientation="1,0"
+       id="guide4280" />
+    <sodipodi:guide
+       position="300.00001,10"
+       orientation="1,0"
+       id="guide4297" />
+    <sodipodi:guide
+       position="320.00001,24"
+       orientation="1,0"
+       id="guide4305" />
+    <sodipodi:guide
+       position="340.00001,28"
+       orientation="1,0"
+       id="guide4335" />
+    <sodipodi:guide
+       position="360.00001,30"
+       orientation="1,0"
+       id="guide4337" />
+    <sodipodi:guide
+       position="380.00001,19"
+       orientation="1,0"
+       id="guide4376" />
+    <sodipodi:guide
+       position="400.00001,19"
+       orientation="1,0"
+       id="guide4382" />
+    <sodipodi:guide
+       position="420.00001,36"
+       orientation="1,0"
+       id="guide4394" />
+    <sodipodi:guide
+       position="440.00001,20"
+       orientation="1,0"
+       id="guide4449" />
+    <sodipodi:guide
+       position="460.00001,22"
+       orientation="1,0"
+       id="guide4451" />
+    <sodipodi:guide
+       position="480.00001,20"
+       orientation="1,0"
+       id="guide4485" />
+    <sodipodi:guide
+       position="500.00001,40"
+       orientation="1,0"
+       id="guide4487" />
+  </sodipodi:namedview>
+  <metadata
+     id="metadata7">
+    <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"
+     transform="translate(0,-1032.3622)">
+    <image
+       y="1002.3622"
+       x="1.7763568e-15"
+       id="image4217"
+       xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAWgAAAAUCAMAAACXrFfpAAABOFBMVEUAAAB/f39/f39/f39/f396 enoAAAB7e3t7e3t4eHh5eXl5eXl6enp3d3d4eHgAAAB3d3d1dXVzc3MAAABwcHBvb29ubm4AAABt bW1sbGxsbGxsbGxra2tra2toaGhoaGhqamoAAABmZmZoaGgAAABnZ2dkZGQAAABiYmJXV1dXV1cA AAAAAABMTEwAAAAAAABDQ0MAAAA1NTU1NTUxMTEAAAAxMTEAAAAAAAAmJiYlJSUkJCQjIyMiIiIA AAAcHBwAAAAAAAAAAAAAAAAUFBQAAAAAAAAQEBAPDw8AAAAPDw8AAAAAAAANDQ0MDAwAAAAAAAAM DAwKCgoAAAAAAAAICAgICAgAAAAHBwcAAAAHBwcGBgYAAAAAAAAAAAAAAAADAwMAAAAAAAAAAAAA AAAAAAAAAAAAAABULW3yAAAAZ3RSTlMAAQIGCw4QEBIUFhcZGh0gICItMDQ5PEBAQUJERUZHSEhK SkxMTU9QUFZXWGBgZGZpcHl6f4CAiJCRk5SXmaCmrLC1uLzAxMXIyMrM0NDT09TU29zg4OLk5ebm 6fDx8/T09vf4+/z9ttm2NwAABH9JREFUeF7tV+9zFTUUzQOMFZUAiwZbkB9bXYEU3UI0FVhcNQVx rQpbsBopFuX8//+BMy/vvd3k7mRnio8PHc/HOyc35545yWbZkYOQtKYSvDeOgg/Xs4JR8OI/kDnc Q6jX02wqqtZlKR7tN47MWtNfOMRZOZ/n+fmVuNwMD6hRhDmQSlcNXCCpJAKVtbYiRnIViAVspQsp w9Wo0+OmNXMHQWeoUjzabxwSsP1mNDMn1/KHAB7ma+9EK9uhfi1CPdxgijJMggtjnzWeZViSVnmW jqaF0yyBtGYNVNRTiEEe7Xc4oxXtxS78Co+fVoO6BSTpZgEgKt78GyCCHGxvFN5iBh12a6kD+OsK C2EBtCqR6pRm8SdI0QCwMQ8AsvF+FGLA6HkcpV64cOwz5B7Iw3B492gsXVgtp0XVXRFTPANQyX5S jSya/iyyBvDMs1WfCFeQrNGqrOFqyRjRTL0CGh7SDnAANcQb7Uf3FS01ugRQe+kL6uRT5Jfu/nb3 UmR04++DENmTOAu8jszXmKMbUMxa8WZxPHmDHnSQK8AQo1+uswDKExUb0VyUN4B1VQSBLixspnnI W/c82m9k3woqMtofTMjI6E9waxfA7i3kE5IiQcYLjc5aAO0VmCGj3fzclPOsyO48CO0GjGa1KxyA RgRG/wPU8UH3EGxM8w3gJovQ4BdvM+Wl+9F9BdDGRvvwtbxv9MnVTcyxufruwkBX/Qh8VTfkCq2t DZ4JQM1ZkwXfFCnlE7guMvUiFw5YULl2aKSUVd9oVTHRRPeTdp8DCEMJdNlPajYziXE6XMEor2Is 3Y/ua19iX4dGq9YAKJuqb/SFB+jwYG2RmNmHQPDoUeA4r8NLrAzf/3pqm0AtyDeFfF2EhfArupKc jdM3WjILOHKjzo5XUrMGtrcBE8Zl77s9H0rKS/aj+4pCY12FRgvGpgOIvtFn76HDvbPpL64F1HQ9 edPERpeK0ValySywrqquQ1lGRnuERnN/ZAeNrkdeCQ5qKrNnVjk91DUqwisATvsl9/VeclNIwApT BAPw5gd8Y33L41efYo6nV48nRJNSyujhdRYHwD6K0RUA0pUSM5RpgZk/CE2/rOGPuiUPZs8j/ZL7 +tAW2Aeew0ZyZe+ZdeY25rh9hi3XaOH8RXhYo+nDvB1JIPcZbUOjDWNMBcqF/7N1yGi/9L7eaP/9 cyKWa7tpJznmyCdLNdp7CscPazR90zfZiEDWoBa8ggtFl0y68DC0nteO9aP7ash5hjSRK3tfgouP XuHF9y/w6tFFtmyjufNqDmd0iELrgrFRYzBFwKww8BPT8Ui/9L7KZrMpHKdyy0WgT63lG1vX8+tb G/naqcmSjWYajr+e0RRpzdm3wM9RUe/hueGUt50cOA3uoFNyz23uPL6zcf+P+xt3Hu9snluC0ZEc zZZvdKxRUp5lKR7tNw7jeEpujp3Z1YHd35Ev22hmxFE1Wpik3MubH324sXXtg2tff7H68ZeX2dFD Zm1G0mdNgrcUrLw/YW+dPsFOnH6bHXtvhb0p/I9/AQmEF7Y+Eo3CAAAAAElFTkSuQmCC "
+       preserveAspectRatio="none"
+       height="20.000017"
+       width="360" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 9,1039.3309 3.6e-5,10.0313 1.999964,0 -3.5e-5,-10.0313 z"
+       id="path4446"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:nodetypes="cccc"
+       inkscape:connector-curvature="0"
+       id="path4448"
+       d="m 15,1039.3466 -5,-4.9844 -5,5 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 87.125,4.984375 87.125,5 86,5 86,12.005859 82,12 l 5,5 5,-4.984375 -4,-0.0059 0,-5.025391 7,0 L 95,17 l 2,0 0,-12 -0.46875,0 0,-0.015625 -9.40625,0 z"
+       transform="translate(0,1032.3622)"
+       id="path4509"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 28,3.9882812 2.814453,2.8203126 -4.777344,4.7460942 0,0.04297 -0.03711,0 L 26,17 28,17 28,12.423828 32.228516,8.2226562 35,11 35,4 28,3.9882812 Z"
+       transform="translate(0,1032.3622)"
+       id="path4450"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 53,4 0.0059,3.984375 -6.005859,0 0,2 L 47,17 l 2,0 0,-7.015625 4.009766,0 L 53.015625,14 58,9 53,4 Z"
+       transform="translate(0,1032.3622)"
+       id="path4208"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="M 67.025391,4.4101562 67.003906,17 l 2,0 0,-7.5527344 3.685547,3.8710934 -2.683114,2.694508 6.989812,0.05505 0.01101,-7.0846724 -2.854816,2.9210504 z"
+       transform="translate(0,1032.3622)"
+       id="path4424"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccccc" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 170,1035.3622 -4,5 3,0 0,5 2,0 0,-5 3,0 z"
+       id="path4735"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccccccc" />
+    <g
+       id="g4237">
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 189,1039.3309 4e-5,10.0313 1.99996,0 -3e-5,-10.0313 z"
+         id="path4233"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         sodipodi:nodetypes="cccc"
+         inkscape:connector-curvature="0"
+         id="path4235"
+         d="m 195,1039.3466 -5,-4.9844 -5,5 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <path
+       id="path4221"
+       d="m 112.00001,1036.3505 -2.81445,2.8203 4.77734,4.7461 0,0.043 0.0371,0 0,5.4023 -2,0 0,-4.5762 -4.22852,-4.2011 -2.77148,2.7773 0,-7 7,-0.012 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       id="path4223"
+       d="m 128.00028,1036.3622 -0.006,3.9844 6.00586,0 0,2 0,7.0156 -2,0 0,-7.0156 -4.00977,0 -0.006,4.0156 -4.98437,-5 5,-5 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <path
+       sodipodi:nodetypes="cccccccccc"
+       inkscape:connector-curvature="0"
+       id="path4225"
+       d="m 153.98575,1036.7724 0.0215,12.5898 -2,0 0,-7.5527 -3.68555,3.8711 2.68312,2.6945 -6.98982,0.055 -0.011,-7.0847 2.85482,2.9211 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <g
+       id="g4254"
+       transform="translate(-2.0000461,0)">
+      <circle
+         r="3"
+         transform="scale(1,-1)"
+         cy="-1044.3622"
+         cx="210.04105"
+         id="path4231"
+         style="opacity:1;fill:none;fill-opacity:0.43824702;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         id="path4247"
+         transform="translate(0,1032.3622)"
+         d="m 211,3.9882812 2.81445,2.8203126 -1.76562,1.7539062 c 0.58436,0.3442274 1.07073,0.8277607 1.41797,1.4101562 l 1.76172,-1.75 L 218,11 218,4 211,3.9882812 Z M 209,15.84375 209,17 l 2,0 0,-1.130859 C 210.69097,15.946541 210.3729,16 210.04102,16 209.67912,16 209.3342,15.935262 209,15.84375 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       transform="translate(17.999954,0)"
+       id="g4258">
+      <circle
+         style="opacity:1;fill:none;fill-opacity:0.43824702;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
+         id="circle4260"
+         cx="210.04105"
+         cy="-1044.3622"
+         transform="scale(1,-1)"
+         r="3" />
+      <path
+         inkscape:connector-curvature="0"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 211,3.9882812 2.81445,2.8203126 -1.76562,1.7539062 c 0.58436,0.3442274 1.07073,0.8277607 1.41797,1.4101562 l 1.76172,-1.75 L 218,11 218,4 211,3.9882812 Z M 209,15.84375 209,17 l 2,0 0,-1.130859 C 210.69097,15.946541 210.3729,16 210.04102,16 209.67912,16 209.3342,15.935262 209,15.84375 Z"
+         transform="translate(0,1032.3622)"
+         id="path4262" />
+    </g>
+    <g
+       id="g4268"
+       transform="translate(37.999954,0)">
+      <circle
+         r="3"
+         transform="scale(1,-1)"
+         cy="-1044.3622"
+         cx="210.04105"
+         id="circle4270"
+         style="opacity:1;fill:none;fill-opacity:0.43824702;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
+      <path
+         id="path4272"
+         transform="translate(0,1032.3622)"
+         d="m 211,3.9882812 2.81445,2.8203126 -1.76562,1.7539062 c 0.58436,0.3442274 1.07073,0.8277607 1.41797,1.4101562 l 1.76172,-1.75 L 218,11 218,4 211,3.9882812 Z M 209,15.84375 209,17 l 2,0 0,-1.130859 C 210.69097,15.946541 210.3729,16 210.04102,16 209.67912,16 209.3342,15.935262 209,15.84375 Z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         inkscape:connector-curvature="0" />
+    </g>
+    <g
+       id="g4274"
+       transform="translate(80,0)">
+      <path
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path4276"
+         d="m 189,1039.3309 4e-5,10.0313 1.99996,0 -3e-5,-10.0313 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 195,1039.3466 -5,-4.9844 -5,5 z"
+         id="path4278"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccc" />
+    </g>
+    <path
+       id="path4295"
+       d="m 290,1035.3622 a 2,2 0 0 0 -2,2 2,2 0 0 0 2,2 2,2 0 0 0 2,-2 2,2 0 0 0 -2,-2 z m 0,4 -4,5 3,0 0,5 2,0 0,-5 3,0 -4,-5 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g4313">
+      <g
+         id="g4299"
+         transform="translate(115.01146,2)">
+        <path
+           sodipodi:nodetypes="ccccc"
+           inkscape:connector-curvature="0"
+           id="path4301"
+           d="m 189,1037.3422 4e-5,7.9763 1.99996,0 -3e-5,-7.9763 z"
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+        <path
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="M 192.99451,1037.3474 190,1034.3622 l -3.01146,3.0115 z"
+           id="path4303"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="cccc" />
+      </g>
+      <g
+         transform="matrix(1,0,0,-1,123.01146,2083.7244)"
+         id="g4307">
+        <path
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 189,1039.3309 4e-5,10.0313 1.99996,0 -3e-5,-10.0313 z"
+           id="path4309"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           sodipodi:nodetypes="cccc"
+           inkscape:connector-curvature="0"
+           id="path4311"
+           d="m 195,1039.3466 -5,-4.9844 -5,5 z"
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      </g>
+    </g>
+    <g
+       id="g4321"
+       transform="matrix(-1,0,0,-1,640.01146,2083.7244)">
+      <g
+         transform="translate(115.01146,2)"
+         id="g4323">
+        <path
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 189,1037.3422 4e-5,7.9763 1.99996,0 -3e-5,-7.9763 z"
+           id="path4325"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="ccccc" />
+        <path
+           sodipodi:nodetypes="cccc"
+           inkscape:connector-curvature="0"
+           id="path4327"
+           d="M 192.99451,1037.3474 190,1034.3622 l -3.01146,3.0115 z"
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      </g>
+      <g
+         id="g4329"
+         transform="matrix(1,0,0,-1,123.01146,2083.7244)">
+        <path
+           sodipodi:nodetypes="ccccc"
+           inkscape:connector-curvature="0"
+           id="path4331"
+           d="m 189,1039.3309 4e-5,10.0313 1.99996,0 -3e-5,-10.0313 z"
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+        <path
+           style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+           d="m 195,1039.3466 -5,-4.9844 -5,5 z"
+           id="path4333"
+           inkscape:connector-curvature="0"
+           sodipodi:nodetypes="cccc" />
+      </g>
+    </g>
+    <path
+       style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
+       d="m 349,3 0,1 -3,0 0,5.2265625 L 343.95508,10 347,13 l 0,0.904297 1.61133,1.425781 1.88867,-1.671875 1.89062,1.671875 L 354,13.90625 354,13 357.04492,10.044922 355,9.2617188 355,4 l -3,0 0,-1 -3,0 z m -2,2 7,0 0,3.8769531 L 350.48633,7.53125 347,8.8496094 347,5 Z m -0.2793,9.992188 -2.2207,1.966796 0.66211,0.748047 1.55859,-1.378906 L 348.61133,18 350.5,16.328125 352.39062,18 l 1.88868,-1.671875 1.55859,1.378906 0.66211,-0.748047 -2.2207,-1.966796 -1.88868,1.673828 -1.89062,-1.673828 -1.88867,1.673828 -1.89063,-1.673828 z"
+       transform="translate(0,1032.3622)"
+       id="path4341"
+       inkscape:connector-curvature="0" />
+    <g
+       id="g4384">
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 370,1036.3505 2.81445,2.8203 -4.77734,4.7461 0,0.043 -0.0371,0 0,5.4023 2,0 0,-4.5762 4.22852,-4.2011 2.77148,2.7773 0,-7 -7,-0.012 z"
+         id="path4374"
+         inkscape:connector-curvature="0" />
+      <path
+         sodipodi:nodetypes="ccccccccc"
+         inkscape:connector-curvature="0"
+         id="path4378"
+         d="m 365.18556,1039.1708 4.77734,4.7461 0,0.043 0.0371,0 0,5.4023 -2,0 0,-4.5762 -4.22852,-4.2011 z"
+         style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <g
+       id="g4388"
+       transform="matrix(-1,0,0,1,760.00001,0)">
+      <path
+         inkscape:connector-curvature="0"
+         id="path4390"
+         d="m 370,1036.3505 2.81445,2.8203 -4.77734,4.7461 0,0.043 -0.0371,0 0,5.4023 2,0 0,-4.5762 4.22852,-4.2011 2.77148,2.7773 0,-7 -7,-0.012 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 365.18556,1039.1708 4.77734,4.7461 0,0.043 0.0371,0 0,5.4023 -2,0 0,-4.5762 -4.22852,-4.2011 z"
+         id="path4392"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccc" />
+    </g>
+    <g
+       id="g4438">
+      <path
+         id="path4421"
+         transform="translate(0,1032.3622)"
+         d="m 407.0293,3.9882812 0,5.4023438 0.0371,0 0,0.042969 1.95117,1.9375 0,5.638672 2.8164,-2.820313 2.72657,2.796875 1.44531,-1.382812 -2.76758,-2.837891 0.0195,-0.02148 2.75977,-2.7460939 -5.5293,0.00977 -1.45898,-1.4433584 0,-4.5761719 -2,0 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         inkscape:connector-curvature="0" />
+      <path
+         sodipodi:nodetypes="ccccccccc"
+         inkscape:connector-curvature="0"
+         id="path4423"
+         d="m 404.21408,1046.5416 4.77734,-4.7461 0,-0.043 0.0371,0 0,-5.4023 -2,0 0,4.5762 -4.22852,4.2011 z"
+         style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <g
+       id="g4442"
+       transform="matrix(-1,0,0,1,840.01754,0)">
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 407.0293,3.9882812 0,5.4023438 0.0371,0 0,0.042969 1.95117,1.9375 0,5.638672 2.8164,-2.820313 2.72657,2.796875 1.44531,-1.382812 -2.76758,-2.837891 0.0195,-0.02148 2.75977,-2.7460939 -5.5293,0.00977 -1.45898,-1.4433557 0,-4.5761719 -2,0 z"
+         transform="translate(0,1032.3622)"
+         id="path4444"
+         inkscape:connector-curvature="0" />
+      <path
+         style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 404.21408,1046.5416 4.77734,-4.7461 0,-0.043 0.0371,0 0,-5.4023 -2,0 0,4.5762 -4.22852,4.2011 z"
+         id="path4447"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccccccc" />
+    </g>
+    <g
+       id="g4465"
+       transform="translate(-0.99975,0)">
+      <path
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path4455"
+         d="m 449,1041.3622 4e-5,8 1.99996,0 -3e-5,-8 z"
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 454.0156,1045.3622 4.9844,-5 -5,-5 z"
+         id="path4457"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="cccc" />
+      <path
+         style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 455,1039.3466 -6,0 0,2 6,-10e-5 z"
+         id="path4461"
+         inkscape:connector-curvature="0"
+         sodipodi:nodetypes="ccccc" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         inkscape:connector-curvature="0"
+         id="path4463"
+         d="m 451.01565,1039.3466 -7.9629,0 0,2 7.9629,-10e-5 z"
+         style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    </g>
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path4473"
+       d="m 472.053,1041.3622 -4e-5,8 -1.99996,0 3e-5,-8 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 467.0374,1045.3622 -4.9844,-5 5,-5 z"
+       id="path4475"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="cccc" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 466.053,1039.3466 6,0 0,2 -6,-10e-5 z"
+       id="path4477"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path4479"
+       d="m 470.03735,1039.3466 7.9629,0 0,2 -7.9629,-10e-5 z"
+       style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 490,1036.3505 2.81445,2.8203 -4.77734,4.7461 0,0.043 -0.0371,0 0,5.4023 2,0 0,-4.5762 4.22852,-4.2011 2.77148,2.7773 0,-7 -7,-0.012 z"
+       id="path4491"
+       inkscape:connector-curvature="0" />
+    <path
+       style="fill:#000000;fill-opacity:0.50980392;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 490,1038.3622 -4e-5,11 -1.99996,0 3e-5,-11 z"
+       id="path4505"
+       inkscape:connector-curvature="0"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4510"
+       d="m 490,1036.3505 2.81445,2.8203 -4.77734,4.7461 0,0.043 -0.0371,0 0,5.4023 2,0 0,-4.5762 4.22852,-4.2011 2.77148,2.7773 0,-7 -7,-0.012 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       inkscape:connector-curvature="0"
+       id="path4514"
+       d="m 510.00001,1036.3505 -2.81445,2.8203 4.77734,4.7461 0,0.043 0.0371,0 0,5.4023 -2,0 0,-4.5762 -4.22852,-4.2011 -2.77148,2.7773 0,-7 7,-0.012 z"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:connector-curvature="0"
+       id="path4516"
+       d="m 510.00001,1038.3622 4e-5,11 1.99996,0 -3e-5,-11 z"
+       style="fill:#000000;fill-opacity:0.5098038;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
+    <path
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 510.00001,1036.3505 -2.81445,2.8203 4.77734,4.7461 0,0.043 0.0371,0 0,5.4023 -2,0 0,-4.5762 -4.22852,-4.2011 -2.77148,2.7773 0,-7 7,-0.012 z"
+       id="path4518"
+       inkscape:connector-curvature="0" />
+    <text
+       xml:space="preserve"
+       style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:12px;line-height:125%;font-family:'Times New Roman';-inkscape-font-specification:'Times New Roman';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       x="7.5"
+       y="1065.3622"
+       id="text4238"
+       sodipodi:linespacing="125%"><tspan
+         sodipodi:role="line"
+         id="tspan4240"
+         x="7.5"
+         y="1065.3622">0    1     2     3    4     5     6     7    8     9   10  11   12    13   14  15   16  17   18  19   20   21   22  23   24  25</tspan></text>
+    <path
+       inkscape:connector-curvature="0"
+       style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+       d="m 170,1045.3622 c -1.10457,0 -2,0.8954 -2,2 0,1.1046 0.89543,2 2,2 1.10457,0 2,-0.8954 2,-2 0,-1.1046 -0.89543,-2 -2,-2 z"
+       id="path3440"
+       sodipodi:nodetypes="sssss" />
+  </g>
+</svg>
index c511bd90fbc7db6e940d6abce045033eca31df44..e2561701352bdbcccd98c69d4f6d7e721ebe4d9c 100644 (file)
Binary files a/app/assets/images/sprite.png and b/app/assets/images/sprite.png differ
index df8e3e3d58c9cf6342bfb0f1f9e2071f57bc513e..b9270279ffe55376dc8d25b08789477054afdd2b 100644 (file)
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmln