Merge branch 'master' into moderation
This commit is contained in:
commit
e31376e28d
127 changed files with 4889 additions and 2105 deletions
2
Gemfile
2
Gemfile
|
@ -1,7 +1,7 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
# Require rails
|
||||
gem "rails", "5.0.4"
|
||||
gem "rails", "5.0.5"
|
||||
|
||||
# Require things which have moved to gems in ruby 1.9
|
||||
gem "bigdecimal", "~> 1.1.0", :platforms => :ruby_19
|
||||
|
|
112
Gemfile.lock
112
Gemfile.lock
|
@ -3,41 +3,41 @@ GEM
|
|||
specs:
|
||||
SystemTimer (1.2.3)
|
||||
aasm (4.1.0)
|
||||
actioncable (5.0.4)
|
||||
actionpack (= 5.0.4)
|
||||
actioncable (5.0.5)
|
||||
actionpack (= 5.0.5)
|
||||
nio4r (>= 1.2, < 3.0)
|
||||
websocket-driver (~> 0.6.1)
|
||||
actionmailer (5.0.4)
|
||||
actionpack (= 5.0.4)
|
||||
actionview (= 5.0.4)
|
||||
activejob (= 5.0.4)
|
||||
actionmailer (5.0.5)
|
||||
actionpack (= 5.0.5)
|
||||
actionview (= 5.0.5)
|
||||
activejob (= 5.0.5)
|
||||
mail (~> 2.5, >= 2.5.4)
|
||||
rails-dom-testing (~> 2.0)
|
||||
actionpack (5.0.4)
|
||||
actionview (= 5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
actionpack (5.0.5)
|
||||
actionview (= 5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
rack (~> 2.0)
|
||||
rack-test (~> 0.6.3)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
||||
actionpack-page_caching (1.1.0)
|
||||
actionpack (>= 4.0.0, < 6)
|
||||
actionview (5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
actionview (5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
builder (~> 3.1)
|
||||
erubis (~> 2.7.0)
|
||||
rails-dom-testing (~> 2.0)
|
||||
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
||||
activejob (5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
activejob (5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
globalid (>= 0.3.6)
|
||||
activemodel (5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
activerecord (5.0.4)
|
||||
activemodel (= 5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
activemodel (5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
activerecord (5.0.5)
|
||||
activemodel (= 5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
arel (~> 7.0)
|
||||
activesupport (5.0.4)
|
||||
activesupport (5.0.5)
|
||||
concurrent-ruby (~> 1.0, >= 1.0.2)
|
||||
i18n (~> 0.7)
|
||||
minitest (~> 5.1)
|
||||
|
@ -46,13 +46,13 @@ GEM
|
|||
public_suffix (~> 2.0, >= 2.0.2)
|
||||
arel (7.1.4)
|
||||
ast (2.3.0)
|
||||
autoprefixer-rails (7.1.1.2)
|
||||
autoprefixer-rails (7.1.2.3)
|
||||
execjs
|
||||
bigdecimal (1.1.0)
|
||||
builder (3.2.3)
|
||||
canonical-rails (0.2.0)
|
||||
canonical-rails (0.2.1)
|
||||
rails (>= 4.1, < 5.2)
|
||||
capybara (2.14.3)
|
||||
capybara (2.14.4)
|
||||
addressable
|
||||
mime-types (>= 1.16)
|
||||
nokogiri (>= 1.3.3)
|
||||
|
@ -88,13 +88,13 @@ GEM
|
|||
dynamic_form (1.1.4)
|
||||
erubis (2.7.0)
|
||||
execjs (2.7.0)
|
||||
exifr (1.2.5)
|
||||
exifr (1.3.1)
|
||||
factory_girl (4.8.0)
|
||||
activesupport (>= 3.0.0)
|
||||
factory_girl_rails (4.8.0)
|
||||
factory_girl (~> 4.8.0)
|
||||
railties (>= 3.0.0)
|
||||
faraday (0.12.1)
|
||||
faraday (0.12.2)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ffi (1.9.18)
|
||||
fspath (3.1.0)
|
||||
|
@ -102,20 +102,20 @@ GEM
|
|||
globalid (0.4.0)
|
||||
activesupport (>= 4.2.0)
|
||||
hashdiff (0.3.4)
|
||||
hashie (3.5.5)
|
||||
hashie (3.5.6)
|
||||
htmlentities (4.3.4)
|
||||
http_accept_language (2.0.5)
|
||||
i18n (0.8.4)
|
||||
i18n (0.8.6)
|
||||
i18n-js (3.0.0)
|
||||
i18n (~> 0.6, >= 0.6.6)
|
||||
image_optim (0.24.3)
|
||||
image_optim (0.25.0)
|
||||
exifr (~> 1.2, >= 1.2.2)
|
||||
fspath (~> 3.0)
|
||||
image_size (~> 1.5)
|
||||
in_threads (~> 1.3)
|
||||
progress (~> 3.0, >= 3.0.1)
|
||||
image_optim_rails (0.4.0)
|
||||
image_optim (~> 0.24.0)
|
||||
image_optim_rails (0.4.1)
|
||||
image_optim (~> 0.24)
|
||||
rails
|
||||
sprockets
|
||||
image_size (1.5.0)
|
||||
|
@ -157,7 +157,7 @@ GEM
|
|||
mime-types-data (3.2016.0521)
|
||||
mimemagic (0.3.0)
|
||||
mini_portile2 (2.2.0)
|
||||
minitest (5.10.2)
|
||||
minitest (5.10.3)
|
||||
multi_json (1.12.1)
|
||||
multi_xml (0.6.0)
|
||||
multipart-post (2.0.0)
|
||||
|
@ -186,7 +186,7 @@ GEM
|
|||
omniauth-github (1.3.0)
|
||||
omniauth (~> 1.5)
|
||||
omniauth-oauth2 (>= 1.4.0, < 2.0)
|
||||
omniauth-google-oauth2 (0.5.0)
|
||||
omniauth-google-oauth2 (0.5.2)
|
||||
jwt (~> 1.5)
|
||||
multi_json (~> 1.3)
|
||||
omniauth (>= 1.1.1)
|
||||
|
@ -212,7 +212,7 @@ GEM
|
|||
cocaine (~> 0.5.5)
|
||||
mime-types
|
||||
mimemagic (= 0.3.0)
|
||||
parallel (1.11.2)
|
||||
parallel (1.12.0)
|
||||
parser (2.4.0.0)
|
||||
ast (~> 2.2)
|
||||
pg (0.21.0)
|
||||
|
@ -224,26 +224,26 @@ GEM
|
|||
progress (3.3.1)
|
||||
psych (2.2.4)
|
||||
public_suffix (2.0.5)
|
||||
r2 (0.2.6)
|
||||
r2 (0.2.7)
|
||||
rack (2.0.3)
|
||||
rack-cors (0.4.1)
|
||||
rack-cors (1.0.1)
|
||||
rack-openid (1.3.1)
|
||||
rack (>= 1.1.0)
|
||||
ruby-openid (>= 2.1.8)
|
||||
rack-test (0.6.3)
|
||||
rack (>= 1.0)
|
||||
rack-uri_sanitizer (0.0.2)
|
||||
rails (5.0.4)
|
||||
actioncable (= 5.0.4)
|
||||
actionmailer (= 5.0.4)
|
||||
actionpack (= 5.0.4)
|
||||
actionview (= 5.0.4)
|
||||
activejob (= 5.0.4)
|
||||
activemodel (= 5.0.4)
|
||||
activerecord (= 5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
bundler (>= 1.3.0, < 2.0)
|
||||
railties (= 5.0.4)
|
||||
rails (5.0.5)
|
||||
actioncable (= 5.0.5)
|
||||
actionmailer (= 5.0.5)
|
||||
actionpack (= 5.0.5)
|
||||
actionview (= 5.0.5)
|
||||
activejob (= 5.0.5)
|
||||
activemodel (= 5.0.5)
|
||||
activerecord (= 5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
bundler (>= 1.3.0)
|
||||
railties (= 5.0.5)
|
||||
sprockets-rails (>= 2.0.0)
|
||||
rails-controller-testing (1.0.2)
|
||||
actionpack (~> 5.x, >= 5.0.1)
|
||||
|
@ -257,16 +257,16 @@ GEM
|
|||
rails-i18n (4.0.2)
|
||||
i18n (~> 0.6)
|
||||
rails (>= 4.0)
|
||||
railties (5.0.4)
|
||||
actionpack (= 5.0.4)
|
||||
activesupport (= 5.0.4)
|
||||
railties (5.0.5)
|
||||
actionpack (= 5.0.5)
|
||||
activesupport (= 5.0.5)
|
||||
method_source
|
||||
rake (>= 0.8.7)
|
||||
thor (>= 0.18.1, < 2.0)
|
||||
rainbow (2.2.2)
|
||||
rake
|
||||
rake (12.0.0)
|
||||
rb-fsevent (0.9.8)
|
||||
rb-fsevent (0.10.2)
|
||||
rb-inotify (0.9.10)
|
||||
ffi (>= 0.5.0, < 2)
|
||||
record_tag_helper (1.0.0)
|
||||
|
@ -291,14 +291,18 @@ GEM
|
|||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.4.4)
|
||||
nokogumbo (~> 1.4.1)
|
||||
sass (3.4.24)
|
||||
sass (3.5.1)
|
||||
sass-listen (~> 4.0.0)
|
||||
sass-listen (4.0.0)
|
||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||
rb-inotify (~> 0.9, >= 0.9.7)
|
||||
sass-rails (5.0.6)
|
||||
railties (>= 4.0.0, < 6)
|
||||
sass (~> 3.1)
|
||||
sprockets (>= 2.8, < 4.0)
|
||||
sprockets-rails (>= 2.0, < 4.0)
|
||||
tilt (>= 1.1, < 3)
|
||||
secure_headers (3.6.5)
|
||||
secure_headers (3.6.7)
|
||||
useragent
|
||||
simplecov (0.14.1)
|
||||
docile (~> 1.1.0)
|
||||
|
@ -319,8 +323,8 @@ GEM
|
|||
ref
|
||||
thor (0.19.4)
|
||||
thread_safe (0.3.6)
|
||||
tilt (2.0.7)
|
||||
tins (1.14.0)
|
||||
tilt (2.0.8)
|
||||
tins (1.15.0)
|
||||
tzinfo (1.2.3)
|
||||
thread_safe (~> 0.1)
|
||||
uglifier (3.2.0)
|
||||
|
@ -387,7 +391,7 @@ DEPENDENCIES
|
|||
r2
|
||||
rack-cors
|
||||
rack-uri_sanitizer
|
||||
rails (= 5.0.4)
|
||||
rails (= 5.0.5)
|
||||
rails-controller-testing
|
||||
rails-i18n (~> 4.0.0)
|
||||
record_tag_helper
|
||||
|
|
|
@ -31,7 +31,7 @@ folder 'vendor/assets' do
|
|||
folder 'img', 'src/img'
|
||||
end
|
||||
|
||||
from 'git://github.com/domoritz/leaflet-locatecontrol.git', :tag => 'v0.54.0' do
|
||||
from 'git://github.com/domoritz/leaflet-locatecontrol.git', :tag => 'v0.62.0' do
|
||||
file 'leaflet.locate.js', 'src/L.Control.Locate.js'
|
||||
end
|
||||
|
||||
|
|
BIN
app/assets/images/banners/banner-sotm-2017.png
Normal file
BIN
app/assets/images/banners/banner-sotm-2017.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 32 KiB |
Binary file not shown.
Before Width: | Height: | Size: 48 KiB |
Binary file not shown.
Before Width: | Height: | Size: 70 KiB |
Binary file not shown.
Before Width: | Height: | Size: 24 KiB |
|
@ -305,7 +305,7 @@ class ApiController < ApplicationController
|
|||
def permissions
|
||||
@permissions = if current_token.present?
|
||||
ClientApplication.all_permissions.select { |p| current_token.read_attribute(p) }
|
||||
elsif @user
|
||||
elsif current_user
|
||||
ClientApplication.all_permissions
|
||||
else
|
||||
[]
|
||||
|
|
|
@ -5,11 +5,14 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
before_action :fetch_body
|
||||
|
||||
attr_accessor :current_user
|
||||
helper_method :current_user
|
||||
|
||||
def authorize_web
|
||||
if session[:user]
|
||||
@user = User.where(:id => session[:user]).where("status IN ('active', 'confirmed', 'suspended')").first
|
||||
self.current_user = User.where(:id => session[:user]).where("status IN ('active', 'confirmed', 'suspended')").first
|
||||
|
||||
if @user.status == "suspended"
|
||||
if current_user.status == "suspended"
|
||||
session.delete(:user)
|
||||
session_expires_automatically
|
||||
|
||||
|
@ -17,7 +20,7 @@ class ApplicationController < ActionController::Base
|
|||
|
||||
# don't allow access to any auth-requiring part of the site unless
|
||||
# the new CTs have been seen (and accept/decline chosen).
|
||||
elsif !@user.terms_seen && flash[:skip_terms].nil?
|
||||
elsif !current_user.terms_seen && flash[:skip_terms].nil?
|
||||
flash[:notice] = t "user.terms.you need to accept or decline"
|
||||
if params[:referer]
|
||||
redirect_to :controller => "user", :action => "terms", :referer => params[:referer]
|
||||
|
@ -26,18 +29,18 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
end
|
||||
elsif session[:token]
|
||||
if @user = User.authenticate(:token => session[:token])
|
||||
session[:user] = @user.id
|
||||
if self.current_user = User.authenticate(:token => session[:token])
|
||||
session[:user] = current_user.id
|
||||
end
|
||||
end
|
||||
rescue StandardError => ex
|
||||
logger.info("Exception authorizing user: #{ex}")
|
||||
reset_session
|
||||
@user = nil
|
||||
self.current_user = nil
|
||||
end
|
||||
|
||||
def require_user
|
||||
unless @user
|
||||
unless current_user
|
||||
if request.get?
|
||||
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
|
||||
else
|
||||
|
@ -47,7 +50,7 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def require_oauth
|
||||
@oauth = @user.access_token(OAUTH_KEY) if @user && defined? OAUTH_KEY
|
||||
@oauth = current_user.access_token(OAUTH_KEY) if current_user && defined? OAUTH_KEY
|
||||
end
|
||||
|
||||
##
|
||||
|
@ -100,7 +103,7 @@ class ApplicationController < ActionController::Base
|
|||
def require_allow_write_api
|
||||
require_capability(:allow_write_api)
|
||||
|
||||
if REQUIRE_TERMS_AGREED && @user.terms_agreed.nil?
|
||||
if REQUIRE_TERMS_AGREED && current_user.terms_agreed.nil?
|
||||
report_error "You must accept the contributor terms before you can edit.", :forbidden
|
||||
return false
|
||||
end
|
||||
|
@ -122,7 +125,7 @@ class ApplicationController < ActionController::Base
|
|||
# require that the user is a moderator, or fill out a helpful error message
|
||||
# and return them to the index for the controller this is wrapped from.
|
||||
def require_moderator
|
||||
unless @user.moderator?
|
||||
unless current_user.moderator?
|
||||
if request.get?
|
||||
flash[:error] = t("application.require_moderator.not_a_moderator")
|
||||
redirect_to :action => "index"
|
||||
|
@ -133,7 +136,7 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
##
|
||||
# sets up the @user object for use by other methods. this is mostly called
|
||||
# sets up the current_user for use by other methods. this is mostly called
|
||||
# from the authorize method, but can be called elsewhere if authorisation
|
||||
# is optional.
|
||||
def setup_user_auth
|
||||
|
@ -141,7 +144,7 @@ class ApplicationController < ActionController::Base
|
|||
unless Authenticator.new(self, [:token]).allow?
|
||||
username, passwd = get_auth_data # parse from headers
|
||||
# authenticate per-scheme
|
||||
@user = if username.nil?
|
||||
self.current_user = if username.nil?
|
||||
nil # no authentication provided - perhaps first connect (client should retry after 401)
|
||||
elsif username == "token"
|
||||
User.authenticate(:token => passwd) # preferred - random token for user from db, passed in basic auth
|
||||
|
@ -151,9 +154,9 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
# have we identified the user?
|
||||
if @user
|
||||
if current_user
|
||||
# check if the user has been banned
|
||||
user_block = @user.blocks.active.take
|
||||
user_block = current_user.blocks.active.take
|
||||
unless user_block.nil?
|
||||
set_locale
|
||||
if user_block.zero_hour?
|
||||
|
@ -166,7 +169,7 @@ class ApplicationController < ActionController::Base
|
|||
# if the user hasn't seen the contributor terms then don't
|
||||
# allow editing - they have to go to the web site and see
|
||||
# (but can decline) the CTs to continue.
|
||||
if REQUIRE_TERMS_SEEN && !@user.terms_seen && flash[:skip_terms].nil?
|
||||
if REQUIRE_TERMS_SEEN && !current_user.terms_seen && flash[:skip_terms].nil?
|
||||
set_locale
|
||||
report_error t("application.setup_user_auth.need_to_see_terms"), :forbidden
|
||||
end
|
||||
|
@ -178,7 +181,7 @@ class ApplicationController < ActionController::Base
|
|||
setup_user_auth
|
||||
|
||||
# handle authenticate pass/fail
|
||||
unless @user
|
||||
unless current_user
|
||||
# no auth, the user does not exist or the password was wrong
|
||||
response.headers["WWW-Authenticate"] = "Basic realm=\"#{realm}\""
|
||||
render :plain => errormessage, :status => :unauthorized
|
||||
|
@ -196,7 +199,7 @@ class ApplicationController < ActionController::Base
|
|||
# good idea to do that in this branch.
|
||||
def authorize_moderator(errormessage = "Access restricted to moderators")
|
||||
# check user is a moderator
|
||||
unless @user.moderator?
|
||||
unless current_user.moderator?
|
||||
render :plain => errormessage, :status => :forbidden
|
||||
false
|
||||
end
|
||||
|
@ -266,7 +269,7 @@ class ApplicationController < ActionController::Base
|
|||
end
|
||||
|
||||
def require_public_data
|
||||
unless @user.data_public?
|
||||
unless current_user.data_public?
|
||||
report_error "You must make your edits public to upload new data", :forbidden
|
||||
false
|
||||
end
|
||||
|
@ -297,8 +300,8 @@ class ApplicationController < ActionController::Base
|
|||
def preferred_languages
|
||||
@languages ||= if params[:locale]
|
||||
Locale.list(params[:locale])
|
||||
elsif @user
|
||||
@user.preferred_languages
|
||||
elsif current_user
|
||||
current_user.preferred_languages
|
||||
else
|
||||
Locale.list(http_accept_language.user_preferred_languages)
|
||||
end
|
||||
|
@ -307,9 +310,9 @@ class ApplicationController < ActionController::Base
|
|||
helper_method :preferred_languages
|
||||
|
||||
def set_locale
|
||||
if @user && @user.languages.empty? && !http_accept_language.user_preferred_languages.empty?
|
||||
@user.languages = http_accept_language.user_preferred_languages
|
||||
@user.save
|
||||
if current_user && current_user.languages.empty? && !http_accept_language.user_preferred_languages.empty?
|
||||
current_user.languages = http_accept_language.user_preferred_languages
|
||||
current_user.save
|
||||
end
|
||||
|
||||
I18n.locale = Locale.available.preferred(preferred_languages)
|
||||
|
@ -427,8 +430,8 @@ class ApplicationController < ActionController::Base
|
|||
def preferred_editor
|
||||
editor = if params[:editor]
|
||||
params[:editor]
|
||||
elsif @user && @user.preferred_editor
|
||||
@user.preferred_editor
|
||||
elsif current_user && current_user.preferred_editor
|
||||
current_user.preferred_editor
|
||||
else
|
||||
DEFAULT_EDITOR
|
||||
end
|
||||
|
@ -466,16 +469,6 @@ class ApplicationController < ActionController::Base
|
|||
[user, pass]
|
||||
end
|
||||
|
||||
# used by oauth plugin to get the current user
|
||||
def current_user
|
||||
@user
|
||||
end
|
||||
|
||||
# used by oauth plugin to set the current user
|
||||
def current_user=(user)
|
||||
@user = user
|
||||
end
|
||||
|
||||
# override to stop oauth plugin sending errors
|
||||
def invalid_oauth_response; end
|
||||
end
|
||||
|
|
|
@ -58,7 +58,7 @@ class BrowseController < ApplicationController
|
|||
def changeset
|
||||
@type = "changeset"
|
||||
@changeset = Changeset.find(params[:id])
|
||||
@comments = if @user && @user.moderator?
|
||||
@comments = if current_user && current_user.moderator?
|
||||
@changeset.comments.unscope(:where => :visible).includes(:author)
|
||||
else
|
||||
@changeset.comments.includes(:author)
|
||||
|
@ -77,7 +77,7 @@ class BrowseController < ApplicationController
|
|||
def note
|
||||
@type = "note"
|
||||
|
||||
if @user && @user.moderator?
|
||||
if current_user && current_user.moderator?
|
||||
@note = Note.find(params[:id])
|
||||
@note_comments = @note.comments.unscope(:where => :visible)
|
||||
else
|
||||
|
|
|
@ -28,11 +28,11 @@ class ChangesetController < ApplicationController
|
|||
cs = Changeset.from_xml(request.raw_post, true)
|
||||
|
||||
# Assume that Changeset.from_xml has thrown an exception if there is an error parsing the xml
|
||||
cs.user_id = @user.id
|
||||
cs.user_id = current_user.id
|
||||
cs.save_with_tags!
|
||||
|
||||
# Subscribe user to changeset comments
|
||||
cs.subscribers << @user
|
||||
cs.subscribers << current_user
|
||||
|
||||
render :plain => cs.id.to_s
|
||||
end
|
||||
|
@ -53,7 +53,7 @@ class ChangesetController < ApplicationController
|
|||
assert_method :put
|
||||
|
||||
changeset = Changeset.find(params[:id])
|
||||
check_changeset_consistency(changeset, @user)
|
||||
check_changeset_consistency(changeset, current_user)
|
||||
|
||||
# to close the changeset, we'll just set its closed_at time to
|
||||
# now. this might not be enough if there are concurrency issues,
|
||||
|
@ -75,7 +75,7 @@ class ChangesetController < ApplicationController
|
|||
assert_method :post
|
||||
|
||||
cs = Changeset.find(params[:id])
|
||||
check_changeset_consistency(cs, @user)
|
||||
check_changeset_consistency(cs, current_user)
|
||||
|
||||
# keep an array of lons and lats
|
||||
lon = []
|
||||
|
@ -127,7 +127,7 @@ class ChangesetController < ApplicationController
|
|||
assert_method :post
|
||||
|
||||
changeset = Changeset.find(params[:id])
|
||||
check_changeset_consistency(changeset, @user)
|
||||
check_changeset_consistency(changeset, current_user)
|
||||
|
||||
diff_reader = DiffReader.new(request.raw_post, changeset)
|
||||
Changeset.transaction do
|
||||
|
@ -242,8 +242,8 @@ class ChangesetController < ApplicationController
|
|||
changeset = Changeset.find(params[:id])
|
||||
new_changeset = Changeset.from_xml(request.raw_post)
|
||||
|
||||
check_changeset_consistency(changeset, @user)
|
||||
changeset.update_from(new_changeset, @user)
|
||||
check_changeset_consistency(changeset, current_user)
|
||||
changeset.update_from(new_changeset, current_user)
|
||||
render :xml => changeset.to_xml.to_s
|
||||
end
|
||||
|
||||
|
@ -265,7 +265,7 @@ class ChangesetController < ApplicationController
|
|||
end
|
||||
end
|
||||
|
||||
if (@params[:friends] || @params[:nearby]) && !@user
|
||||
if (@params[:friends] || @params[:nearby]) && !current_user
|
||||
require_user
|
||||
return
|
||||
end
|
||||
|
@ -277,17 +277,17 @@ class ChangesetController < ApplicationController
|
|||
changesets = conditions_nonempty(Changeset.all)
|
||||
|
||||
if @params[:display_name]
|
||||
changesets = if user.data_public? || user == @user
|
||||
changesets = if user.data_public? || user == current_user
|
||||
changesets.where(:user_id => user.id)
|
||||
else
|
||||
changesets.where("false")
|
||||
end
|
||||
elsif @params[:bbox]
|
||||
changesets = conditions_bbox(changesets, BoundingBox.from_bbox_params(params))
|
||||
elsif @params[:friends] && @user
|
||||
changesets = changesets.where(:user_id => @user.friend_users.identifiable)
|
||||
elsif @params[:nearby] && @user
|
||||
changesets = changesets.where(:user_id => @user.nearby)
|
||||
elsif @params[:friends] && current_user
|
||||
changesets = changesets.where(:user_id => current_user.friend_users.identifiable)
|
||||
elsif @params[:nearby] && current_user
|
||||
changesets = changesets.where(:user_id => current_user.nearby)
|
||||
end
|
||||
|
||||
if @params[:max_id]
|
||||
|
@ -324,17 +324,17 @@ class ChangesetController < ApplicationController
|
|||
# Add a comment to the changeset
|
||||
comment = changeset.comments.create(:changeset => changeset,
|
||||
:body => body,
|
||||
:author => @user)
|
||||
:author => current_user)
|
||||
|
||||
# Notify current subscribers of the new comment
|
||||
changeset.subscribers.visible.each do |user|
|
||||
if @user != user
|
||||
if current_user != user
|
||||
Notifier.changeset_comment_notification(comment, user).deliver_now
|
||||
end
|
||||
end
|
||||
|
||||
# Add the commenter to the subscribers if necessary
|
||||
changeset.subscribers << @user unless changeset.subscribers.exists?(@user.id)
|
||||
changeset.subscribers << current_user unless changeset.subscribers.exists?(current_user.id)
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
render :xml => changeset.to_xml.to_s
|
||||
|
@ -352,10 +352,10 @@ class ChangesetController < ApplicationController
|
|||
# Find the changeset and check it is valid
|
||||
changeset = Changeset.find(id)
|
||||
raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open?
|
||||
raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(@user.id)
|
||||
raise OSM::APIChangesetAlreadySubscribedError.new(changeset) if changeset.subscribers.exists?(current_user.id)
|
||||
|
||||
# Add the subscriber
|
||||
changeset.subscribers << @user
|
||||
changeset.subscribers << current_user
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
render :xml => changeset.to_xml.to_s
|
||||
|
@ -373,10 +373,10 @@ class ChangesetController < ApplicationController
|
|||
# Find the changeset and check it is valid
|
||||
changeset = Changeset.find(id)
|
||||
raise OSM::APIChangesetNotYetClosedError.new(changeset) if changeset.is_open?
|
||||
raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(@user.id)
|
||||
raise OSM::APIChangesetNotSubscribedError.new(changeset) unless changeset.subscribers.exists?(current_user.id)
|
||||
|
||||
# Remove the subscriber
|
||||
changeset.subscribers.delete(@user)
|
||||
changeset.subscribers.delete(current_user)
|
||||
|
||||
# Return a copy of the updated changeset
|
||||
render :xml => changeset.to_xml.to_s
|
||||
|
@ -496,7 +496,7 @@ class ChangesetController < ApplicationController
|
|||
# changesets if they're non-public
|
||||
setup_user_auth
|
||||
|
||||
raise OSM::APINotFoundError if @user.nil? || @user.id != u.id
|
||||
raise OSM::APINotFoundError if current_user.nil? || current_user.id != u.id
|
||||
end
|
||||
|
||||
changesets.where(:user_id => u.id)
|
||||
|
|
|
@ -14,27 +14,27 @@ class DiaryEntryController < ApplicationController
|
|||
|
||||
if request.post?
|
||||
@diary_entry = DiaryEntry.new(entry_params)
|
||||
@diary_entry.user = @user
|
||||
@diary_entry.user = current_user
|
||||
|
||||
if @diary_entry.save
|
||||
default_lang = @user.preferences.where(:k => "diary.default_language").first
|
||||
default_lang = current_user.preferences.where(:k => "diary.default_language").first
|
||||
if default_lang
|
||||
default_lang.v = @diary_entry.language_code
|
||||
default_lang.save!
|
||||
else
|
||||
@user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code)
|
||||
current_user.preferences.create(:k => "diary.default_language", :v => @diary_entry.language_code)
|
||||
end
|
||||
|
||||
# Subscribe user to diary comments
|
||||
@diary_entry.subscriptions.create(:user => @user)
|
||||
@diary_entry.subscriptions.create(:user => current_user)
|
||||
|
||||
redirect_to :action => "list", :display_name => @user.display_name
|
||||
redirect_to :action => "list", :display_name => current_user.display_name
|
||||
else
|
||||
render :action => "edit"
|
||||
end
|
||||
else
|
||||
default_lang = @user.preferences.where(:k => "diary.default_language").first
|
||||
lang_code = default_lang ? default_lang.v : @user.preferred_language
|
||||
default_lang = current_user.preferences.where(:k => "diary.default_language").first
|
||||
lang_code = default_lang ? default_lang.v : current_user.preferred_language
|
||||
@diary_entry = DiaryEntry.new(entry_params.merge(:language_code => lang_code))
|
||||
set_map_location
|
||||
render :action => "edit"
|
||||
|
@ -45,7 +45,7 @@ class DiaryEntryController < ApplicationController
|
|||
@title = t "diary_entry.edit.title"
|
||||
@diary_entry = DiaryEntry.find(params[:id])
|
||||
|
||||
if @user != @diary_entry.user
|
||||
if current_user != @diary_entry.user
|
||||
redirect_to :action => "view", :id => params[:id]
|
||||
elsif params[:diary_entry] && @diary_entry.update_attributes(entry_params)
|
||||
redirect_to :action => "view", :id => params[:id]
|
||||
|
@ -59,18 +59,18 @@ class DiaryEntryController < ApplicationController
|
|||
def comment
|
||||
@entry = DiaryEntry.find(params[:id])
|
||||
@diary_comment = @entry.comments.build(comment_params)
|
||||
@diary_comment.user = @user
|
||||
@diary_comment.user = current_user
|
||||
if @diary_comment.save
|
||||
|
||||
# Notify current subscribers of the new comment
|
||||
@entry.subscribers.visible.each do |user|
|
||||
if @user != user
|
||||
if current_user != user
|
||||
Notifier.diary_comment_notification(@diary_comment, user).deliver_now
|
||||
end
|
||||
end
|
||||
|
||||
# Add the commenter to the subscribers if necessary
|
||||
@entry.subscriptions.create(:user => @user) unless @entry.subscribers.exists?(@user.id)
|
||||
@entry.subscriptions.create(:user => current_user) unless @entry.subscribers.exists?(current_user.id)
|
||||
|
||||
redirect_to :action => "view", :display_name => @entry.user.display_name, :id => @entry.id
|
||||
else
|
||||
|
@ -83,7 +83,7 @@ class DiaryEntryController < ApplicationController
|
|||
def subscribe
|
||||
diary_entry = DiaryEntry.find(params[:id])
|
||||
|
||||
diary_entry.subscriptions.create(:user => @user) unless diary_entry.subscribers.exists?(@user.id)
|
||||
diary_entry.subscriptions.create(:user => current_user) unless diary_entry.subscribers.exists?(current_user.id)
|
||||
|
||||
redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
|
@ -93,7 +93,7 @@ class DiaryEntryController < ApplicationController
|
|||
def unsubscribe
|
||||
diary_entry = DiaryEntry.find(params[:id])
|
||||
|
||||
diary_entry.subscriptions.where(:user => @user).delete_all if diary_entry.subscribers.exists?(@user.id)
|
||||
diary_entry.subscriptions.where(:user => current_user).delete_all if diary_entry.subscribers.exists?(current_user.id)
|
||||
|
||||
redirect_to :action => "view", :display_name => diary_entry.user.display_name, :id => diary_entry.id
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
|
@ -112,17 +112,17 @@ class DiaryEntryController < ApplicationController
|
|||
return
|
||||
end
|
||||
elsif params[:friends]
|
||||
if @user
|
||||
if current_user
|
||||
@title = t "diary_entry.list.title_friends"
|
||||
@entries = DiaryEntry.where(:user_id => @user.friend_users)
|
||||
@entries = DiaryEntry.where(:user_id => current_user.friend_users)
|
||||
else
|
||||
require_user
|
||||
return
|
||||
end
|
||||
elsif params[:nearby]
|
||||
if @user
|
||||
if current_user
|
||||
@title = t "diary_entry.list.title_nearby"
|
||||
@entries = DiaryEntry.where(:user_id => @user.nearby)
|
||||
@entries = DiaryEntry.where(:user_id => current_user.nearby)
|
||||
else
|
||||
require_user
|
||||
return
|
||||
|
@ -237,7 +237,7 @@ class DiaryEntryController < ApplicationController
|
|||
# require that the user is a administrator, or fill out a helpful error message
|
||||
# and return them to the user page.
|
||||
def require_administrator
|
||||
unless @user.administrator?
|
||||
unless current_user.administrator?
|
||||
flash[:error] = t("user.filter.not_an_administrator")
|
||||
redirect_to :action => "view"
|
||||
end
|
||||
|
@ -250,13 +250,13 @@ class DiaryEntryController < ApplicationController
|
|||
@lon = @diary_entry.longitude
|
||||
@lat = @diary_entry.latitude
|
||||
@zoom = 12
|
||||
elsif @user.home_lat.nil? || @user.home_lon.nil?
|
||||
elsif current_user.home_lat.nil? || current_user.home_lon.nil?
|
||||
@lon = params[:lon] || -0.1
|
||||
@lat = params[:lat] || 51.5
|
||||
@zoom = params[:zoom] || 4
|
||||
else
|
||||
@lon = @user.home_lon
|
||||
@lat = @user.home_lat
|
||||
@lon = current_user.home_lon
|
||||
@lat = current_user.home_lat
|
||||
@zoom = 12
|
||||
end
|
||||
end
|
||||
|
|
|
@ -14,18 +14,18 @@ class MessageController < ApplicationController
|
|||
# The display_name param is the display name of the user that the message is being sent to.
|
||||
def new
|
||||
if request.post?
|
||||
if @user.sent_messages.where("sent_on >= ?", Time.now.getutc - 1.hour).count >= MAX_MESSAGES_PER_HOUR
|
||||
if current_user.sent_messages.where("sent_on >= ?", Time.now.getutc - 1.hour).count >= MAX_MESSAGES_PER_HOUR
|
||||
flash[:error] = t "message.new.limit_exceeded"
|
||||
else
|
||||
@message = Message.new(message_params)
|
||||
@message.to_user_id = @this_user.id
|
||||
@message.from_user_id = @user.id
|
||||
@message.from_user_id = current_user.id
|
||||
@message.sent_on = Time.now.getutc
|
||||
|
||||
if @message.save
|
||||
flash[:notice] = t "message.new.message_sent"
|
||||
Notifier.message_notification(@message).deliver_now
|
||||
redirect_to :action => "inbox", :display_name => @user.display_name
|
||||
redirect_to :action => "inbox", :display_name => current_user.display_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -38,7 +38,7 @@ class MessageController < ApplicationController
|
|||
def reply
|
||||
message = Message.find(params[:message_id])
|
||||
|
||||
if message.to_user_id == @user.id
|
||||
if message.to_user_id == current_user.id
|
||||
message.update(:message_read => true)
|
||||
|
||||
@message = Message.new(
|
||||
|
@ -51,7 +51,7 @@ class MessageController < ApplicationController
|
|||
|
||||
render :action => "new"
|
||||
else
|
||||
flash[:notice] = t "message.reply.wrong_user", :user => @user.display_name
|
||||
flash[:notice] = t "message.reply.wrong_user", :user => current_user.display_name
|
||||
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
|
@ -64,11 +64,11 @@ class MessageController < ApplicationController
|
|||
@title = t "message.read.title"
|
||||
@message = Message.find(params[:message_id])
|
||||
|
||||
if @message.to_user_id == @user.id || @message.from_user_id == @user.id
|
||||
@message.message_read = true if @message.to_user_id == @user.id
|
||||
if @message.to_user_id == current_user.id || @message.from_user_id == current_user.id
|
||||
@message.message_read = true if @message.to_user_id == current_user.id
|
||||
@message.save
|
||||
else
|
||||
flash[:notice] = t "message.read.wrong_user", :user => @user.display_name
|
||||
flash[:notice] = t "message.read.wrong_user", :user => current_user.display_name
|
||||
redirect_to :controller => "user", :action => "login", :referer => request.fullpath
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
|
@ -79,24 +79,24 @@ class MessageController < ApplicationController
|
|||
# Display the list of messages that have been sent to the user.
|
||||
def inbox
|
||||
@title = t "message.inbox.title"
|
||||
if @user && params[:display_name] == @user.display_name
|
||||
if current_user && params[:display_name] == current_user.display_name
|
||||
else
|
||||
redirect_to :action => "inbox", :display_name => @user.display_name
|
||||
redirect_to :action => "inbox", :display_name => current_user.display_name
|
||||
end
|
||||
end
|
||||
|
||||
# Display the list of messages that the user has sent to other users.
|
||||
def outbox
|
||||
@title = t "message.outbox.title"
|
||||
if @user && params[:display_name] == @user.display_name
|
||||
if current_user && params[:display_name] == current_user.display_name
|
||||
else
|
||||
redirect_to :action => "outbox", :display_name => @user.display_name
|
||||
redirect_to :action => "outbox", :display_name => current_user.display_name
|
||||
end
|
||||
end
|
||||
|
||||
# Set the message as being read or unread.
|
||||
def mark
|
||||
@message = Message.where("to_user_id = ? OR from_user_id = ?", @user.id, @user.id).find(params[:message_id])
|
||||
@message = Message.where("to_user_id = ? OR from_user_id = ?", current_user.id, current_user.id).find(params[:message_id])
|
||||
if params[:mark] == "unread"
|
||||
message_read = false
|
||||
notice = t "message.mark.as_unread"
|
||||
|
@ -107,7 +107,7 @@ class MessageController < ApplicationController
|
|||
@message.message_read = message_read
|
||||
if @message.save && !request.xhr?
|
||||
flash[:notice] = notice
|
||||
redirect_to :action => "inbox", :display_name => @user.display_name
|
||||
redirect_to :action => "inbox", :display_name => current_user.display_name
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
@title = t "message.no_such_message.title"
|
||||
|
@ -116,16 +116,16 @@ class MessageController < ApplicationController
|
|||
|
||||
# Delete the message.
|
||||
def delete
|
||||
@message = Message.where("to_user_id = ? OR from_user_id = ?", @user.id, @user.id).find(params[:message_id])
|
||||
@message.from_user_visible = false if @message.sender == @user
|
||||
@message.to_user_visible = false if @message.recipient == @user
|
||||
@message = Message.where("to_user_id = ? OR from_user_id = ?", current_user.id, current_user.id).find(params[:message_id])
|
||||
@message.from_user_visible = false if @message.sender == current_user
|
||||
@message.to_user_visible = false if @message.recipient == current_user
|
||||
if @message.save && !request.xhr?
|
||||
flash[:notice] = t "message.delete.deleted"
|
||||
|
||||
if params[:referer]
|
||||
redirect_to params[:referer]
|
||||
else
|
||||
redirect_to :action => "inbox", :display_name => @user.display_name
|
||||
redirect_to :action => "inbox", :display_name => current_user.display_name
|
||||
end
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
|
|
|
@ -18,7 +18,7 @@ class NodeController < ApplicationController
|
|||
node = Node.from_xml(request.raw_post, true)
|
||||
|
||||
# Assume that Node.from_xml has thrown an exception if there is an error parsing the xml
|
||||
node.create_with_history @user
|
||||
node.create_with_history current_user
|
||||
render :plain => node.id.to_s
|
||||
end
|
||||
|
||||
|
@ -44,7 +44,7 @@ class NodeController < ApplicationController
|
|||
raise OSM::APIBadUserInput.new("The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})")
|
||||
end
|
||||
|
||||
node.update_from(new_node, @user)
|
||||
node.update_from(new_node, current_user)
|
||||
render :plain => node.version.to_s
|
||||
end
|
||||
|
||||
|
@ -58,7 +58,7 @@ class NodeController < ApplicationController
|
|||
unless new_node && new_node.id == node.id
|
||||
raise OSM::APIBadUserInput.new("The id in the url (#{node.id}) is not the same as provided in the xml (#{new_node.id})")
|
||||
end
|
||||
node.delete_with_history!(new_node, @user)
|
||||
node.delete_with_history!(new_node, current_user)
|
||||
render :plain => node.version.to_s
|
||||
end
|
||||
|
||||
|
|
|
@ -160,7 +160,7 @@ class NotesController < ApplicationController
|
|||
# Find the note and check it is valid
|
||||
@note = Note.find_by(:id => id)
|
||||
raise OSM::APINotFoundError unless @note
|
||||
raise OSM::APIAlreadyDeletedError.new("note", @note.id) unless @note.visible? || @user.moderator?
|
||||
raise OSM::APIAlreadyDeletedError.new("note", @note.id) unless @note.visible? || current_user.moderator?
|
||||
raise OSM::APINoteAlreadyOpenError.new(@note) unless @note.closed? || !@note.visible?
|
||||
|
||||
# Reopen the note and add a comment
|
||||
|
@ -286,7 +286,7 @@ class NotesController < ApplicationController
|
|||
@page = (params[:page] || 1).to_i
|
||||
@page_size = 10
|
||||
@notes = @this_user.notes
|
||||
@notes = @notes.visible unless @user && @user.moderator?
|
||||
@notes = @notes.visible unless current_user && current_user.moderator?
|
||||
@notes = @notes.order("updated_at DESC, id").distinct.offset((@page - 1) * @page_size).limit(@page_size).preload(:comments => :author).to_a
|
||||
else
|
||||
@title = t "user.no_such_user.title"
|
||||
|
@ -341,8 +341,8 @@ class NotesController < ApplicationController
|
|||
def add_comment(note, text, event, notify = true)
|
||||
attributes = { :visible => true, :event => event, :body => text }
|
||||
|
||||
if @user
|
||||
attributes[:author_id] = @user.id
|
||||
if current_user
|
||||
attributes[:author_id] = current_user.id
|
||||
else
|
||||
attributes[:author_ip] = request.remote_ip
|
||||
end
|
||||
|
@ -350,7 +350,7 @@ class NotesController < ApplicationController
|
|||
comment = note.comments.create!(attributes)
|
||||
|
||||
note.comments.map(&:author).uniq.each do |user|
|
||||
if notify && user && user != @user && user.visible?
|
||||
if notify && user && user != current_user && user.visible?
|
||||
Notifier.note_comment_notification(comment, user).deliver_now
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,8 +6,8 @@ class OauthClientsController < ApplicationController
|
|||
before_action :require_user
|
||||
|
||||
def index
|
||||
@client_applications = @user.client_applications
|
||||
@tokens = @user.oauth_tokens.authorized
|
||||
@client_applications = current_user.client_applications
|
||||
@tokens = current_user.oauth_tokens.authorized
|
||||
end
|
||||
|
||||
def new
|
||||
|
@ -15,7 +15,7 @@ class OauthClientsController < ApplicationController
|
|||
end
|
||||
|
||||
def create
|
||||
@client_application = @user.client_applications.build(application_params)
|
||||
@client_application = current_user.client_applications.build(application_params)
|
||||
if @client_application.save
|
||||
flash[:notice] = t "oauth_clients.create.flash"
|
||||
redirect_to :action => "show", :id => @client_application.id
|
||||
|
@ -25,21 +25,21 @@ class OauthClientsController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
@client_application = @user.client_applications.find(params[:id])
|
||||
@client_application = current_user.client_applications.find(params[:id])
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
@type = "client application"
|
||||
render :action => "not_found", :status => :not_found
|
||||
end
|
||||
|
||||
def edit
|
||||
@client_application = @user.client_applications.find(params[:id])
|
||||
@client_application = current_user.client_applications.find(params[:id])
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
@type = "client application"
|
||||
render :action => "not_found", :status => :not_found
|
||||
end
|
||||
|
||||
def update
|
||||
@client_application = @user.client_applications.find(params[:id])
|
||||
@client_application = current_user.client_applications.find(params[:id])
|
||||
if @client_application.update_attributes(application_params)
|
||||
flash[:notice] = t "oauth_clients.update.flash"
|
||||
redirect_to :action => "show", :id => @client_application.id
|
||||
|
@ -52,7 +52,7 @@ class OauthClientsController < ApplicationController
|
|||
end
|
||||
|
||||
def destroy
|
||||
@client_application = @user.client_applications.find(params[:id])
|
||||
@client_application = current_user.client_applications.find(params[:id])
|
||||
@client_application.destroy
|
||||
flash[:notice] = t "oauth_clients.destroy.flash"
|
||||
redirect_to :action => "index"
|
||||
|
|
|
@ -70,6 +70,6 @@ class OldController < ApplicationController
|
|||
private
|
||||
|
||||
def show_redactions?
|
||||
@user && @user.moderator? && params[:show_redactions] == "true"
|
||||
current_user && current_user.moderator? && params[:show_redactions] == "true"
|
||||
end
|
||||
end
|
||||
|
|
|
@ -19,7 +19,7 @@ class RedactionsController < ApplicationController
|
|||
|
||||
def create
|
||||
@redaction = Redaction.new
|
||||
@redaction.user = @user
|
||||
@redaction.user = current_user
|
||||
@redaction.title = params[:redaction][:title]
|
||||
@redaction.description = params[:redaction][:description]
|
||||
# note that the description format will default to 'markdown'
|
||||
|
|
|
@ -15,7 +15,7 @@ class RelationController < ApplicationController
|
|||
relation = Relation.from_xml(request.raw_post, true)
|
||||
|
||||
# Assume that Relation.from_xml has thrown an exception if there is an error parsing the xml
|
||||
relation.create_with_history @user
|
||||
relation.create_with_history current_user
|
||||
render :plain => relation.id.to_s
|
||||
end
|
||||
|
||||
|
@ -39,7 +39,7 @@ class RelationController < ApplicationController
|
|||
raise OSM::APIBadUserInput.new("The id in the url (#{relation.id}) is not the same as provided in the xml (#{new_relation.id})")
|
||||
end
|
||||
|
||||
relation.update_from new_relation, @user
|
||||
relation.update_from new_relation, current_user
|
||||
render :plain => relation.version.to_s
|
||||
end
|
||||
|
||||
|
@ -47,7 +47,7 @@ class RelationController < ApplicationController
|
|||
relation = Relation.find(params[:id])
|
||||
new_relation = Relation.from_xml(request.raw_post)
|
||||
if new_relation && new_relation.id == relation.id
|
||||
relation.delete_with_history!(new_relation, @user)
|
||||
relation.delete_with_history!(new_relation, current_user)
|
||||
render :plain => relation.version.to_s
|
||||
else
|
||||
head :bad_request
|
||||
|
|
|
@ -92,8 +92,8 @@ class SiteController < ApplicationController
|
|||
@lat = note.lat
|
||||
@lon = note.lon
|
||||
@zoom = 17
|
||||
elsif params[:gpx] && @user
|
||||
trace = Trace.visible_to(@user).find(params[:gpx])
|
||||
elsif params[:gpx] && current_user
|
||||
trace = Trace.visible_to(current_user).find(params[:gpx])
|
||||
@lat = trace.latitude
|
||||
@lon = trace.longitude
|
||||
@zoom = 16
|
||||
|
|
|
@ -32,7 +32,7 @@ class TraceController < ApplicationController
|
|||
# set title
|
||||
@title = if target_user.nil?
|
||||
t "trace.list.public_traces"
|
||||
elsif @user && @user == target_user
|
||||
elsif current_user && current_user == target_user
|
||||
t "trace.list.your_traces"
|
||||
else
|
||||
t "trace.list.public_traces_from", :user => target_user.display_name
|
||||
|
@ -46,13 +46,13 @@ class TraceController < ApplicationController
|
|||
# 3 - user's traces, logged in as same user = all user's traces
|
||||
# 4 - user's traces, not logged in as that user = all user's public traces
|
||||
@traces = if target_user.nil? # all traces
|
||||
if @user
|
||||
Trace.visible_to(@user) # 1
|
||||
if current_user
|
||||
Trace.visible_to(current_user) # 1
|
||||
else
|
||||
Trace.visible_to_all # 2
|
||||
end
|
||||
elsif @user && @user == target_user
|
||||
@user.traces # 3 (check vs user id, so no join + can't pick up non-public traces by changing name)
|
||||
elsif current_user && current_user == target_user
|
||||
current_user.traces # 3 (check vs user id, so no join + can't pick up non-public traces by changing name)
|
||||
else
|
||||
target_user.traces.visible_to_all # 4
|
||||
end
|
||||
|
@ -86,14 +86,14 @@ class TraceController < ApplicationController
|
|||
end
|
||||
|
||||
def mine
|
||||
redirect_to :action => :list, :display_name => @user.display_name
|
||||
redirect_to :action => :list, :display_name => current_user.display_name
|
||||
end
|
||||
|
||||
def view
|
||||
@trace = Trace.find(params[:id])
|
||||
|
||||
if @trace && @trace.visible? &&
|
||||
(@trace.public? || @trace.user == @user)
|
||||
(@trace.public? || @trace.user == current_user)
|
||||
@title = t "trace.view.title", :name => @trace.name
|
||||
else
|
||||
flash[:error] = t "trace.view.trace_not_found"
|
||||
|
@ -119,18 +119,18 @@ class TraceController < ApplicationController
|
|||
if @trace.id
|
||||
flash[:notice] = t "trace.create.trace_uploaded"
|
||||
|
||||
if @user.traces.where(:inserted => false).count > 4
|
||||
flash[:warning] = t "trace.trace_header.traces_waiting", :count => @user.traces.where(:inserted => false).count
|
||||
if current_user.traces.where(:inserted => false).count > 4
|
||||
flash[:warning] = t "trace.trace_header.traces_waiting", :count => current_user.traces.where(:inserted => false).count
|
||||
end
|
||||
|
||||
redirect_to :action => :list, :display_name => @user.display_name
|
||||
redirect_to :action => :list, :display_name => current_user.display_name
|
||||
end
|
||||
else
|
||||
@trace = Trace.new(:name => "Dummy",
|
||||
:tagstring => params[:trace][:tagstring],
|
||||
:description => params[:trace][:description],
|
||||
:visibility => params[:trace][:visibility],
|
||||
:inserted => false, :user => @user,
|
||||
:inserted => false, :user => current_user,
|
||||
:timestamp => Time.now.getutc)
|
||||
@trace.valid?
|
||||
@trace.errors.add(:gpx_file, "can't be blank")
|
||||
|
@ -145,7 +145,7 @@ class TraceController < ApplicationController
|
|||
def data
|
||||
trace = Trace.find(params[:id])
|
||||
|
||||
if trace.visible? && (trace.public? || (@user && @user == trace.user))
|
||||
if trace.visible? && (trace.public? || (current_user && current_user == trace.user))
|
||||
if Acl.no_trace_download(request.remote_ip)
|
||||
head :forbidden
|
||||
elsif request.format == Mime[:xml]
|
||||
|
@ -167,7 +167,7 @@ class TraceController < ApplicationController
|
|||
|
||||
if !@trace.visible?
|
||||
head :not_found
|
||||
elsif @user.nil? || @trace.user != @user
|
||||
elsif current_user.nil? || @trace.user != current_user
|
||||
head :forbidden
|
||||
else
|
||||
@title = t "trace.edit.title", :name => @trace.name
|
||||
|
@ -177,7 +177,7 @@ class TraceController < ApplicationController
|
|||
@trace.tagstring = params[:trace][:tagstring]
|
||||
@trace.visibility = params[:trace][:visibility]
|
||||
if @trace.save
|
||||
redirect_to :action => "view", :display_name => @user.display_name
|
||||
redirect_to :action => "view", :display_name => current_user.display_name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -190,13 +190,13 @@ class TraceController < ApplicationController
|
|||
|
||||
if !trace.visible?
|
||||
head :not_found
|
||||
elsif @user.nil? || trace.user != @user
|
||||
elsif current_user.nil? || trace.user != current_user
|
||||
head :forbidden
|
||||
else
|
||||
trace.visible = false
|
||||
trace.save
|
||||
flash[:notice] = t "trace.delete.scheduled_for_deletion"
|
||||
redirect_to :action => :list, :display_name => @user.display_name
|
||||
redirect_to :action => :list, :display_name => current_user.display_name
|
||||
end
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
head :not_found
|
||||
|
@ -219,7 +219,7 @@ class TraceController < ApplicationController
|
|||
trace = Trace.find(params[:id])
|
||||
|
||||
if trace.visible? && trace.inserted?
|
||||
if trace.public? || (@user && @user == trace.user)
|
||||
if trace.public? || (current_user && current_user == trace.user)
|
||||
expires_in 7.days, :private => !trace.public?, :public => trace.public?
|
||||
send_file(trace.large_picture_name, :filename => "#{trace.id}.gif", :type => "image/gif", :disposition => "inline")
|
||||
else
|
||||
|
@ -236,7 +236,7 @@ class TraceController < ApplicationController
|
|||
trace = Trace.find(params[:id])
|
||||
|
||||
if trace.visible? && trace.inserted?
|
||||
if trace.public? || (@user && @user == trace.user)
|
||||
if trace.public? || (current_user && current_user == trace.user)
|
||||
expires_in 7.days, :private => !trace.public?, :public => trace.public?
|
||||
send_file(trace.icon_picture_name, :filename => "#{trace.id}_icon.gif", :type => "image/gif", :disposition => "inline")
|
||||
else
|
||||
|
@ -252,7 +252,7 @@ class TraceController < ApplicationController
|
|||
def api_read
|
||||
trace = Trace.visible.find(params[:id])
|
||||
|
||||
if trace.public? || trace.user == @user
|
||||
if trace.public? || trace.user == current_user
|
||||
render :xml => trace.to_xml.to_s
|
||||
else
|
||||
head :forbidden
|
||||
|
@ -262,7 +262,7 @@ class TraceController < ApplicationController
|
|||
def api_update
|
||||
trace = Trace.visible.find(params[:id])
|
||||
|
||||
if trace.user == @user
|
||||
if trace.user == current_user
|
||||
new_trace = Trace.from_xml(request.raw_post)
|
||||
|
||||
unless new_trace && new_trace.id == trace.id
|
||||
|
@ -283,7 +283,7 @@ class TraceController < ApplicationController
|
|||
def api_delete
|
||||
trace = Trace.visible.find(params[:id])
|
||||
|
||||
if trace.user == @user
|
||||
if trace.user == current_user
|
||||
trace.visible = false
|
||||
trace.save!
|
||||
|
||||
|
@ -296,7 +296,7 @@ class TraceController < ApplicationController
|
|||
def api_data
|
||||
trace = Trace.visible.find(params[:id])
|
||||
|
||||
if trace.public? || trace.user == @user
|
||||
if trace.public? || trace.user == current_user
|
||||
if request.format == Mime[:xml]
|
||||
send_file(trace.xml_file, :filename => "#{trace.id}.xml", :type => request.format.to_s, :disposition => "attachment")
|
||||
elsif request.format == Mime[:gpx]
|
||||
|
@ -357,7 +357,7 @@ class TraceController < ApplicationController
|
|||
:description => description,
|
||||
:visibility => visibility,
|
||||
:inserted => true,
|
||||
:user => @user,
|
||||
:user => current_user,
|
||||
:timestamp => Time.now.getutc
|
||||
)
|
||||
|
||||
|
@ -390,11 +390,11 @@ class TraceController < ApplicationController
|
|||
end
|
||||
|
||||
# Finally save the user's preferred privacy level
|
||||
if pref = @user.preferences.where(:k => "gps.trace.visibility").first
|
||||
if pref = current_user.preferences.where(:k => "gps.trace.visibility").first
|
||||
pref.v = visibility
|
||||
pref.save
|
||||
else
|
||||
@user.preferences.create(:k => "gps.trace.visibility", :v => visibility)
|
||||
current_user.preferences.create(:k => "gps.trace.visibility", :v => visibility)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -407,11 +407,11 @@ class TraceController < ApplicationController
|
|||
end
|
||||
|
||||
def default_visibility
|
||||
visibility = @user.preferences.where(:k => "gps.trace.visibility").first
|
||||
visibility = current_user.preferences.where(:k => "gps.trace.visibility").first
|
||||
|
||||
if visibility
|
||||
visibility.v
|
||||
elsif @user.preferences.where(:k => "gps.trace.public", :v => "default").first.nil?
|
||||
elsif current_user.preferences.where(:k => "gps.trace.public", :v => "default").first.nil?
|
||||
"private"
|
||||
else
|
||||
"public"
|
||||
|
|
|
@ -20,7 +20,7 @@ class UserBlocksController < ApplicationController
|
|||
end
|
||||
|
||||
def show
|
||||
if @user && @user.id == @user_block.user_id
|
||||
if current_user && current_user.id == @user_block.user_id
|
||||
@user_block.needs_view = false
|
||||
@user_block.save!
|
||||
end
|
||||
|
@ -38,7 +38,7 @@ class UserBlocksController < ApplicationController
|
|||
if @valid_params
|
||||
@user_block = UserBlock.new(
|
||||
:user_id => @this_user.id,
|
||||
:creator_id => @user.id,
|
||||
:creator_id => current_user.id,
|
||||
:reason => params[:user_block][:reason],
|
||||
:ends_at => Time.now.getutc + @block_period.hours,
|
||||
:needs_view => params[:user_block][:needs_view]
|
||||
|
@ -57,7 +57,7 @@ class UserBlocksController < ApplicationController
|
|||
|
||||
def update
|
||||
if @valid_params
|
||||
if @user_block.creator_id != @user.id
|
||||
if @user_block.creator_id != current_user.id
|
||||
flash[:error] = t("user_block.update.only_creator_can_edit")
|
||||
redirect_to :action => "edit"
|
||||
elsif @user_block.update_attributes(
|
||||
|
@ -79,7 +79,7 @@ class UserBlocksController < ApplicationController
|
|||
# revokes the block, setting the end_time to now
|
||||
def revoke
|
||||
if params[:confirm]
|
||||
if @user_block.revoke! @user
|
||||
if @user_block.revoke! current_user
|
||||
flash[:notice] = t "user_block.revoke.flash"
|
||||
redirect_to(@user_block)
|
||||
end
|
||||
|
|
|
@ -28,10 +28,10 @@ class UserController < ApplicationController
|
|||
else
|
||||
@title = t "user.terms.title"
|
||||
|
||||
if @user && @user.terms_agreed?
|
||||
if current_user && current_user.terms_agreed?
|
||||
# Already agreed to terms, so just show settings
|
||||
redirect_to :action => :account, :display_name => @user.display_name
|
||||
elsif @user.nil? && session[:new_user].nil?
|
||||
redirect_to :action => :account, :display_name => current_user.display_name
|
||||
elsif current_user.nil? && session[:new_user].nil?
|
||||
redirect_to :action => :login, :referer => request.fullpath
|
||||
end
|
||||
end
|
||||
|
@ -41,52 +41,52 @@ class UserController < ApplicationController
|
|||
@title = t "user.new.title"
|
||||
|
||||
if params[:decline]
|
||||
if @user
|
||||
@user.terms_seen = true
|
||||
if current_user
|
||||
current_user.terms_seen = true
|
||||
|
||||
if @user.save
|
||||
if current_user.save
|
||||
flash[:notice] = t("user.new.terms declined", :url => t("user.new.terms declined url")).html_safe
|
||||
end
|
||||
|
||||
if params[:referer]
|
||||
redirect_to params[:referer]
|
||||
else
|
||||
redirect_to :action => :account, :display_name => @user.display_name
|
||||
redirect_to :action => :account, :display_name => current_user.display_name
|
||||
end
|
||||
else
|
||||
redirect_to t("user.terms.declined")
|
||||
end
|
||||
elsif @user
|
||||
unless @user.terms_agreed?
|
||||
@user.consider_pd = params[:user][:consider_pd]
|
||||
@user.terms_agreed = Time.now.getutc
|
||||
@user.terms_seen = true
|
||||
elsif current_user
|
||||
unless current_user.terms_agreed?
|
||||
current_user.consider_pd = params[:user][:consider_pd]
|
||||
current_user.terms_agreed = Time.now.getutc
|
||||
current_user.terms_seen = true
|
||||
|
||||
flash[:notice] = t "user.new.terms accepted" if @user.save
|
||||
flash[:notice] = t "user.new.terms accepted" if current_user.save
|
||||
end
|
||||
|
||||
if params[:referer]
|
||||
redirect_to params[:referer]
|
||||
else
|
||||
redirect_to :action => :account, :display_name => @user.display_name
|
||||
redirect_to :action => :account, :display_name => current_user.display_name
|
||||
end
|
||||
else
|
||||
@user = session.delete(:new_user)
|
||||
self.current_user = session.delete(:new_user)
|
||||
|
||||
if check_signup_allowed(@user.email)
|
||||
@user.data_public = true
|
||||
@user.description = "" if @user.description.nil?
|
||||
@user.creation_ip = request.remote_ip
|
||||
@user.languages = http_accept_language.user_preferred_languages
|
||||
@user.terms_agreed = Time.now.getutc
|
||||
@user.terms_seen = true
|
||||
if check_signup_allowed(current_user.email)
|
||||
current_user.data_public = true
|
||||
current_user.description = "" if current_user.description.nil?
|
||||
current_user.creation_ip = request.remote_ip
|
||||
current_user.languages = http_accept_language.user_preferred_languages
|
||||
current_user.terms_agreed = Time.now.getutc
|
||||
current_user.terms_seen = true
|
||||
|
||||
if @user.auth_uid.blank?
|
||||
@user.auth_provider = nil
|
||||
@user.auth_uid = nil
|
||||
if current_user.auth_uid.blank?
|
||||
current_user.auth_provider = nil
|
||||
current_user.auth_uid = nil
|
||||
end
|
||||
|
||||
if @user.save
|
||||
if current_user.save
|
||||
flash[:piwik_goal] = PIWIK["goals"]["signup"] if defined?(PIWIK)
|
||||
|
||||
referer = welcome_path
|
||||
|
@ -103,13 +103,13 @@ class UserController < ApplicationController
|
|||
# Use default
|
||||
end
|
||||
|
||||
if @user.status == "active"
|
||||
if current_user.status == "active"
|
||||
session[:referer] = referer
|
||||
successful_login(@user)
|
||||
successful_login(current_user)
|
||||
else
|
||||
session[:token] = @user.tokens.create.token
|
||||
Notifier.signup_confirm(@user, @user.tokens.create(:referer => referer)).deliver_now
|
||||
redirect_to :action => "confirm", :display_name => @user.display_name
|
||||
session[:token] = current_user.tokens.create.token
|
||||
Notifier.signup_confirm(current_user, current_user.tokens.create(:referer => referer)).deliver_now
|
||||
redirect_to :action => "confirm", :display_name => current_user.display_name
|
||||
end
|
||||
else
|
||||
render :action => "new", :referer => params[:referer]
|
||||
|
@ -120,29 +120,29 @@ class UserController < ApplicationController
|
|||
|
||||
def account
|
||||
@title = t "user.account.title"
|
||||
@tokens = @user.oauth_tokens.authorized
|
||||
@tokens = current_user.oauth_tokens.authorized
|
||||
|
||||
if params[:user] && params[:user][:display_name] && params[:user][:description]
|
||||
if params[:user][:auth_provider].blank? ||
|
||||
(params[:user][:auth_provider] == @user.auth_provider &&
|
||||
params[:user][:auth_uid] == @user.auth_uid)
|
||||
update_user(@user, params)
|
||||
(params[:user][:auth_provider] == current_user.auth_provider &&
|
||||
params[:user][:auth_uid] == current_user.auth_uid)
|
||||
update_user(current_user, params)
|
||||
else
|
||||
session[:new_user_settings] = params
|
||||
redirect_to auth_url(params[:user][:auth_provider], params[:user][:auth_uid])
|
||||
end
|
||||
elsif errors = session.delete(:user_errors)
|
||||
errors.each do |attribute, error|
|
||||
@user.errors.add(attribute, error)
|
||||
current_user.errors.add(attribute, error)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def go_public
|
||||
@user.data_public = true
|
||||
@user.save
|
||||
current_user.data_public = true
|
||||
current_user.save
|
||||
flash[:notice] = t "user.go_public.flash success"
|
||||
redirect_to :action => "account", :display_name => @user.display_name
|
||||
redirect_to :action => "account", :display_name => current_user.display_name
|
||||
end
|
||||
|
||||
def lost_password
|
||||
|
@ -175,18 +175,18 @@ class UserController < ApplicationController
|
|||
token = UserToken.find_by(:token => params[:token])
|
||||
|
||||
if token
|
||||
@user = token.user
|
||||
self.current_user = token.user
|
||||
|
||||
if params[:user]
|
||||
@user.pass_crypt = params[:user][:pass_crypt]
|
||||
@user.pass_crypt_confirmation = params[:user][:pass_crypt_confirmation]
|
||||
@user.status = "active" if @user.status == "pending"
|
||||
@user.email_valid = true
|
||||
current_user.pass_crypt = params[:user][:pass_crypt]
|
||||
current_user.pass_crypt_confirmation = params[:user][:pass_crypt_confirmation]
|
||||
current_user.status = "active" if current_user.status == "pending"
|
||||
current_user.email_valid = true
|
||||
|
||||
if @user.save
|
||||
if current_user.save
|
||||
token.destroy
|
||||
flash[:notice] = t "user.reset_password.flash changed"
|
||||
successful_login(@user)
|
||||
successful_login(current_user)
|
||||
end
|
||||
end
|
||||
else
|
||||
|
@ -202,7 +202,7 @@ class UserController < ApplicationController
|
|||
@title = t "user.new.title"
|
||||
@referer = params[:referer] || session[:referer]
|
||||
|
||||
if @user
|
||||
if current_user
|
||||
# The user is logged in already, so don't show them the signup
|
||||
# page, instead send them to the home page
|
||||
if @referer
|
||||
|
@ -211,7 +211,7 @@ class UserController < ApplicationController
|
|||
redirect_to :controller => "site", :action => "index"
|
||||
end
|
||||
elsif params.key?(:auth_provider) && params.key?(:auth_uid)
|
||||
@user = User.new(:email => params[:email],
|
||||
self.current_user = User.new(:email => params[:email],
|
||||
:email_confirmation => params[:email],
|
||||
:display_name => params[:nickname],
|
||||
:auth_provider => params[:auth_provider],
|
||||
|
@ -220,34 +220,36 @@ class UserController < ApplicationController
|
|||
flash.now[:notice] = render_to_string :partial => "auth_association"
|
||||
else
|
||||
check_signup_allowed
|
||||
|
||||
self.current_user = User.new
|
||||
end
|
||||
end
|
||||
|
||||
def create
|
||||
@user = User.new(user_params)
|
||||
self.current_user = User.new(user_params)
|
||||
|
||||
if check_signup_allowed(@user.email)
|
||||
if check_signup_allowed(current_user.email)
|
||||
session[:referer] = params[:referer]
|
||||
|
||||
@user.status = "pending"
|
||||
current_user.status = "pending"
|
||||
|
||||
if @user.auth_provider.present? && @user.pass_crypt.empty?
|
||||
if current_user.auth_provider.present? && current_user.pass_crypt.empty?
|
||||
# We are creating an account with external authentication and
|
||||
# no password was specified so create a random one
|
||||
@user.pass_crypt = SecureRandom.base64(16)
|
||||
@user.pass_crypt_confirmation = @user.pass_crypt
|
||||
current_user.pass_crypt = SecureRandom.base64(16)
|
||||
current_user.pass_crypt_confirmation = current_user.pass_crypt
|
||||
end
|
||||
|
||||
if @user.invalid?
|
||||
if current_user.invalid?
|
||||
# Something is wrong with a new user, so rerender the form
|
||||
render :action => "new"
|
||||
elsif @user.auth_provider.present?
|
||||
elsif current_user.auth_provider.present?
|
||||
# Verify external authenticator before moving on
|
||||
session[:new_user] = @user
|
||||
redirect_to auth_url(@user.auth_provider, @user.auth_uid)
|
||||
session[:new_user] = current_user
|
||||
redirect_to auth_url(current_user.auth_provider, current_user.auth_uid)
|
||||
else
|
||||
# Save the user record
|
||||
session[:new_user] = @user
|
||||
session[:new_user] = current_user
|
||||
redirect_to :action => :terms
|
||||
end
|
||||
end
|
||||
|
@ -345,23 +347,23 @@ class UserController < ApplicationController
|
|||
if request.post?
|
||||
token = UserToken.find_by(:token => params[:confirm_string])
|
||||
if token && token.user.new_email?
|
||||
@user = token.user
|
||||
@user.email = @user.new_email
|
||||
@user.new_email = nil
|
||||
@user.email_valid = true
|
||||
gravatar_enabled = gravatar_enable(@user)
|
||||
if @user.save
|
||||
self.current_user = token.user
|
||||
current_user.email = current_user.new_email
|
||||
current_user.new_email = nil
|
||||
current_user.email_valid = true
|
||||
gravatar_enabled = gravatar_enable(current_user)
|
||||
if current_user.save
|
||||
flash[:notice] = if gravatar_enabled
|
||||
t("user.confirm_email.success") + " " + gravatar_status_message(@user)
|
||||
t("user.confirm_email.success") + " " + gravatar_status_message(current_user)
|
||||
else
|
||||
t("user.confirm_email.success")
|
||||
end
|
||||
else
|
||||
flash[:errors] = @user.errors
|
||||
flash[:errors] = current_user.errors
|
||||
end
|
||||
token.destroy
|
||||
session[:user] = @user.id
|
||||
redirect_to :action => "account", :display_name => @user.display_name
|
||||
session[:user] = current_user.id
|
||||
redirect_to :action => "account", :display_name => current_user.display_name
|
||||
elsif token
|
||||
flash[:error] = t "user.confirm_email.failure"
|
||||
redirect_to :action => "account", :display_name => token.user.display_name
|
||||
|
@ -380,13 +382,13 @@ class UserController < ApplicationController
|
|||
end
|
||||
|
||||
def api_details
|
||||
@this_user = @user
|
||||
@this_user = current_user
|
||||
render :action => :api_read, :content_type => "text/xml"
|
||||
end
|
||||
|
||||
def api_gpx_files
|
||||
doc = OSM::API.new.get_xml_doc
|
||||
@user.traces.reload.each do |trace|
|
||||
current_user.traces.reload.each do |trace|
|
||||
doc.root << trace.to_xml_node
|
||||
end
|
||||
render :xml => doc.to_s
|
||||
|
@ -396,7 +398,7 @@ class UserController < ApplicationController
|
|||
@this_user = User.find_by(:display_name => params[:display_name])
|
||||
|
||||
if @this_user &&
|
||||
(@this_user.visible? || (@user && @user.administrator?))
|
||||
(@this_user.visible? || (current_user && current_user.administrator?))
|
||||
@title = @this_user.display_name
|
||||
else
|
||||
render_unknown_user params[:display_name]
|
||||
|
@ -409,9 +411,9 @@ class UserController < ApplicationController
|
|||
if @new_friend
|
||||
if request.post?
|
||||
friend = Friend.new
|
||||
friend.user_id = @user.id
|
||||
friend.user_id = current_user.id
|
||||
friend.friend_user_id = @new_friend.id
|
||||
if @user.is_friends_with?(@new_friend)
|
||||
if current_user.is_friends_with?(@new_friend)
|
||||
flash[:warning] = t "user.make_friend.already_a_friend", :name => @new_friend.display_name
|
||||
elsif friend.save
|
||||
flash[:notice] = t "user.make_friend.success", :name => @new_friend.display_name
|
||||
|
@ -436,8 +438,8 @@ class UserController < ApplicationController
|
|||
|
||||
if @friend
|
||||
if request.post?
|
||||
if @user.is_friends_with?(@friend)
|
||||
Friend.where(:user_id => @user.id, :friend_user_id => @friend.id).delete_all
|
||||
if current_user.is_friends_with?(@friend)
|
||||
Friend.where(:user_id => current_user.id, :friend_user_id => @friend.id).delete_all
|
||||
flash[:notice] = t "user.remove_friend.success", :name => @friend.display_name
|
||||
else
|
||||
flash[:error] = t "user.remove_friend.not_a_friend", :name => @friend.display_name
|
||||
|
@ -514,14 +516,14 @@ class UserController < ApplicationController
|
|||
end
|
||||
|
||||
if settings = session.delete(:new_user_settings)
|
||||
@user.auth_provider = provider
|
||||
@user.auth_uid = uid
|
||||
current_user.auth_provider = provider
|
||||
current_user.auth_uid = uid
|
||||
|
||||
update_user(@user, settings)
|
||||
update_user(current_user, settings)
|
||||
|
||||
session[:user_errors] = @user.errors.as_json
|
||||
session[:user_errors] = current_user.errors.as_json
|
||||
|
||||
redirect_to :action => "account", :display_name => @user.display_name
|
||||
redirect_to :action => "account", :display_name => current_user.display_name
|
||||
elsif session[:new_user]
|
||||
session[:new_user].auth_provider = provider
|
||||
session[:new_user].auth_uid = uid
|
||||
|
@ -547,7 +549,7 @@ class UserController < ApplicationController
|
|||
when "active", "confirmed" then
|
||||
successful_login(user, request.env["omniauth.params"]["referer"])
|
||||
when "suspended" then
|
||||
failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}")
|
||||
failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}").html_safe
|
||||
else
|
||||
failed_login t("user.login.auth failure")
|
||||
end
|
||||
|
@ -575,7 +577,7 @@ class UserController < ApplicationController
|
|||
elsif user = User.authenticate(:username => username, :password => password, :pending => true)
|
||||
unconfirmed_login(user)
|
||||
elsif User.authenticate(:username => username, :password => password, :suspended => true)
|
||||
failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}"), username
|
||||
failed_login t("user.login.account is suspended", :webmaster => "mailto:#{SUPPORT_EMAIL}").html_safe, username
|
||||
else
|
||||
failed_login t("user.login.auth failure"), username
|
||||
end
|
||||
|
@ -725,8 +727,8 @@ class UserController < ApplicationController
|
|||
# Ignore errors sending email
|
||||
end
|
||||
else
|
||||
@user.errors.add(:new_email, @user.errors[:email])
|
||||
@user.errors.add(:email, [])
|
||||
current_user.errors.add(:new_email, current_user.errors[:email])
|
||||
current_user.errors.add(:email, [])
|
||||
end
|
||||
|
||||
user.restore_email!
|
||||
|
@ -738,7 +740,7 @@ class UserController < ApplicationController
|
|||
# require that the user is a administrator, or fill out a helpful error message
|
||||
# and return them to the user page.
|
||||
def require_administrator
|
||||
if @user && !@user.administrator?
|
||||
if current_user && !current_user.administrator?
|
||||
flash[:error] = t("user.filter.not_an_administrator")
|
||||
|
||||
if params[:display_name]
|
||||
|
@ -746,7 +748,7 @@ class UserController < ApplicationController
|
|||
else
|
||||
redirect_to :action => "login", :referer => request.fullpath
|
||||
end
|
||||
elsif !@user
|
||||
elsif !current_user
|
||||
redirect_to :action => "login", :referer => request.fullpath
|
||||
end
|
||||
end
|
||||
|
@ -754,7 +756,7 @@ class UserController < ApplicationController
|
|||
##
|
||||
# require that the user in the URL is the logged in user
|
||||
def require_self
|
||||
head :forbidden if params[:display_name] != @user.display_name
|
||||
head :forbidden if params[:display_name] != current_user.display_name
|
||||
end
|
||||
|
||||
##
|
||||
|
|
|
@ -11,7 +11,7 @@ class UserPreferenceController < ApplicationController
|
|||
def read
|
||||
doc = OSM::API.new.get_xml_doc
|
||||
|
||||
prefs = @user.preferences
|
||||
prefs = current_user.preferences
|
||||
|
||||
el1 = XML::Node.new "preferences"
|
||||
|
||||
|
@ -26,14 +26,14 @@ class UserPreferenceController < ApplicationController
|
|||
##
|
||||
# return the value for a single preference
|
||||
def read_one
|
||||
pref = UserPreference.find([@user.id, params[:preference_key]])
|
||||
pref = UserPreference.find([current_user.id, params[:preference_key]])
|
||||
|
||||
render :plain => pref.v.to_s
|
||||
end
|
||||
|
||||
# update the entire set of preferences
|
||||
def update
|
||||
old_preferences = @user.preferences.each_with_object({}) do |preference, preferences|
|
||||
old_preferences = current_user.preferences.each_with_object({}) do |preference, preferences|
|
||||
preferences[preference.k] = preference
|
||||
end
|
||||
|
||||
|
@ -47,7 +47,7 @@ class UserPreferenceController < ApplicationController
|
|||
elsif new_preferences.include?(pt["k"])
|
||||
raise OSM::APIDuplicatePreferenceError.new(pt["k"])
|
||||
else
|
||||
preference = @user.preferences.build(:k => pt["k"], :v => pt["v"])
|
||||
preference = current_user.preferences.build(:k => pt["k"], :v => pt["v"])
|
||||
end
|
||||
|
||||
new_preferences[preference.k] = preference
|
||||
|
@ -64,10 +64,10 @@ class UserPreferenceController < ApplicationController
|
|||
# update the value of a single preference
|
||||
def update_one
|
||||
begin
|
||||
pref = UserPreference.find([@user.id, params[:preference_key]])
|
||||
pref = UserPreference.find([current_user.id, params[:preference_key]])
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
pref = UserPreference.new
|
||||
pref.user = @user
|
||||
pref.user = current_user
|
||||
pref.k = params[:preference_key]
|
||||
end
|
||||
|
||||
|
@ -80,7 +80,7 @@ class UserPreferenceController < ApplicationController
|
|||
##
|
||||
# delete a single preference
|
||||
def delete_one
|
||||
UserPreference.find([@user.id, params[:preference_key]]).delete
|
||||
UserPreference.find([current_user.id, params[:preference_key]]).delete
|
||||
|
||||
render :plain => ""
|
||||
end
|
||||
|
|
|
@ -10,7 +10,7 @@ class UserRolesController < ApplicationController
|
|||
before_action :in_role, :only => [:revoke]
|
||||
|
||||
def grant
|
||||
@this_user.roles.create(:role => @role, :granter_id => @user.id)
|
||||
@this_user.roles.create(:role => @role, :granter_id => current_user.id)
|
||||
redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
|
||||
end
|
||||
|
||||
|
@ -25,7 +25,7 @@ class UserRolesController < ApplicationController
|
|||
# require that the user is an administrator, or fill out a helpful error message
|
||||
# and return them to theuser page.
|
||||
def require_administrator
|
||||
unless @user.administrator?
|
||||
unless current_user.administrator?
|
||||
flash[:error] = t "user_role.filter.not_an_administrator"
|
||||
redirect_to :controller => "user", :action => "view", :display_name => @this_user.display_name
|
||||
end
|
||||
|
|
|
@ -15,7 +15,7 @@ class WayController < ApplicationController
|
|||
way = Way.from_xml(request.raw_post, true)
|
||||
|
||||
# Assume that Way.from_xml has thrown an exception if there is an error parsing the xml
|
||||
way.create_with_history @user
|
||||
way.create_with_history current_user
|
||||
render :plain => way.id.to_s
|
||||
end
|
||||
|
||||
|
@ -39,7 +39,7 @@ class WayController < ApplicationController
|
|||
raise OSM::APIBadUserInput.new("The id in the url (#{way.id}) is not the same as provided in the xml (#{new_way.id})")
|
||||
end
|
||||
|
||||
way.update_from(new_way, @user)
|
||||
way.update_from(new_way, current_user)
|
||||
render :plain => way.version.to_s
|
||||
end
|
||||
|
||||
|
@ -49,7 +49,7 @@ class WayController < ApplicationController
|
|||
new_way = Way.from_xml(request.raw_post)
|
||||
|
||||
if new_way && new_way.id == way.id
|
||||
way.delete_with_history!(new_way, @user)
|
||||
way.delete_with_history!(new_way, current_user)
|
||||
render :plain => way.version.to_s
|
||||
else
|
||||
head :bad_request
|
||||
|
|
|
@ -21,12 +21,12 @@ module ApplicationHelper
|
|||
css = ""
|
||||
|
||||
css << ".hidden { display: none !important }"
|
||||
css << ".hide_unless_logged_in { display: none !important }" unless @user
|
||||
css << ".hide_if_logged_in { display: none !important }" if @user
|
||||
css << ".hide_if_user_#{@user.id} { display: none !important }" if @user
|
||||
css << ".show_if_user_#{@user.id} { display: inline !important }" if @user
|
||||
css << ".hide_unless_administrator { display: none !important }" unless @user && @user.administrator?
|
||||
css << ".hide_unless_moderator { display: none !important }" unless @user && @user.moderator?
|
||||
css << ".hide_unless_logged_in { display: none !important }" unless current_user
|
||||
css << ".hide_if_logged_in { display: none !important }" if current_user
|
||||
css << ".hide_if_user_#{current_user.id} { display: none !important }" if current_user
|
||||
css << ".show_if_user_#{current_user.id} { display: inline !important }" if current_user
|
||||
css << ".hide_unless_administrator { display: none !important }" unless current_user && current_user.administrator?
|
||||
css << ".hide_unless_moderator { display: none !important }" unless current_user && current_user.moderator?
|
||||
|
||||
content_tag(:style, css, :type => "text/css")
|
||||
end
|
||||
|
@ -107,11 +107,11 @@ module ApplicationHelper
|
|||
:preferred_editor => preferred_editor
|
||||
}
|
||||
|
||||
if @user
|
||||
data[:user] = @user.id.to_json
|
||||
if current_user
|
||||
data[:user] = current_user.id.to_json
|
||||
|
||||
unless @user.home_lon.nil? || @user.home_lat.nil?
|
||||
data[:user_home] = { :lat => @user.home_lat, :lon => @user.home_lon }
|
||||
unless current_user.home_lon.nil? || current_user.home_lat.nil?
|
||||
data[:user_home] = { :lat => current_user.home_lat, :lon => current_user.home_lon }
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ module UserRolesHelper
|
|||
end
|
||||
|
||||
def role_icon(user, role)
|
||||
if @user && @user.administrator?
|
||||
if current_user && current_user.administrator?
|
||||
if user.has_role?(role)
|
||||
image = "roles/#{role}"
|
||||
alt = t("user.view.role.revoke.#{role}")
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
|
||||
<div class="buttons clearfix subscribe-buttons">
|
||||
<form action="#" class="hide_unless_logged_in">
|
||||
<% if @user and @changeset.subscribers.exists?(@user.id) %>
|
||||
<% if current_user and @changeset.subscribers.exists?(current_user.id) %>
|
||||
<input class="action-button" type="submit" name="unsubscribe" value="<%= t('javascripts.changesets.show.unsubscribe') %>" data-method="POST" data-url="<%= changeset_unsubscribe_url(@changeset) %>" />
|
||||
<% else %>
|
||||
<input class="action-button" type="submit" name="subscribe" value="<%= t('javascripts.changesets.show.subscribe') %>" data-method="POST" data-url="<%= changeset_subscribe_url(@changeset) %>" />
|
||||
|
@ -42,13 +42,13 @@
|
|||
:when => friendly_date(comment.created_at), :exact_time => l(comment.created_at),
|
||||
:user => link_to(h(comment.author.display_name), {:controller => "user", :action => "view",
|
||||
:display_name => comment.author.display_name})).html_safe %>
|
||||
<% if @user and @user.moderator? %>
|
||||
<% if current_user and current_user.moderator? %>
|
||||
— <span class="action-button deemphasize" data-comment-id="<%= comment.id %>" data-method="POST" data-url="<%= changeset_comment_hide_url(comment.id) %>"><%= t('javascripts.changesets.show.hide_comment') %></span>
|
||||
<% end %>
|
||||
</small>
|
||||
<%= comment.body.to_html %>
|
||||
</li>
|
||||
<% elsif @user and @user.moderator? %>
|
||||
<% elsif current_user and current_user.moderator? %>
|
||||
<li id="c<%= comment.id %>">
|
||||
<small class='deemphasize'>
|
||||
<%= t("browse.changeset.hidden_commented_by",
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<% end -%>
|
||||
|
||||
<%
|
||||
set_title(changeset_list_title(params, @user))
|
||||
set_title(changeset_list_title(params, current_user))
|
||||
if params[:display_name]
|
||||
@heading = t('changeset.list.title_user', :user => link_to(params[:display_name], :controller => "user", :action => "view", :display_name => params[:display_name])).html_safe
|
||||
else
|
||||
|
|
|
@ -2,7 +2,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009,
|
|||
:id => url_for(@params.merge(:only_path => false)),
|
||||
:root_url => url_for(@params.merge(:action => :list, :format => nil, :only_path => false)),
|
||||
"xmlns:georss" => "http://www.georss.org/georss") do |feed|
|
||||
feed.title changeset_list_title(params, @user)
|
||||
feed.title changeset_list_title(params, current_user)
|
||||
|
||||
feed.updated @edits.map { |e| [e.created_at, e.closed_at].max }.max
|
||||
feed.icon image_url("favicon.ico")
|
||||
|
|
|
@ -25,9 +25,9 @@
|
|||
<%= richtext_area :diary_comment, :body, :cols => 80, :rows => 15 %>
|
||||
<%= submit_tag t('diary_entry.view.save_button') %>
|
||||
<% end %>
|
||||
<% if @user and @entry.subscribers.exists?(@user.id) %>
|
||||
<% if current_user and @entry.subscribers.exists?(current_user.id) %>
|
||||
<div class="diary-subscribe-buttons"><%= link_to t('javascripts.changesets.show.unsubscribe'), diary_entry_unsubscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => :button %></div>
|
||||
<% elsif @user %>
|
||||
<% elsif current_user %>
|
||||
<div class="diary-subscribe-buttons"><%= link_to t('javascripts.changesets.show.subscribe'), diary_entry_subscribe_path(:display_name => @entry.user.display_name, :id => @entry.id), :method => :post, :class => :button %></div>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
|
|
@ -57,26 +57,26 @@
|
|||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
<% if @user && @user.id %>
|
||||
<% if current_user && current_user.id %>
|
||||
<div class='dropdown user-menu logged-in'>
|
||||
<a class='dropdown-toggle' data-toggle='dropdown' href="#">
|
||||
<%= user_thumbnail_tiny(@user, :width => 25, :height => 25)
|
||||
<%= user_thumbnail_tiny(current_user, :width => 25, :height => 25)
|
||||
%><%= render :partial => 'layouts/inbox'
|
||||
%><span class="user-button"><span class='username'><%= @user.display_name %></span>
|
||||
%><span class="user-button"><span class='username'><%= current_user.display_name %></span>
|
||||
<b class="caret"></b></span>
|
||||
</a>
|
||||
<ul class='dropdown-menu'>
|
||||
<li>
|
||||
<%= link_to inbox_path(:display_name => @user.display_name) do %>
|
||||
<span class='count-number'><%= number_with_delimiter(@user.new_messages.size) %></span>
|
||||
<%= link_to inbox_path(:display_name => current_user.display_name) do %>
|
||||
<span class='count-number'><%= number_with_delimiter(current_user.new_messages.size) %></span>
|
||||
<%= t('user.view.my messages') %>
|
||||
<% end %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my profile'), user_path(:display_name => @user.display_name) %>
|
||||
<%= link_to t('user.view.my profile'), user_path(:display_name => current_user.display_name) %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
|
||||
<%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => current_user.display_name %>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
<% if @user.new_messages.size > 0 %>
|
||||
<span id="inboxanchor" class="count-number"><%= @user.new_messages.size %></span>
|
||||
<% if current_user.new_messages.size > 0 %>
|
||||
<span id="inboxanchor" class="count-number"><%= current_user.new_messages.size %></span>
|
||||
<% end %>
|
||||
|
|
|
@ -4,14 +4,14 @@
|
|||
|
||||
<% content_for(:body_class) { "map-layout" } %>
|
||||
|
||||
<% if @user and !@user.home_lon.nil? and !@user.home_lat.nil? %>
|
||||
<% if current_user and !current_user.home_lon.nil? and !current_user.home_lat.nil? %>
|
||||
<% content_for :greeting do %>
|
||||
<%= link_to t("layouts.home"),
|
||||
"#",
|
||||
:id => "homeanchor",
|
||||
:class => "set_position",
|
||||
:data => { :lat => @user.home_lat,
|
||||
:lon => @user.home_lon,
|
||||
:data => { :lat => current_user.home_lat,
|
||||
:lon => current_user.home_lon,
|
||||
:zoom => 15 } %>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
@ -38,7 +38,7 @@
|
|||
<%= yield %>
|
||||
</div>
|
||||
|
||||
<% unless @user %>
|
||||
<% unless current_user %>
|
||||
<div class="welcome">
|
||||
<h2><%= t 'layouts.intro_header' %></h2>
|
||||
<div class="close-wrap"><span class="icon close"></span></div>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<p id="inbox-count">
|
||||
<%= t "message.inbox.messages",
|
||||
:new_messages => t("message.inbox.new_messages",
|
||||
:count => @user.new_messages.size),
|
||||
:count => current_user.new_messages.size),
|
||||
:old_messages => t("message.inbox.old_messages",
|
||||
:count => @user.messages.size - @user.new_messages.size)
|
||||
:count => current_user.messages.size - current_user.new_messages.size)
|
||||
%>
|
||||
</p>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<% content_for :heading do %>
|
||||
<h2><%= t'message.inbox.my_inbox'%>/<%= link_to t('message.inbox.outbox'), outbox_path(@user.display_name) %></h2>
|
||||
<h2><%= t'message.inbox.my_inbox'%>/<%= link_to t('message.inbox.outbox'), outbox_path(current_user.display_name) %></h2>
|
||||
<% end %>
|
||||
|
||||
<h4><%= render :partial => "message_count" %></h4>
|
||||
|
||||
<% if @user.messages.size > 0 %>
|
||||
<% if current_user.messages.size > 0 %>
|
||||
<table class="messages">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -16,9 +16,9 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%= render :partial => "message_summary", :collection => @user.messages %>
|
||||
<%= render :partial => "message_summary", :collection => current_user.messages %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% else %>
|
||||
<div><%= raw(t'message.inbox.no_messages_yet', :people_mapping_nearby_link => link_to(t('message.inbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name)) %></div>
|
||||
<div><%= raw(t'message.inbox.no_messages_yet', :people_mapping_nearby_link => link_to(t('message.inbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => current_user.display_name)) %></div>
|
||||
<% end %>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
</div>
|
||||
<div class='buttons'>
|
||||
<%= submit_tag t('message.new.send_button') %>
|
||||
<%= link_to t('message.new.back_to_inbox'), { :controller => 'message', :action => 'inbox', :display_name => @user.display_name }, :class => 'deemphasize button' %>
|
||||
<%= link_to t('message.new.back_to_inbox'), { :controller => 'message', :action => 'inbox', :display_name => current_user.display_name }, :class => 'deemphasize button' %>
|
||||
</div>
|
||||
</fieldset>
|
||||
<% end %>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<% content_for :heading do %>
|
||||
<h2><%= raw(t'message.outbox.my_inbox', :inbox_link => link_to(t('message.outbox.inbox'), inbox_path(@user.display_name))) %>/<%= t'message.outbox.outbox' %></h2>
|
||||
<h2><%= raw(t'message.outbox.my_inbox', :inbox_link => link_to(t('message.outbox.inbox'), inbox_path(current_user.display_name))) %>/<%= t'message.outbox.outbox' %></h2>
|
||||
<% end %>
|
||||
|
||||
<h4><%= t'message.outbox.messages', :count => @user.sent_messages.size %></h4>
|
||||
<h4><%= t'message.outbox.messages', :count => current_user.sent_messages.size %></h4>
|
||||
|
||||
<% if @user.sent_messages.size > 0 %>
|
||||
<% if current_user.sent_messages.size > 0 %>
|
||||
<table class="messages">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -15,9 +15,9 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<%= render :partial => "sent_message_summary", :collection => @user.sent_messages %>
|
||||
<%= render :partial => "sent_message_summary", :collection => current_user.sent_messages %>
|
||||
</tbody>
|
||||
</table>
|
||||
<% else %>
|
||||
<div class="messages"><%= raw(t'message.outbox.no_sent_messages', :people_mapping_nearby_link => link_to(t('message.outbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => @user.display_name)) %></div>
|
||||
<div class="messages"><%= raw(t'message.outbox.no_sent_messages', :people_mapping_nearby_link => link_to(t('message.outbox.people_mapping_nearby'), :controller => 'user', :action => 'view', :display_name => current_user.display_name)) %></div>
|
||||
<% end %>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<% if @user == @message.recipient %>
|
||||
<% if current_user == @message.recipient %>
|
||||
<% content_for :heading do %>
|
||||
<h2><%= h(@message.title) %></h2>
|
||||
<% end %>
|
||||
|
@ -36,5 +36,5 @@
|
|||
|
||||
<% end %>
|
||||
|
||||
<%= link_to t('message.read.back'), {:controller => 'message', :action => 'outbox', :display_name => @user.display_name }, :class => "button deemphasize" %>
|
||||
<%= link_to t('message.read.back'), {:controller => 'message', :action => 'outbox', :display_name => current_user.display_name }, :class => "button deemphasize" %>
|
||||
</div>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<h1><%= t "oauth.oauthorize.title" %></h1>
|
||||
<% end %>
|
||||
|
||||
<p><%= raw t("oauth.oauthorize.request_access", :app_name => link_to(@token.client_application.name, @token.client_application.url), :user => link_to(@user.display_name, :controller => :user, :action => :view, :display_name => @user.display_name)) %></p>
|
||||
<p><%= raw t("oauth.oauthorize.request_access", :app_name => link_to(@token.client_application.name, @token.client_application.url), :user => link_to(current_user.display_name, :controller => :user, :action => :view, :display_name => current_user.display_name)) %></p>
|
||||
|
||||
<%= form_tag authorize_url do %>
|
||||
<%= hidden_field_tag "oauth_token", @token.token %>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<%= @redaction.description.to_html %>
|
||||
</p>
|
||||
|
||||
<% if @user and @user.moderator? %>
|
||||
<% if current_user and current_user.moderator? %>
|
||||
<div class="buttons">
|
||||
<%= button_to t('redaction.show.edit'), edit_redaction_path(@redaction), :method => :get %></td>
|
||||
<%= button_to t('redaction.show.destroy'), @redaction, :method => "delete", :remote => true, :data => { :confirm => t('redaction.show.confirm') } %>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<%= javascript_include_tag "edit/potlatch" %>
|
||||
|
||||
<div id="map">
|
||||
<% session[:token] = @user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token]) -%>
|
||||
<% session[:token] = current_user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token]) -%>
|
||||
<% data = { :token => session[:token] } -%>
|
||||
<% data[:lat] = @lat if @lat -%>
|
||||
<% data[:lon] = @lon if @lon -%>
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
<%= javascript_include_tag "edit/potlatch2" %>
|
||||
|
||||
<div id="map">
|
||||
<% session[:token] = @user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token]) -%>
|
||||
<% session[:token] = current_user.tokens.create.token unless session[:token] and UserToken.find_by_token(session[:token]) -%>
|
||||
<% data = { :token => session[:token] } -%>
|
||||
<% data[:lat] = @lat if @lat -%>
|
||||
<% data[:lon] = @lon if @lon -%>
|
||||
<% data[:zoom] = @zoom if @zoom -%>
|
||||
<% if defined? POTLATCH2_KEY %>
|
||||
<% token = @user.access_token(POTLATCH2_KEY) %>
|
||||
<% token = current_user.access_token(POTLATCH2_KEY) %>
|
||||
<% data[:token] = token.token -%>
|
||||
<% data[:token_secret] = token.secret -%>
|
||||
<% data[:consumer_key] = token.client_application.key -%>
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
<p><%= t 'layouts.osm_offline' %></p>
|
||||
<% elsif STATUS == :database_readonly or STATUS == :api_readonly %>
|
||||
<p><%= t 'layouts.osm_read_only' %></p>
|
||||
<% elsif !@user.data_public? %>
|
||||
<% elsif !current_user.data_public? %>
|
||||
<p><%= t 'site.edit.not_public' %></p>
|
||||
<p><%= raw t 'site.edit.not_public_description', :user_page => (link_to t('site.edit.user_page_link'), {:controller => 'user', :action => 'account', :display_name => @user.display_name, :anchor => 'public'}) %></p>
|
||||
<p><%= raw t 'site.edit.not_public_description', :user_page => (link_to t('site.edit.user_page_link'), {:controller => 'user', :action => 'account', :display_name => current_user.display_name, :anchor => 'public'}) %></p>
|
||||
<p><%= raw t 'site.edit.anon_edits', :link => link_to(t('site.edit.anon_edits_link_text'), t('site.edit.anon_edits_link')) %></p>
|
||||
<% else %>
|
||||
<%= render :partial => preferred_editor %>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
<p class='introduction'><%= t "help_page.introduction" %></p>
|
||||
|
||||
<% ['welcome', 'beginners_guide', 'help', 'mailing_lists', 'forums', 'irc', 'switch2osm', 'wiki'].each do |site| %>
|
||||
<% unless site == 'welcome' && !@user %>
|
||||
<% unless site == 'welcome' && !current_user %>
|
||||
<div class='<%= site %> help-item'>
|
||||
<h3>
|
||||
<a href='<%= t "help_page.#{site}.url" %>'>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<body>
|
||||
<% data = {} -%>
|
||||
<% if defined? ID_KEY %>
|
||||
<% token = @user.access_token(ID_KEY) %>
|
||||
<% token = current_user.access_token(ID_KEY) %>
|
||||
<% data[:token] = token.token -%>
|
||||
<% data[:token_secret] = token.secret -%>
|
||||
<% data[:consumer_key] = token.client_application.key -%>
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<ul class='secondary-actions clearfix deemphasize'>
|
||||
<li><%= link_to t('user.view.send message'), :controller => 'message', :action => 'new', :display_name => contact.display_name %></li>
|
||||
<li>
|
||||
<% if @user.is_friends_with?(contact) %>
|
||||
<% if current_user.is_friends_with?(contact) %>
|
||||
<%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
|
||||
<% else %>
|
||||
<%= link_to t('user.view.add as friend'), make_friend_path(:display_name => contact.display_name, :referer => request.fullpath), :method => :post %>
|
||||
|
|
|
@ -5,13 +5,13 @@
|
|||
<% content_for :heading do %>
|
||||
<h1><%= t 'user.account.my settings' %></h1>
|
||||
<ul class='secondary-actions clearfix'>
|
||||
<li><%= link_to t('user.account.return to profile'), :controller => 'user', :action => 'view', :display_name => @user.display_name %></li>
|
||||
<li><%= link_to t('user.account.return to profile'), :controller => 'user', :action => 'view', :display_name => current_user.display_name %></li>
|
||||
<li><%= link_to t('user.view.oauth settings'), :controller => 'oauth_clients', :action => 'index' %></li>
|
||||
</ul>
|
||||
<% end %>
|
||||
|
||||
<%= error_messages_for 'user' %>
|
||||
<%= form_for :user, :html => { :multipart => true, :id => 'accountForm', :class => 'standard-form', :autocomplete => :off } do |f| %>
|
||||
<%= error_messages_for current_user %>
|
||||
<%= form_for current_user, :url => { :action => :account }, :html => { :multipart => true, :id => 'accountForm', :class => 'standard-form', :autocomplete => :off } do |f| %>
|
||||
<fieldset>
|
||||
<div class="form-row">
|
||||
<label class="standard-label"><%= t 'user.new.display name' %></label>
|
||||
|
@ -22,7 +22,7 @@
|
|||
<fieldset>
|
||||
<div class="form-row">
|
||||
<label class="standard-label"><%= t 'user.account.current email address' %></label>
|
||||
<input type="email" disabled value="<%= @user.email %>" />
|
||||
<input type="email" disabled value="<%= current_user.email %>" />
|
||||
<span class="form-help deemphasize"><%= t 'user.account.email never displayed publicly' %></span>
|
||||
</div>
|
||||
|
||||
|
@ -58,7 +58,7 @@
|
|||
<div class="form-row">
|
||||
<label class="standard-label"><%= t 'user.account.public editing.heading' %></label>
|
||||
<span class="form-help deemphasize">
|
||||
<% if @user.data_public? %>
|
||||
<% if current_user.data_public? %>
|
||||
<%= t 'user.account.public editing.enabled' %>
|
||||
(<a href="<%= t 'user.account.public editing.enabled link' %>" target="_new"><%= t 'user.account.public editing.enabled link text' %></a>)
|
||||
<% else %>
|
||||
|
@ -71,10 +71,10 @@
|
|||
<div class="form-row">
|
||||
<label class="standard-label"><%= t 'user.account.contributor terms.heading' %></label>
|
||||
<span class="form-help deemphasize">
|
||||
<% if @user.terms_agreed? %>
|
||||
<% if current_user.terms_agreed? %>
|
||||
<%= t 'user.account.contributor terms.agreed' %>
|
||||
(<a href="<%= t 'user.account.contributor terms.link' %>" target="_new"><%= t 'user.account.contributor terms.link text' %></a>)
|
||||
<% if @user.consider_pd? %>
|
||||
<% if current_user.consider_pd? %>
|
||||
<%= t 'user.account.contributor terms.agreed_with_pd' %>
|
||||
<% end %>
|
||||
<% else %>
|
||||
|
@ -92,7 +92,7 @@
|
|||
<fieldset class="form-divider">
|
||||
<div class='form-row'>
|
||||
<label class="standard-label"><%= t 'user.account.profile description' %></label>
|
||||
<%= richtext_area :user, :description, :cols => 80, :rows => 20 %>
|
||||
<%= richtext_area :user, :description, :object => current_user, :cols => 80, :rows => 20 %>
|
||||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
|
@ -102,21 +102,21 @@
|
|||
|
||||
<div class='form-row accountImage'>
|
||||
<label class="standard-label"><%= t 'user.account.image' %></label>
|
||||
<%= user_image @user %>
|
||||
<%= user_image current_user %>
|
||||
<ul class='form-list accountImage-options'>
|
||||
<% if @user.image.file? %>
|
||||
<% if current_user.image.file? %>
|
||||
<li>
|
||||
<%= radio_button_tag "image_action", "keep", !@user.image_use_gravatar %>
|
||||
<%= radio_button_tag "image_action", "keep", !current_user.image_use_gravatar %>
|
||||
<label class='standard-label' for='image_action_keep'><%= t 'user.account.keep image' %></label>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if @user.image.file? || @user.image_use_gravatar? %>
|
||||
<% if current_user.image.file? || current_user.image_use_gravatar? %>
|
||||
<li>
|
||||
<%= radio_button_tag "image_action", "delete" %>
|
||||
<label class='standard-label' for='image_action_delete'><%= t 'user.account.delete image' %></label>
|
||||
</li>
|
||||
<% end %>
|
||||
<% if @user.image.file? %>
|
||||
<% if current_user.image.file? %>
|
||||
<li>
|
||||
<%= radio_button_tag "image_action", "new" %>
|
||||
<label class='standard-label' for='image_action_new'>
|
||||
|
@ -136,7 +136,7 @@
|
|||
</li>
|
||||
<% end %>
|
||||
<li>
|
||||
<%= radio_button_tag "image_action", "gravatar", @user.image_use_gravatar %>
|
||||
<%= radio_button_tag "image_action", "gravatar", current_user.image_use_gravatar %>
|
||||
<label class='standard-label' for='image_action_gravatar'>
|
||||
<%= t 'user.account.gravatar.gravatar' %>
|
||||
<span class='form-help deemphasize'> (<a href="<%= t 'user.account.gravatar.link' %>" target="_new"><%= t 'user.account.gravatar.link text' %></a>)</span>
|
||||
|
@ -149,7 +149,7 @@
|
|||
<fieldset class="form-divider">
|
||||
<div class='form-row location clearfix'>
|
||||
<label class="standard-label"><%= t 'user.account.home location' %></label>
|
||||
<div id="homerow" <% unless @user.home_lat and @user.home_lon %>class="nohome"<%end%> >
|
||||
<div id="homerow" <% unless current_user.home_lat and current_user.home_lon %>class="nohome"<%end%> >
|
||||
<p class="message form-help deemphasize"><%= t 'user.account.no home location' %></p>
|
||||
<div class='form-column'>
|
||||
<label class="standard-label secondary"><%= t 'user.account.latitude' %></label>
|
||||
|
@ -163,7 +163,7 @@
|
|||
</div>
|
||||
|
||||
<div class="form-row">
|
||||
<input type="checkbox" name="updatehome" value="1" <% unless @user.home_lat and @user.home_lon %> checked="checked" <% end %> id="updatehome" />
|
||||
<input type="checkbox" name="updatehome" value="1" <% unless current_user.home_lat and current_user.home_lon %> checked="checked" <% end %> id="updatehome" />
|
||||
<label class="standard-label" for="updatehome"><%= t 'user.account.update home location on click' %></label>
|
||||
</div>
|
||||
<%= content_tag "div", "", :id => "map", :class => "content_map settings_map set_location" %>
|
||||
|
@ -172,7 +172,7 @@
|
|||
<%= submit_tag t('user.account.save changes button') %>
|
||||
<% end %>
|
||||
|
||||
<% unless @user.data_public? %>
|
||||
<% unless current_user.data_public? %>
|
||||
<a name="public"></a>
|
||||
<h2><%= t 'user.account.public editing note.heading' %></h2>
|
||||
<%= raw t 'user.account.public editing note.text' %>
|
||||
|
|
|
@ -4,7 +4,7 @@ xml.osm("version" => API_VERSION, "generator" => GENERATOR) do
|
|||
:display_name => @this_user.display_name,
|
||||
:account_created => @this_user.creation_time.xmlschema do
|
||||
xml.tag! "description", @this_user.description if @this_user.description
|
||||
if @user && @user == @this_user
|
||||
if current_user && current_user == @this_user
|
||||
xml.tag! "contributor-terms", :agreed => @this_user.terms_agreed.present?,
|
||||
:pd => @this_user.consider_pd
|
||||
else
|
||||
|
@ -28,7 +28,7 @@ xml.osm("version" => API_VERSION, "generator" => GENERATOR) do
|
|||
:active => @this_user.blocks_created.active.size
|
||||
end
|
||||
end
|
||||
if @user && @user == @this_user
|
||||
if current_user && current_user == @this_user
|
||||
if @this_user.home_lat && @this_user.home_lon
|
||||
xml.tag! "home", :lat => @this_user.home_lat,
|
||||
:lon => @this_user.home_lon,
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
<div class='header-illustration new-user-arm'></div>
|
||||
<% end %>
|
||||
|
||||
<%= form_for :user, :url => { :action => 'create' }, :html => { :class => 'standard-form fillL col6 inner22' } do %>
|
||||
<%= form_for current_user, :url => { :action => 'create' }, :html => { :class => 'standard-form fillL col6 inner22' } do |f| %>
|
||||
<%= hidden_field_tag('referer', h(@referer)) unless @referer.nil? %>
|
||||
|
||||
<fieldset>
|
||||
|
@ -16,15 +16,15 @@
|
|||
<label for="email" class="standard-label">
|
||||
<%= t 'user.new.email address' %>
|
||||
</label>
|
||||
<%= email_field(:user, :email, { :tabindex => 1 }) %>
|
||||
<%= error_message_on(:user, :email) %>
|
||||
<%= f.email_field(:email, { :tabindex => 1 }) %>
|
||||
<%= f.error_message_on(:email) %>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label for="email_confirmation" class="standard-label">
|
||||
<%= t 'user.new.confirm email address' %>
|
||||
</label>
|
||||
<%= email_field(:user, :email_confirmation, { :tabindex => 2 }) %>
|
||||
<%= error_message_on(:user, :email_confirmation) %>
|
||||
<%= f.email_field(:email_confirmation, { :tabindex => 2 }) %>
|
||||
<%= f.error_message_on(:email_confirmation) %>
|
||||
</div>
|
||||
<span class="form-help deemphasize"><%= raw(t 'user.new.not displayed publicly') %></span>
|
||||
</fieldset>
|
||||
|
@ -34,8 +34,8 @@
|
|||
<label for="display_name" class="standard-label">
|
||||
<%= t 'user.new.display name' %>
|
||||
</label>
|
||||
<%= text_field(:user, :display_name, { :tabindex => 3 }) %>
|
||||
<%= error_message_on(:user, :display_name) %>
|
||||
<%= f.text_field(:display_name, { :tabindex => 3 }) %>
|
||||
<%= f.error_message_on(:display_name) %>
|
||||
</div>
|
||||
<span class="form-help deemphasize"><%= t 'user.new.display name description' %></span>
|
||||
</fieldset>
|
||||
|
@ -45,9 +45,9 @@
|
|||
<label for="openid_url" class="standard-label">
|
||||
<%= raw t 'user.new.external auth' %>
|
||||
</label>
|
||||
<%= select(:user, :auth_provider, Auth::PROVIDERS, { :default => "", :tabindex => 4 }) %>
|
||||
<%= text_field(:user, :auth_uid, { :tabindex => 5 }) %>
|
||||
<%= error_message_on(:user, :auth_uid) %>
|
||||
<%= f.select(:auth_provider, Auth::PROVIDERS, { :default => "", :tabindex => 4 }) %>
|
||||
<%= f.text_field(:auth_uid, { :tabindex => 5 }) %>
|
||||
<%= f.error_message_on(:auth_uid) %>
|
||||
</div>
|
||||
<span class="form-help deemphasize"><%= t 'user.new.auth no password' %></span>
|
||||
</fieldset>
|
||||
|
@ -57,15 +57,15 @@
|
|||
<label for='user[pass_crypt]' class="standard-label">
|
||||
<%= t 'user.new.password' %>
|
||||
</label>
|
||||
<%= password_field(:user, :pass_crypt, { :tabindex => 6 }) %>
|
||||
<%= error_message_on(:user, :pass_crypt) %>
|
||||
<%= f.password_field(:pass_crypt, { :tabindex => 6 }) %>
|
||||
<%= f.error_message_on(:pass_crypt) %>
|
||||
</div>
|
||||
<div class="form-row">
|
||||
<label class="standard-label">
|
||||
<%= t 'user.new.confirm password' %>
|
||||
</label>
|
||||
<%= password_field(:user, :pass_crypt_confirmation, { :tabindex => 7 }) %>
|
||||
<%= error_message_on(:user, :pass_crypt_confirmation) %>
|
||||
<%= f.password_field(:pass_crypt_confirmation, { :tabindex => 7 }) %>
|
||||
<%= f.error_message_on(:pass_crypt_confirmation) %>
|
||||
</div>
|
||||
</fieldset>
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<% content_for :heading do %>
|
||||
<h1><%= t 'user.reset_password.heading', :user => @user.display_name %></h1>
|
||||
<h1><%= t 'user.reset_password.heading', :user => current_user.display_name %></h1>
|
||||
<% end %>
|
||||
|
||||
<%= error_messages_for :user %>
|
||||
|
|
|
@ -1 +1 @@
|
|||
<%= @user.email %>
|
||||
<%= current_user.email %>
|
||||
|
|
|
@ -3,42 +3,42 @@
|
|||
<%= user_image @this_user %>
|
||||
<div class='userinformation-inner'>
|
||||
<h1><%= @this_user.display_name %><%= role_icons(@this_user) %></h1>
|
||||
<% if @user and @this_user.id == @user.id %>
|
||||
<% if current_user and @this_user.id == current_user.id %>
|
||||
<!-- Displaying user's own profile page to themself -->
|
||||
<ul class='secondary-actions clearfix'>
|
||||
<li>
|
||||
<%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => @user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(@user.changesets.size) %></span>
|
||||
<%= link_to t('user.view.my edits'), :controller => 'changeset', :action => 'list', :display_name => current_user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(current_user.changesets.size) %></span>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my notes'), :controller => 'notes', :action=> 'mine' %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my traces'), :controller => 'trace', :action=>'mine' %>
|
||||
<span class='count-number'><%= number_with_delimiter(@user.traces.size) %></span>
|
||||
<span class='count-number'><%= number_with_delimiter(current_user.traces.size) %></span>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => @user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(@user.diary_entries.size) %></span>
|
||||
<%= link_to t('user.view.my diary'), :controller => 'diary_entry', :action => 'list', :display_name => current_user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(current_user.diary_entries.size) %></span>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my comments' ), :controller => 'diary_entry', :action => 'comments', :display_name => @user.display_name %>
|
||||
<%= link_to t('user.view.my comments' ), :controller => 'diary_entry', :action => 'comments', :display_name => current_user.display_name %>
|
||||
</li>
|
||||
<li>
|
||||
<%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => @user.display_name %>
|
||||
<%= link_to t('user.view.my settings'), :controller => 'user', :action => 'account', :display_name => current_user.display_name %>
|
||||
</li>
|
||||
|
||||
<% if @user.blocks.exists? %>
|
||||
<% if current_user.blocks.exists? %>
|
||||
<li>
|
||||
<%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => @user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(@user.blocks.active.size) %></span>
|
||||
<%= link_to t('user.view.blocks on me'), :controller => 'user_blocks', :action => 'blocks_on', :display_name => current_user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(current_user.blocks.active.size) %></span>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if @user and @user.moderator? and @user.blocks_created.exists? %>
|
||||
<% if current_user and current_user.moderator? and current_user.blocks_created.exists? %>
|
||||
<li>
|
||||
<%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => @user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(@user.blocks_created.active.size) %></span>
|
||||
<%= link_to t('user.view.blocks by me'), :controller => 'user_blocks', :action => 'blocks_by', :display_name => current_user.display_name %>
|
||||
<span class='count-number'><%= number_with_delimiter(current_user.blocks_created.active.size) %></span>
|
||||
</li>
|
||||
<% end %>
|
||||
|
||||
|
@ -73,9 +73,9 @@
|
|||
<%= link_to t('user.view.comments'), :controller => 'diary_entry', :action => 'comments', :display_name => @this_user.display_name %>
|
||||
</li>
|
||||
<li>
|
||||
<% if @user and @user.is_friends_with?(@this_user) %>
|
||||
<% if current_user and current_user.is_friends_with?(@this_user) %>
|
||||
<%= link_to t('user.view.remove as friend'), remove_friend_path(:display_name => @this_user.display_name), :method => :post %>
|
||||
<% elsif @user %>
|
||||
<% elsif current_user %>
|
||||
<%= link_to t('user.view.add as friend'), make_friend_path(:display_name => @this_user.display_name), :method => :post %>
|
||||
<% else %>
|
||||
<%= link_to t('user.view.add as friend'), make_friend_path(:display_name => @this_user.display_name) %>
|
||||
|
@ -96,7 +96,7 @@
|
|||
</li>
|
||||
<% end %>
|
||||
|
||||
<% if @user and @user.moderator? %>
|
||||
<% if current_user and current_user.moderator? %>
|
||||
<li>
|
||||
<%= link_to t('user.view.create_block'), :controller => 'user_blocks', :action => 'new', :display_name => @this_user.display_name %>
|
||||
</li>
|
||||
|
@ -106,7 +106,7 @@
|
|||
|
||||
<% end %>
|
||||
|
||||
<% if @user and @user.administrator? %>
|
||||
<% if current_user and current_user.administrator? %>
|
||||
|
||||
<ul class='secondary-actions clearfix'>
|
||||
<% if ["active", "confirmed"].include? @this_user.status %>
|
||||
|
@ -166,7 +166,7 @@
|
|||
|
||||
</div>
|
||||
|
||||
<% if @user and @user.administrator? -%>
|
||||
<% if current_user and current_user.administrator? -%>
|
||||
<div class='admin-user-info deemphasize'>
|
||||
<small><b><%= t 'user.view.email address' %></b> <%= @this_user.email %></small>
|
||||
<% unless @this_user.creation_ip.nil? -%>
|
||||
|
@ -179,10 +179,10 @@
|
|||
|
||||
<% end %>
|
||||
|
||||
<% if @user and @this_user.id == @user.id %>
|
||||
<% if current_user and @this_user.id == current_user.id %>
|
||||
<% if @this_user.home_lat.nil? or @this_user.home_lon.nil? %>
|
||||
<div id="map" class="content_map">
|
||||
<p id="no_home_location"><%= raw(t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => @user.display_name)) %></p>
|
||||
<p id="no_home_location"><%= raw(t 'user.view.if set location', :settings_link => (link_to t('user.view.settings_link_text'), :controller => 'user', :action => 'account', :display_name => current_user.display_name)) %></p>
|
||||
</div>
|
||||
<% else %>
|
||||
<% content_for :head do %>
|
||||
|
@ -190,10 +190,10 @@
|
|||
<% end %>
|
||||
<%
|
||||
user_data = {
|
||||
:lon => @user.home_lon,
|
||||
:lat => @user.home_lat,
|
||||
:lon => current_user.home_lon,
|
||||
:lat => current_user.home_lat,
|
||||
:icon => image_path("marker-red.png"),
|
||||
:description => render(:partial => "popup", :object => @user, :locals => {:type => "your location"})
|
||||
:description => render(:partial => "popup", :object => current_user, :locals => {:type => "your location"})
|
||||
}
|
||||
%>
|
||||
<%= content_tag "div", "", :id => "map", :class => "content_map", :data => {:user => user_data} %>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<% end %>
|
||||
</td>
|
||||
<td class="<%= c1 %>"><%= link_to t('user_block.partial.show'), block %></td>
|
||||
<td class="<%= c1 %>"><% if @user and @user.id == block.creator_id and block.active? %><%= link_to t('user_block.partial.edit'), edit_user_block_path(block) %><% end %></td>
|
||||
<td class="<%= c1 %>"><% if current_user and current_user.id == block.creator_id and block.active? %><%= link_to t('user_block.partial.edit'), edit_user_block_path(block) %><% end %></td>
|
||||
<% if show_revoke_link %>
|
||||
<td class="<%= c1 %>"><% if block.active? %><%= link_to t('user_block.partial.revoke'), :controller => 'user_blocks', :action => 'revoke', :id => block.id %><% end %></td>
|
||||
<% end %>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<% end %>
|
||||
|
||||
<% unless @user_blocks.empty? %>
|
||||
<%= render :partial => 'blocks', :locals => { :show_revoke_link => (@user and @user.moderator?), :show_user_name => true, :show_creator_name => false } %>
|
||||
<%= render :partial => 'blocks', :locals => { :show_revoke_link => (current_user and current_user.moderator?), :show_user_name => true, :show_creator_name => false } %>
|
||||
<% else %>
|
||||
<p><%= t "user_block.blocks_by.empty", :name => h(@this_user.display_name) %></p>
|
||||
<% end %>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<h1><%= raw(t('user_block.blocks_on.heading', :name => link_to(h(@this_user.display_name), {:controller => 'user', :action => 'view', :display_name => @this_user.display_name}))) %></h1>
|
||||
<% end %>
|
||||
<% unless @user_blocks.empty? %>
|
||||
<%= render :partial => 'blocks', :locals => { :show_revoke_link => (@user and @user.moderator?), :show_user_name => false, :show_creator_name => true } %>
|
||||
<%= render :partial => 'blocks', :locals => { :show_revoke_link => (current_user and current_user.moderator?), :show_user_name => false, :show_creator_name => true } %>
|
||||
<% else %>
|
||||
<p><%= t "user_block.blocks_on.empty", :name => h(@this_user.display_name) %></p>
|
||||
<% end %>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<% end %>
|
||||
|
||||
<% unless @user_blocks.empty? %>
|
||||
<%= render :partial => 'blocks', :locals => { :show_revoke_link => (@user and @user.moderator?), :show_user_name => true, :show_creator_name => true } %>
|
||||
<%= render :partial => 'blocks', :locals => { :show_revoke_link => (current_user and current_user.moderator?), :show_user_name => true, :show_creator_name => true } %>
|
||||
<% else %>
|
||||
<p><%= t "user_block.index.empty" %></p>
|
||||
<% end %>
|
||||
|
|
|
@ -12,10 +12,10 @@
|
|||
{:controller => 'user', :action => 'view', :display_name => @user_block.creator.display_name})) %></h1>
|
||||
<ul class='secondary-actions clearfix'>
|
||||
<% if @user_block.ends_at > Time.now.getutc %>
|
||||
<% if @user and @user.id == @user_block.creator_id %>
|
||||
<% if current_user and current_user.id == @user_block.creator_id %>
|
||||
<li><%= link_to t('user_block.show.edit'), edit_user_block_path(@user_block) %></li>
|
||||
<% end %>
|
||||
<% if @user and @user.moderator? %>
|
||||
<% if current_user and current_user.moderator? %>
|
||||
<li><%= link_to(t('user_block.show.revoke'),{:controller => 'user_blocks', :action => 'revoke', :id => @user_block.id}) %></li>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
|
|
@ -1,20 +1,6 @@
|
|||
sotmasia2016:
|
||||
id: sotmasia2016
|
||||
alt: State of the Map Asia 2016
|
||||
link: http://stateofthemap.asia/
|
||||
img: banners/sotmasia-2016.jpg
|
||||
enddate: 2016-oct-01
|
||||
|
||||
donate2016:
|
||||
id: donate2016
|
||||
alt: OpenStreetMap Funding Drive 2016
|
||||
link: https://donate.openstreetmap.org/
|
||||
img: banners/donate-2016.jpg
|
||||
enddate: 2016-oct-31
|
||||
|
||||
sotmlatam2016:
|
||||
id: sotmlatam2016
|
||||
alt: State of the Map Latam 2016
|
||||
link: http://state.osmlatam.org/
|
||||
img: banners/sotmlatam-2016.jpg
|
||||
enddate: 2016-nov-25
|
||||
sotm2017:
|
||||
id: sotm2017
|
||||
alt: State of the Map 2017
|
||||
link: http://2017.stateofthemap.org/
|
||||
img: banners/banner-sotm-2017.png
|
||||
enddate: 2017-aug-27
|
||||
|
|
|
@ -50,9 +50,8 @@ defaults: &defaults
|
|||
#messages_domain: "messages.openstreetmap.org"
|
||||
# Geonames authentication details
|
||||
#geonames_username: ""
|
||||
# Quova authentication details
|
||||
#quova_username: ""
|
||||
#quova_password: ""
|
||||
# GeoIP database
|
||||
#geoip_database: ""
|
||||
# Users to show as being nearby
|
||||
nearby_users: 30
|
||||
# Max radius, in km, for nearby users
|
||||
|
|
|
@ -406,7 +406,7 @@ class ApiControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
def test_permissions_basic_auth
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :permissions
|
||||
assert_response :success
|
||||
assert_select "osm > permissions", :count => 1 do
|
||||
|
|
|
@ -1321,7 +1321,7 @@ EOF
|
|||
node = create(:node)
|
||||
|
||||
## First try with a non-public user, which should get a forbidden
|
||||
basic_authorization(create(:user, :data_public => false).email, "test")
|
||||
basic_authorization create(:user, :data_public => false).email, "test"
|
||||
|
||||
# create a temporary changeset
|
||||
content "<osm><changeset>" +
|
||||
|
@ -1331,7 +1331,7 @@ EOF
|
|||
assert_response :forbidden
|
||||
|
||||
## Now try with a normal user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# create a temporary changeset
|
||||
content "<osm><changeset>" +
|
||||
|
@ -1377,7 +1377,7 @@ EOF
|
|||
#
|
||||
# NOTE: the error turned out to be something else completely!
|
||||
def test_josm_upload
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# create a temporary changeset
|
||||
content "<osm><changeset>" +
|
||||
|
@ -1439,7 +1439,7 @@ OSMFILE
|
|||
node = create(:node)
|
||||
node2 = create(:node)
|
||||
way = create(:way)
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# create a temporary changeset
|
||||
content "<osm><changeset>" +
|
||||
|
@ -2147,7 +2147,7 @@ EOF
|
|||
deleted_user = create(:user, :deleted)
|
||||
private_user_closed_changeset = create(:changeset, :closed, :user => private_user)
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
assert_difference "ChangesetComment.count", 1 do
|
||||
assert_no_difference "ActionMailer::Base.deliveries.size" do
|
||||
|
@ -2176,7 +2176,7 @@ EOF
|
|||
|
||||
ActionMailer::Base.deliveries.clear
|
||||
|
||||
basic_authorization(user2.email, "test")
|
||||
basic_authorization user2.email, "test"
|
||||
|
||||
assert_difference "ChangesetComment.count", 1 do
|
||||
assert_difference "ActionMailer::Base.deliveries.size", 2 do
|
||||
|
@ -2205,7 +2205,7 @@ EOF
|
|||
post :comment, :params => { :id => create(:changeset, :closed).id, :text => "This is a comment" }
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# bad changeset id
|
||||
assert_no_difference "ChangesetComment.count" do
|
||||
|
@ -2235,7 +2235,7 @@ EOF
|
|||
##
|
||||
# test subscribe success
|
||||
def test_subscribe_success
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
changeset = create(:changeset, :closed)
|
||||
|
||||
assert_difference "changeset.subscribers.count", 1 do
|
||||
|
@ -2256,7 +2256,7 @@ EOF
|
|||
end
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# bad changeset id
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
|
@ -2284,7 +2284,7 @@ EOF
|
|||
# test unsubscribe success
|
||||
def test_unsubscribe_success
|
||||
user = create(:user)
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
changeset = create(:changeset, :closed)
|
||||
changeset.subscribers.push(user)
|
||||
|
||||
|
@ -2304,7 +2304,7 @@ EOF
|
|||
end
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# bad changeset id
|
||||
assert_no_difference "changeset.subscribers.count" do
|
||||
|
@ -2338,14 +2338,14 @@ EOF
|
|||
assert_response :unauthorized
|
||||
assert_equal true, comment.reload.visible
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# not a moderator
|
||||
post :hide_comment, :params => { :id => comment.id }
|
||||
assert_response :forbidden
|
||||
assert_equal true, comment.reload.visible
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
# bad comment id
|
||||
post :hide_comment, :params => { :id => 999111 }
|
||||
|
@ -2359,7 +2359,7 @@ EOF
|
|||
comment = create(:changeset_comment)
|
||||
assert_equal true, comment.visible
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
post :hide_comment, :params => { :id => comment.id }
|
||||
assert_response :success
|
||||
|
@ -2377,14 +2377,14 @@ EOF
|
|||
assert_response :unauthorized
|
||||
assert_equal false, comment.reload.visible
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# not a moderator
|
||||
post :unhide_comment, :params => { :id => comment.id }
|
||||
assert_response :forbidden
|
||||
assert_equal false, comment.reload.visible
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
# bad comment id
|
||||
post :unhide_comment, :params => { :id => 999111 }
|
||||
|
@ -2398,7 +2398,7 @@ EOF
|
|||
comment = create(:changeset_comment, :visible => false)
|
||||
assert_equal false, comment.visible
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
post :unhide_comment, :params => { :id => comment.id }
|
||||
assert_response :success
|
||||
|
|
|
@ -46,7 +46,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized, "node upload did not return unauthorized status"
|
||||
|
||||
## Now try with the user which doesn't have their data public
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# create a minimal xml file
|
||||
content("<osm><node lat='#{lat}' lon='#{lon}' changeset='#{private_changeset.id}'/></osm>")
|
||||
|
@ -57,7 +57,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
assert_require_public_data "node create did not return forbidden status"
|
||||
|
||||
## Now try with the user that has the public data
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# create a minimal xml file
|
||||
content("<osm><node lat='#{lat}' lon='#{lon}' changeset='#{changeset.id}'/></osm>")
|
||||
|
@ -83,7 +83,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
user = create(:user)
|
||||
changeset = create(:changeset, :user => user)
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
lat = 3.434
|
||||
lon = 3.23
|
||||
|
||||
|
@ -160,7 +160,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
## now set auth for the non-data public user
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# try to delete with an invalid (closed) changeset
|
||||
content update_changeset(private_node.to_xml, private_user_closed_changeset.id)
|
||||
|
@ -208,7 +208,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
changeset = create(:changeset, :user => user)
|
||||
closed_changeset = create(:changeset, :closed, :user => user)
|
||||
node = create(:node, :changeset => changeset)
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try to delete with an invalid (closed) changeset
|
||||
content update_changeset(node.to_xml, closed_changeset.id)
|
||||
|
@ -295,7 +295,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
## Second test with the private user
|
||||
|
||||
# setup auth
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
## trying to break changesets
|
||||
|
||||
|
@ -347,7 +347,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
assert_response :forbidden
|
||||
|
||||
# setup auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
## trying to break changesets
|
||||
|
||||
|
@ -465,7 +465,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
existing_tag = create(:node_tag)
|
||||
assert_equal true, existing_tag.node.changeset.user.data_public
|
||||
# setup auth
|
||||
basic_authorization(existing_tag.node.changeset.user.email, "test")
|
||||
basic_authorization existing_tag.node.changeset.user.email, "test"
|
||||
|
||||
# add an identical tag to the node
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -492,7 +492,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
changeset = create(:changeset, :user => user)
|
||||
|
||||
## First try with the non-data public user
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# try and put something into a string that the API might
|
||||
# use unquoted and therefore allow code injection...
|
||||
|
@ -503,7 +503,7 @@ class NodeControllerTest < ActionController::TestCase
|
|||
assert_require_public_data "Shouldn't be able to create with non-public user"
|
||||
|
||||
## Then try with the public data user
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try and put something into a string that the API might
|
||||
# use unquoted and therefore allow code injection...
|
||||
|
|
|
@ -303,7 +303,7 @@ class NotesControllerTest < ActionController::TestCase
|
|||
|
||||
ActionMailer::Base.deliveries.clear
|
||||
|
||||
basic_authorization(third_user.email, "test")
|
||||
basic_authorization third_user.email, "test"
|
||||
|
||||
assert_difference "NoteComment.count", 1 do
|
||||
assert_difference "ActionMailer::Base.deliveries.size", 2 do
|
||||
|
@ -397,7 +397,7 @@ class NotesControllerTest < ActionController::TestCase
|
|||
post :close, :params => { :id => open_note_with_comment.id, :text => "This is a close comment", :format => "json" }
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
post :close, :params => { :id => open_note_with_comment.id, :text => "This is a close comment", :format => "json" }
|
||||
assert_response :success
|
||||
|
@ -428,7 +428,7 @@ class NotesControllerTest < ActionController::TestCase
|
|||
post :close
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
post :close
|
||||
assert_response :bad_request
|
||||
|
@ -454,7 +454,7 @@ class NotesControllerTest < ActionController::TestCase
|
|||
post :reopen, :params => { :id => closed_note_with_comment.id, :text => "This is a reopen comment", :format => "json" }
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
post :reopen, :params => { :id => closed_note_with_comment.id, :text => "This is a reopen comment", :format => "json" }
|
||||
assert_response :success
|
||||
|
@ -487,7 +487,7 @@ class NotesControllerTest < ActionController::TestCase
|
|||
post :reopen, :params => { :id => hidden_note_with_comment.id }
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
post :reopen, :params => { :id => 12345 }
|
||||
assert_response :not_found
|
||||
|
@ -606,12 +606,12 @@ class NotesControllerTest < ActionController::TestCase
|
|||
delete :destroy, :params => { :id => open_note_with_comment.id, :text => "This is a hide comment", :format => "json" }
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
delete :destroy, :params => { :id => open_note_with_comment.id, :text => "This is a hide comment", :format => "json" }
|
||||
assert_response :forbidden
|
||||
|
||||
basic_authorization(moderator_user.email, "test")
|
||||
basic_authorization moderator_user.email, "test"
|
||||
|
||||
delete :destroy, :params => { :id => open_note_with_comment.id, :text => "This is a hide comment", :format => "json" }
|
||||
assert_response :success
|
||||
|
@ -636,12 +636,12 @@ class NotesControllerTest < ActionController::TestCase
|
|||
delete :destroy, :params => { :id => 12345, :format => "json" }
|
||||
assert_response :unauthorized
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
delete :destroy, :params => { :id => 12345, :format => "json" }
|
||||
assert_response :forbidden
|
||||
|
||||
basic_authorization(moderator_user.email, "test")
|
||||
basic_authorization moderator_user.email, "test"
|
||||
|
||||
delete :destroy, :params => { :id => 12345, :format => "json" }
|
||||
assert_response :not_found
|
||||
|
|
|
@ -40,7 +40,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
propagate_tags(node, node.old_nodes.last)
|
||||
|
||||
## First try this with a non-public user
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# setup a simple XML node
|
||||
xml_doc = private_node.to_xml
|
||||
|
@ -89,7 +89,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
# probably should check that they didn't get written to the database
|
||||
|
||||
## Now do it with the public user
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# setup a simple XML node
|
||||
|
||||
|
@ -206,7 +206,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
# test the redaction of an old version of a node, while being
|
||||
# authorised as a normal user.
|
||||
def test_redact_node_normal_user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
node = create(:node, :with_history, :version => 4)
|
||||
node_v3 = node.old_nodes.find_by(:version => 3)
|
||||
|
@ -220,7 +220,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
# test that, even as moderator, the current version of a node
|
||||
# can't be redacted.
|
||||
def test_redact_node_current_version
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
node = create(:node, :with_history, :version => 4)
|
||||
node_v4 = node.old_nodes.find_by(:version => 4)
|
||||
|
@ -242,7 +242,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
assert_response :forbidden, "Redacted node shouldn't be visible via the version API."
|
||||
|
||||
# not even to a logged-in user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :version, :params => { :id => node_v1.node_id, :version => node_v1.version }
|
||||
assert_response :forbidden, "Redacted node shouldn't be visible via the version API, even when logged in."
|
||||
end
|
||||
|
@ -259,7 +259,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 0, "redacted node #{node_v1.node_id} version #{node_v1.version} shouldn't be present in the history."
|
||||
|
||||
# not even to a logged-in user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :history, :params => { :id => node_v1.node_id }
|
||||
assert_response :success, "Redaction shouldn't have stopped history working."
|
||||
assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 0, "redacted node #{node_v1.node_id} version #{node_v1.version} shouldn't be present in the history, even when logged in."
|
||||
|
@ -271,7 +271,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
def test_redact_node_moderator
|
||||
node = create(:node, :with_history, :version => 4)
|
||||
node_v3 = node.old_nodes.find_by(:version => 3)
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_node(node_v3, create(:redaction))
|
||||
assert_response :success, "should be OK to redact old version as moderator."
|
||||
|
@ -297,13 +297,13 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
def test_redact_node_is_redacted
|
||||
node = create(:node, :with_history, :version => 4)
|
||||
node_v3 = node.old_nodes.find_by(:version => 3)
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_node(node_v3, create(:redaction))
|
||||
assert_response :success, "should be OK to redact old version as moderator."
|
||||
|
||||
# re-auth as non-moderator
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# check can't see the redacted data
|
||||
get :version, :params => { :id => node_v3.node_id, :version => node_v3.version }
|
||||
|
@ -336,7 +336,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
node_v1 = node.old_nodes.find_by(:version => 1)
|
||||
node_v1.redact!(create(:redaction))
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
post :redact, :params => { :id => node_v1.node_id, :version => node_v1.version }
|
||||
assert_response :forbidden, "should need to be moderator to unredact."
|
||||
|
@ -351,7 +351,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
node_v1 = node.old_nodes.find_by(:version => 1)
|
||||
node_v1.redact!(create(:redaction))
|
||||
|
||||
basic_authorization(moderator_user.email, "test")
|
||||
basic_authorization moderator_user.email, "test"
|
||||
|
||||
post :redact, :params => { :id => node_v1.node_id, :version => node_v1.version }
|
||||
assert_response :success, "should be OK to unredact old version as moderator."
|
||||
|
@ -366,7 +366,7 @@ class OldNodeControllerTest < ActionController::TestCase
|
|||
assert_response :success, "Unredaction shouldn't have stopped history working."
|
||||
assert_select "osm node[id='#{node_v1.node_id}'][version='#{node_v1.version}']", 1, "node #{node_v1.node_id} version #{node_v1.version} should now be present in the history for moderators without passing flag."
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# check normal user can now see the redacted data
|
||||
get :version, :params => { :id => node_v1.node_id, :version => node_v1.version }
|
||||
|
|
|
@ -50,7 +50,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
relation = create(:relation, :with_history, :version => 4)
|
||||
relation_v3 = relation.old_relations.find_by(:version => 3)
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
do_redact_relation(relation_v3, create(:redaction))
|
||||
assert_response :forbidden, "should need to be moderator to redact."
|
||||
|
@ -63,7 +63,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
relation = create(:relation, :with_history, :version => 4)
|
||||
relation_latest = relation.old_relations.last
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_relation(relation_latest, create(:redaction))
|
||||
assert_response :bad_request, "shouldn't be OK to redact current version as moderator."
|
||||
|
@ -81,7 +81,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
assert_response :forbidden, "Redacted relation shouldn't be visible via the version API."
|
||||
|
||||
# not even to a logged-in user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :version, :params => { :id => relation_v1.relation_id, :version => relation_v1.version }
|
||||
assert_response :forbidden, "Redacted relation shouldn't be visible via the version API, even when logged in."
|
||||
end
|
||||
|
@ -98,7 +98,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
assert_select "osm relation[id='#{relation_v1.relation_id}'][version='#{relation_v1.version}']", 0, "redacted relation #{relation_v1.relation_id} version #{relation_v1.version} shouldn't be present in the history."
|
||||
|
||||
# not even to a logged-in user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :version, :params => { :id => relation_v1.relation_id, :version => relation_v1.version }
|
||||
get :history, :params => { :id => relation_v1.relation_id }
|
||||
assert_response :success, "Redaction shouldn't have stopped history working."
|
||||
|
@ -112,7 +112,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
relation = create(:relation, :with_history, :version => 4)
|
||||
relation_v3 = relation.old_relations.find_by(:version => 3)
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_relation(relation_v3, create(:redaction))
|
||||
assert_response :success, "should be OK to redact old version as moderator."
|
||||
|
@ -139,13 +139,13 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
relation = create(:relation, :with_history, :version => 4)
|
||||
relation_v3 = relation.old_relations.find_by(:version => 3)
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_relation(relation_v3, create(:redaction))
|
||||
assert_response :success, "should be OK to redact old version as moderator."
|
||||
|
||||
# re-auth as non-moderator
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# check can't see the redacted data
|
||||
get :version, :params => { :id => relation_v3.relation_id, :version => relation_v3.version }
|
||||
|
@ -177,7 +177,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
relation_v1 = relation.old_relations.find_by(:version => 1)
|
||||
relation_v1.redact!(create(:redaction))
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
post :redact, :params => { :id => relation_v1.relation_id, :version => relation_v1.version }
|
||||
assert_response :forbidden, "should need to be moderator to unredact."
|
||||
|
@ -191,7 +191,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
relation_v1 = relation.old_relations.find_by(:version => 1)
|
||||
relation_v1.redact!(create(:redaction))
|
||||
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
post :redact, :params => { :id => relation_v1.relation_id, :version => relation_v1.version }
|
||||
assert_response :success, "should be OK to unredact old version as moderator."
|
||||
|
@ -206,7 +206,7 @@ class OldRelationControllerTest < ActionController::TestCase
|
|||
assert_response :success, "Redaction shouldn't have stopped history working."
|
||||
assert_select "osm relation[id='#{relation_v1.relation_id}'][version='#{relation_v1.version}']", 1, "relation #{relation_v1.relation_id} version #{relation_v1.version} should still be present in the history for moderators."
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# check normal user can now see the redacted data
|
||||
get :version, :params => { :id => relation_v1.relation_id, :version => relation_v1.version }
|
||||
|
|
|
@ -90,7 +90,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
# test the redaction of an old version of a way, while being
|
||||
# authorised as a normal user.
|
||||
def test_redact_way_normal_user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
way = create(:way, :with_history, :version => 4)
|
||||
way_v3 = way.old_ways.find_by(:version => 3)
|
||||
|
||||
|
@ -102,7 +102,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
# test that, even as moderator, the current version of a way
|
||||
# can't be redacted.
|
||||
def test_redact_way_current_version
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
way = create(:way, :with_history, :version => 4)
|
||||
way_latest = way.old_ways.last
|
||||
|
||||
|
@ -122,7 +122,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
assert_response :forbidden, "Redacted way shouldn't be visible via the version API."
|
||||
|
||||
# not even to a logged-in user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :version, :params => { :id => way_v1.way_id, :version => way_v1.version }
|
||||
assert_response :forbidden, "Redacted way shouldn't be visible via the version API, even when logged in."
|
||||
end
|
||||
|
@ -139,7 +139,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
assert_select "osm way[id='#{way_v1.way_id}'][version='#{way_v1.version}']", 0, "redacted way #{way_v1.way_id} version #{way_v1.version} shouldn't be present in the history."
|
||||
|
||||
# not even to a logged-in user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
get :version, :params => { :id => way_v1.way_id, :version => way_v1.version }
|
||||
get :history, :params => { :id => way_v1.way_id }
|
||||
assert_response :success, "Redaction shouldn't have stopped history working."
|
||||
|
@ -152,7 +152,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
def test_redact_way_moderator
|
||||
way = create(:way, :with_history, :version => 4)
|
||||
way_v3 = way.old_ways.find_by(:version => 3)
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_way(way_v3, create(:redaction))
|
||||
assert_response :success, "should be OK to redact old version as moderator."
|
||||
|
@ -178,13 +178,13 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
def test_redact_way_is_redacted
|
||||
way = create(:way, :with_history, :version => 4)
|
||||
way_v3 = way.old_ways.find_by(:version => 3)
|
||||
basic_authorization(create(:moderator_user).email, "test")
|
||||
basic_authorization create(:moderator_user).email, "test"
|
||||
|
||||
do_redact_way(way_v3, create(:redaction))
|
||||
assert_response :success, "should be OK to redact old version as moderator."
|
||||
|
||||
# re-auth as non-moderator
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# check can't see the redacted data
|
||||
get :version, :params => { :id => way_v3.way_id, :version => way_v3.version }
|
||||
|
@ -216,7 +216,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
way_v1 = way.old_ways.find_by(:version => 1)
|
||||
way_v1.redact!(create(:redaction))
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
post :redact, :params => { :id => way_v1.way_id, :version => way_v1.version }
|
||||
assert_response :forbidden, "should need to be moderator to unredact."
|
||||
|
@ -231,7 +231,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
way_v1 = way.old_ways.find_by(:version => 1)
|
||||
way_v1.redact!(create(:redaction))
|
||||
|
||||
basic_authorization(moderator_user.email, "test")
|
||||
basic_authorization moderator_user.email, "test"
|
||||
|
||||
post :redact, :params => { :id => way_v1.way_id, :version => way_v1.version }
|
||||
assert_response :success, "should be OK to unredact old version as moderator."
|
||||
|
@ -246,7 +246,7 @@ class OldWayControllerTest < ActionController::TestCase
|
|||
assert_response :success, "Unredaction shouldn't have stopped history working."
|
||||
assert_select "osm way[id='#{way_v1.way_id}'][version='#{way_v1.version}']", 1, "way #{way_v1.way_id} version #{way_v1.version} should still be present in the history for moderators."
|
||||
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# check normal user can now see the unredacted data
|
||||
get :version, :params => { :id => way_v1.way_id, :version => way_v1.version }
|
||||
|
|
|
@ -514,7 +514,7 @@ class RelationControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
## Then try with the private user, to make sure that you get a forbidden
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# this shouldn't work, as we should need the payload...
|
||||
delete :delete, :params => { :id => relation.id }
|
||||
|
@ -556,7 +556,7 @@ class RelationControllerTest < ActionController::TestCase
|
|||
assert_response :forbidden
|
||||
|
||||
## now set auth for the public user
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# this shouldn't work, as we should need the payload...
|
||||
delete :delete, :params => { :id => relation.id }
|
||||
|
@ -739,7 +739,7 @@ class RelationControllerTest < ActionController::TestCase
|
|||
way1 = create(:way_with_nodes, :nodes_count => 2)
|
||||
way2 = create(:way_with_nodes, :nodes_count => 2)
|
||||
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
doc_str = <<OSM.strip_heredoc
|
||||
<osm>
|
||||
|
@ -814,14 +814,14 @@ OSM
|
|||
doc = XML::Parser.string(doc_str).parse
|
||||
|
||||
## First try with the private user
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
content doc
|
||||
put :create
|
||||
assert_response :forbidden
|
||||
|
||||
## Now try with the public user
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
content doc
|
||||
put :create
|
||||
|
@ -855,7 +855,7 @@ OSM
|
|||
</osm>
|
||||
OSM
|
||||
doc = XML::Parser.string(doc_str).parse
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
content doc
|
||||
put :create
|
||||
|
@ -936,7 +936,7 @@ OSM
|
|||
# that the changeset bounding box is +bbox+.
|
||||
def check_changeset_modify(bbox)
|
||||
## First test with the private user to check that you get a forbidden
|
||||
basic_authorization(create(:user, :data_public => false).email, "test")
|
||||
basic_authorization create(:user, :data_public => false).email, "test"
|
||||
|
||||
# create a new changeset for this operation, so we are assured
|
||||
# that the bounding box will be newly-generated.
|
||||
|
@ -947,7 +947,7 @@ OSM
|
|||
end
|
||||
|
||||
## Now do the whole thing with the public user
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# create a new changeset for this operation, so we are assured
|
||||
# that the bounding box will be newly-generated.
|
||||
|
|
|
@ -692,12 +692,12 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Now with some other user, which should work since the trace is public
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
get :api_read, :params => { :id => public_trace_file.id }
|
||||
assert_response :success
|
||||
|
||||
# And finally we should be able to do it with the owner of the trace
|
||||
basic_authorization(public_trace_file.user.display_name, "test")
|
||||
basic_authorization public_trace_file.user.display_name, "test"
|
||||
get :api_read, :params => { :id => public_trace_file.id }
|
||||
assert_response :success
|
||||
end
|
||||
|
@ -711,12 +711,12 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Now try with another user, which shouldn't work since the trace is anon
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
get :api_read, :params => { :id => anon_trace_file.id }
|
||||
assert_response :forbidden
|
||||
|
||||
# And finally we should be able to get the trace details with the trace owner
|
||||
basic_authorization(anon_trace_file.user.display_name, "test")
|
||||
basic_authorization anon_trace_file.user.display_name, "test"
|
||||
get :api_read, :params => { :id => anon_trace_file.id }
|
||||
assert_response :success
|
||||
end
|
||||
|
@ -730,12 +730,12 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Login, and try again
|
||||
basic_authorization(deleted_trace_file.user.display_name, "test")
|
||||
basic_authorization deleted_trace_file.user.display_name, "test"
|
||||
get :api_read, :params => { :id => 0 }
|
||||
assert_response :not_found
|
||||
|
||||
# Now try a trace which did exist but has been deleted
|
||||
basic_authorization(deleted_trace_file.user.display_name, "test")
|
||||
basic_authorization deleted_trace_file.user.display_name, "test"
|
||||
get :api_read, :params => { :id => deleted_trace_file.id }
|
||||
assert_response :not_found
|
||||
end
|
||||
|
@ -749,12 +749,12 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Now with some other user, which should work since the trace is public
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
get :api_data, :params => { :id => public_trace_file.id }
|
||||
check_trace_data public_trace_file
|
||||
|
||||
# And finally we should be able to do it with the owner of the trace
|
||||
basic_authorization(public_trace_file.user.display_name, "test")
|
||||
basic_authorization public_trace_file.user.display_name, "test"
|
||||
get :api_data, :params => { :id => public_trace_file.id }
|
||||
check_trace_data public_trace_file
|
||||
end
|
||||
|
@ -764,7 +764,7 @@ class TraceControllerTest < ActionController::TestCase
|
|||
identifiable_trace_file = create(:trace, :visibility => "identifiable", :fixture => "d")
|
||||
|
||||
# Authenticate as the owner of the trace we will be using
|
||||
basic_authorization(identifiable_trace_file.user.display_name, "test")
|
||||
basic_authorization identifiable_trace_file.user.display_name, "test"
|
||||
|
||||
# First get the data as is
|
||||
get :api_data, :params => { :id => identifiable_trace_file.id }
|
||||
|
@ -788,12 +788,12 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Now with some other user, which shouldn't work since the trace is anon
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
get :api_data, :params => { :id => anon_trace_file.id }
|
||||
assert_response :forbidden
|
||||
|
||||
# And finally we should be able to do it with the owner of the trace
|
||||
basic_authorization(anon_trace_file.user.display_name, "test")
|
||||
basic_authorization anon_trace_file.user.display_name, "test"
|
||||
get :api_data, :params => { :id => anon_trace_file.id }
|
||||
check_trace_data anon_trace_file
|
||||
end
|
||||
|
@ -807,12 +807,12 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Login, and try again
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
get :api_data, :params => { :id => 0 }
|
||||
assert_response :not_found
|
||||
|
||||
# Now try a trace which did exist but has been deleted
|
||||
basic_authorization(deleted_trace_file.user.display_name, "test")
|
||||
basic_authorization deleted_trace_file.user.display_name, "test"
|
||||
get :api_data, :params => { :id => deleted_trace_file.id }
|
||||
assert_response :not_found
|
||||
end
|
||||
|
@ -831,7 +831,7 @@ class TraceControllerTest < ActionController::TestCase
|
|||
# Now authenticated
|
||||
create(:user_preference, :user => user, :k => "gps.trace.visibility", :v => "identifiable")
|
||||
assert_not_equal "trackable", user.preferences.where(:k => "gps.trace.visibility").first.v
|
||||
basic_authorization(user.display_name, "test")
|
||||
basic_authorization user.display_name, "test"
|
||||
post :api_create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :visibility => "trackable" }
|
||||
assert_response :success
|
||||
trace = Trace.find(response.body.to_i)
|
||||
|
@ -849,7 +849,7 @@ class TraceControllerTest < ActionController::TestCase
|
|||
|
||||
# Now authenticated, with the legacy public flag
|
||||
assert_not_equal "public", user.preferences.where(:k => "gps.trace.visibility").first.v
|
||||
basic_authorization(user.display_name, "test")
|
||||
basic_authorization user.display_name, "test"
|
||||
post :api_create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 1 }
|
||||
assert_response :success
|
||||
trace = Trace.find(response.body.to_i)
|
||||
|
@ -868,7 +868,7 @@ class TraceControllerTest < ActionController::TestCase
|
|||
# Now authenticated, with the legacy private flag
|
||||
second_user = create(:user)
|
||||
assert_nil second_user.preferences.where(:k => "gps.trace.visibility").first
|
||||
basic_authorization(second_user.display_name, "test")
|
||||
basic_authorization second_user.display_name, "test"
|
||||
post :api_create, :params => { :file => file, :description => "New Trace", :tags => "new,trace", :public => 0 }
|
||||
assert_response :success
|
||||
trace = Trace.find(response.body.to_i)
|
||||
|
@ -894,32 +894,32 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Now with some other user, which should fail
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
content public_trace_file.to_xml
|
||||
put :api_update, :params => { :id => public_trace_file.id }
|
||||
assert_response :forbidden
|
||||
|
||||
# Now with a trace which doesn't exist
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
content public_trace_file.to_xml
|
||||
put :api_update, :params => { :id => 0 }
|
||||
assert_response :not_found
|
||||
|
||||
# Now with a trace which did exist but has been deleted
|
||||
basic_authorization(deleted_trace_file.user.display_name, "test")
|
||||
basic_authorization deleted_trace_file.user.display_name, "test"
|
||||
content deleted_trace_file.to_xml
|
||||
put :api_update, :params => { :id => deleted_trace_file.id }
|
||||
assert_response :not_found
|
||||
|
||||
# Now try an update with the wrong ID
|
||||
basic_authorization(public_trace_file.user.display_name, "test")
|
||||
basic_authorization public_trace_file.user.display_name, "test"
|
||||
content anon_trace_file.to_xml
|
||||
put :api_update, :params => { :id => public_trace_file.id }
|
||||
assert_response :bad_request,
|
||||
"should not be able to update a trace with a different ID from the XML"
|
||||
|
||||
# And finally try an update that should work
|
||||
basic_authorization(public_trace_file.user.display_name, "test")
|
||||
basic_authorization public_trace_file.user.display_name, "test"
|
||||
t = public_trace_file
|
||||
t.description = "Changed description"
|
||||
t.visibility = "private"
|
||||
|
@ -940,22 +940,22 @@ class TraceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# Now with some other user, which should fail
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
delete :api_delete, :params => { :id => public_trace_file.id }
|
||||
assert_response :forbidden
|
||||
|
||||
# Now with a trace which doesn't exist
|
||||
basic_authorization(create(:user).display_name, "test")
|
||||
basic_authorization create(:user).display_name, "test"
|
||||
delete :api_delete, :params => { :id => 0 }
|
||||
assert_response :not_found
|
||||
|
||||
# And finally we should be able to do it with the owner of the trace
|
||||
basic_authorization(public_trace_file.user.display_name, "test")
|
||||
basic_authorization public_trace_file.user.display_name, "test"
|
||||
delete :api_delete, :params => { :id => public_trace_file.id }
|
||||
assert_response :success
|
||||
|
||||
# Try it a second time, which should fail
|
||||
basic_authorization(public_trace_file.user.display_name, "test")
|
||||
basic_authorization public_trace_file.user.display_name, "test"
|
||||
delete :api_delete, :params => { :id => public_trace_file.id }
|
||||
assert_response :not_found
|
||||
end
|
||||
|
|
|
@ -782,6 +782,10 @@ class UserControllerTest < ActionController::TestCase
|
|||
get :account, :params => { :display_name => user.display_name }, :session => { :user => user }
|
||||
assert_response :success
|
||||
assert_template :account
|
||||
assert_select "form#accountForm" do |form|
|
||||
assert_equal "post", form.attr("method").to_s
|
||||
assert_equal "/user/#{URI.encode(user.display_name)}/account", form.attr("action").to_s
|
||||
end
|
||||
|
||||
# Updating the description should work
|
||||
user.description = "new description"
|
||||
|
@ -1093,7 +1097,7 @@ class UserControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# check that we get a response when logged in
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
get :api_details
|
||||
assert_response :success
|
||||
assert_equal "text/xml", response.content_type
|
||||
|
@ -1148,7 +1152,7 @@ class UserControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# check that we get a response when logged in
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
get :api_gpx_files
|
||||
assert_response :success
|
||||
assert_equal "application/xml", response.content_type
|
||||
|
|
|
@ -34,7 +34,7 @@ class UserPreferenceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized, "should be authenticated"
|
||||
|
||||
# authenticate as a user with no preferences
|
||||
basic_authorization(create(:user).email, "test")
|
||||
basic_authorization create(:user).email, "test"
|
||||
|
||||
# try the read again
|
||||
get :read
|
||||
|
@ -48,7 +48,7 @@ class UserPreferenceControllerTest < ActionController::TestCase
|
|||
user = create(:user)
|
||||
user_preference = create(:user_preference, :user => user)
|
||||
user_preference2 = create(:user_preference, :user => user)
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try the read again
|
||||
get :read
|
||||
|
@ -74,7 +74,7 @@ class UserPreferenceControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized, "should be authenticated"
|
||||
|
||||
# authenticate as a user with preferences
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try the read again
|
||||
get :read_one, :params => { :preference_key => "key" }
|
||||
|
@ -107,7 +107,7 @@ class UserPreferenceControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
# authenticate as a user with preferences
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try the put again
|
||||
assert_no_difference "UserPreference.count" do
|
||||
|
@ -158,7 +158,7 @@ class UserPreferenceControllerTest < ActionController::TestCase
|
|||
end
|
||||
|
||||
# authenticate as a user with preferences
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try adding a new preference
|
||||
assert_difference "UserPreference.count", 1 do
|
||||
|
@ -195,7 +195,7 @@ class UserPreferenceControllerTest < ActionController::TestCase
|
|||
assert_equal "value", UserPreference.find([user.id, "key"]).v
|
||||
|
||||
# authenticate as a user with preferences
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# try the delete again
|
||||
assert_difference "UserPreference.count", -1 do
|
||||
|
|
|
@ -278,7 +278,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
assert_response :unauthorized
|
||||
|
||||
# now set auth using the private user
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# this shouldn't work as with the 0.6 api we need pay load to delete
|
||||
delete :delete, :params => { :id => private_way.id }
|
||||
|
@ -327,7 +327,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
### Now check with a public user
|
||||
# now set auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# this shouldn't work as with the 0.6 api we need pay load to delete
|
||||
delete :delete, :params => { :id => way.id }
|
||||
|
@ -397,7 +397,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
## Second test with the private user
|
||||
|
||||
# setup auth
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
## trying to break changesets
|
||||
|
||||
|
@ -435,7 +435,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
## Finally test with the public user
|
||||
|
||||
# setup auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
## trying to break changesets
|
||||
|
||||
|
@ -519,7 +519,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## Try with the non-public user
|
||||
# setup auth
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# add an identical tag to the way
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -538,7 +538,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## Now try with the public user
|
||||
# setup auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# add an identical tag to the way
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -569,7 +569,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## Try with the non-public user
|
||||
# setup auth
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# add an identical tag to the way
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -588,7 +588,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## Now try with the public user
|
||||
# setup auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# add an identical tag to the way
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -617,7 +617,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## First test with the non-public user so should be rejected
|
||||
# setup auth
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# create duplicate tag
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -638,7 +638,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## Now test with the public user
|
||||
# setup auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# create duplicate tag
|
||||
tag_xml = XML::Node.new("tag")
|
||||
|
@ -671,7 +671,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## First make sure that you can't with a non-public user
|
||||
# setup auth
|
||||
basic_authorization(private_user.email, "test")
|
||||
basic_authorization private_user.email, "test"
|
||||
|
||||
# add the tag into the existing xml
|
||||
way_str = "<osm><way changeset='#{private_changeset.id}'>"
|
||||
|
@ -687,7 +687,7 @@ class WayControllerTest < ActionController::TestCase
|
|||
|
||||
## Now do it with a public user
|
||||
# setup auth
|
||||
basic_authorization(user.email, "test")
|
||||
basic_authorization user.email, "test"
|
||||
|
||||
# add the tag into the existing xml
|
||||
way_str = "<osm><way changeset='#{changeset.id}'>"
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
require "test_helper"
|
||||
|
||||
class ApplicationHelperTest < ActionView::TestCase
|
||||
attr_accessor :current_user
|
||||
|
||||
def setup
|
||||
I18n.locale = "en"
|
||||
end
|
||||
|
@ -46,7 +48,7 @@ class ApplicationHelperTest < ActionView::TestCase
|
|||
end
|
||||
|
||||
def test_style_rules
|
||||
@user = nil
|
||||
self.current_user = nil
|
||||
|
||||
css = style_rules
|
||||
assert_match /\.hidden /, css
|
||||
|
@ -57,36 +59,36 @@ class ApplicationHelperTest < ActionView::TestCase
|
|||
assert_match /\.hide_unless_administrator /, css
|
||||
assert_match /\.hide_unless_moderator /, css
|
||||
|
||||
@user = create(:user)
|
||||
self.current_user = create(:user)
|
||||
|
||||
css = style_rules
|
||||
assert_match /\.hidden /, css
|
||||
assert_no_match /\.hide_unless_logged_in /, css
|
||||
assert_match /\.hide_if_logged_in /, css
|
||||
assert_match /\.hide_if_user_#{@user.id} /, css
|
||||
assert_match /\.show_if_user_#{@user.id} /, css
|
||||
assert_match /\.hide_if_user_#{current_user.id} /, css
|
||||
assert_match /\.show_if_user_#{current_user.id} /, css
|
||||
assert_match /\.hide_unless_administrator /, css
|
||||
assert_match /\.hide_unless_moderator /, css
|
||||
|
||||
@user = create(:moderator_user)
|
||||
self.current_user = create(:moderator_user)
|
||||
|
||||
css = style_rules
|
||||
assert_match /\.hidden /, css
|
||||
assert_no_match /\.hide_unless_logged_in /, css
|
||||
assert_match /\.hide_if_logged_in /, css
|
||||
assert_match /\.hide_if_user_#{@user.id} /, css
|
||||
assert_match /\.show_if_user_#{@user.id} /, css
|
||||
assert_match /\.hide_if_user_#{current_user.id} /, css
|
||||
assert_match /\.show_if_user_#{current_user.id} /, css
|
||||
assert_match /\.hide_unless_administrator /, css
|
||||
assert_no_match /\.hide_unless_moderator /, css
|
||||
|
||||
@user = create(:administrator_user)
|
||||
self.current_user = create(:administrator_user)
|
||||
|
||||
css = style_rules
|
||||
assert_match /\.hidden /, css
|
||||
assert_no_match /\.hide_unless_logged_in /, css
|
||||
assert_match /\.hide_if_logged_in /, css
|
||||
assert_match /\.hide_if_user_#{@user.id} /, css
|
||||
assert_match /\.show_if_user_#{@user.id} /, css
|
||||
assert_match /\.hide_if_user_#{current_user.id} /, css
|
||||
assert_match /\.show_if_user_#{current_user.id} /, css
|
||||
assert_no_match /\.hide_unless_administrator /, css
|
||||
assert_match /\.hide_unless_moderator /, css
|
||||
end
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
require "test_helper"
|
||||
|
||||
class UserRolesHelperTest < ActionView::TestCase
|
||||
def test_role_icon_normal
|
||||
user = create(:user)
|
||||
@user = user
|
||||
attr_accessor :current_user
|
||||
|
||||
icon = role_icon(user, "moderator")
|
||||
def test_role_icon_normal
|
||||
self.current_user = create(:user)
|
||||
|
||||
icon = role_icon(current_user, "moderator")
|
||||
assert_dom_equal "", icon
|
||||
|
||||
icon = role_icon(create(:moderator_user), "moderator")
|
||||
|
@ -13,7 +14,7 @@ class UserRolesHelperTest < ActionView::TestCase
|
|||
end
|
||||
|
||||
def test_role_icon_administrator
|
||||
@user = create(:administrator_user)
|
||||
self.current_user = create(:administrator_user)
|
||||
|
||||
user = create(:user)
|
||||
icon = role_icon(user, "moderator")
|
||||
|
@ -25,10 +26,9 @@ class UserRolesHelperTest < ActionView::TestCase
|
|||
end
|
||||
|
||||
def test_role_icons_normal
|
||||
user = create(:user)
|
||||
@user = user
|
||||
self.current_user = create(:user)
|
||||
|
||||
icons = role_icons(user)
|
||||
icons = role_icons(current_user)
|
||||
assert_dom_equal " ", icons
|
||||
|
||||
icons = role_icons(create(:moderator_user))
|
||||
|
@ -39,7 +39,7 @@ class UserRolesHelperTest < ActionView::TestCase
|
|||
end
|
||||
|
||||
def test_role_icons_administrator
|
||||
@user = create(:administrator_user)
|
||||
self.current_user = create(:administrator_user)
|
||||
|
||||
user = create(:user)
|
||||
icons = role_icons(user)
|
||||
|
|
|
@ -8,15 +8,20 @@ class CORSTest < ActionDispatch::IntegrationTest
|
|||
}
|
||||
|
||||
assert_response :success
|
||||
assert_equal "http://www.example.com", response.headers["Access-Control-Allow-Origin"]
|
||||
assert_equal "*", response.headers["Access-Control-Allow-Origin"]
|
||||
assert_equal "text/plain", response.content_type
|
||||
assert_equal "", response.body
|
||||
end
|
||||
|
||||
def test_non_api_routes_dont_allow_cross_origin_requests
|
||||
assert_raises ActionController::RoutingError do
|
||||
process :options, "/", :headers => {
|
||||
"HTTP_ORIGIN" => "http://www.example.com",
|
||||
"HTTP_ACCESS_CONTROL_REQUEST_METHOD" => "GET"
|
||||
}
|
||||
end
|
||||
|
||||
assert_response :success
|
||||
assert_nil response.headers["Access-Control-Allow-Origin"]
|
||||
assert_nil response.content_type
|
||||
assert_equal "", response.body
|
||||
end
|
||||
end
|
||||
|
|
|
@ -113,7 +113,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_template "login"
|
||||
assert_select "span.username", false
|
||||
assert_select "div.flash.error", /your account has been suspended/
|
||||
assert_select "div.flash.error", /your account has been suspended/ do
|
||||
assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
|
||||
end
|
||||
end
|
||||
|
||||
def test_login_email_password_suspended_upcase
|
||||
|
@ -123,7 +125,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_template "login"
|
||||
assert_select "span.username", false
|
||||
assert_select "div.flash.error", /your account has been suspended/
|
||||
assert_select "div.flash.error", /your account has been suspended/ do
|
||||
assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
|
||||
end
|
||||
end
|
||||
|
||||
def test_login_email_password_suspended_titlecase
|
||||
|
@ -133,7 +137,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_template "login"
|
||||
assert_select "span.username", false
|
||||
assert_select "div.flash.error", /your account has been suspended/
|
||||
assert_select "div.flash.error", /your account has been suspended/ do
|
||||
assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
|
||||
end
|
||||
end
|
||||
|
||||
def test_login_email_password_blocked
|
||||
|
@ -264,7 +270,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_template "login"
|
||||
assert_select "span.username", false
|
||||
assert_select "div.flash.error", /your account has been suspended/
|
||||
assert_select "div.flash.error", /your account has been suspended/ do
|
||||
assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
|
||||
end
|
||||
end
|
||||
|
||||
def test_login_username_password_suspended_upcase
|
||||
|
@ -274,7 +282,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_template "login"
|
||||
assert_select "span.username", false
|
||||
assert_select "div.flash.error", /your account has been suspended/
|
||||
assert_select "div.flash.error", /your account has been suspended/ do
|
||||
assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
|
||||
end
|
||||
end
|
||||
|
||||
def test_login_username_password_suspended_downcase
|
||||
|
@ -284,7 +294,9 @@ class UserLoginTest < ActionDispatch::IntegrationTest
|
|||
|
||||
assert_template "login"
|
||||
assert_select "span.username", false
|
||||
assert_select "div.flash.error", /your account has been suspended/
|
||||
assert_select "div.flash.error", /your account has been suspended/ do
|
||||
assert_select "a[href='mailto:openstreetmap@example.com']", "webmaster"
|
||||
end
|
||||
end
|
||||
|
||||
def test_login_username_password_blocked
|
||||
|
|
445
vendor/assets/iD/iD.css.erb
vendored
445
vendor/assets/iD/iD.css.erb
vendored
|
@ -434,8 +434,9 @@ text.gpx {
|
|||
fill: #FF26D4;
|
||||
}
|
||||
|
||||
/* Default - light gray */
|
||||
path.area.stroke {
|
||||
stroke: #fff;
|
||||
stroke: #ddd;
|
||||
stroke-width: 1;
|
||||
}
|
||||
path.area.fill {
|
||||
|
@ -455,33 +456,16 @@ path.stroke.old-multipolygon {
|
|||
stroke-linecap: butt;
|
||||
}
|
||||
|
||||
path.stroke.tag-natural {
|
||||
stroke: rgb(182, 225, 153);
|
||||
}
|
||||
path.fill.tag-natural {
|
||||
stroke: rgba(182, 225, 153, 0.3);
|
||||
fill: rgba(182, 225, 153, 0.3);
|
||||
}
|
||||
.preset-icon-fill-area.tag-natural {
|
||||
border-color: rgb(182, 225, 153);
|
||||
background-color: rgba(182, 225, 153, 0.3);
|
||||
}
|
||||
|
||||
/* Green things */
|
||||
path.stroke.tag-landuse,
|
||||
path.stroke.tag-natural-wood,
|
||||
path.stroke.tag-natural-tree,
|
||||
path.stroke.tag-natural-grassland,
|
||||
path.stroke.tag-natural-grass,
|
||||
path.stroke.tag-natural,
|
||||
path.stroke.tag-leisure-nature_reserve,
|
||||
path.stroke.tag-leisure-pitch,
|
||||
path.stroke.tag-leisure-park {
|
||||
stroke: rgb(140, 208, 95);
|
||||
}
|
||||
path.fill.tag-landuse,
|
||||
path.fill.tag-natural-wood,
|
||||
path.fill.tag-natural-tree,
|
||||
path.fill.tag-natural-grassland,
|
||||
path.fill.tag-natural-grass,
|
||||
path.fill.tag-natural,
|
||||
path.fill.tag-leisure-nature_reserve,
|
||||
path.fill.tag-leisure-pitch,
|
||||
path.fill.tag-leisure-park {
|
||||
|
@ -489,10 +473,7 @@ path.fill.tag-leisure-park {
|
|||
fill: rgba(140, 208, 95, 0.3);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse,
|
||||
.preset-icon-fill-area.tag-natural-wood,
|
||||
.preset-icon-fill-area.tag-natural-tree,
|
||||
.preset-icon-fill-area.tag-natural-grassland,
|
||||
.preset-icon-fill-area.tag-natural-grass,
|
||||
.preset-icon-fill-area.tag-natural,
|
||||
.preset-icon-fill-area.tag-leisure-nature_reserve,
|
||||
.preset-icon-fill-area.tag-leisure-pitch,
|
||||
.preset-icon-fill-area.tag-leisure-park {
|
||||
|
@ -500,6 +481,7 @@ path.fill.tag-leisure-park {
|
|||
background-color: rgba(140, 208, 95, 0.3);
|
||||
}
|
||||
|
||||
/* Blue things */
|
||||
path.stroke.tag-amenity-swimming_pool,
|
||||
path.stroke.tag-leisure-swimming_pool,
|
||||
path.stroke.tag-natural-water,
|
||||
|
@ -530,13 +512,27 @@ path.fill.tag-natural-water {
|
|||
background-color: rgba(119, 211, 222, 0.3);
|
||||
}
|
||||
|
||||
/* Yellow things */
|
||||
.pattern-color-beach,
|
||||
.pattern-color-sand,
|
||||
.pattern-color-scrub {
|
||||
fill: rgba(255, 255, 148, 0.2);
|
||||
}
|
||||
path.stroke.tag-leisure-pitch.tag-sport-beachvolleyball,
|
||||
path.stroke.tag-natural-beach,
|
||||
path.stroke.tag-natural-sand,
|
||||
path.stroke.tag-natural-scrub,
|
||||
path.stroke.tag-amenity-childcare,
|
||||
path.stroke.tag-amenity-kindergarten,
|
||||
path.stroke.tag-amenity-school,
|
||||
path.stroke.tag-amenity-college,
|
||||
path.stroke.tag-amenity-university {
|
||||
stroke: rgb(255, 255, 148);
|
||||
stroke: rgba(255, 255, 148, 0.75);
|
||||
}
|
||||
path.fill.tag-leisure-pitch.tag-sport-beachvolleyball,
|
||||
path.fill.tag-natural-beach,
|
||||
path.fill.tag-natural-sand,
|
||||
path.fill.tag-natural-scrub,
|
||||
path.fill.tag-amenity-childcare,
|
||||
path.fill.tag-amenity-kindergarten,
|
||||
path.fill.tag-amenity-school,
|
||||
|
@ -545,6 +541,10 @@ path.fill.tag-amenity-university {
|
|||
stroke: rgba(255, 255, 148, 0.15);
|
||||
fill: rgba(255, 255, 148, 0.15);
|
||||
}
|
||||
.preset-icon-fill-area.tag-leisure-pitch.tag-sport-beachvolleyball,
|
||||
.preset-icon-fill-area.tag-natural-beach,
|
||||
.preset-icon-fill-area.tag-natural-sand,
|
||||
.preset-icon-fill-area.tag-natural-scrub,
|
||||
.preset-icon-fill-area.tag-amenity-childcare,
|
||||
.preset-icon-fill-area.tag-amenity-kindergarten,
|
||||
.preset-icon-fill-area.tag-amenity-school,
|
||||
|
@ -554,33 +554,52 @@ path.fill.tag-amenity-university {
|
|||
background-color: rgba(255, 255, 148, 0.15);
|
||||
}
|
||||
|
||||
path.stroke.tag-landuse-residential {
|
||||
/* Gold things */
|
||||
.pattern-color-construction {
|
||||
fill: rgba(196, 189, 25, 0.3);
|
||||
}
|
||||
path.stroke.tag-landuse-residential,
|
||||
path.stroke.tag-landuse.tag-status,
|
||||
path.stroke.tag-landuse-construction {
|
||||
stroke: rgb(196, 189, 25);
|
||||
}
|
||||
path.fill.tag-landuse-residential {
|
||||
stroke: rgba(196, 189, 25, 0.3);
|
||||
fill: rgba(196, 189, 25, 0.3);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse-residential {
|
||||
.preset-icon-fill-area.tag-landuse-residential,
|
||||
.preset-icon-fill-area.tag-landuse.tag-status,
|
||||
.preset-icon-fill-area.tag-landuse-construction {
|
||||
border-color: rgb(196, 189, 25);
|
||||
background: rgba(196, 189, 25, 0.3);
|
||||
}
|
||||
|
||||
/* Orange things */
|
||||
path.stroke.tag-landuse-retail,
|
||||
path.stroke.tag-landuse-commercial {
|
||||
path.stroke.tag-landuse-commercial,
|
||||
path.stroke.tag-landuse-landfill,
|
||||
path.stroke.tag-military,
|
||||
path.stroke.tag-landuse-military {
|
||||
stroke: rgb(214, 136, 26);
|
||||
}
|
||||
path.fill.tag-landuse-retail,
|
||||
path.fill.tag-landuse-commercial {
|
||||
path.fill.tag-landuse-commercial,
|
||||
path.fill.tag-landuse-landfill,
|
||||
path.fill.tag-military,
|
||||
path.fill.tag-landuse-military {
|
||||
stroke: rgba(214, 136, 26, 0.3);
|
||||
fill: rgba(214, 136, 26, 0.3);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse-retail,
|
||||
.preset-icon-fill-area.tag-landuse-commercial {
|
||||
.preset-icon-fill-area.tag-landuse-commercial,
|
||||
.preset-icon-fill-area.tag-landuse-landfill,
|
||||
.preset-icon-fill-area.tag-military,
|
||||
.preset-icon-fill-area.tag-landuse-military {
|
||||
border-color: rgb(214, 136, 26);
|
||||
background-color: rgba(214, 136, 26, 0.3);
|
||||
}
|
||||
|
||||
/* Pink things */
|
||||
path.stroke.tag-landuse-industrial,
|
||||
path.stroke.tag-power-plant {
|
||||
stroke: rgb(228, 164, 245);
|
||||
|
@ -596,127 +615,42 @@ path.fill.tag-power-plant {
|
|||
background-color: rgba(228, 164, 245, 0.3);
|
||||
}
|
||||
|
||||
path.stroke.tag-natural-bare_rock,
|
||||
path.stroke.tag-natural-scree,
|
||||
path.stroke.tag-landuse-railway,
|
||||
path.stroke.tag-landuse-quarry {
|
||||
stroke: rgb(166, 149, 123);
|
||||
}
|
||||
path.fill.tag-natural-bare_rock,
|
||||
path.fill.tag-natural-scree,
|
||||
path.fill.tag-landuse-railway,
|
||||
path.fill.tag-landuse-quarry {
|
||||
stroke: rgba(166, 149, 123, 0.2);
|
||||
fill: rgba(166, 149, 123, 0.2);
|
||||
}
|
||||
.preset-icon-fill-area.tag-natural-bare_rock,
|
||||
.preset-icon-fill-area.tag-natural-scree,
|
||||
.preset-icon-fill-area.tag-landuse-railway,
|
||||
.preset-icon-fill-area.tag-landuse-quarry {
|
||||
border-color: rgb(166, 149, 123);
|
||||
background-color: rgba(166, 149, 123, 0.2);
|
||||
}
|
||||
|
||||
path.stroke.tag-landuse-landfill {
|
||||
stroke: rgb(255, 153, 51);
|
||||
}
|
||||
path.fill.tag-landuse-landfill {
|
||||
stroke: rgba(255, 153, 51, 0.2);
|
||||
fill: rgba(255, 153, 51, 0.2);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse-landfill {
|
||||
border-color: rgb(255, 153, 51);
|
||||
background-color: rgba(255, 153, 51, 0.2);
|
||||
}
|
||||
|
||||
.pattern-color-construction {
|
||||
fill: rgba(196, 189, 25, 0.2);
|
||||
}
|
||||
path.stroke.tag-landuse.tag-status,
|
||||
path.stroke.tag-landuse-construction {
|
||||
stroke: rgb(196, 189, 25);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse.tag-status,
|
||||
.preset-icon-fill-area.tag-landuse-construction {
|
||||
border-color: rgb(196, 189, 25);
|
||||
background-color: rgba(196, 189, 25, 0.2);
|
||||
}
|
||||
|
||||
path.stroke.tag-military,
|
||||
path.stroke.tag-landuse-military {
|
||||
stroke: rgb(214, 136, 26);
|
||||
}
|
||||
path.fill.tag-military,
|
||||
path.fill.tag-landuse-military {
|
||||
stroke: rgba(214, 136, 26, 0.2);
|
||||
fill: rgba(214, 136, 26, 0.2);
|
||||
}
|
||||
.preset-icon-fill-area.tag-military,
|
||||
.preset-icon-fill-area.tag-landuse-military {
|
||||
border-color: rgb(214, 136, 26);
|
||||
background-color: rgba(214, 136, 26, 0.2);
|
||||
}
|
||||
|
||||
/* Teal things */
|
||||
.pattern-color-wetland {
|
||||
fill: rgba(182, 225, 153, 0.2);
|
||||
fill: rgba(153, 225, 170, 0.3);
|
||||
}
|
||||
path.stroke.tag-natural-wetland {
|
||||
stroke: rgb(182, 225, 153);
|
||||
stroke: rgb(153, 225, 170);
|
||||
}
|
||||
.preset-icon-fill-area.tag-natural-wetland {
|
||||
border-color: rgb(182, 225, 153);
|
||||
background-color: rgba(182, 225, 153, 0.2);
|
||||
}
|
||||
|
||||
.pattern-color-meadow {
|
||||
fill: rgba(182, 225, 153, 0.2);
|
||||
}
|
||||
path.stroke.tag-landuse-meadow {
|
||||
stroke: rgb(182, 225, 153);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse-meadow {
|
||||
border-color: rgb(182, 225, 153);
|
||||
background-color: rgba(182, 225, 153, 0.2);
|
||||
}
|
||||
|
||||
.pattern-color-beach,
|
||||
.pattern-color-sand {
|
||||
fill: rgba(255, 255, 126, 0.2);
|
||||
}
|
||||
path.stroke.tag-natural-beach,
|
||||
path.stroke.tag-natural-sand {
|
||||
stroke: rgb(255, 255, 126);
|
||||
}
|
||||
.preset-icon-fill-area.tag-natural-beach,
|
||||
.preset-icon-fill-area.tag-natural-sand {
|
||||
border-color: rgb(255, 255, 126);
|
||||
background-color: rgba(255, 255, 126, 0.2);
|
||||
}
|
||||
|
||||
.pattern-color-scrub {
|
||||
fill: rgba(219, 240, 139, 0.2);
|
||||
}
|
||||
path.stroke.tag-natural-scrub {
|
||||
stroke: rgb(219, 240, 139);
|
||||
}
|
||||
.preset-icon-fill-area.tag-natural-scrub {
|
||||
border-color: rgb(219, 240, 139);
|
||||
background-color: rgba(219, 240, 139, 0.2);
|
||||
border-color: rgb(153, 225, 170);
|
||||
background-color: rgba(153, 225, 170, 0.2);
|
||||
}
|
||||
|
||||
/* Light Green things */
|
||||
.pattern-color-cemetery,
|
||||
.pattern-color-orchard,
|
||||
.pattern-color-meadow,
|
||||
.pattern-color-farm,
|
||||
.pattern-color-farmland {
|
||||
fill: rgba(140, 208, 95, 0.2);
|
||||
fill: rgba(191, 232, 63, 0.2);
|
||||
}
|
||||
path.stroke.tag-landuse-cemetery,
|
||||
path.stroke.tag-landuse-orchard,
|
||||
path.stroke.tag-landuse-meadow,
|
||||
path.stroke.tag-landuse-farm,
|
||||
path.stroke.tag-landuse-farmland {
|
||||
stroke: rgb(140, 208, 95);
|
||||
stroke: rgb(191, 232, 63);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse-cemetery,
|
||||
.preset-icon-fill-area.tag-landuse-orchard,
|
||||
.preset-icon-fill-area.tag-landuse-meadow,
|
||||
.preset-icon-fill-area.tag-landuse-farm,
|
||||
.preset-icon-fill-area.tag-landuse-farmland {
|
||||
background-color: rgba(140, 208, 95, 0.2);
|
||||
background-color: rgba(191, 232, 63, 0.2);
|
||||
}
|
||||
|
||||
/* Tan things */
|
||||
path.stroke.tag-landuse-farmyard {
|
||||
stroke: rgb(245, 220, 186);
|
||||
}
|
||||
|
@ -729,29 +663,51 @@ path.fill.tag-landuse-farmyard {
|
|||
background: rgba(245, 220, 186, 0.3);
|
||||
}
|
||||
|
||||
.pattern-color-cemetery,
|
||||
.pattern-color-orchard {
|
||||
fill: rgba(140, 208, 95, 0.2);
|
||||
/* Dark Gray things */
|
||||
path.stroke.tag-amenity-parking,
|
||||
path.stroke.tag-leisure-pitch.tag-sport-basketball,
|
||||
path.stroke.tag-leisure-pitch.tag-sport-skateboard,
|
||||
path.stroke.tag-natural-bare_rock,
|
||||
path.stroke.tag-natural-scree,
|
||||
path.stroke.tag-landuse-railway,
|
||||
path.stroke.tag-landuse-quarry {
|
||||
stroke: #bbb;
|
||||
}
|
||||
path.stroke.tag-landuse-cemetery,
|
||||
path.stroke.tag-landuse-orchard {
|
||||
stroke: rgb(140, 208, 95);
|
||||
path.fill.tag-amenity-parking,
|
||||
path.fill.tag-leisure-pitch.tag-sport-basketball,
|
||||
path.fill.tag-leisure-pitch.tag-sport-skateboard,
|
||||
path.fill.tag-natural-bare_rock,
|
||||
path.fill.tag-natural-scree,
|
||||
path.fill.tag-landuse-railway,
|
||||
path.fill.tag-landuse-quarry {
|
||||
stroke: rgba(140, 140, 140, 0.5);
|
||||
fill: rgba(140, 140, 140, 0.5);
|
||||
}
|
||||
.preset-icon-fill-area.tag-landuse-cemetery,
|
||||
.preset-icon-fill-area.tag-landuse-orchard {
|
||||
background-color: rgba(140, 208, 95, 0.2);
|
||||
.preset-icon-fill-area.tag-amenity-parking,
|
||||
.preset-icon-fill-area.tag-leisure-pitch.tag-sport-basketball,
|
||||
.preset-icon-fill-area.tag-leisure-pitch.tag-sport-skateboard,
|
||||
.preset-icon-fill-area.tag-natural-bare_rock,
|
||||
.preset-icon-fill-area.tag-natural-scree,
|
||||
.preset-icon-fill-area.tag-landuse-railway,
|
||||
.preset-icon-fill-area.tag-landuse-quarry {
|
||||
border-color: rgb(170, 170, 170);
|
||||
background-color: rgba(140, 140, 140, 0.5);
|
||||
}
|
||||
|
||||
path.stroke.tag-amenity-parking {
|
||||
stroke: rgb(170, 170, 170);
|
||||
/* Light gray overrides */
|
||||
path.stroke.tag-natural-cave_entrance,
|
||||
path.stroke.tag-natural-glacier {
|
||||
stroke: #ddd;
|
||||
}
|
||||
path.fill.tag-amenity-parking {
|
||||
stroke: rgba(170, 170, 170, 0.3);
|
||||
fill: rgba(170, 170, 170, 0.3);
|
||||
path.fill.tag-natural-cave_entrance,
|
||||
path.fill.tag-natural-glacier {
|
||||
stroke: rgba(255, 255, 255, 0.3);
|
||||
fill: rgba(255, 255, 255, 0.3);
|
||||
}
|
||||
.preset-icon-fill-area.tag-amenity-parking {
|
||||
.preset-icon-fill-area.tag-natural-cave_entrance,
|
||||
.preset-icon-fill-area.tag-natural-glacier {
|
||||
border-color: rgb(170, 170, 170);
|
||||
background-color: rgba(170, 170, 170, 0.3);
|
||||
background: rgba(170, 170, 170, 0.3);
|
||||
}
|
||||
|
||||
/* highways */
|
||||
|
@ -769,10 +725,11 @@ path.stroke.tag-highway {
|
|||
|
||||
/* highway areas */
|
||||
|
||||
path.stroke.area.tag-highway {
|
||||
path.stroke.area.tag-highway,
|
||||
.low-zoom path.stroke.area.tag-highway {
|
||||
stroke: #fff;
|
||||
stroke-dasharray: none;
|
||||
stroke-width: 2;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
/* wide highways */
|
||||
|
@ -1217,6 +1174,20 @@ path.casing.tag-service {
|
|||
stroke:#666;
|
||||
}
|
||||
|
||||
/* with `service=* tag` (e.g. parking_aisle, alley, drive-through */
|
||||
.preset-icon .icon.highway-service.tag-service {
|
||||
color: #dcd9b9;
|
||||
fill: #666;
|
||||
}
|
||||
path.stroke.tag-highway-service.tag-service,
|
||||
path.stroke.tag-service.tag-service {
|
||||
stroke: #dcd9b9;
|
||||
}
|
||||
path.casing.tag-highway-service.tag-service,
|
||||
path.casing.tag-service.tag-service {
|
||||
stroke: #666;
|
||||
}
|
||||
|
||||
.preset-icon .icon.highway-track {
|
||||
color: #eaeaea;
|
||||
fill: #c5b59f;
|
||||
|
@ -1346,10 +1317,11 @@ g.midpoint.tag-highway-bridleway .fill {
|
|||
/* aeroways */
|
||||
|
||||
/* areas */
|
||||
path.stroke.area.tag-aeroway {
|
||||
stroke:#fff;
|
||||
path.stroke.area.tag-aeroway,
|
||||
.low-zoom path.stroke.area.tag-aeroway {
|
||||
stroke: #fff;
|
||||
stroke-dasharray: none;
|
||||
stroke-width: 2;
|
||||
stroke-width: 1;
|
||||
}
|
||||
|
||||
/* narrow aeroways (taxiway) */
|
||||
|
@ -1444,6 +1416,20 @@ path.fill.tag-aeroway-runway {
|
|||
fill: #eee;
|
||||
}
|
||||
|
||||
/* railway areas */
|
||||
|
||||
path.stroke.area.tag-railway,
|
||||
.low-zoom path.stroke.area.tag-railway {
|
||||
stroke: white;
|
||||
stroke-width: 1;
|
||||
stroke-dasharray: none;
|
||||
}
|
||||
|
||||
path.casing.area.tag-railway,
|
||||
.low-zoom path.casing.area.tag-railway {
|
||||
stroke: none;
|
||||
}
|
||||
|
||||
/* narrow widths */
|
||||
|
||||
path.shadow.tag-railway {
|
||||
|
@ -1505,23 +1491,41 @@ path.stroke.tag-railway-subway {
|
|||
}
|
||||
|
||||
|
||||
/* railway platforms - like sidewalks */
|
||||
|
||||
path.shadow.tag-railway-platform {
|
||||
stroke-width: 16;
|
||||
}
|
||||
path.casing.tag-railway-platform {
|
||||
stroke: none;
|
||||
stroke: #fff;
|
||||
stroke-width: 5;
|
||||
stroke-linecap: round;
|
||||
stroke-dasharray: none;
|
||||
}
|
||||
path.stroke.tag-railway-platform {
|
||||
stroke: #999;
|
||||
stroke-width: 4;
|
||||
stroke-dasharray: none;
|
||||
stroke: #ae8681;
|
||||
stroke-width: 3;
|
||||
stroke-linecap: butt;
|
||||
stroke-dasharray: 6, 6;
|
||||
}
|
||||
|
||||
|
||||
.area.stroke.tag-railway {
|
||||
stroke: white;
|
||||
.low-zoom path.shadow.tag-railway-platform {
|
||||
stroke-width: 12;
|
||||
}
|
||||
.low-zoom path.casing.tag-railway-platform {
|
||||
stroke-width: 3;
|
||||
}
|
||||
.low-zoom path.stroke.tag-railway-platform {
|
||||
stroke-width: 1;
|
||||
stroke-dasharray: none;
|
||||
stroke-linecap: butt;
|
||||
stroke-dasharray: 3, 3;
|
||||
}
|
||||
.area.casing.tag-railway {
|
||||
stroke: none;
|
||||
|
||||
g.midpoint.tag-railway-platform .fill {
|
||||
fill: #fff;
|
||||
stroke: #333;
|
||||
stroke-opacity: .8;
|
||||
opacity: .8;
|
||||
}
|
||||
/* waterways */
|
||||
|
||||
|
@ -1983,9 +1987,9 @@ path.fill.tag-amenity-shelter {
|
|||
|
||||
.layer-mapillary-signs .icon-sign .icon-sign-body {
|
||||
min-width: 20px;
|
||||
height: 28px;
|
||||
width: 28px;
|
||||
border: 2px solid transparent;
|
||||
height: 24px;
|
||||
width: 24px;
|
||||
outline: 2px solid transparent;
|
||||
pointer-events: visible;
|
||||
cursor: pointer; /* Opera */
|
||||
cursor: url(<%= asset_path("iD/img/cursor-select-mapillary.png") %>) 6 1, pointer; /* FF */
|
||||
|
@ -1994,24 +1998,62 @@ path.fill.tag-amenity-shelter {
|
|||
}
|
||||
|
||||
.layer-mapillary-signs .icon-sign:hover .icon-sign-body {
|
||||
border: 2px solid rgba(255,198,0,0.8);
|
||||
outline: 2px solid rgba(255,198,0,0.8);
|
||||
z-index: 80;
|
||||
}
|
||||
|
||||
.layer-mapillary-signs .icon-sign.selected .icon-sign-body {
|
||||
border: 2px solid rgba(255,0,0,0.8);
|
||||
z-index: 80;
|
||||
}
|
||||
|
||||
.layer-mapillary-signs .icon-sign .t {
|
||||
font-size: 28px;
|
||||
z-index: 70;
|
||||
}
|
||||
|
||||
.layer-mapillary-signs .icon-sign:hover .t,
|
||||
.layer-mapillary-signs .icon-sign.selected .t {
|
||||
.layer-mapillary-signs .icon-sign.selected .icon-sign-body {
|
||||
outline: 2px solid rgba(255,0,0,0.8);
|
||||
z-index: 80;
|
||||
}
|
||||
|
||||
|
||||
/* Mapillary viewer */
|
||||
#mly .domRenderer .TagSymbol {
|
||||
font-size: 10px;
|
||||
background-color: rgba(0, 0, 0, 0.4);
|
||||
padding: 0 4px;
|
||||
border-radius: 4px;
|
||||
transform: translate(-50%, -120%) !important;
|
||||
}
|
||||
|
||||
#mly .domRenderer .Attribution {
|
||||
width: 100%;
|
||||
font-size: 10px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.mapillary-wrap {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
width: 330px;
|
||||
height: 250px;
|
||||
padding: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.mapillary-wrap.hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.mapillary-wrap button.thumb-hide {
|
||||
border-radius: 0;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 500;
|
||||
}
|
||||
|
||||
.mly-wrapper {
|
||||
visibility: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.mly-wrapper.active {
|
||||
visibility: visible;
|
||||
}
|
||||
/* Fill Styles */
|
||||
|
||||
.low-zoom.fill-wireframe path.stroke,
|
||||
|
@ -4041,6 +4083,14 @@ img.wiki-image {
|
|||
background: rgba(0,0,0,.8);
|
||||
}
|
||||
|
||||
/* hidden field to prevent user from tabbing out of the sidebar */
|
||||
input.key-trap {
|
||||
height: 0px;
|
||||
width: 0px;
|
||||
padding: 0px;
|
||||
border: 1px solid rgba(0,0,0,0);
|
||||
}
|
||||
|
||||
/* Fullscreen button */
|
||||
div.full-screen {
|
||||
float: right;
|
||||
|
@ -6034,37 +6084,6 @@ li.hide + li.version .badge .tooltip .tooltip-arrow {
|
|||
color: #7092FF;
|
||||
}
|
||||
|
||||
.mapillary-wrap {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
width: 330px;
|
||||
height: 250px;
|
||||
padding: 5px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.mapillary-wrap.hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.mapillary-wrap button.thumb-hide {
|
||||
border-radius: 0;
|
||||
padding: 5px;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
z-index: 500;
|
||||
}
|
||||
|
||||
.mly-wrapper {
|
||||
visibility: hidden;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.mly-wrapper.active {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
/* Right-to-left localization settings */
|
||||
|
||||
|
|
817
vendor/assets/iD/iD.js
vendored
817
vendor/assets/iD/iD.js
vendored
File diff suppressed because one or more lines are too long
21
vendor/assets/iD/iD/img/iD-sprite.svg
vendored
21
vendor/assets/iD/iD/img/iD-sprite.svg
vendored
|
@ -315,6 +315,18 @@
|
|||
<symbol id="poi-vertex" viewBox="400 350 15 15">
|
||||
<path d="M407.5,354.5 C409.157,354.5 410.5,355.843 410.5,357.5 C410.5,359.157 409.157,360.5 407.5,360.5 C405.843,360.5 404.5,359.157 404.5,357.5 C404.5,355.843 405.843,354.5 407.5,354.5 z" fill="currentColor" id="poi-vertex-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-taoist" viewBox="640 335 15 15">
|
||||
<path d="M647.5,350 C651.634,350 655,346.605 655,342.5 C655,338.395 651.654,335 647.5,335 C643.346,335 640,338.364 640,342.5 C640,346.636 643.366,350 647.5,350 z M647.5,348.929 C643.943,348.929 641.071,346.057 641.071,342.5 C641.071,338.943 643.943,336.071 647.5,336.071 C650.714,336.071 651.786,341.942 647.5,342.5 C643.214,343.058 644.377,348.929 647.5,348.929 z M647.5,346.786 C646.908,346.786 646.429,346.306 646.429,345.714 C646.429,345.123 646.908,344.643 647.5,344.643 C648.092,344.643 648.571,345.123 648.571,345.714 C648.571,346.306 648.092,346.786 647.5,346.786 z M647.5,340.357 C648.092,340.357 648.571,339.877 648.571,339.286 C648.571,338.694 648.092,338.214 647.5,338.214 C646.908,338.214 646.429,338.694 646.429,339.286 C646.429,339.877 646.908,340.357 647.5,340.357 z" fill="currentColor" id="poi-taoist-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-sikhist" viewBox="625 335 15 15">
|
||||
<path d="M632.483,335 L631.397,336.071 C631.465,336.539 631.482,336.902 631.533,337.31 C630.206,337.717 629.225,338.915 629.225,340.357 C629.225,341.811 630.224,343.007 631.567,343.404 C631.511,343.807 631.474,344.186 631.397,344.643 L631.94,345.179 L631.94,345.614 C630.942,344.949 629.88,344.209 629.225,343.571 C627.022,341.429 627.604,337.679 630.311,336.071 C628.145,336.607 626,338.545 626,341.429 C626,344.643 629.225,345.714 629.225,346.786 L630.311,345.714 L631.702,346.484 C631.037,346.891 630.311,347.321 630.311,347.321 L630.854,347.857 L632.008,347.221 L632.008,347.991 C631.655,348.168 631.397,348.512 631.397,348.929 C631.397,349.52 631.883,350 632.483,350 C633.083,350 633.569,349.52 633.569,348.929 C633.569,348.512 633.345,348.168 632.992,347.991 L632.992,347.221 L634.112,347.857 L634.655,347.321 C634.655,347.321 633.89,346.847 633.298,346.484 L634.655,345.714 L635.742,346.786 C635.742,345.714 639,344.643 639,341.429 C639,338.545 636.828,336.607 634.655,336.071 C637.371,337.679 637.951,341.429 635.742,343.571 C635.076,344.217 634.039,344.976 633.026,345.647 L633.026,345.179 L633.569,344.643 C633.494,344.199 633.454,343.813 633.399,343.404 C634.742,343.007 635.742,341.811 635.742,340.357 C635.742,338.904 634.742,337.708 633.399,337.31 C633.454,336.902 633.494,336.515 633.569,336.071 L632.483,335 z M633.264,338.348 C634.08,338.657 634.655,339.444 634.655,340.357 C634.655,341.271 634.08,342.058 633.264,342.366 C633.132,340.985 633.132,339.729 633.264,338.348 z M631.634,338.382 C631.644,338.378 631.659,338.386 631.668,338.382 C631.815,339.871 631.832,341.042 631.702,342.366 C630.886,342.058 630.311,341.271 630.311,340.357 C630.311,339.47 630.855,338.707 631.634,338.382 z M629.768,347.857 C629.468,347.857 629.225,348.097 629.225,348.393 C629.225,348.689 629.468,348.929 629.768,348.929 C630.068,348.929 630.311,348.689 630.311,348.393 C630.311,348.097 630.068,347.857 629.768,347.857 z M635.198,347.857 C634.898,347.857 634.655,348.097 634.655,348.393 C634.655,348.689 634.898,348.929 635.198,348.929 C635.498,348.929 635.742,348.689 635.742,348.393 C635.742,348.097 635.498,347.857 635.198,347.857 z" fill="currentColor" id="poi-sikhist-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-nuclear" viewBox="610 335 15 15">
|
||||
<path d="M618.747,344.066 L621.384,348.417 C619.987,349.263 618.348,349.635 616.688,349.456 C615.673,349.345 614.704,349.033 613.829,348.542 L616.321,344.107 C616.6,344.264 616.91,344.363 617.237,344.399 C617.776,344.457 618.298,344.339 618.747,344.066 z M621.321,335.549 L618.727,339.925 C619.47,340.365 619.927,341.167 619.912,342.044 L624.999,342.133 C625.046,339.41 623.622,336.913 621.321,335.549 z M613.765,335.5 C611.636,336.724 610.221,338.918 610.024,341.411 C610.007,341.626 609.999,341.833 610,342.04 L615.088,342.018 C615.088,341.95 615.09,341.883 615.096,341.809 C615.159,341.009 615.613,340.305 616.301,339.909 L613.765,335.5 z M619.019,342.022 C619.019,341.22 618.368,340.569 617.565,340.569 C616.763,340.569 616.112,341.22 616.112,342.022 C616.112,342.825 616.763,343.476 617.565,343.476 C618.368,343.476 619.019,342.825 619.019,342.022 z" fill="currentColor" id="poi-nuclear-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-wind" viewBox="595 335 15 15">
|
||||
<path d="M603,341.25 L603,349.5 C603,349.845 602.845,350 602.5,350 C602.155,350 602,349.845 602,349.5 L602,343 L603,341.25 z M598.5,335.5 C598.68,335.771 601.75,339.5 601.75,339.5 L600,343.75 C599.841,344.142 600,344.981 600.25,344.75 C600.664,344.368 603,340 603,340 L607,338.8 C607.524,338.655 607.882,338 607.5,338 C606.946,338 602.854,338.456 602.854,338.456 L599.5,335.5 C599.123,335.154 598.302,335.202 598.5,335.5 z" fill="currentColor" id="poi-wind-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-binoculars" viewBox="580 335 15 15">
|
||||
<path d="M591,337.5 C592,339 592,339 592.5,340.344 C593,341.344 593,344.5 593,345.5 C593,346 589,346 589,345.5 C589,344.5 589,344.844 589,344.344 C589,343.844 588.5,343.5 588.5,343 L588.5,342.5 L586.5,342.5 L586.5,343 C586.5,343.5 586,343.844 586,344.344 L586,345.5 C586,346 582,346 582,345.5 C582,344.5 582,341.344 582.5,340.344 C583,339 583,339 584,337.5 C584,337 586,337 586,337.5 L586,338.5 L589,338.5 C589,338.5 589,338 589,337.5 C589,337 591,337 591,337.5 z M582.5,346.5 C581.948,346.5 581.5,347.06 581.5,347.75 L581.5,347.75 C581.5,348.44 581.948,349 582.5,349 L585.5,349 C586.052,349 586.5,348.44 586.5,347.75 L586.5,347.75 C586.5,347.06 586.052,346.5 585.5,346.5 L582.5,346.5 z M589.5,346.5 C588.948,346.5 588.5,347.06 588.5,347.75 L588.5,347.75 C588.5,348.44 588.948,349 589.5,349 L592.5,349 C593.052,349 593.5,348.44 593.5,347.75 L593.5,347.75 C593.5,347.06 593.052,346.5 592.5,346.5 L589.5,346.5 z M584.5,336 C584.224,336 584,336.224 584,336.5 L584,336.5 C584,336.776 584.224,337 584.5,337 L585.5,337 C585.776,337 586,336.776 586,336.5 L586,336.5 C586,336.224 585.776,336 585.5,336 L584.5,336 z M589.5,336 C589.224,336 589,336.224 589,336.5 L589,336.5 C589,336.776 589.224,337 589.5,337 L590.5,337 C590.776,337 591,336.776 591,336.5 L591,336.5 C591,336.224 590.776,336 590.5,336 L589.5,336 z" fill="currentColor" id="poi-binoculars-shape"/>
|
||||
</symbol>
|
||||
|
@ -354,6 +366,15 @@
|
|||
<symbol id="poi-vending-machine" viewBox="400 335 15 15">
|
||||
<path d="M412,335 C412.552,335 413,335.448 413,336 L413,349 C413,349.552 412.552,350 412,350 L403,350 C402.448,350 402,349.552 402,349 L402,336 C402,335.448 402.448,335 403,335 L412,335 z M409,346 L406,346 L406,347.5 L409,347.5 L409,346 z M409,341 L408,341 L408,342 L409,342 L409,341 z M405,341 L404,341 L404,342 L405,342 L405,341 z M407,341 L406,341 L406,342 L407,342 L407,341 z M411,341 L410,341 L410,342 L411,342 L411,341 z M411,339 L410,339 L410,340 L411,340 L411,339 z M407,339 L406,339 L406,340 L407,340 L407,339 z M405,339 L404,339 L404,340 L405,340 L405,339 z M409,339 L408,339 L408,340 L409,340 L409,339 z M409,337 L408,337 L408,338 L409,338 L409,337 z M405,337 L404,337 L404,338 L405,338 L405,337 z M407,337 L406,337 L406,338 L407,338 L407,337 z M411,337 L410,337 L410,338 L411,338 L411,337 z" fill="currentColor" id="poi-vending-machine-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-shintoist" viewBox="640 320 15 15">
|
||||
<path d="M640,320 C640,321.071 640.701,321.756 641.071,322.126 C641.442,322.496 641.974,322.353 641.974,322.632 C641.974,322.632 642.143,323.198 642.679,323.198 L644.018,323.198 C644.018,323.506 644.286,323.733 644.286,323.733 C644.286,323.733 644.018,323.884 644.018,324.269 L642.679,324.269 C642.143,324.269 642.143,324.537 642.143,324.805 C642.143,325.37 642.143,325.876 642.143,325.876 C642.143,326.133 642.39,326.412 642.679,326.412 C642.967,326.412 644.018,326.412 644.018,326.412 L644.018,327.483 L643.214,327.483 C643.214,327.918 643.504,328.267 644.018,328.555 C644.018,328.894 644.018,334.448 644.018,334.448 C644.018,335.153 645.625,335.214 645.625,334.448 L645.625,326.412 L649.375,326.412 L649.375,334.448 C649.375,335.189 650.982,335.137 650.982,334.448 C650.982,334.448 650.982,328.894 650.982,328.555 C651.496,328.221 651.786,327.92 651.786,327.483 L650.982,327.483 L650.982,326.412 C650.982,326.412 652.033,326.412 652.321,326.412 C652.558,326.412 652.857,326.133 652.857,325.876 C652.857,325.876 652.857,325.34 652.857,324.805 C652.857,324.269 652.563,324.269 652.321,324.269 L650.982,324.269 C651.008,323.986 650.714,323.733 650.714,323.733 C650.714,323.733 650.982,323.506 650.982,323.198 L652.321,323.198 C652.857,323.198 652.857,322.662 652.857,322.662 C652.857,322.409 653.482,322.513 653.929,322.126 C654.376,321.739 655,321.071 655,320 C648.571,321.071 645.357,321.071 640,320 z M645.625,323.198 C645.625,323.198 646.696,323.198 646.696,323.198 L646.696,324.269 L645.625,324.269 C645.625,323.961 645.357,323.733 645.357,323.733 C645.357,323.733 645.625,323.531 645.625,323.198 z M648.304,323.198 L649.375,323.198 C649.375,323.481 649.643,323.733 649.643,323.733 C649.643,323.733 649.375,323.986 649.375,324.269 L648.304,324.269 z" fill="currentColor" id="poi-shintoist-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-hinduist" viewBox="625 320 15 15">
|
||||
<path d="M631.421,322.083 C631.421,322.083 633.132,325.139 635.702,322.625 C636.056,323.167 636.772,324.25 636.772,324.25 C636.772,324.25 633.087,326.802 631.421,322.083 z M626.07,324.25 C626.379,324.91 626.777,325.72 627.14,326.417 C627.68,325.333 629.281,325.333 629.281,325.333 C630.351,325.333 631.136,325.758 631.136,326.446 C631.136,327.134 630.351,327.5 629.281,327.5 C629.281,327.5 629.281,328.583 629.281,329.125 C630.684,328.856 631.424,329.98 631.081,330.758 C630.431,332.23 626.61,332.404 625,329.667 C625,333.987 628.683,334 629.281,334 C631.421,334 632.492,331.833 632.492,329.667 C633.049,330.255 633.942,330.258 634.632,329.667 C635.6,328.838 635.979,327.489 637.308,327.5 C638.928,327.513 638.913,330.75 637.843,331.833 C636.772,332.917 634.21,332.532 633.562,330.75 C633.562,331.833 633.562,334.001 636.772,334 C639.983,333.998 640.634,330.334 639.448,327.5 C638.715,325.748 637.343,325.279 635.863,325.743 C634.72,326.102 634.772,326.615 634.097,327.5 C633.744,327.929 633.562,328.583 632.492,328.583 C632.12,328.583 631.666,328.286 631.421,328.042 C632.746,327.083 632.551,325.239 631.421,324.25 C629.936,322.95 627.312,323.216 626.07,324.25 z M632.492,322.083 L633.562,321 L634.632,322.083 L633.562,323.167 z" fill="currentColor" id="poi-hinduist-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-windmill" viewBox="610 320 15 15">
|
||||
<path d="M614.833,320 L613.833,321 L616.5,323.667 L617.167,322.333 L614.833,320 z M613.667,321.167 L613.167,321.667 L616,324.5 L616.5,324 L613.667,321.167 z M621.667,321.167 L618.833,324 L619.333,324.5 L622.167,321.667 L621.667,321.167 z M622.333,321.833 L619.667,324.5 L621,325.167 L623.333,322.833 L622.333,321.833 z M617.667,323.167 L614.552,326.281 L614.333,326.167 L612,328.5 L613,329.5 L614.271,328.229 L614.229,328.604 L613.167,329.667 L613.667,330.167 L614.094,329.74 L613.667,333.333 C612,333.667 611,335 611,335 L624.333,335 C624.333,335 623.333,333.667 621.667,333.333 L621.333,330.5 L621.5,330.333 L621.292,330.156 L621.24,329.74 L621.667,330.167 L622.167,329.667 L621.104,328.604 L620.833,326.333 L617.667,323.167 z M617.167,327 L618.167,327 L618.5,329 L616.833,329 L617.167,327 z" fill="currentColor" id="poi-windmill-shape"/>
|
||||
</symbol>
|
||||
<symbol id="poi-elevator" viewBox="595 320 15 15">
|
||||
<path d="M602.5,335 C602.5,335 598,328 598,328 L607,328 C607,328 602.5,335 602.5,335 z M602.5,320 C602.5,320 607,327 607,327 L598,327 C598,327 602.5,320 602.5,320 z" fill="currentColor" id="poi-elevator-shape"/>
|
||||
</symbol>
|
||||
|
|
Before Width: | Height: | Size: 262 KiB After Width: | Height: | Size: 271 KiB |
259
vendor/assets/iD/iD/locales/ar.json
vendored
259
vendor/assets/iD/iD/locales/ar.json
vendored
|
@ -120,6 +120,14 @@
|
|||
"incomplete_relation": {
|
||||
"single": "لا يمكن حذف هذا العنصر لأنه لم يكتمل تنزيله من الإنترنت.",
|
||||
"multiple": "لا يمكن حذف هذه العناصر لأنه لم يكتمل تنزيلها من الإنترنت."
|
||||
},
|
||||
"part_of_relation": {
|
||||
"single": "لا يمكن حذف هذا العنصر لأنه جزء من علاقة أكبر. ينبغي إزالة العنصر من العلاقة أولا.",
|
||||
"multiple": "لا يمكن حذف هذه العناصر لأنها جزء من علاقة أكبر. ينبغي إزالة تلك العناصر من العلاقة أولا. "
|
||||
},
|
||||
"connected_to_hidden": {
|
||||
"single": "لا يمكن حذف هذا العنصر لأنه متصل بعنصر مخفي. ",
|
||||
"multiple": "لا يمكن حذف هذه العناصر لأن بعضها متصل بعناصر مخفية."
|
||||
}
|
||||
},
|
||||
"add_member": {
|
||||
|
@ -164,14 +172,40 @@
|
|||
},
|
||||
"key": "M",
|
||||
"annotation": {
|
||||
"point": "نقل نقطة",
|
||||
"point": "حركت نقطة.",
|
||||
"vertex": "حركت نقطة في طريق.",
|
||||
"line": "حرك خطاً",
|
||||
"area": "حرك منطقة",
|
||||
"line": "حركت خطًا.",
|
||||
"area": "حركت مساحة.",
|
||||
"multiple": "تم تحريك عدد من العناصر."
|
||||
},
|
||||
"incomplete_relation": {
|
||||
"single": " لا يمكن تحريك هذا العنصر لأنه لم يتم تنزيله بالكامل.",
|
||||
"multiple": "لا يمكن تحريك هذه العناصر لأنه لم يتم تنزيلها بالكامل."
|
||||
},
|
||||
"too_large": {
|
||||
"single": " لا يمكن تحريك هذا العنصر لأنه لا يظهر منه ما يكفي حاليا.",
|
||||
"multiple": "لا يمكن تحريك هذه العناصر لأنه لا يظهر منها ما يكفي حاليا."
|
||||
},
|
||||
"connected_to_hidden": {
|
||||
"single": " لا يمكن تحريك هذا العنصر لأنه متصل بعنصر مخفي.",
|
||||
"multiple": "لا يمكن تحريك هذه العناصر لأن بعضها متصل بعناصر مخفية."
|
||||
}
|
||||
},
|
||||
"reflect": {
|
||||
"title": {
|
||||
"long": "عكس طولي",
|
||||
"short": "عكس عرضي"
|
||||
},
|
||||
"description": {
|
||||
"long": {
|
||||
"single": "عكس هذا العنصر حول محوره الطويل",
|
||||
"multiple": "عكس هذه العناصر حول محورها الطويل."
|
||||
},
|
||||
"short": {
|
||||
"single": "عكس هذا العنصر حول محوره القصير.",
|
||||
"multiple": "عكس هذه العناصر حول محورها القصير."
|
||||
}
|
||||
},
|
||||
"key": {
|
||||
"long": "T",
|
||||
"short": "Y"
|
||||
|
@ -179,29 +213,46 @@
|
|||
},
|
||||
"rotate": {
|
||||
"title": "تدوير",
|
||||
"description": {
|
||||
"single": "تدوير هذا العنصر حول مركزه.",
|
||||
"multiple": "تدوير هذه العناصر حول مركزها."
|
||||
},
|
||||
"key": "R",
|
||||
"annotation": {
|
||||
"line": "تدوير خطا",
|
||||
"area": "تدوير منطقة"
|
||||
"line": "تدوير خط.",
|
||||
"area": "تدوير مساحة.",
|
||||
"multiple": "تدوير عدة عناصر."
|
||||
},
|
||||
"incomplete_relation": {
|
||||
"single": " لا يمكن تدوير هذا العنصر لأنه لم يتم تنزيله بالكامل.",
|
||||
"multiple": "لا يمكن تدوير هذه العناصر لأنه لم يكتمل تنزيلها بالكامل."
|
||||
},
|
||||
"too_large": {
|
||||
"single": "لا يمكن تدوير هذا العنصر بسبب عدم ظهور مايكفي منه حاليا.",
|
||||
"multiple": "لا يمكن تدوير هذه العناصر بسبب عدم ظهور مايكفي منها حاليا."
|
||||
},
|
||||
"connected_to_hidden": {
|
||||
"single": "لا يمكن تدوير هذا العنصر لأنه متصل بعنصر مخفي. ",
|
||||
"multiple": "لا يمكن تدوير هذه العناصر لأن بعضها متصل بعناصر مخفية."
|
||||
}
|
||||
},
|
||||
"reverse": {
|
||||
"title": "اعكس الاتجاه",
|
||||
"description": "اجعل هذا الخط يذهب في الجهة المعاكسة",
|
||||
"title": "عكس الاتجاه",
|
||||
"description": "اجعل هذا الخط يذهب في الاتجاه المعاكس.",
|
||||
"key": "V",
|
||||
"annotation": "اعكس خطا"
|
||||
"annotation": "عكس خط."
|
||||
},
|
||||
"split": {
|
||||
"title": "فصل",
|
||||
"description": {
|
||||
"line": "افصل هذا الخط إلى قسمين عند هذه النقطة.",
|
||||
"area": "تقسيم حدود هذه المنطقة إلى قسمين",
|
||||
"line": "افصل هذا الخط إلى خطين عند هذه النقطة.",
|
||||
"area": "تقسيم حدود هذه المساحة إلى قسمين.",
|
||||
"multiple": "افصل الخطوط أو حدود المساحة عند هذه النقطة إلى قسمين."
|
||||
},
|
||||
"key": "X",
|
||||
"annotation": {
|
||||
"line": "افصل الخط.",
|
||||
"area": "افصل حدود منطقة",
|
||||
"area": "افصل حدود مساحة.",
|
||||
"multiple": "افصل حدود {n} خطوط/منطقة"
|
||||
},
|
||||
"not_eligible": "لا يمكن فصل الخطوط عند البداية أو النهاية.",
|
||||
|
@ -261,7 +312,7 @@
|
|||
"upload_explanation_with_user": "التغييرات التي قمت برفعها كـ {user} سوف تظهر على كل الخرائط التي تستخدم بيانات OpenStreetMap.",
|
||||
"save": "رفع",
|
||||
"cancel": "إلغاء",
|
||||
"changes": "{count} تغييرات",
|
||||
"changes": "عدد التغييرات: {count}",
|
||||
"warnings": "تحذيرات",
|
||||
"modified": "عُدل",
|
||||
"deleted": "حُذفت",
|
||||
|
@ -430,7 +481,9 @@
|
|||
},
|
||||
"restore": {
|
||||
"heading": "لديك تعديلات غير محفوظة",
|
||||
"description": "هل ترغب باستعادة التغييرات الغير محفوظة من جلسة التعديل السابقة؟"
|
||||
"description": "هل ترغب باستعادة التغييرات الغير محفوظة من جلسة التعديل السابقة؟",
|
||||
"restore": "استعادة تغييراتي",
|
||||
"reset": "تجاهل تغييراتي"
|
||||
},
|
||||
"save": {
|
||||
"title": "حفظ",
|
||||
|
@ -590,14 +643,34 @@
|
|||
"click_townhall": "جميع العناصر على الخريطة يمكن تحديدها عن طريق النقر عليها. **انقر على النقطة لتحديدها.**",
|
||||
"selected_townhall": "رائع! ، تم تحديد النقطة. العناصر المُحددة تظهر بحد متوهج ينبض باستمرار.",
|
||||
"editor_townhall": "عند تحديد عنصر، فإن *محرر العناصر* يظهر إلى جانب الخريطة على اليمين.",
|
||||
"preset_townhall": "في الجزء العلوي من محرر العناصر يظهر نوع العنصر. هذه النقطة هي {preset}."
|
||||
"preset_townhall": "في الجزء العلوي من محرر العناصر يظهر نوع العنصر. هذه النقطة هي {preset}.",
|
||||
"fields_townhall": "الجزء الأوسط من محرر العناصر يحتوي على *حقول* تعرض صفات وخصائص العنصر المُختار، مثل اسم العنصر وعنوانه.",
|
||||
"close_townhall": "**يمكنك غلق محرر العناصر عن طريق الضغط على مفتاح الهروب في لوحة المفاتيح \"Esc\" أو النقر على زرّ {button} في الركن العلوي من محرر العناصر.**",
|
||||
"search_street": "يمكنك أيضا البحث عن العناصر المختلفة في العرض الحالي، أو في جميع أنحاء العالم. **ابحث عن '{name}'.**",
|
||||
"choose_street": "**اختر {name} من القائمة لاختيارها**",
|
||||
"selected_street": "رائع! {name} مختارة الآن.",
|
||||
"editor_street": "الحقول التي تظهر للشارع مختلفة عن الحقول التي تظهر لمبنى البلدية.{br}لهذا الشارع المختار، فإن محرر العناصر يُظهر حقول مثل '{field1}' و '{field2}'. **أغلق محرر العناصر عن طريق الضغط على مفتاح الهروب 'Esc' من لوحة المفاتيح أو عن طريق النقر على زرّ {button}.**",
|
||||
"play": "جرّب تحريك الخريطة وانقر على بعض العناصر الأخرى لرؤية أنواع العناصر المختلفة التي يمكن إضافتها على OpenStreetMap. **عندما تكون مستعدًا للانتقال للجزء التالي من الجولة، أنقر '{next}'.**"
|
||||
},
|
||||
"points": {
|
||||
"title": "النقاط",
|
||||
"undo": "يمكنك دوما التراجع عن أي تعديلات قمت بها حتى تقوم بحفظها على OpenStreetMap. **انقر على زرّ {button} للتراجع عن الحذف والبدء مجددا من نقطة سابقة.**"
|
||||
"add_point": "يمكن استخدام *النقاط* لتمثيل المتاجر، والمطاعم، والآثار ونحو ذلك.{br}يمكنك تحديد منطقة معينة، ووصف ما يوجد بها. **انقر على زرّ {button} لإضافة نقطة جديدة.**",
|
||||
"place_point": "لوضع النقطة الجديدة على الخريطة، ضع مؤشر الفأرة في المكان الذي ترغب بإنشاء النقطة فيه، ثم انقر على الزرّ الأيسر للفأرة أو اضغط على مفتاح المسافة على لوحة المفاتيح. **حرّك مؤشر الفأرة حتى يكون على هذا المبنى، ثم انقر بالزرّ الأيسر للفأرة أو اضغط على مفتاح المسافة.**",
|
||||
"search_cafe": "هناك العديد من العناصر المختلفة التي يمكن تمثيلها بالنقاط. النقطة التي اضفتها للتو عبارة عن مقهى. **ابحث عن '{preset}'.**",
|
||||
"choose_cafe": "**اختر {preset} من القائمة.**",
|
||||
"feature_editor": "النقطة الآن عبارة عن مقهى. باستخدام محرر العناصر، يمكنك إضافة المزيد من المعلومات عن المقهى.",
|
||||
"add_name": "في OpenStreetMap جميع الحقول اختيارية، ولا بأس من ترك حقل ما فارغ إذا كنت غير متأكد مما سيكتب فيه.{br}دعنا نتظاهر حاليا بأنك تعرف هذا المقهى، وتعرف اسمه. **أضف اسما للمقهى.**",
|
||||
"add_close": "محرر العناصر سيتذكّر جميع تغييراتك آليا. **عندما تنتهي من إضافة الاسم، اضغط مفتاح الهروب 'Esc'، أو مفتاح 'Enter'، أو اضغط على زرّ {button} لإغلاق محرر العناصر.**",
|
||||
"reselect": "في كثير من الأحيان تكون النقاط موجودة مسبقا، ولكنها قد تحتوي أخطاءً أو قد تكون غير مكتملة.\nيمكنك تعديل النقاط الموجودة مسبقا. **انقر لاختيار المقهى الذي أنشأته للتو.**",
|
||||
"update": "دعنا نملأ بعضا من التفاصيل لهذا المقهى. يمكنك تغيير اسمه، أو إضافة عنوانه، أو إضافة مشروب يقدمه هذا المقهى. **قم بتغيير بعض تفاصيل المقهى.**",
|
||||
"update_close": "** عند انتهائك من تحديث تفاصيل المقهى، اضغط مفتاح 'Esc'، أو 'Enter'، أو اضغط زرّ {button} لإغلاق محرر العناصر.**",
|
||||
"rightclick": "يمكنك النقر بالزر الأيمن للفأرة على أي عنصر لعرض *قائمة التحرير*، والتي تعرض قائمة من عمليات التحرير التي يمكن إجرائها على العنصر. **انقر بالزر الأيمن على النقطة التي أنشأتها وشاهد قائمة التحرير.**",
|
||||
"delete": "لا بأس من حذف العناصر التي لا وجود لها فعليا في العالم الحقيقي.{br}حذف العناصر من OpenStreetMap يزيلها نهائيا من الخرائط التي يستخدمها الجميع. لذلك يجب عليك التأكد أن العنصر غير موجود فعليا قبل حذفه. **انقر على زرّ {button} لحذف النقطة.**",
|
||||
"undo": "يمكنك دوما التراجع عن أي تعديلات قمت بها حتى تقوم بحفظها على OpenStreetMap. **انقر على زرّ {button} للتراجع عن الحذف والبدء مجددا من نقطة سابقة.**",
|
||||
"play": "الآن وبعد معرفتك كيفية إنشاء وتحرير النقاط، حاول إنشاء بعض النقاط الأخرى وتحريرها لغرض التمرين! ** عندما تكون جاهز للمتابعة إلى الجزء التالي من الجولة انقر '{next}'.**"
|
||||
},
|
||||
"areas": {
|
||||
"title": "المناطق"
|
||||
"title": "المساحات"
|
||||
},
|
||||
"lines": {
|
||||
"title": "الخطوط",
|
||||
|
@ -615,15 +688,42 @@
|
|||
"shortcuts": {
|
||||
"title": "اختصارات لوحة المفاتيح",
|
||||
"tooltip": "عرض شاشة اختصارات لوحة المفاتيح",
|
||||
"key": {
|
||||
"home": "الرئيسية",
|
||||
"return": "رجوع"
|
||||
},
|
||||
"gesture": {
|
||||
"drag": "سحب"
|
||||
},
|
||||
"browsing": {
|
||||
"help": {
|
||||
"title": "المساعدة",
|
||||
"keyboard": "عرض اختصارات لوحة المفاتيح"
|
||||
}
|
||||
},
|
||||
"editing": {
|
||||
"title": "تحرير",
|
||||
"drawing": {
|
||||
"title": "رسم",
|
||||
"place_point": "أضف نقطة"
|
||||
},
|
||||
"operations": {
|
||||
"title": "عمليات",
|
||||
"reverse": "عكس الخط",
|
||||
"delete": "حذف الميزات المحددة"
|
||||
},
|
||||
"commands": {
|
||||
"title": "الأوامر",
|
||||
"save": "حفظ التغييرات"
|
||||
}
|
||||
},
|
||||
"tools": {
|
||||
"title": "أدوات",
|
||||
"info": {
|
||||
"history": "تبديل لوحة السجل",
|
||||
"location": "تبديل لوحة الموقع",
|
||||
"measurement": "تبديل لوحة القياس"
|
||||
}
|
||||
}
|
||||
},
|
||||
"presets": {
|
||||
|
@ -866,7 +966,11 @@
|
|||
"label": "حامل كاميرا"
|
||||
},
|
||||
"camera/type": {
|
||||
"label": "نوع الكاميرا"
|
||||
"label": "نوع الكاميرا",
|
||||
"options": {
|
||||
"dome": "قبة",
|
||||
"fixed": "ثابت"
|
||||
}
|
||||
},
|
||||
"capacity": {
|
||||
"label": "السعة",
|
||||
|
@ -919,9 +1023,6 @@
|
|||
"label": "رابط كاميرا الويب",
|
||||
"placeholder": "http://example.com"
|
||||
},
|
||||
"content": {
|
||||
"label": "المحتويات"
|
||||
},
|
||||
"country": {
|
||||
"label": "الدولة"
|
||||
},
|
||||
|
@ -971,8 +1072,12 @@
|
|||
"shared_lane": {
|
||||
"description": "مسار دراجات غير مفصول عن حركة مرور السيارات",
|
||||
"title": "مسار دراجات مشترك"
|
||||
},
|
||||
"track": {
|
||||
"title": "مسار الدراجة"
|
||||
}
|
||||
},
|
||||
"placeholder": "لا شيء",
|
||||
"types": {
|
||||
"cycleway:left": "جانب أيسر",
|
||||
"cycleway:right": "جانب أيمن"
|
||||
|
@ -993,6 +1098,9 @@
|
|||
"description": {
|
||||
"label": "الوصف"
|
||||
},
|
||||
"display": {
|
||||
"label": "عرض"
|
||||
},
|
||||
"dock": {
|
||||
"label": "النوع"
|
||||
},
|
||||
|
@ -1036,7 +1144,9 @@
|
|||
"label": "النوع"
|
||||
},
|
||||
"fire_hydrant/position": {
|
||||
"label": "موضع",
|
||||
"options": {
|
||||
"green": "أخضر",
|
||||
"lane": "حارة طريق",
|
||||
"parking_lot": "ساحة وقوف سيارات",
|
||||
"sidewalk": "رصيف"
|
||||
|
@ -1137,6 +1247,9 @@
|
|||
"internet_access/fee": {
|
||||
"label": "رسوم استخدام خدمة الإنترنت"
|
||||
},
|
||||
"label": {
|
||||
"label": "وسم"
|
||||
},
|
||||
"lamp_type": {
|
||||
"label": "النوع"
|
||||
},
|
||||
|
@ -1204,7 +1317,8 @@
|
|||
"label": "النوع"
|
||||
},
|
||||
"maxheight": {
|
||||
"label": "أقصى ارتفاع"
|
||||
"label": "أقصى ارتفاع",
|
||||
"placeholder": "4, 4.5, 5, 14'0\", 14'6\", 15'0\""
|
||||
},
|
||||
"maxspeed": {
|
||||
"label": "حدود السرعة",
|
||||
|
@ -1213,6 +1327,9 @@
|
|||
"maxweight": {
|
||||
"label": "أقصى وزن"
|
||||
},
|
||||
"mtb/scale": {
|
||||
"placeholder": "0, 1, 2, 3..."
|
||||
},
|
||||
"mtb/scale/imba": {
|
||||
"options": {
|
||||
"1": "سهل (دائرة خضراء)"
|
||||
|
@ -1242,10 +1359,24 @@
|
|||
}
|
||||
},
|
||||
"network_foot": {
|
||||
"label": "نوع الشبكة"
|
||||
"label": "نوع الشبكة",
|
||||
"options": {
|
||||
"iwn": "دولي",
|
||||
"lwn": "محلي",
|
||||
"nwn": "وطني",
|
||||
"rwn": "إقليمي"
|
||||
},
|
||||
"placeholder": "محلي، إقليمي، وطني، دولي"
|
||||
},
|
||||
"network_horse": {
|
||||
"label": "نوع الشبكة"
|
||||
"label": "نوع الشبكة",
|
||||
"options": {
|
||||
"ihn": "دولي",
|
||||
"lhn": "محلي",
|
||||
"nhn": "وطني",
|
||||
"rhn": "إقليمي"
|
||||
},
|
||||
"placeholder": "محلي، إقليمي، وطني، دولي"
|
||||
},
|
||||
"network_road": {
|
||||
"label": "الشبكة"
|
||||
|
@ -1999,6 +2130,10 @@
|
|||
"name": "منظم حفلات",
|
||||
"terms": "منظم حفلات; متعهد حفلات;حفلة;حفلات"
|
||||
},
|
||||
"craft/electrician": {
|
||||
"name": "كهربائي",
|
||||
"terms": "كهربائي"
|
||||
},
|
||||
"craft/gardener": {
|
||||
"name": "بستاني"
|
||||
},
|
||||
|
@ -2162,6 +2297,9 @@
|
|||
"name": "منطقة خدمة",
|
||||
"terms": "خدمة سيارات; منطقة خدمة سيارات; منطقة خدمية"
|
||||
},
|
||||
"highway/speed_camera": {
|
||||
"name": "كاميرا مراقبة"
|
||||
},
|
||||
"highway/steps": {
|
||||
"name": "درج",
|
||||
"terms": "درج"
|
||||
|
@ -2434,6 +2572,10 @@
|
|||
"name": "حوض سباحة",
|
||||
"terms": "حمام سباحة; حوض سباحة; حمام; حوض; سباحة; مسبح"
|
||||
},
|
||||
"leisure/water_park": {
|
||||
"name": "ملاهي مائية",
|
||||
"terms": "ملاهي مائية"
|
||||
},
|
||||
"line": {
|
||||
"name": "طريق",
|
||||
"terms": "طريق"
|
||||
|
@ -2450,6 +2592,10 @@
|
|||
"name": "كاسر الأمواج",
|
||||
"terms": "كاسر الأمواج"
|
||||
},
|
||||
"man_made/bridge": {
|
||||
"name": "جسر",
|
||||
"terms": "جسر"
|
||||
},
|
||||
"man_made/chimney": {
|
||||
"name": "مدخنة"
|
||||
},
|
||||
|
@ -2515,6 +2661,10 @@
|
|||
"name": "محطة مياه",
|
||||
"terms": "محطة مياه"
|
||||
},
|
||||
"man_made/works": {
|
||||
"name": "مصنع",
|
||||
"terms": "مصنع"
|
||||
},
|
||||
"natural": {
|
||||
"name": "طبيعي",
|
||||
"terms": "طبيعي"
|
||||
|
@ -2612,6 +2762,10 @@
|
|||
"name": "غابة أخشاب",
|
||||
"terms": "غابة أخشاب"
|
||||
},
|
||||
"noexit/yes": {
|
||||
"name": "لا يوجد مخرج",
|
||||
"terms": "لا يوجد مخرج"
|
||||
},
|
||||
"office": {
|
||||
"name": "مكتب",
|
||||
"terms": "مكتب"
|
||||
|
@ -3048,6 +3202,10 @@
|
|||
"name": "محل بيع وتأجير الأفلام",
|
||||
"terms": "محل بيع وتأجير الأفلام"
|
||||
},
|
||||
"shop/video_games": {
|
||||
"name": "متجر العاب الفيديو",
|
||||
"terms": "متجر العاب الفيديو"
|
||||
},
|
||||
"shop/weapons": {
|
||||
"name": "متجر أسلحة"
|
||||
},
|
||||
|
@ -3149,6 +3307,22 @@
|
|||
"name": "قيود",
|
||||
"terms": "قيود"
|
||||
},
|
||||
"type/restriction/no_u_turn": {
|
||||
"name": "لا يوجد دوران",
|
||||
"terms": "لا يوجد دوران"
|
||||
},
|
||||
"type/restriction/only_left_turn": {
|
||||
"name": "منعطف لليسار فقط",
|
||||
"terms": "منعطف لليسار فقط"
|
||||
},
|
||||
"type/restriction/only_right_turn": {
|
||||
"name": "منعطف لليمين فقط",
|
||||
"terms": "منعطف لليمين فقط"
|
||||
},
|
||||
"type/restriction/only_straight_on": {
|
||||
"name": "لا يوجد منعطفات",
|
||||
"terms": "لا يوجد منعطفات"
|
||||
},
|
||||
"type/route": {
|
||||
"name": "مسار",
|
||||
"terms": "مسار"
|
||||
|
@ -3205,6 +3379,10 @@
|
|||
"name": "مسار رئيسي",
|
||||
"terms": "مسار رئيسي"
|
||||
},
|
||||
"type/site": {
|
||||
"name": "موقع",
|
||||
"terms": "موقع"
|
||||
},
|
||||
"vertex": {
|
||||
"name": "أخرى",
|
||||
"terms": "أخرى"
|
||||
|
@ -3212,6 +3390,10 @@
|
|||
"waterway": {
|
||||
"name": "مجرى مائي"
|
||||
},
|
||||
"waterway/boatyard": {
|
||||
"name": "ساحة بناء المراكب",
|
||||
"terms": "ساحة بناء المراكب"
|
||||
},
|
||||
"waterway/canal": {
|
||||
"name": "قناة",
|
||||
"terms": "قناة"
|
||||
|
@ -3224,6 +3406,10 @@
|
|||
"name": "خندق",
|
||||
"terms": "خندق"
|
||||
},
|
||||
"waterway/dock": {
|
||||
"name": "رصيف بحري رطب/رصيف بحري جاف",
|
||||
"terms": "رصيف بحري رطب/رصيف بحري جاف"
|
||||
},
|
||||
"waterway/drain": {
|
||||
"name": "مصرف مياه",
|
||||
"terms": "مصرف مياه"
|
||||
|
@ -3238,18 +3424,27 @@
|
|||
},
|
||||
"waterway/riverbank": {
|
||||
"name": "ضفة نهر",
|
||||
"terms": "شاطيء نهر"
|
||||
"terms": "ضفة النهر"
|
||||
},
|
||||
"waterway/sanitary_dump_station": {
|
||||
"name": "التخلص من مرحاض البحر",
|
||||
"terms": "التخلص من مرحاض البحر"
|
||||
},
|
||||
"waterway/stream": {
|
||||
"name": "مجرى",
|
||||
"terms": "مجرى"
|
||||
},
|
||||
"waterway/water_point": {
|
||||
"name": "مياه الشرب البحرية",
|
||||
"terms": "مياه الشرب البحرية"
|
||||
},
|
||||
"waterway/waterfall": {
|
||||
"name": "شلال"
|
||||
"name": "شلال",
|
||||
"terms": "شلال"
|
||||
},
|
||||
"waterway/weir": {
|
||||
"name": "هدار سد صغير",
|
||||
"terms": "هدار سد صغير"
|
||||
"name": "سد",
|
||||
"terms": "سد"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -3335,6 +3530,16 @@
|
|||
},
|
||||
"stamen-terrain-background": {
|
||||
"name": "ستامن تيرين"
|
||||
},
|
||||
"tf-cycle": {
|
||||
"attribution": {
|
||||
"text": "Maps © Thunderforest, Data © OpenStreetMap contributors"
|
||||
}
|
||||
},
|
||||
"tf-landscape": {
|
||||
"attribution": {
|
||||
"text": "Maps © Thunderforest, Data © OpenStreetMap contributors"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
3
vendor/assets/iD/iD/locales/ast.json
vendored
3
vendor/assets/iD/iD/locales/ast.json
vendored
|
@ -907,9 +907,6 @@
|
|||
"construction": {
|
||||
"label": "Tipu"
|
||||
},
|
||||
"content": {
|
||||
"label": "Conteníu"
|
||||
},
|
||||
"country": {
|
||||
"label": "País"
|
||||
},
|
||||
|
|
3
vendor/assets/iD/iD/locales/ca.json
vendored
3
vendor/assets/iD/iD/locales/ca.json
vendored
|
@ -1064,9 +1064,6 @@
|
|||
"label": "URL de la webcam",
|
||||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Continguts"
|
||||
},
|
||||
"country": {
|
||||
"label": "País"
|
||||
},
|
||||
|
|
3
vendor/assets/iD/iD/locales/cs.json
vendored
3
vendor/assets/iD/iD/locales/cs.json
vendored
|
@ -1216,9 +1216,6 @@
|
|||
"label": "URL webkamery",
|
||||
"placeholder": "http://priklad.cz/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Obsah"
|
||||
},
|
||||
"country": {
|
||||
"label": "Stát"
|
||||
},
|
||||
|
|
3
vendor/assets/iD/iD/locales/da.json
vendored
3
vendor/assets/iD/iD/locales/da.json
vendored
|
@ -1184,9 +1184,6 @@
|
|||
"label": "Webcam-URL",
|
||||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Indhold"
|
||||
},
|
||||
"country": {
|
||||
"label": "Land"
|
||||
},
|
||||
|
|
57
vendor/assets/iD/iD/locales/de.json
vendored
57
vendor/assets/iD/iD/locales/de.json
vendored
|
@ -491,7 +491,7 @@
|
|||
},
|
||||
"service_roads": {
|
||||
"description": "Erschließungsstraßen",
|
||||
"tooltip": "Erschließungsstraßen, Zufahrtsstraßen, Parkplatzstraßen, Feldwege, Waldwege, etc."
|
||||
"tooltip": "Erschließungsstraßen, Zufahrtsstraßen, Parkplatzstraßen, Waldwege, Feldwege, etc."
|
||||
},
|
||||
"paths": {
|
||||
"description": "Wege",
|
||||
|
@ -1341,6 +1341,9 @@
|
|||
"clockwise": "im Uhrzeigersinn"
|
||||
}
|
||||
},
|
||||
"clothes": {
|
||||
"label": "Kleidung"
|
||||
},
|
||||
"club": {
|
||||
"label": "Typ"
|
||||
},
|
||||
|
@ -1358,7 +1361,7 @@
|
|||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Inhalte"
|
||||
"label": "Inhalt"
|
||||
},
|
||||
"country": {
|
||||
"label": "Land"
|
||||
|
@ -1527,6 +1530,10 @@
|
|||
"generator/method": {
|
||||
"label": "Methode"
|
||||
},
|
||||
"generator/output/electricity": {
|
||||
"label": "Leistung",
|
||||
"placeholder": "50 MW, 100 MW, 200 MW..."
|
||||
},
|
||||
"generator/source": {
|
||||
"label": "Quelle"
|
||||
},
|
||||
|
@ -1891,6 +1898,10 @@
|
|||
"plant": {
|
||||
"label": "Pflanze"
|
||||
},
|
||||
"plant/output/electricity": {
|
||||
"label": "Leistung",
|
||||
"placeholder": "500 MW, 1000 MW, 2000 MW..."
|
||||
},
|
||||
"population": {
|
||||
"label": "Bevölkerung"
|
||||
},
|
||||
|
@ -2144,7 +2155,7 @@
|
|||
"label": "Typ"
|
||||
},
|
||||
"tracktype": {
|
||||
"label": "Typ des Feld-/Waldweges",
|
||||
"label": "Typ des Wald-/Feldweges",
|
||||
"options": {
|
||||
"grade1": "Grad 1 - Fest: befestigt oder sehr kompakte harte Oberfläche",
|
||||
"grade2": "Grad 2 - Größtenteils fest: Kies/Stein gemischt mit etwas weichem Material",
|
||||
|
@ -2570,6 +2581,10 @@
|
|||
"name": "Kirche",
|
||||
"terms": "christlich,Abtei,Basilika,geweihter Ort,Kathedrale,Altarraum,Kantorei,Kapelle,Kirche,Kirchgemeinde,Gotteshaus,Gebetshaus,Dom,Oratorium,Heiligtum,Sacellum,Schrein,Tabernakel,Tempel"
|
||||
},
|
||||
"amenity/place_of_worship/hindu": {
|
||||
"name": "Hindutempel",
|
||||
"terms": "<translate with synonyms or related terms for 'Hindu Temple', separated by commas>"
|
||||
},
|
||||
"amenity/place_of_worship/jewish": {
|
||||
"name": "Synagoge",
|
||||
"terms": "jüdisch,Synagoge"
|
||||
|
@ -2578,6 +2593,18 @@
|
|||
"name": "Moschee",
|
||||
"terms": "muslimisch,Moschee"
|
||||
},
|
||||
"amenity/place_of_worship/shinto": {
|
||||
"name": "Shintō-Schrein",
|
||||
"terms": "<translate with synonyms or related terms for 'Shinto Shrine', separated by commas>"
|
||||
},
|
||||
"amenity/place_of_worship/sikh": {
|
||||
"name": "Sikh-Tempel",
|
||||
"terms": "<translate with synonyms or related terms for 'Sikh Temple', separated by commas>"
|
||||
},
|
||||
"amenity/place_of_worship/taoist": {
|
||||
"name": "Tao-Tempel",
|
||||
"terms": "<translate with synonyms or related terms for 'Taoist Temple', separated by commas>"
|
||||
},
|
||||
"amenity/planetarium": {
|
||||
"name": "Planetarium",
|
||||
"terms": "Planetarium, Projektionsplanetarium, Orrery"
|
||||
|
@ -2743,6 +2770,10 @@
|
|||
"name": "Tierarzt",
|
||||
"terms": "Tierarzt, Tierärztin, Verterinär"
|
||||
},
|
||||
"amenity/waste/dog_excrement": {
|
||||
"name": "Hundekotabfalleimer",
|
||||
"terms": "<translate with synonyms or related terms for 'Dog Excrement Bin', separated by commas>"
|
||||
},
|
||||
"amenity/waste_basket": {
|
||||
"name": "Mülleimer",
|
||||
"terms": "Mülleimer,Abfalleimer,Abfallkübel,Abfallbehälter,Mistkübel"
|
||||
|
@ -3441,8 +3472,8 @@
|
|||
"terms": "Verbindungsstraßenanschluss,Kreisstraßenanschluss, Kreisstraßenauffahrt, Kreisstraßenabfahrt, Auffahrt, Abfahrt"
|
||||
},
|
||||
"highway/track": {
|
||||
"name": "Feld-/Waldweg",
|
||||
"terms": "Wirtschaftsweg, Feldweg, Waldweg, Forststraße"
|
||||
"name": "Wald-/Feldweg",
|
||||
"terms": "Wirtschaftsweg, Waldweg, Feldweg, Forststraße"
|
||||
},
|
||||
"highway/traffic_mirror": {
|
||||
"name": "Verkehrsspiegel",
|
||||
|
@ -3958,6 +3989,14 @@
|
|||
"name": "Wasserwerk",
|
||||
"terms": "Wasserwerk"
|
||||
},
|
||||
"man_made/watermill": {
|
||||
"name": "Wassermühle",
|
||||
"terms": "Wassermühle"
|
||||
},
|
||||
"man_made/windmill": {
|
||||
"name": "Windmühle",
|
||||
"terms": "Windmühle"
|
||||
},
|
||||
"man_made/works": {
|
||||
"name": "Fabrik",
|
||||
"terms": "Fabrik, Werk, Betrieb, Fabriksanlage, Produktionsstätte, Fertigungsanlage"
|
||||
|
@ -4242,6 +4281,14 @@
|
|||
"name": "Stromgenerator",
|
||||
"terms": "Stromgenerator"
|
||||
},
|
||||
"power/generator/source_nuclear": {
|
||||
"name": "Kernreaktor",
|
||||
"terms": "<translate with synonyms or related terms for 'Nuclear Reactor', separated by commas>"
|
||||
},
|
||||
"power/generator/source_wind": {
|
||||
"name": "Windrad",
|
||||
"terms": "<translate with synonyms or related terms for 'Wind Turbine', separated by commas>"
|
||||
},
|
||||
"power/line": {
|
||||
"name": "Stromleitung-Hochspannung",
|
||||
"terms": "Stromleitung-Hochspannung, Freileitung, Überlandleitung, Hochspannungsleitung"
|
||||
|
|
91
vendor/assets/iD/iD/locales/dv.json
vendored
Normal file
91
vendor/assets/iD/iD/locales/dv.json
vendored
Normal file
|
@ -0,0 +1,91 @@
|
|||
{
|
||||
"dv": {
|
||||
"modes": {
|
||||
"add_area": {
|
||||
"description": "ޕާރކުތަކާއި، އިމާރާތްތަކާއި އަދިވެސް ފާހަގަކުރެވޭ ތަންތަން ހިމަނުއްވާ"
|
||||
},
|
||||
"add_line": {
|
||||
"description": "ހައިވޭއާއި، މަގުތަކާއި، ދުވާރާއި އަދި އެހެނިހެން ރޮނގުތައް ހިމަނުއްވާ"
|
||||
},
|
||||
"add_point": {
|
||||
"description": "ރެސްޓޯރަންޓްތަކާއި، ފާހަގަކުރެވޭ ބިނާތަކާއި، ޕޯސްޓް ފޮށިތަކާއި، އެހެނިހެން މުހިއްމު ތަންތަން ހިމަނުއްވާ"
|
||||
}
|
||||
},
|
||||
"inspector": {
|
||||
"add_fields": "ޗާާޓަށް މައުލޫމާތު އެއްކުރައްވާ"
|
||||
},
|
||||
"presets": {
|
||||
"categories": {
|
||||
"category-building": {
|
||||
"name": "އެކި ވައްތަރުގެ އިމާރާތް"
|
||||
}
|
||||
},
|
||||
"fields": {
|
||||
"address": {
|
||||
"label": "އެޑްރެސް"
|
||||
},
|
||||
"building": {
|
||||
"label": "އިމާރާތް"
|
||||
},
|
||||
"building_area": {
|
||||
"label": "އިމާރާތް"
|
||||
},
|
||||
"structure": {
|
||||
"options": {
|
||||
"bridge": "ފާލަން"
|
||||
}
|
||||
}
|
||||
},
|
||||
"presets": {
|
||||
"address": {
|
||||
"name": "އެޑްރެސް"
|
||||
},
|
||||
"aeroway/terminal": {
|
||||
"name": "އެއާރޕޯޓް ގިމަތަ"
|
||||
},
|
||||
"amenity/bank": {
|
||||
"name": "ބޭންކު"
|
||||
},
|
||||
"amenity/bar": {
|
||||
"name": "ބާރ"
|
||||
},
|
||||
"amenity/cafe": {
|
||||
"name": "ކެފޭ"
|
||||
},
|
||||
"amenity/cinema": {
|
||||
"name": "ސިނަމާ"
|
||||
},
|
||||
"amenity/parking": {
|
||||
"name": "ކާރު ޕާރކުކުރާ ސަރަޙައްދު"
|
||||
},
|
||||
"amenity/place_of_worship/muslim": {
|
||||
"name": "މިސްކިތް"
|
||||
},
|
||||
"building": {
|
||||
"name": "އިމާރާތް"
|
||||
},
|
||||
"building/commercial": {
|
||||
"name": "ވިިޔަފާރި ޢިމާރާތްތައް"
|
||||
},
|
||||
"highway/bus_stop": {
|
||||
"name": "ބަސް ހުއްޓި"
|
||||
},
|
||||
"landuse/cemetery": {
|
||||
"name": "ސަހަރާ"
|
||||
},
|
||||
"landuse/commercial": {
|
||||
"name": "ވިޔަފާރި ސަރަޙައްދު"
|
||||
},
|
||||
"man_made/bridge": {
|
||||
"name": "ފާލަން"
|
||||
},
|
||||
"natural/beach": {
|
||||
"name": "މޫދު ސަރަޙައްދު"
|
||||
},
|
||||
"shop/car_repair": {
|
||||
"name": "ކާާރު ހަދައިދޭ ގަރާޖް"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
3
vendor/assets/iD/iD/locales/el.json
vendored
3
vendor/assets/iD/iD/locales/el.json
vendored
|
@ -869,9 +869,6 @@
|
|||
"contact/webcam": {
|
||||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Περιεχόμενο"
|
||||
},
|
||||
"country": {
|
||||
"label": "Χώρα"
|
||||
},
|
||||
|
|
63
vendor/assets/iD/iD/locales/en-GB.json
vendored
63
vendor/assets/iD/iD/locales/en-GB.json
vendored
|
@ -547,7 +547,9 @@
|
|||
},
|
||||
"restore": {
|
||||
"heading": "You have unsaved changes",
|
||||
"description": "Do you wish to restore unsaved changes from a previous editing session?"
|
||||
"description": "Do you wish to restore unsaved changes from a previous editing session?",
|
||||
"restore": "Restore my changes",
|
||||
"reset": "Discard my changes"
|
||||
},
|
||||
"save": {
|
||||
"title": "Save",
|
||||
|
@ -1260,7 +1262,7 @@
|
|||
"label": "Type"
|
||||
},
|
||||
"bin": {
|
||||
"label": "Waste Bin"
|
||||
"label": "Rubbish Bin"
|
||||
},
|
||||
"blood_components": {
|
||||
"label": "Blood Components",
|
||||
|
@ -1339,6 +1341,9 @@
|
|||
"clockwise": "Clockwise"
|
||||
}
|
||||
},
|
||||
"clothes": {
|
||||
"label": "Clothes"
|
||||
},
|
||||
"club": {
|
||||
"label": "Type"
|
||||
},
|
||||
|
@ -1356,7 +1361,7 @@
|
|||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Contents"
|
||||
"label": "Content"
|
||||
},
|
||||
"country": {
|
||||
"label": "Country"
|
||||
|
@ -1525,6 +1530,10 @@
|
|||
"generator/method": {
|
||||
"label": "Method"
|
||||
},
|
||||
"generator/output/electricity": {
|
||||
"label": "Power Output",
|
||||
"placeholder": "50 MW, 100 MW, 200 MW..."
|
||||
},
|
||||
"generator/source": {
|
||||
"label": "Source"
|
||||
},
|
||||
|
@ -1605,6 +1614,9 @@
|
|||
"kerb": {
|
||||
"label": "Kerb"
|
||||
},
|
||||
"label": {
|
||||
"label": "Label"
|
||||
},
|
||||
"lamp_type": {
|
||||
"label": "Type"
|
||||
},
|
||||
|
@ -1676,6 +1688,9 @@
|
|||
"man_made": {
|
||||
"label": "Type"
|
||||
},
|
||||
"manhole": {
|
||||
"label": "Type"
|
||||
},
|
||||
"map_size": {
|
||||
"label": "Coverage"
|
||||
},
|
||||
|
@ -1883,6 +1898,10 @@
|
|||
"plant": {
|
||||
"label": "Plant"
|
||||
},
|
||||
"plant/output/electricity": {
|
||||
"label": "Power Output",
|
||||
"placeholder": "500 MW, 1000 MW, 2000 MW..."
|
||||
},
|
||||
"population": {
|
||||
"label": "Population"
|
||||
},
|
||||
|
@ -2480,12 +2499,24 @@
|
|||
"amenity/place_of_worship/christian": {
|
||||
"name": "Church"
|
||||
},
|
||||
"amenity/place_of_worship/hindu": {
|
||||
"name": "Hindu Temple"
|
||||
},
|
||||
"amenity/place_of_worship/jewish": {
|
||||
"name": "Synagogue"
|
||||
},
|
||||
"amenity/place_of_worship/muslim": {
|
||||
"name": "Mosque"
|
||||
},
|
||||
"amenity/place_of_worship/shinto": {
|
||||
"name": "Shinto Shrine"
|
||||
},
|
||||
"amenity/place_of_worship/sikh": {
|
||||
"name": "Sikh Temple"
|
||||
},
|
||||
"amenity/place_of_worship/taoist": {
|
||||
"name": "Taoist Temple"
|
||||
},
|
||||
"amenity/planetarium": {
|
||||
"name": "Planetarium"
|
||||
},
|
||||
|
@ -2532,6 +2563,9 @@
|
|||
"amenity/school": {
|
||||
"name": "School Grounds"
|
||||
},
|
||||
"amenity/scrapyard": {
|
||||
"name": "Scrap Yard"
|
||||
},
|
||||
"amenity/shelter": {
|
||||
"name": "Shelter"
|
||||
},
|
||||
|
@ -2610,8 +2644,11 @@
|
|||
"amenity/veterinary": {
|
||||
"name": "Veterinary"
|
||||
},
|
||||
"amenity/waste/dog_excrement": {
|
||||
"name": "Dog Excrement Bin"
|
||||
},
|
||||
"amenity/waste_basket": {
|
||||
"name": "Waste Basket"
|
||||
"name": "Rubbish Bin"
|
||||
},
|
||||
"amenity/waste_disposal": {
|
||||
"name": "Garbage Dumpster"
|
||||
|
@ -3535,9 +3572,21 @@
|
|||
"man_made/water_works": {
|
||||
"name": "Water Works"
|
||||
},
|
||||
"man_made/watermill": {
|
||||
"name": "Watermill"
|
||||
},
|
||||
"man_made/windmill": {
|
||||
"name": "Windmill"
|
||||
},
|
||||
"man_made/works": {
|
||||
"name": "Factory"
|
||||
},
|
||||
"manhole": {
|
||||
"name": "Manhole"
|
||||
},
|
||||
"manhole/drain": {
|
||||
"name": "Storm Drain"
|
||||
},
|
||||
"natural": {
|
||||
"name": "Natural"
|
||||
},
|
||||
|
@ -3745,6 +3794,12 @@
|
|||
"power/generator": {
|
||||
"name": "Power Generator"
|
||||
},
|
||||
"power/generator/source_nuclear": {
|
||||
"name": "Nuclear Reactor"
|
||||
},
|
||||
"power/generator/source_wind": {
|
||||
"name": "Wind Turbine"
|
||||
},
|
||||
"power/line": {
|
||||
"name": "Power Line"
|
||||
},
|
||||
|
|
49
vendor/assets/iD/iD/locales/en.json
vendored
49
vendor/assets/iD/iD/locales/en.json
vendored
|
@ -1341,6 +1341,9 @@
|
|||
"anticlockwise": "Counterclockwise"
|
||||
}
|
||||
},
|
||||
"clothes": {
|
||||
"label": "Clothes"
|
||||
},
|
||||
"club": {
|
||||
"label": "Type"
|
||||
},
|
||||
|
@ -1358,7 +1361,7 @@
|
|||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Contents"
|
||||
"label": "Content"
|
||||
},
|
||||
"country": {
|
||||
"label": "Country"
|
||||
|
@ -1527,6 +1530,10 @@
|
|||
"generator/method": {
|
||||
"label": "Method"
|
||||
},
|
||||
"generator/output/electricity": {
|
||||
"label": "Power Output",
|
||||
"placeholder": "50 MW, 100 MW, 200 MW..."
|
||||
},
|
||||
"generator/source": {
|
||||
"label": "Source"
|
||||
},
|
||||
|
@ -1891,6 +1898,10 @@
|
|||
"plant": {
|
||||
"label": "Plant"
|
||||
},
|
||||
"plant/output/electricity": {
|
||||
"label": "Power Output",
|
||||
"placeholder": "500 MW, 1000 MW, 2000 MW..."
|
||||
},
|
||||
"population": {
|
||||
"label": "Population"
|
||||
},
|
||||
|
@ -2607,6 +2618,10 @@
|
|||
"name": "Church",
|
||||
"terms": "christian,abbey,basilica,bethel,cathedral,chancel,chantry,chapel,fold,house of God,house of prayer,house of worship,minster,mission,oratory,parish,sacellum,sanctuary,shrine,tabernacle,temple"
|
||||
},
|
||||
"amenity/place_of_worship/hindu": {
|
||||
"name": "Hindu Temple",
|
||||
"terms": "garbhargriha,mandu,puja,shrine,temple"
|
||||
},
|
||||
"amenity/place_of_worship/jewish": {
|
||||
"name": "Synagogue",
|
||||
"terms": "jewish"
|
||||
|
@ -2615,6 +2630,18 @@
|
|||
"name": "Mosque",
|
||||
"terms": "muslim"
|
||||
},
|
||||
"amenity/place_of_worship/shinto": {
|
||||
"name": "Shinto Shrine",
|
||||
"terms": "kami,torii"
|
||||
},
|
||||
"amenity/place_of_worship/sikh": {
|
||||
"name": "Sikh Temple",
|
||||
"terms": "gurudwara,temple"
|
||||
},
|
||||
"amenity/place_of_worship/taoist": {
|
||||
"name": "Taoist Temple",
|
||||
"terms": "daoist,monastery,temple"
|
||||
},
|
||||
"amenity/planetarium": {
|
||||
"name": "Planetarium",
|
||||
"terms": "museum,astronomy,observatory"
|
||||
|
@ -2787,6 +2814,10 @@
|
|||
"name": "Waste Transfer Station",
|
||||
"terms": "dump,garbage,recycling,rubbish,scrap,trash"
|
||||
},
|
||||
"amenity/waste/dog_excrement": {
|
||||
"name": "Dog Excrement Bin",
|
||||
"terms": "bin,garbage,rubbish,litter,trash,poo,dog"
|
||||
},
|
||||
"amenity/water_point": {
|
||||
"name": "RV Drinking Water",
|
||||
"terms": ""
|
||||
|
@ -4003,6 +4034,14 @@
|
|||
"name": "Water Works",
|
||||
"terms": ""
|
||||
},
|
||||
"man_made/watermill": {
|
||||
"name": "Watermill",
|
||||
"terms": "water,wheel,mill"
|
||||
},
|
||||
"man_made/windmill": {
|
||||
"name": "Windmill",
|
||||
"terms": "wind,wheel,mill"
|
||||
},
|
||||
"man_made/works": {
|
||||
"name": "Factory",
|
||||
"terms": "assembly,build,brewery,car,plant,plastic,processing,manufacture,refinery"
|
||||
|
@ -4287,6 +4326,14 @@
|
|||
"name": "Power Generator",
|
||||
"terms": "hydro,solar,turbine,wind"
|
||||
},
|
||||
"power/generator/source_nuclear": {
|
||||
"name": "Nuclear Reactor",
|
||||
"terms": "fission,generator,nuclear,nuke,reactor"
|
||||
},
|
||||
"power/generator/source_wind": {
|
||||
"name": "Wind Turbine",
|
||||
"terms": "generator,turbine,windmill,wind"
|
||||
},
|
||||
"power/line": {
|
||||
"name": "Power Line",
|
||||
"terms": ""
|
||||
|
|
48
vendor/assets/iD/iD/locales/eo.json
vendored
48
vendor/assets/iD/iD/locales/eo.json
vendored
|
@ -353,6 +353,7 @@
|
|||
"key": "B",
|
||||
"title": "Fono",
|
||||
"zoom": "Pligrandigo",
|
||||
"vintage": "Fotita je",
|
||||
"unknown": "Nekonata",
|
||||
"show_tiles": "Montri kahelojn",
|
||||
"hide_tiles": "Kaŝi kahelojn"
|
||||
|
@ -1338,6 +1339,9 @@
|
|||
"clockwise": "Horloĝdirekte"
|
||||
}
|
||||
},
|
||||
"clothes": {
|
||||
"label": "Vestaĵoj"
|
||||
},
|
||||
"club": {
|
||||
"label": "Speco"
|
||||
},
|
||||
|
@ -1524,6 +1528,10 @@
|
|||
"generator/method": {
|
||||
"label": "Metodo"
|
||||
},
|
||||
"generator/output/electricity": {
|
||||
"label": "Povumo",
|
||||
"placeholder": "50 MW, 100 MW, 200 MW…"
|
||||
},
|
||||
"generator/source": {
|
||||
"label": "Energi-fonto"
|
||||
},
|
||||
|
@ -1888,6 +1896,10 @@
|
|||
"plant": {
|
||||
"label": "Vegetaĵo"
|
||||
},
|
||||
"plant/output/electricity": {
|
||||
"label": "Povumo",
|
||||
"placeholder": "500 MW, 1000 MW, 2000 MW…"
|
||||
},
|
||||
"population": {
|
||||
"label": "Loĝantaro"
|
||||
},
|
||||
|
@ -2567,6 +2579,10 @@
|
|||
"name": "Kirko",
|
||||
"terms": "kristana preĝejo,mesejo,kapelo,katedralo,baziliko,abatejo,monaĥejo,kristanismo,katolika preĝejo"
|
||||
},
|
||||
"amenity/place_of_worship/hindu": {
|
||||
"name": "Hinduisma templo",
|
||||
"terms": "templo"
|
||||
},
|
||||
"amenity/place_of_worship/jewish": {
|
||||
"name": "Sinagogo",
|
||||
"terms": "juda preĝejo,judismo,judaismo"
|
||||
|
@ -2575,6 +2591,18 @@
|
|||
"name": "Moskeo",
|
||||
"terms": "islama preĝejo,islamo,minareto"
|
||||
},
|
||||
"amenity/place_of_worship/shinto": {
|
||||
"name": "Ŝintoismo adorejo",
|
||||
"terms": "shintoismo,sxintoismo,templo,adorejo,ŝintoo,kamio"
|
||||
},
|
||||
"amenity/place_of_worship/sikh": {
|
||||
"name": "Sikisma templo",
|
||||
"terms": "siĥismo,templo"
|
||||
},
|
||||
"amenity/place_of_worship/taoist": {
|
||||
"name": "Taoisma templo",
|
||||
"terms": "templo,daŭismo,taismo"
|
||||
},
|
||||
"amenity/planetarium": {
|
||||
"name": "Planetario (astrokinejo)",
|
||||
"terms": "astrokinejo,astroobservejo,astrobservejo,astronomio,stelscienco,astroscienco"
|
||||
|
@ -2740,6 +2768,10 @@
|
|||
"name": "Bestokuracistejo",
|
||||
"terms": "bestokuracisto,bestkuracisto,veterinaro"
|
||||
},
|
||||
"amenity/waste/dog_excrement": {
|
||||
"name": "Rubujo por hund-fekaĵoj",
|
||||
"terms": "rubujo,hundaj fekoj,fekaĵoj,eksrementoj"
|
||||
},
|
||||
"amenity/waste_basket": {
|
||||
"name": "Rubujo",
|
||||
"terms": "balaaĵujo,balaaĵkesto,rubkesto,forĵetaĵujo"
|
||||
|
@ -3955,6 +3987,14 @@
|
|||
"name": "Akvotrinkebligejo",
|
||||
"terms": "akvopurigejo,trinkebligejo,seninfektigo de akvo,akvokonduktilo"
|
||||
},
|
||||
"man_made/watermill": {
|
||||
"name": "Muelejo akva",
|
||||
"terms": "muelejo,akvomuelejo,grenmuelejo,akvmueejo"
|
||||
},
|
||||
"man_made/windmill": {
|
||||
"name": "Muelejo venta",
|
||||
"terms": "ventmuelejo,ventomuelejo,ventoturbino,grenmuelejo"
|
||||
},
|
||||
"man_made/works": {
|
||||
"name": "Fabriko",
|
||||
"terms": "produktejo,uzino,manufakturo"
|
||||
|
@ -4239,6 +4279,14 @@
|
|||
"name": "Elektr-generilo",
|
||||
"terms": "elektrogenerilo,generilo,generatoro"
|
||||
},
|
||||
"power/generator/source_nuclear": {
|
||||
"name": "Nuklea reakciujo",
|
||||
"terms": "nuklea reaktoro,reaktoro,reakciujo,atoma reaktoro,atompilo,elektrocentralo"
|
||||
},
|
||||
"power/generator/source_wind": {
|
||||
"name": "Ventoturbino",
|
||||
"terms": "ventturbino,elektrogenerilo,ventomuelejo,ventturbino,ventelektrigilo,ventmotoro,ventenergio"
|
||||
},
|
||||
"power/line": {
|
||||
"name": "Elektra kondukilo (alttensia)",
|
||||
"terms": "lineo forkurenta,kablo"
|
||||
|
|
93
vendor/assets/iD/iD/locales/es.json
vendored
93
vendor/assets/iD/iD/locales/es.json
vendored
|
@ -2,7 +2,7 @@
|
|||
"es": {
|
||||
"modes": {
|
||||
"add_area": {
|
||||
"title": "Árezo",
|
||||
"title": "Área",
|
||||
"description": "Añade parques, edificios, lagos, bosques u otras áreas al mapa.",
|
||||
"tail": "Haga clic en el mapa para empezar a dibujar un área, como un parque, lago o edificio."
|
||||
},
|
||||
|
@ -1134,35 +1134,35 @@
|
|||
"label": "Dirección",
|
||||
"placeholders": {
|
||||
"block_number": "Número de manzana",
|
||||
"block_number!jp": "Nro. de manzana",
|
||||
"block_number!jp": "Nro. de manzana - Japón",
|
||||
"city": "Ciudad",
|
||||
"city!jp": "Ciudad / Pueblo / Aldea / Barrio especial de Tokio",
|
||||
"city!jp": "Ciudad / Pueblo / Aldea / Barrio especial de Tokio - Japón",
|
||||
"city!vn": "Ciudad / Pueblo",
|
||||
"conscriptionnumber": "123",
|
||||
"country": "País",
|
||||
"county": "Condado",
|
||||
"county!jp": "Distrito",
|
||||
"county!jp": "Distrito - Japón",
|
||||
"district": "Distrito",
|
||||
"district!vn": "Arrondissement / Pueblo / Distrito",
|
||||
"floor": "Piso",
|
||||
"hamlet": "Aldea / Caserío",
|
||||
"housename": "Nombre de la casa",
|
||||
"housenumber": "123",
|
||||
"housenumber!jp": "Nro. de edificio/Nro. de lote",
|
||||
"housenumber!jp": "Nro. de edificio / Nro. de lote - Japón",
|
||||
"neighbourhood": "Barrio",
|
||||
"neighbourhood!jp": "Chōme / Aza / Koaza",
|
||||
"neighbourhood!jp": "Chōme / Aza / Koaza - Japón",
|
||||
"place": "Lugar",
|
||||
"postcode": "Código postal",
|
||||
"province": "Provincia",
|
||||
"province!jp": "Prefectura",
|
||||
"quarter": "Quarter",
|
||||
"quarter!jp": "Ōaza / Machi",
|
||||
"province!jp": "Prefectura - Japón",
|
||||
"quarter": "Barrio",
|
||||
"quarter!jp": "Ōaza / Machi - Japón",
|
||||
"state": "Estado",
|
||||
"street": "Calle",
|
||||
"subdistrict": "Subdistrito",
|
||||
"subdistrict!vn": "Barrio / Comuna / Pueblito",
|
||||
"suburb": "Suburbio",
|
||||
"suburb!jp": "Ward"
|
||||
"suburb!jp": "Ward - Japón"
|
||||
}
|
||||
},
|
||||
"admin_level": {
|
||||
|
@ -1341,6 +1341,9 @@
|
|||
"clockwise": "En sentido horario"
|
||||
}
|
||||
},
|
||||
"clothes": {
|
||||
"label": "Ropa"
|
||||
},
|
||||
"club": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
|
@ -1527,6 +1530,10 @@
|
|||
"generator/method": {
|
||||
"label": "Método"
|
||||
},
|
||||
"generator/output/electricity": {
|
||||
"label": "Potencia de salida",
|
||||
"placeholder": "50 MW, 100 MW, 200 MW..."
|
||||
},
|
||||
"generator/source": {
|
||||
"label": "Fuente"
|
||||
},
|
||||
|
@ -1607,6 +1614,9 @@
|
|||
"kerb": {
|
||||
"label": "Bordillo/Cordón"
|
||||
},
|
||||
"label": {
|
||||
"label": "Etiqueta"
|
||||
},
|
||||
"lamp_type": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
|
@ -1678,6 +1688,9 @@
|
|||
"man_made": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
"manhole": {
|
||||
"label": "Tipo"
|
||||
},
|
||||
"map_size": {
|
||||
"label": "Cobertura"
|
||||
},
|
||||
|
@ -1885,6 +1898,10 @@
|
|||
"plant": {
|
||||
"label": "Planta"
|
||||
},
|
||||
"plant/output/electricity": {
|
||||
"label": "Potencia de salida",
|
||||
"placeholder": "500 MW, 1000 MW, 2000 MW..."
|
||||
},
|
||||
"population": {
|
||||
"label": "Población"
|
||||
},
|
||||
|
@ -2564,6 +2581,10 @@
|
|||
"name": "Iglesia cristiana",
|
||||
"terms": "templo, capilla, parroquia, santuario, ermita, oratorio, iglesia, oratorio, la iglesia"
|
||||
},
|
||||
"amenity/place_of_worship/hindu": {
|
||||
"name": "Templo hindú",
|
||||
"terms": "Templo, hindú, Grbrgrih, Mandu, adoración, capilla, templo, santuario"
|
||||
},
|
||||
"amenity/place_of_worship/jewish": {
|
||||
"name": "Sinagoga",
|
||||
"terms": "templo, aljama, sinagoga, judío, religión"
|
||||
|
@ -2572,6 +2593,18 @@
|
|||
"name": "Mezquita",
|
||||
"terms": "mezquita, morabito, rábida, musulmán, religión"
|
||||
},
|
||||
"amenity/place_of_worship/shinto": {
|
||||
"name": "Santuario sintoísta",
|
||||
"terms": "Santuario, Shinto, sintoísta, Kami, Torii, capilla, templo"
|
||||
},
|
||||
"amenity/place_of_worship/sikh": {
|
||||
"name": "Templo Sij",
|
||||
"terms": "Templo, Sij, Sikh, Gurudwara"
|
||||
},
|
||||
"amenity/place_of_worship/taoist": {
|
||||
"name": "Templo Taoísta",
|
||||
"terms": "Templo, Taoísta, monasterio"
|
||||
},
|
||||
"amenity/planetarium": {
|
||||
"name": "Planetario",
|
||||
"terms": "planetario, observatorio, proyección, cuerpos celestes, estrellas, planetas, astronomía, universo"
|
||||
|
@ -2631,6 +2664,10 @@
|
|||
"name": "Terreno escolar",
|
||||
"terms": "terreno, área, suelo, recinto escolar, escolar, escuela, colegio, centro educativo, unidad educativa, primaria, secundaria, secundario, instituto"
|
||||
},
|
||||
"amenity/scrapyard": {
|
||||
"name": "Depósito de chatarra",
|
||||
"terms": "Depósito de chatarra, cementerio de coches, auto, coche, vehículo, basura, metal, objetos salvados, chatarra, naufragio, desguace"
|
||||
},
|
||||
"amenity/shelter": {
|
||||
"name": "Refugio",
|
||||
"terms": "albergue, abrigo, amparo, asilo, cobertizo, garita, refugio"
|
||||
|
@ -2733,6 +2770,10 @@
|
|||
"name": "Veterinario",
|
||||
"terms": "veterinario, veterinaria, albéitar, mascotas, animales, perros, gatos"
|
||||
},
|
||||
"amenity/waste/dog_excrement": {
|
||||
"name": "Recipiente para excremento de perro",
|
||||
"terms": "Basura, tacho, recipiente, caca, excremento, perro"
|
||||
},
|
||||
"amenity/waste_basket": {
|
||||
"name": "Papelera",
|
||||
"terms": "papelera, papelero, cubo, contenedor, basura, papeles, deshecho, tacho"
|
||||
|
@ -3948,10 +3989,26 @@
|
|||
"name": "Planta potabilizadora de agua",
|
||||
"terms": "potabilizadora, ETAP, planta potabilizadora, abastecimiento de agua, agua potable"
|
||||
},
|
||||
"man_made/watermill": {
|
||||
"name": "Molino de agua",
|
||||
"terms": "agua, rueda, molino"
|
||||
},
|
||||
"man_made/windmill": {
|
||||
"name": "Molino de viento",
|
||||
"terms": "Viento, rueda, molino"
|
||||
},
|
||||
"man_made/works": {
|
||||
"name": "Fábrica",
|
||||
"terms": "factoría, manofactura, industria, taller, ensamblaje, planta, materia prima, fabricado, producción, fabricación, ingenio, procesadora, refinería, cervecería, azucarera"
|
||||
},
|
||||
"manhole": {
|
||||
"name": "Pozo de inspección",
|
||||
"terms": "Cubierta, tapa, agujero, alcantarillado, telecomunicaciones, pozo, sumidero, boca de alcantarilla, boca de inspección, pozo de registro, abertura, boca de acceso"
|
||||
},
|
||||
"manhole/drain": {
|
||||
"name": "Desagüe pluvial",
|
||||
"terms": "Cubierta, tapa, desagüe, agujero, pozo, lluvia, alcantarillado, tormenta, boca de tormenta, alcantarillado pluvial"
|
||||
},
|
||||
"natural": {
|
||||
"name": "Natural",
|
||||
"terms": "natural, naturaleza, geológica, cubierta terrestre, vegetación"
|
||||
|
@ -4194,16 +4251,16 @@
|
|||
"terms": "barrio, vecindario, vecindad, urbanización, colonia"
|
||||
},
|
||||
"place/quarter": {
|
||||
"name": "Sub-Borough / Quarter",
|
||||
"terms": "sub-distrito, cuadrante, delegación, localidad, barrio, vecindario"
|
||||
"name": "Sub-municipio / Barrio",
|
||||
"terms": "sub-municipio, sub-distrito, sector, cuadrante, delegación, localidad, barrio, vecindario"
|
||||
},
|
||||
"place/square": {
|
||||
"name": "Plaza",
|
||||
"terms": "plaza"
|
||||
},
|
||||
"place/suburb": {
|
||||
"name": "Borough / Suburbio",
|
||||
"terms": "distrito, suburbio"
|
||||
"name": "Municipio / Suburbio",
|
||||
"terms": "municipio, división administrativa, division administrativa, burgo, delegación, delegacion, localidad"
|
||||
},
|
||||
"place/town": {
|
||||
"name": "Ciudad pequeña",
|
||||
|
@ -4224,6 +4281,14 @@
|
|||
"name": "Generador de energía",
|
||||
"terms": "subestación, generador, generador eléctrico, generador de electricidad, generador de potencia"
|
||||
},
|
||||
"power/generator/source_nuclear": {
|
||||
"name": "Reactor nuclear",
|
||||
"terms": "Fisión, generador, nuclear, reactor"
|
||||
},
|
||||
"power/generator/source_wind": {
|
||||
"name": "Turbina eólica",
|
||||
"terms": "Generador, turbina, molino de viento, viento, eólico, eolico"
|
||||
},
|
||||
"power/line": {
|
||||
"name": "Línea de alta tensión",
|
||||
"terms": "energía, línea, eléctrica, líneas eléctricas, linea electrica, lineas electricas"
|
||||
|
|
3
vendor/assets/iD/iD/locales/et.json
vendored
3
vendor/assets/iD/iD/locales/et.json
vendored
|
@ -761,9 +761,6 @@
|
|||
"label": "Veebikaamera URL",
|
||||
"placeholder": "http://näidis.ee"
|
||||
},
|
||||
"content": {
|
||||
"label": "Sisu"
|
||||
},
|
||||
"country": {
|
||||
"label": "Riik"
|
||||
},
|
||||
|
|
3
vendor/assets/iD/iD/locales/fa.json
vendored
3
vendor/assets/iD/iD/locales/fa.json
vendored
|
@ -907,9 +907,6 @@
|
|||
"label": "URL دوربین",
|
||||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "محتویات"
|
||||
},
|
||||
"country": {
|
||||
"label": "کشور"
|
||||
},
|
||||
|
|
3
vendor/assets/iD/iD/locales/fi.json
vendored
3
vendor/assets/iD/iD/locales/fi.json
vendored
|
@ -993,9 +993,6 @@
|
|||
"label": "Kameran verkko-osoite",
|
||||
"placeholder": "http://www.esimerkki.fi/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Sisältö"
|
||||
},
|
||||
"country": {
|
||||
"label": "Maa"
|
||||
},
|
||||
|
|
99
vendor/assets/iD/iD/locales/fr.json
vendored
99
vendor/assets/iD/iD/locales/fr.json
vendored
|
@ -2,7 +2,7 @@
|
|||
"fr": {
|
||||
"modes": {
|
||||
"add_area": {
|
||||
"title": "Polygon",
|
||||
"title": "Polygone",
|
||||
"description": "Ajouter des parcs, des bâtiments, des lacs ou d'autres polygones à la carte.",
|
||||
"tail": "Cliquez sur la carte pour ajouter un polygone tel qu'un parc, un lac ou un bâtiment."
|
||||
},
|
||||
|
@ -30,15 +30,15 @@
|
|||
"operations": {
|
||||
"add": {
|
||||
"annotation": {
|
||||
"point": "Un point créé.",
|
||||
"vertex": "Un nœud ajouté à une ligne.",
|
||||
"relation": "Relation ajoutée."
|
||||
"point": "ajout d'un point.",
|
||||
"vertex": "ajout d'un nœud à une ligne.",
|
||||
"relation": "création d'une relation."
|
||||
}
|
||||
},
|
||||
"start": {
|
||||
"annotation": {
|
||||
"line": "Une ligne commencée.",
|
||||
"area": "Un polygone commencé."
|
||||
"line": "création d'une ligne.",
|
||||
"area": "création d'un polygone."
|
||||
}
|
||||
},
|
||||
"continue": {
|
||||
|
@ -48,8 +48,8 @@
|
|||
"not_eligible": "Aucune ligne ne peut être poursuivie ici.",
|
||||
"multiple": "Plusieurs lignes peuvent être poursuivies ici. Pour choisir une ligne, appuyez sur la touche Shift / Majuscule du clavier et appuyez sur la ligne voulue pour la sélectionner.",
|
||||
"annotation": {
|
||||
"line": "Une ligne continuée.",
|
||||
"area": "Un polygone continué."
|
||||
"line": "poursuite d'une ligne.",
|
||||
"area": "poursuite d'un polygone."
|
||||
}
|
||||
},
|
||||
"cancel_draw": {
|
||||
|
@ -69,8 +69,8 @@
|
|||
},
|
||||
"key": "O",
|
||||
"annotation": {
|
||||
"line": "Ligne rendue circulaire.",
|
||||
"area": "Polygone rendu circulaire."
|
||||
"line": "ligne rendue circulaire.",
|
||||
"area": "polygone rendu circulaire."
|
||||
},
|
||||
"not_closed": "Cet élément ne peut pas être rendu circulaire car il ne boucle pas.",
|
||||
"too_large": "Ceci ne peut pas être transformé en cercle parce qu'une partie n'est pas visible.",
|
||||
|
@ -84,8 +84,8 @@
|
|||
},
|
||||
"key": "S",
|
||||
"annotation": {
|
||||
"line": "Ligne rendue orthogonale.",
|
||||
"area": "Polygone rendu orthogonal."
|
||||
"line": "ligne rendue orthogonale.",
|
||||
"area": "polygone rendu orthogonal."
|
||||
},
|
||||
"not_squarish": "Cela ne peut être fait, ce n'est pas carré.",
|
||||
"too_large": "Ceci ne peut pas être transformé en rectangle parce qu'une partie n'est pas visible.",
|
||||
|
@ -95,7 +95,7 @@
|
|||
"title": "Rendre droit",
|
||||
"description": "Rendre cette ligne droite.",
|
||||
"key": "S",
|
||||
"annotation": "Rendre une ligne droite.",
|
||||
"annotation": "rendu une ligne droite.",
|
||||
"too_bendy": "Cela ne peut pas être redressé, car la courbe est trop importante.",
|
||||
"connected_to_hidden": "Cette ligne ne peut être rendue droite parce qu'elle est connecté à un élément caché."
|
||||
},
|
||||
|
@ -106,12 +106,12 @@
|
|||
"multiple": "Supprimer ces éléments définitivement."
|
||||
},
|
||||
"annotation": {
|
||||
"point": "Point supprimé",
|
||||
"vertex": "Nœud d'une ligne supprimé.",
|
||||
"line": "Ligne supprimée.",
|
||||
"area": "Polygone supprimé.",
|
||||
"relation": "Relation supprimée.",
|
||||
"multiple": "{n} éléments supprimés."
|
||||
"point": "suppression d'un point.",
|
||||
"vertex": "suppression d'un nœud d'une ligne.",
|
||||
"line": "suppression d'une ligne.",
|
||||
"area": "suppression d'un polygone.",
|
||||
"relation": "suppression d'une relation.",
|
||||
"multiple": "suppression de {n} éléments."
|
||||
},
|
||||
"too_large": {
|
||||
"single": "Cet élément ne peut pas être supprimé car il n'est pas suffisamment visible.",
|
||||
|
@ -131,24 +131,24 @@
|
|||
}
|
||||
},
|
||||
"add_member": {
|
||||
"annotation": "Membre ajouté à une relation."
|
||||
"annotation": "ajout d'un membre à une relation."
|
||||
},
|
||||
"delete_member": {
|
||||
"annotation": "Membre supprimé d'une relation."
|
||||
"annotation": "suppression d'un membre d'une relation."
|
||||
},
|
||||
"connect": {
|
||||
"annotation": {
|
||||
"point": "Joindre une ligne à un point.",
|
||||
"vertex": "Joindre les nœuds à une ligne.",
|
||||
"line": "Joindre les chemins ensemble.",
|
||||
"area": "Joindre une ligne à un polygone."
|
||||
"point": "connexion d'un chemin à un point.",
|
||||
"vertex": "connexion d'un chemin à un autre chemin.",
|
||||
"line": "connexion d'un chemin à une ligne.",
|
||||
"area": "connexion d'un chemin à un polygone."
|
||||
}
|
||||
},
|
||||
"disconnect": {
|
||||
"title": "Séparer",
|
||||
"description": "Séparer les lignes/contours l'un de l'autre.",
|
||||
"key": "D",
|
||||
"annotation": "Lignes non connectées.",
|
||||
"annotation": "déconnexion de lignes ou polygones.",
|
||||
"not_connected": "Il n'y a pas ici de lignes/polygones à déconnecter.",
|
||||
"connected_to_hidden": "Ceci ne peut être déconnecté parce que c'est connecté à un élément caché.",
|
||||
"relation": "Ceci ne peut être déconnecté parce que cela connecte les membres d'une relation."
|
||||
|
@ -157,7 +157,7 @@
|
|||
"title": "Fusionner",
|
||||
"description": "Fusionner ces éléments",
|
||||
"key": "C",
|
||||
"annotation": "{n} éléments fusionnés",
|
||||
"annotation": "fusion de {n} éléments.",
|
||||
"not_eligible": "Ces éléments ne peuvent pas être fusionnés.",
|
||||
"not_adjacent": "Ces éléments ne peuvent être fusionnés car leurs extrémités ne sont pas connectés.",
|
||||
"restriction": "Ces éléments ne peuvent être fusionnés car au moins l'un d'entre eux est membre de la relation \"{relation}\".",
|
||||
|
@ -172,11 +172,11 @@
|
|||
},
|
||||
"key": "M",
|
||||
"annotation": {
|
||||
"point": "Point déplacé.",
|
||||
"vertex": "Nœud d'une ligne déplacé.",
|
||||
"line": "Ligne déplacée.",
|
||||
"area": "Polygone déplacé.",
|
||||
"multiple": "Plusieurs éléments déplacés."
|
||||
"point": "déplacement d'un point .",
|
||||
"vertex": "déplacement d'un nœud d'une ligne.",
|
||||
"line": "déplacement d'une ligne.",
|
||||
"area": "déplacement d'un polygone.",
|
||||
"multiple": "déplacement de plusieurs éléments."
|
||||
},
|
||||
"incomplete_relation": {
|
||||
"single": "Cet élément ne peut pas être déplacé car il n'est pas téléchargé totalement.",
|
||||
|
@ -212,12 +212,12 @@
|
|||
},
|
||||
"annotation": {
|
||||
"long": {
|
||||
"single": "Miroir par rapport au grand axe de l'élément.",
|
||||
"multiple": "Miroir par rapport au grand axe des éléments effectué."
|
||||
"single": "réflexion d'un élément par rapport à son grand axe.",
|
||||
"multiple": "réflexion d'éléments par rapport à leur grand axe."
|
||||
},
|
||||
"short": {
|
||||
"single": "Miroir par rapport au petit axe de l'élément.",
|
||||
"multiple": "Miroir par rapport au petit axe des éléments effectué."
|
||||
"single": "réflexion d'un élément par rapport à son petit axe.",
|
||||
"multiple": "réflexion d'éléments par rapport à leur petit axe."
|
||||
}
|
||||
},
|
||||
"incomplete_relation": {
|
||||
|
@ -241,9 +241,9 @@
|
|||
},
|
||||
"key": "R",
|
||||
"annotation": {
|
||||
"line": "Pivoter la ligne.",
|
||||
"area": "Pivoter un polygone.",
|
||||
"multiple": "Tourner plusieurs éléments."
|
||||
"line": "ligne pivotée.",
|
||||
"area": "polygone pivoté.",
|
||||
"multiple": "plusieurs éléments pivotés."
|
||||
},
|
||||
"incomplete_relation": {
|
||||
"single": "Cet élément ne peut pas être tourné car il n'est pas téléchargé totalement.",
|
||||
|
@ -262,7 +262,7 @@
|
|||
"title": "Inverser",
|
||||
"description": "Inverse le sens d'une ligne.",
|
||||
"key": "V",
|
||||
"annotation": "Sens d'une ligne inversé."
|
||||
"annotation": "sens d'une ligne inversé."
|
||||
},
|
||||
"split": {
|
||||
"title": "Couper",
|
||||
|
@ -273,9 +273,9 @@
|
|||
},
|
||||
"key": "X",
|
||||
"annotation": {
|
||||
"line": "Coupe une ligne.",
|
||||
"area": "Couper le contour d'un polygone.",
|
||||
"multiple": "Couper {n} lignes/contour de polygone."
|
||||
"line": "ligne coupée.",
|
||||
"area": "contour d'un polygone coupé.",
|
||||
"multiple": "{n} lignes/contours de polygone coupés."
|
||||
},
|
||||
"not_eligible": "Les lignes ne peuvent pas être coupées à leurs extrémités.",
|
||||
"multiple_ways": "Il y a trop de ligne à cet endroit pour pouvoir couper.",
|
||||
|
@ -289,8 +289,8 @@
|
|||
"toggle_off": "Cliquez pour supprimer la restriction \"{restriction}\"."
|
||||
},
|
||||
"annotation": {
|
||||
"create": "Interdiction de tourner ajoutée",
|
||||
"delete": "Interdiction de tourner supprimée"
|
||||
"create": "interdiction de tourner ajoutée.",
|
||||
"delete": "interdiction de tourner supprimée."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -334,7 +334,7 @@
|
|||
"upload_explanation_with_user": "Les modifications envoyées en tant que {user} seront visibles sur toutes les cartes qui utilisent les données d'OpenStreetMap.",
|
||||
"save": "Envoyer",
|
||||
"cancel": "Annuler",
|
||||
"changes": "{count} changements",
|
||||
"changes": "{count} modifications",
|
||||
"warnings": "Attention",
|
||||
"modified": "Modifié",
|
||||
"deleted": "Supprimé",
|
||||
|
@ -345,8 +345,8 @@
|
|||
"google_warning_link": "http://www.openstreetmap.org/copyright"
|
||||
},
|
||||
"contributors": {
|
||||
"list": "Editions de {users}",
|
||||
"truncated_list": "Editions de {users} et de {count} autres"
|
||||
"list": "Modifications de {users}",
|
||||
"truncated_list": "Modifications de {users} et de {count} autres"
|
||||
},
|
||||
"geometry": {
|
||||
"point": "point",
|
||||
|
@ -1289,9 +1289,6 @@
|
|||
"label": "adresse de visioconférence",
|
||||
"placeholder": "http://example.com/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Contenu"
|
||||
},
|
||||
"country": {
|
||||
"label": "Pays"
|
||||
},
|
||||
|
|
2131
vendor/assets/iD/iD/locales/gl.json
vendored
2131
vendor/assets/iD/iD/locales/gl.json
vendored
File diff suppressed because it is too large
Load diff
3
vendor/assets/iD/iD/locales/hr.json
vendored
3
vendor/assets/iD/iD/locales/hr.json
vendored
|
@ -1204,9 +1204,6 @@
|
|||
"contact/webcam": {
|
||||
"placeholder": "http://primjer.hr/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Sadržaj"
|
||||
},
|
||||
"country": {
|
||||
"label": "Država"
|
||||
},
|
||||
|
|
5
vendor/assets/iD/iD/locales/hu.json
vendored
5
vendor/assets/iD/iD/locales/hu.json
vendored
|
@ -1355,9 +1355,6 @@
|
|||
"label": "Webkamera URL",
|
||||
"placeholder": "http://pelda.hu/"
|
||||
},
|
||||
"content": {
|
||||
"label": "Tartalom"
|
||||
},
|
||||
"country": {
|
||||
"label": "Ország"
|
||||
},
|
||||
|
@ -3491,7 +3488,7 @@
|
|||
"terms": "Emlékhely"
|
||||
},
|
||||
"historic/monument": {
|
||||
"name": "Kiemelkedően jelentős emlékmű",
|
||||
"name": "Monumentális, épületszerű emlékmű",
|
||||
"terms": "monumentális emlékmű"
|
||||
},
|
||||
"historic/ruins": {
|
||||
|
|
3
vendor/assets/iD/iD/locales/hy.json
vendored
3
vendor/assets/iD/iD/locales/hy.json
vendored
|
@ -693,9 +693,6 @@
|
|||
"construction": {
|
||||
"label": "Տեսակ"
|
||||
},
|
||||
"content": {
|
||||
"label": "Բովանդակութիւն"
|
||||
},
|
||||
"country": {
|
||||
"label": "Երկիր"
|
||||
},
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue