From: Tom Hughes Date: Thu, 8 Nov 2018 17:31:30 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/2050' X-Git-Tag: live~2829 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/10294f4849b5d97185c618687a710a2dfc19f148?hp=47498efcc3f35ac0cd656cbb2f3e621e1ba3f123 Merge remote-tracking branch 'upstream/pull/2050' --- diff --git a/Gemfile b/Gemfile index 05bfc6cbd..5eb559113 100644 --- a/Gemfile +++ b/Gemfile @@ -45,6 +45,7 @@ gem "image_optim_rails" # Load rails plugins gem "actionpack-page_caching" +gem "active_record_union" gem "cancancan" gem "composite_primary_keys", "~> 11.0.0" gem "delayed_job_active_record" diff --git a/Gemfile.lock b/Gemfile.lock index 72f769929..6472d586a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -29,6 +29,8 @@ GEM erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.0.3) + active_record_union (1.3.0) + activerecord (>= 4.0) activejob (5.2.0) activesupport (= 5.2.0) globalid (>= 0.3.6) @@ -66,7 +68,7 @@ GEM bootsnap (1.3.2) msgpack (~> 1.0) builder (3.2.3) - cancancan (2.1.3) + cancancan (2.3.0) canonical-rails (0.2.4) rails (>= 4.1, < 5.3) capybara (2.18.0) @@ -88,7 +90,7 @@ GEM coffee-script-source (1.12.2) composite_primary_keys (11.0.3) activerecord (~> 5.2.0) - concurrent-ruby (1.0.5) + concurrent-ruby (1.1.3) coveralls (0.8.22) json (>= 1.8, < 3) simplecov (~> 0.16.1) @@ -177,7 +179,7 @@ GEM mini_mime (>= 0.1.1) marcel (0.3.3) mimemagic (~> 0.3.2) - method_source (0.9.0) + method_source (0.9.1) mime-types (3.2.2) mime-types-data (~> 3.2015) mime-types-data (3.2018.0812) @@ -255,7 +257,7 @@ GEM puma (3.12.0) quad_tile (1.0.1) r2 (0.2.7) - rack (2.0.5) + rack (2.0.6) rack-cors (1.0.2) rack-openid (1.3.1) rack (>= 1.1.0) @@ -346,7 +348,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - term-ansicolor (1.6.0) + term-ansicolor (1.7.0) tins (~> 1.0) terrapin (0.6.0) climate_control (>= 0.0.3, < 1.0) @@ -356,7 +358,7 @@ GEM thor (0.19.4) thread_safe (0.3.6) tilt (2.0.8) - tins (1.17.0) + tins (1.18.0) tzinfo (1.2.5) thread_safe (~> 0.1) uglifier (4.1.19) @@ -382,6 +384,7 @@ DEPENDENCIES SystemTimer (>= 1.1.3) aasm actionpack-page_caching + active_record_union annotate autoprefixer-rails (~> 8.6.3) better_errors diff --git a/Vendorfile b/Vendorfile index 15a8eba1b..85eb49b9b 100644 --- a/Vendorfile +++ b/Vendorfile @@ -31,7 +31,7 @@ folder 'vendor/assets' do folder 'img', 'src/img' end - from 'git://github.com/domoritz/leaflet-locatecontrol.git', :tag => 'v0.62.0' do + from 'git://github.com/domoritz/leaflet-locatecontrol.git', :tag => 'v0.64.0' do file 'leaflet.locate.js', 'src/L.Control.Locate.js' end diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 81b8bca53..d97feace2 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -30,7 +30,9 @@ class ApiController < ApplicationController end # get all the points - points = Tracepoint.bbox(bbox).offset(offset).limit(TRACEPOINTS_PER_PAGE).order("gpx_id DESC, trackid ASC, timestamp ASC") + ordered_points = Tracepoint.bbox(bbox).joins(:trace).where(:gpx_files => { :visibility => %w[trackable identifiable] }).order("gpx_id DESC, trackid ASC, timestamp ASC") + unordered_points = Tracepoint.bbox(bbox).joins(:trace).where(:gpx_files => { :visibility => %w[public private] }).order("gps_points.latitude", "gps_points.longitude", "gps_points.timestamp") + points = ordered_points.union_all(unordered_points).offset(offset).limit(TRACEPOINTS_PER_PAGE) doc = XML::Document.new doc.encoding = XML::Encoding::UTF_8 diff --git a/app/models/concerns/geo_record.rb b/app/models/concerns/geo_record.rb index 06049c295..dbda2960f 100644 --- a/app/models/concerns/geo_record.rb +++ b/app/models/concerns/geo_record.rb @@ -22,7 +22,7 @@ module GeoRecord SCALE = 10000000 included do - scope :bbox, ->(bbox) { where(OSM.sql_for_area(bbox)) } + scope :bbox, ->(bbox) { where(OSM.sql_for_area(bbox, "#{table_name}.")) } before_save :update_tile end diff --git a/config/locales/ar.yml b/config/locales/ar.yml index 718f30119..8f39978bb 100644 --- a/config/locales/ar.yml +++ b/config/locales/ar.yml @@ -2662,4 +2662,9 @@ ar: هذا التنقيح قبل تدميره. flash: التنقيح تم تدميره. error: حدث خطأ في تدمير هذا التنقيح. + validations: + leading_whitespace: لديه مسافة بيضاء أمامية + trailing_whitespace: لديه مسافة بيضاء زائدة + invalid_characters: يحتوي على أحرف غير صالحة + url_characters: يحتوي على أحرف يو آر إل خاصة (%{characters}) ... diff --git a/config/locales/bn.yml b/config/locales/bn.yml index b24834872..ec97318ef 100644 --- a/config/locales/bn.yml +++ b/config/locales/bn.yml @@ -6,6 +6,7 @@ # Author: Bodhisattwa # Author: Ehsanulhb # Author: Elias Ahmmad +# Author: Gronthokeet # Author: Kayser Ahmad # Author: Nasir8891 # Author: R4bb1 @@ -314,10 +315,12 @@ bn: edit_link: এই ভুক্তি সম্পাদনা করুন hide_link: এই ভুক্তি লুকান confirm: নিশ্চিত করুন + report: এই ভুক্তির বিরুদ্ধে অভিযোগ করুন diary_comment: comment_from: '%{comment_created_at}-এ %{link_user} কর্তৃক মন্তব্য' hide_link: এই মন্তব্যটি লুকান confirm: নিশ্চিত করুন + report: এই মন্তব্যের বিরুদ্ধে অভিযোগ করুন location: location: 'অবস্থান:' view: দেখাও @@ -361,6 +364,7 @@ bn: aerodrome: বিমানশালা apron: বর্হিবাস gate: প্রবেশপথ + hangar: বিমান রাখার স্থান helipad: হেলিপ্যাড parking_position: পার্কিং-এর স্থান runway: রানওয়ে @@ -421,6 +425,7 @@ bn: office: দপ্তর parking: পার্কিং parking_entrance: পার্কিং প্রবেশপথ + parking_space: গাড়ি রাখার স্থান pharmacy: ঔষধালয় place_of_worship: উপাসনালয় police: পুলিশ @@ -456,6 +461,7 @@ bn: youth_centre: যুব কেন্দ্র boundary: administrative: প্রশাসনিক সীমানা + census: আদমশুমারি এলাকা national_park: জাতীয় উদ্যান protected_area: সুরক্ষিত এলাকা bridge: @@ -479,8 +485,10 @@ bn: "yes": কারুকাজ দোকান emergency: ambulance_station: রুগ্নবাহিকা স্টেশন + defibrillator: ডিফাইব্রিলেটর landing_site: জরুরি অবতরণ ক্ষেত্র phone: জরুরি ফোন + water_tank: জরুরি পানির ট্যাংক "yes": জরুরী highway: abandoned: পরিত্যক্ত মহাসড়ক @@ -493,6 +501,7 @@ bn: emergency_access_point: জরুরি প্রবেশ স্থল footway: ফুটপাথ milestone: মাইলফলক + motorway: মোটরপথ path: পাথ pedestrian: পাদচারী পথ platform: প্লাটফর্ম @@ -508,12 +517,13 @@ bn: service: পার্শ্ব সড়ক speed_camera: গতিমাপক ক্যামেরা steps: ধাপ - stop: থাকার চিহ্ন + stop: থামার চিহ্ন street_lamp: রাস্তার বাতি tertiary: প্রশাখা সড়ক tertiary_link: প্রশাখা সড়ক track: নির্ধারিত পথ traffic_signals: ট্রাফিক সংকেত + trail: চলাচলের নিশানা trunk: মূল সড়ক trunk_link: মূল সড়ক unclassified: অশ্রেণীকৃত সড়ক @@ -523,6 +533,7 @@ bn: battlefield: যুদ্ধক্ষেত্র boundary_stone: সীমানাজ্ঞাপক পাথর building: ঐতিহাসিক ভবন + bunker: আপদকালীন ভূগর্ভস্থ আশ্রয়স্থল castle: কেল্লা church: গির্জা city_gate: নগর দ্বার @@ -540,6 +551,8 @@ bn: stone: প্রস্তর tomb: সমাধি tower: মিনার + wreck: ভগ্নাবশেষ + "yes": ঐতিহাসিক স্থান junction: "yes": জংশন landuse: @@ -571,27 +584,49 @@ bn: "yes": ব্যবহার্য ভূমি leisure: beach_resort: সৈকতীয় রিসোর্ট + bird_hide: পক্ষীদর্শন স্থান common: সাধারণ ভূমি dog_park: কুকুর উদ্যান fishing: মৎস শিকারের এলাকা + fitness_centre: শরীরচর্চা কেন্দ্র garden: বাগান golf_course: গল্ফ মাঠ + horse_riding: অশ্বারোহণ + miniature_golf: ক্ষুদ্রাকৃতির গল্ফ nature_reserve: সংরক্ষিত প্রাকৃতিক ভূমি park: উদ্যান + pitch: খেলার পিচ playground: খেলার মাঠ recreation_ground: চিত্তবিনোদন মাঠ resort: রিসোর্ট + sauna: বাষ্পস্নান + slipway: নৌকা ছাড়ার পথ sports_centre: ক্রীড়া কেন্দ্র stadium: ক্রিড়াঙ্গন swimming_pool: সুইমিং পুল water_park: বারি উদ্যান "yes": অবসর man_made: + adit: খনি সুড়ঙ্গ + beehive: মৌমাছির কৃত্রিম বাসা + breakwater: বেড়িবাঁধ bridge: সেতু + bunker_silo: গাড়ি ভর্তি ও খালি করার জায়গা + chimney: চিম্নী + crane: কপিকল + dyke: বাঁধ + flagpole: সতর্কীকরণ পতাকা lighthouse: বাতিঘর + mast: টাওয়ার mine: খনি + monitoring_station: আবহাওয়া পর্যবেক্ষ্ণ কেন্দ্র + petroleum_well: তেলের খনি pipeline: পাইপলাইন + silo: সিলো + surveillance: নজরদারী ক্যামেরা tower: টাওয়ার + water_tower: পানির ট্যাংক + water_well: পানির কূপ works: কারখানা "yes": মনুষ্য-নির্মিত military: @@ -1324,15 +1359,26 @@ bn: rest_of_world: অন্যান্য দেশসমূহ show: my edits: আমার সম্পাদনা + my messages: আমার বার্তাসমূহ my profile: আমার প্রোফাইল my settings: আমার সেটিংস + my comments: আমার মন্তব্যস্মূহ oauth settings: OAuth সেটিংস + send message: বার্তা পাঠান + diary: দিনলিপি edits: সম্পাদনাসমূহ + remove as friend: আনফ্রেন্ড + add as friend: বন্ধু যোগ করুন + mapper since: থেকে ম্যাপ বানাচ্ছেন + ct undecided: সিদ্ধান্তহীন + ct declined: বাতিলকৃত email address: 'ই-মেইল ঠিকানা:' description: বিবরণ + user location: ব্যবহারকারীর অবস্থান settings_link_text: সেটিংস my friends: আমার বন্ধুগণ no friends: আপনি বন্ধুতালিকায় কাউকে যুক্ত করেননি। + nearby users: কাছাকাছি অন্য ব্যবহারকারী block_history: সক্রিয় বাধাসমূহ moderator_history: প্রদত্ত বাধাগুলি comments: মন্তব্যসমূহ diff --git a/config/locales/br.yml b/config/locales/br.yml index faf77a515..2541d0c64 100644 --- a/config/locales/br.yml +++ b/config/locales/br.yml @@ -219,6 +219,7 @@ br: reopened_by_anonymous: Adweredekaet gant un den dianv %{when} zo hidden_by: Kuzhet gant %{user} %{when} zo + report: Disklêriañ an notenn-mañ query: title: Arc'hweladurioù enklask introduction: Klikit war ar gartenn evit kavout arc'hweladurioù e-kichen. @@ -959,6 +960,7 @@ br: update: new_report: Enrollet mat eo bet ho tanevell successful_update: Hizivaet mat eo bet ho tanevell + provide_details: Reiñ ar munudoù goulennet show: title: '%{status} Kudenn #%{issue_id}' reports: @@ -983,6 +985,25 @@ br: issue_comments: create: comment_created: Krouet mat eo bet hoc'h evezhiadenn. + reports: + new: + title_html: Danevell %{link} + missing_params: N'haller ket krouiñ un danevell nevez + details: Roit muioc'h a vunudoù diwar-benn ar gudenn (dre ret) + disclaimer: + not_just_mistake: Sur oc'h n'eo ket ar gudenn-se ur fazi hepken. + categories: + diary_entry: + other_label: All + diary_comment: + other_label: All + user: + other_label: All + note: + other_label: All + create: + successful_report: Enrollet mat eo bet ho tanevell + provide_details: Roit ar munudoù goulennet mar plij layouts: logo: alt_text: Logo OpenStreetMap @@ -996,6 +1017,7 @@ br: edit: Aozañ history: Istor export: Ezporzhiañ + issues: Kudennoù data: Roadennoù export_data: Ezporzhiañ roadennoù gps_traces: Roudoù GPS @@ -1683,8 +1705,10 @@ br: tags_help: bevennet gant virgulennoù visibility: 'Gwelusted :' visibility_help: Petra a dalvez ? + visibility_help_url: https://wiki.openstreetmap.org/wiki/FR:Visibilit%C3%A9_des_traces_GPS upload_button: Enporzhiañ help: Skoazell + help_url: https://wiki.openstreetmap.org/wiki/FR:Upload create: upload_trace: Kas ar roud GPS trace_uploaded: Kaset eo bet ho restr GPX hag emañ en gortoz a vezañ ensoc'het @@ -1731,8 +1755,9 @@ br: delete_trace: Dilemel ar roudenn-mañ trace_not_found: N'eo ket bet kavet ar roud ! visibility: 'Gwelusted :' + confirm_delete: Diverkañ ar roudenn-mañ trace_paging_nav: - showing_page: Page %{page} + showing_page: Pajenn %{page} older: ↓Roudoù kozh newer: ↓Roudoù nevez trace: @@ -1753,6 +1778,7 @@ br: map: kartenn index: public_traces: Roudoù GPS foran + my_traces: Ma roudennoù GPS public_traces_from: Roudoù GPS foran gant %{user} description: Furchal ar roud GPS pellgarget nevez zo tagged_with: ' balizennet gant %{tags}' @@ -1761,6 +1787,7 @@ br: ar href='https://wiki.openstreetmap.org/wiki/Beginners_Guide_1.2i. upload_trace: Kas ur roud see_all_traces: Gwelet an holl roudoù + see_my_traces: Gwelet ma roudennoù delete: scheduled_for_deletion: Roudenn da vezañ dilamet make_public: @@ -1781,8 +1808,13 @@ br: require_cookies: cookies_needed: Diweredekaet eo an toupinoù ganeoc'h war a seblant - gweredekait an toupinoù en ho merdeer a-raok mont pelloc'h, mar plij. + require_admin: + not_an_admin: Ret eo deoc'h bezañ merour evit kas an ober-mañ da benn. require_moderator: not_a_moderator: Ret eo deoc'h bezañ habaskaer evit kas an ober-mañ da benn. + require_moderator_or_admin: + not_a_moderator_or_admin: Ret eo deoc'h bezañ habaskaer pe merour evit kas an + ober-mañ da benn. setup_user_auth: blocked_zero_hour: Ur gemennadenn vallus zo war lec'hienn OpenStreetMap evidoc'h. Ret eo deoc'h lenn ar gemennadenn-se a-raok gallout enrollañ ho kemmoù. @@ -2001,10 +2033,12 @@ br: consider_pd: Ouzhpenn an asant amañ a-us, ez anavezan emañ ma zegasadennoù en domani foran consider_pd_why: petra eo se ? + consider_pd_why_url: https://www.osmfoundation.org/wiki/License/Why_would_I_want_my_contributions_to_be_public_domain guidance: 'Titouroù da skoazellañ kompren an termenoù-mañ : a diverradenn lennus gant mab-den hag un nebeud troidigezhioù anfurmel' agree: Mat eo din + declined: https://wiki.openstreetmap.org/wiki/Contributor_Terms_Declined decline: Nac'h you need to accept or decline: Lennit da gentañ Termenoù ar berzhidi nevez ha goude-se nac'hit pe asantit evit gallout kenderc'hel. @@ -2055,6 +2089,7 @@ br: if set location: Lakait ho lec'h-annez war ar bajenn %{settings_link} da welet an implijerien war-dro. settings_link_text: arventennoù + my friends: Ma mignoned no friends: N'hoc'h eus ouzhpennet mignon ebet c'hoazh. km away: war-hed %{count} km m away: war-hed %{count} m @@ -2124,6 +2159,7 @@ br: review link text: Heuilhit al liamm-mañ evel ma karot evit sellet ouzh diferadennoù nevez ar c'henlabourer hag asantiñ dezho. agreed_with_pd: Disklêriet hoc'h eus ivez emañ ho tegasadennoù en domani foran. + link: https://www.osmfoundation.org/wiki/License/Contributor_Terms link text: Petra eo se ? profile description: 'Deskrivadur ar profil :' preferred languages: 'Yezhoù gwellañ karet :' @@ -2498,12 +2534,20 @@ br: distance: Hed errors: no_route: Ne c'haller ket kavout un hent etre an daou lec'h-mañ. - no_place: Ho tigarez, ne c'haller ket kavout al lec'h-mañ. + no_place: 'Ho tigarez, ne c''haller ket kavout al lec''h-mañ : %{place}.' instructions: continue_without_exit: Kenderc'hel war%{name} slight_right_without_exit: Troit un tammig a-zehoù war %{name} offramp_right_with_name: Kemer ar vretell dehou %{name} + offramp_right_with_directions: Kemer ar vretell dehou war-zu %{directions} + offramp_right_with_name_directions: Kemer ar vretell dehou war %{name}, war-zu + %{directions} onramp_right_without_exit: Troit a-zehoù war ar bretell war %{name} + onramp_right_with_directions: Troit a-zehoù war ar vretell war-zu %{directions} + onramp_right_with_name_directions: Troit a-zehou war ar vretell war %{name}, + war-zu %{directions} + onramp_right_without_directions: Treiñ a-zehou war ar vretell + onramp_right: Troit a gleiz war ar vretell endofroad_right_without_exit: E penn an hent, troit a-zezhoù war %{name} merge_right_without_exit: Mont a-zehoù war %{name} fork_right_without_exit: Er forc'h-hent, troit a-zehoù war %{name} @@ -2512,8 +2556,17 @@ br: uturn_without_exit: Grit hanter dro war %{name} sharp_left_without_exit: Troit prim a-gleiz war %{name} turn_left_without_exit: Treiñ a-gleiz war %{name} + offramp_left: Troit a gleiz war ar vretell offramp_left_with_name: Kemer ar vretell gleiz betek %{name} + offramp_left_with_directions: Troit a-gleiz war ar vretell war-zu %{directions} + offramp_left_with_name_directions: Troit a-gleiz war ar vretell war %{name}, + war-zu %{directions} onramp_left_without_exit: Troit a-gleiz war ar vretell war %{name} + onramp_left_with_directions: Troit a-gleiz war ar vretell war-zu %{directions} + onramp_left_with_name_directions: Troit a-gleiz war ar vretell war %{name}, + war-zu %{directions} + onramp_left_without_directions: Troit a-gleiz war ar vretell + onramp_left: Troit a-gleiz war ar vretell endofroad_left_without_exit: E penn an hent, troit a-gleiz war %{name} merge_left_without_exit: Mont a-gleiz war %{name} fork_left_without_exit: Er forc'h-hent, troit a-gleiz war %{name} @@ -2523,7 +2576,7 @@ br: roundabout_without_exit: Er c'hroashent-tro, troit %{name} leave_roundabout_without_exit: Kuitaat ar c'roashent-tro - %{name} stay_roundabout_without_exit: Chom war ar c'hroashent-tro -%{name} - start_without_exit: Loc'hañ e dibenn %{name} + start_without_exit: Loc'hañ war %{name} destination_without_exit: Tizhout al lec'h against_oneway_without_exit: Mont gant ar straed untu war %{name} end_oneway_without_exit: Dibenn an tremen untun war %{name} diff --git a/config/locales/da.yml b/config/locales/da.yml index 8f662f344..7966d36f0 100644 --- a/config/locales/da.yml +++ b/config/locales/da.yml @@ -967,6 +967,7 @@ da: reported_user: Rapporteret bruger not_updated: Ikke opdateret search: Søg + search_guidance: 'Søgning blandt sager:' user_not_found: Brugeren findes ikke status: Status reports: Rapporter @@ -2641,4 +2642,6 @@ da: der tilhører denne omarbejdelse, før du sletter den. flash: Omarbejdelse slettet. error: Der opstod en fejl under sletning af denne omarbejdelse. + validations: + invalid_characters: indholder ugyldige tegn ... diff --git a/config/locales/de.yml b/config/locales/de.yml index d0e38546b..666592b07 100644 --- a/config/locales/de.yml +++ b/config/locales/de.yml @@ -2793,4 +2793,9 @@ de: zugehörigen Versionen zurück, bevor du die Redaction löschst. flash: Redaction wurde gelöscht. error: Beim Löschen dieser Redaction ist ein Fehler aufgetreten. + validations: + leading_whitespace: hat anführendes Leerzeichen + trailing_whitespace: hat anhängendes Leerzeichen + invalid_characters: enthält ungültige Zeichen + url_characters: enthält besondere URL-Zeichen (%{characters}) ... diff --git a/config/locales/el.yml b/config/locales/el.yml index 57f0a26cc..ad4f8ee47 100644 --- a/config/locales/el.yml +++ b/config/locales/el.yml @@ -2764,4 +2764,6 @@ el: σε αυτή τη σύνταξη πριν την καταστρέψετε. flash: Η παράληψη καταστραφεί. error: Εμφανίστηκε ένα σφάλμα που καταστρέφει αυτή τη σύνταξη. + validations: + invalid_characters: περιέχει μη έγκυρους χαρακτήρες ... diff --git a/config/locales/eo.yml b/config/locales/eo.yml index f10147286..9c7462781 100644 --- a/config/locales/eo.yml +++ b/config/locales/eo.yml @@ -665,7 +665,7 @@ eo: monitoring_station: Observada stacio petroleum_well: Naftoŝakto pier: Marponto - pipeline: Tubolinio + pipeline: Konduktubo silo: Tur-stokejo storage_tank: Rezervujo surveillance: Supergardo diff --git a/config/locales/es.yml b/config/locales/es.yml index e0aa65cef..3b7bee66c 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -2757,4 +2757,6 @@ es: previas pertenecientes a esta redacción antes de destruirla. flash: Redacción destruida. error: Se produjo un error al destruir esta redacción + validations: + invalid_characters: contiene caracteres no válidos ... diff --git a/config/locales/fa.yml b/config/locales/fa.yml index 2f4b77dc6..bc47886e6 100644 --- a/config/locales/fa.yml +++ b/config/locales/fa.yml @@ -1248,8 +1248,8 @@ fa: english_link: اصل انگلیسی native: title: درباره این صفحه - text: شما در حال مشاهده ویرایش انگلیسی قانون کپی‌رایت هستید. برای دیدن %{native_link} می - توانید به عقب باز گردید یا خواندن متن کپی رایت و %{mapping_link} را متوقف + text: شما در حال مشاهدهٔ ویرایش انگلیسی قانون کپی‌رایت هستید. برای دیدن %{native_link} + می‌توانید به عقب بازگردید یا مطالعه دربارهٔ کپی‌رایت را رها و %{mapping_link} کنید. native_link: نسخهٔ فارسی mapping_link: شروع به نقشه‌کشی @@ -1693,7 +1693,7 @@ fa: owner: 'مالک:' description: 'شرح:' tags: 'برچسب‌ها:' - none: هیچ کدام + none: هیچ edit_trace: ویرایش این رد delete_trace: حذف این رد trace_not_found: رد یافت نشد! diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 193ae8c68..4a17b3af1 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -2792,4 +2792,9 @@ fr: appartenant à ce masquage avant de le supprimer. flash: Masquage supprimé. error: Une erreur est survenue lors de la suppression de ce masquage. + validations: + leading_whitespace: a des espaces au début + trailing_whitespace: a des espaces à la fin + invalid_characters: contient des caractères non valides + url_characters: contient des caractères d’URL spéciaux (%{characters}) ... diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 4dc589c1e..649788070 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -27,6 +27,7 @@ # Author: Tacsipacsi # Author: Uno20001 # Author: Urbalazs +# Author: Zizzerus --- hu: time: @@ -2535,4 +2536,6 @@ hu: mielőtt törlöd ezt a módosítást. flash: Módosítás törölve. error: Hiba történt a művelet végrehajtása során. + validations: + invalid_characters: érvénytelen karaktereket tartalmaz ... diff --git a/config/locales/it.yml b/config/locales/it.yml index 2fa9107ea..3d5f50e91 100644 --- a/config/locales/it.yml +++ b/config/locales/it.yml @@ -1883,6 +1883,7 @@ it: other: File GPX con %{count} punti da %{user} description_without_count: File GPX da %{user} application: + permission_denied: Non disponi dei permessi necessari per eseguire questa azione require_cookies: cookies_needed: Pare che tu abbia i cookie non abilitati - abilita i cookie nel tuo browser prima di continuare. @@ -2731,4 +2732,7 @@ it: appartenenti a questa revisione prima di eliminarla. flash: Revisione eliminata. error: Si è verificato un errore durante l'eliminazione. + validations: + invalid_characters: contiene caratteri non validi + url_characters: contiene caratteri URL speciali (%{characters}) ... diff --git a/config/locales/ko.yml b/config/locales/ko.yml index 9ed3f177a..2308a17f4 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -2580,4 +2580,7 @@ ko: not_empty: 교정이 비어 있지 않습니다. 파기하기 전에 이 교정에 속하는 모든 판을 교정 취소하세요. flash: 교정을 파기했습니다. error: 이 교정을 파기하는 중에 오류가 발생했습니다. + validations: + invalid_characters: 유효하지 않은 문자가 포함됨 + url_characters: 특정 URL 문자 포함 (%{characters}) ... diff --git a/config/locales/mk.yml b/config/locales/mk.yml index d459f11f5..009ad4781 100644 --- a/config/locales/mk.yml +++ b/config/locales/mk.yml @@ -2692,4 +2692,9 @@ mk: на оваа редакција пред да ја поништите. flash: Редакцијата е поништена. error: Се појави грешка при поништувањето на редакцијата. + validations: + leading_whitespace: има почетна белина + trailing_whitespace: има завршна белина + invalid_characters: содржи неважечки знаци + url_characters: содржи посебни знаци во URL-то (%{characters}) ... diff --git a/config/locales/mo.yml b/config/locales/mo.yml index 91282edde..c1f975159 100644 --- a/config/locales/mo.yml +++ b/config/locales/mo.yml @@ -576,6 +576,9 @@ mo: site: export: title: Експортаре + traces: + edit: + save_button: Апликаря модификэрилор users: login: title: Презентаци-вэ @@ -650,10 +653,20 @@ mo: openid: link text: че май есте ши аста? public editing: + heading: 'Редактаря публикэ:' enabled link text: че май есте ши аста? contributor terms: link text: че май есте ши аста? + profile description: 'Дескриеря профилулуй:' + preferred languages: 'Лимбиле преферате:' preferred editor: 'Редактор преферат:' + image: 'Имаӂине:' gravatar: + gravatar: Фолосиря Граватарулуй link text: че май есте ши аста? + new image: Адэугаря имаӂиний + home location: 'Локул де решединцэ:' + latitude: 'Латитудине:' + longitude: 'Лонӂитудине:' + save changes button: Апликаря модификэрилор ... diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 28b3d7f59..0e997fafb 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -523,6 +523,7 @@ nl: "yes": Ambachtswinkel emergency: ambulance_station: Ambulancepost + assembly_point: Verzamelplaats defibrillator: Defibrillator landing_site: Noodlandingsbaan phone: Noodtelefoon @@ -887,6 +888,7 @@ nl: stationery: Kantoorartikelenwinkel supermarket: Supermarkt tailor: Kleermaker + ticket: Ticketwinkel tobacco: Tabakswinkel toys: Speelgoedwinkel travel_agency: Reisbureau @@ -1808,6 +1810,7 @@ nl: map: kaart index: public_traces: Openbare GPS-traces + my_traces: Mijn GPS-tracks public_traces_from: Openbare GPS-traces van %{user} description: Recente GPS-trackuploads bekijken tagged_with: ' gelabeld met %{tags}' @@ -1815,6 +1818,7 @@ nl: trace of kom meer te weten over GPS tracen op de wikipagina. upload_trace: Trace uploaden see_all_traces: Alle traces bekijken + see_my_traces: Weergeef mijn tracks delete: scheduled_for_deletion: Trace staat op de lijst voor verwijdering make_public: @@ -2635,4 +2639,7 @@ nl: betrokken zijn voordat u die vernietigt. flash: De redigering is vernietigd. error: Er is een fout opgetreden tijdens het verwijderen van de redigering. + validations: + invalid_characters: bevat ongeldige karakters + url_characters: bevat speciale URL karakters (%{characters}) ... diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index ca3969dfc..f8d690a64 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -2744,4 +2744,9 @@ pt-BR: a esta anulação antes de destruí-la. flash: Redação destruída. error: Houve um erro ao destruir esta anulação. + validations: + leading_whitespace: tem espaço em branco líder + trailing_whitespace: tem espaço em branco à direita + invalid_characters: contém caracteres inválidos + url_characters: contém caracteres de URL especiais (%{characters}) ... diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml index 961271545..63a7ec070 100644 --- a/config/locales/pt-PT.yml +++ b/config/locales/pt-PT.yml @@ -2734,4 +2734,9 @@ pt-PT: as versões pertencentes a esta supressão antes de a eliminar flash: Supressão eliminada. error: Ocorreu um erro ao tentar eliminar esta supressão. + validations: + leading_whitespace: tem espaços no início + trailing_whitespace: tem espaços no fim + invalid_characters: contém caracteres inválidos + url_characters: contém caracteres especiais dos URL (%{characters}) ... diff --git a/config/locales/ru.yml b/config/locales/ru.yml index 8fe3d372e..02e3a6d10 100644 --- a/config/locales/ru.yml +++ b/config/locales/ru.yml @@ -37,6 +37,7 @@ # Author: Irus # Author: Kaganer # Author: Komzpa +# Author: Link2xt # Author: Lockal # Author: Macofe # Author: Mavl @@ -1908,6 +1909,7 @@ ru: other: GPX-файл с %{count} точками от %{user} description_without_count: GPX-файл от %{user} application: + permission_denied: У вас нет прав для выполнения этого действия require_cookies: cookies_needed: Похоже, что у вас выключены куки. Пожалуйста, включите куки в вашем браузере, прежде чем продолжить. @@ -2771,4 +2773,7 @@ ru: принадлежащих к этому исправлению перед удалением. flash: Исправление уничтожено. error: Произошла ошибка при уничтожении этого исправления. + validations: + invalid_characters: содержит недопустимые символы + url_characters: содержит специальные символы в URL (%{characters}) ... diff --git a/config/locales/tr.yml b/config/locales/tr.yml index 555cc6ff0..6d107bd5c 100644 --- a/config/locales/tr.yml +++ b/config/locales/tr.yml @@ -1900,6 +1900,7 @@ tr: other: '%{user} tarafından %{count} noktalı GPX dosyası' description_without_count: '%{user} tarafından GPX dosyası' application: + permission_denied: Bu eyleme erişme izniniz yok require_cookies: cookies_needed: Çerezleri devre dışı bırakmış görünüyorsunuz - devam etmeden önce lütfen tarayıcınızda çerezleri etkinleştirin. @@ -2684,6 +2685,9 @@ tr: against_oneway_without_exit: '%{name}X üzerinde tek yönlü git' end_oneway_without_exit: '%{name} için tek yönün sonu' roundabout_with_exit: Dönel kavşakta %{exit}. çıkışı kullanarak %{name} üzerine + roundabout_with_exit_ordinal: Dönel kavşakta %{exit} çıkışı kullanarak %{name} + üzerine + exit_roundabout: '%{name} giden kavşaktan çıkın' unnamed: adsız yol courtesy: Yolculuğun izniyle %{link}x exit_counts: @@ -2744,4 +2748,7 @@ tr: sürümlerini tekrar düzenleyin. flash: Redaksiyon kaldırıldı. error: Bu redaksiyon kaldırılırken bir hata oluştu. + validations: + invalid_characters: geçersiz karakterler içeriyor + url_characters: özel URL karakterleri içerir (%{characters}) ... diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml index 6dfe3523c..349817a90 100644 --- a/config/locales/zh-TW.yml +++ b/config/locales/zh-TW.yml @@ -2488,4 +2488,9 @@ zh-TW: not_empty: 修訂尚未清空。請在銷毀前清除所有此修訂的版本。 flash: 修訂已銷毀。 error: 銷毀此修訂時發生錯誤。 + validations: + leading_whitespace: 前頭有空白 + trailing_whitespace: 後端有空白 + invalid_characters: 包含無效字元 + url_characters: 包含特定 URL 字元(%{characters}) ... diff --git a/test/controllers/api_controller_test.rb b/test/controllers/api_controller_test.rb index 11d850ac3..cdc20a1aa 100644 --- a/test/controllers/api_controller_test.rb +++ b/test/controllers/api_controller_test.rb @@ -1,5 +1,4 @@ require "test_helper" -require "api_controller" class ApiControllerTest < ActionController::TestCase def setup diff --git a/test/controllers/browse_controller_test.rb b/test/controllers/browse_controller_test.rb index d6bde97d6..7cb55b0ec 100644 --- a/test/controllers/browse_controller_test.rb +++ b/test/controllers/browse_controller_test.rb @@ -1,5 +1,4 @@ require "test_helper" -require "browse_controller" class BrowseControllerTest < ActionController::TestCase ## diff --git a/test/controllers/geocoder_controller_test.rb b/test/controllers/geocoder_controller_test.rb index 3f6e25ea6..1a1435182 100644 --- a/test/controllers/geocoder_controller_test.rb +++ b/test/controllers/geocoder_controller_test.rb @@ -1,5 +1,4 @@ require "test_helper" -require "geocoder_controller" class GeocoderControllerTest < ActionController::TestCase ## diff --git a/test/controllers/redactions_controller_test.rb b/test/controllers/redactions_controller_test.rb index e2123f725..0bf57c310 100644 --- a/test/controllers/redactions_controller_test.rb +++ b/test/controllers/redactions_controller_test.rb @@ -1,5 +1,4 @@ require "test_helper" -require "redactions_controller" class RedactionsControllerTest < ActionController::TestCase ## diff --git a/test/models/redaction_test.rb b/test/models/redaction_test.rb index 4196dea15..fb232b81b 100644 --- a/test/models/redaction_test.rb +++ b/test/models/redaction_test.rb @@ -1,5 +1,4 @@ require "test_helper" -require "osm" class RedactionTest < ActiveSupport::TestCase def test_cannot_redact_current diff --git a/vendor/assets/leaflet/leaflet.locate.js b/vendor/assets/leaflet/leaflet.locate.js index 8544e17a0..a7e4730b5 100644 --- a/vendor/assets/leaflet/leaflet.locate.js +++ b/vendor/assets/leaflet/leaflet.locate.js @@ -36,6 +36,112 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol var addClasses = function(el, names) { LDomUtilApplyClassesMethod('addClass', el, names); }; var removeClasses = function(el, names) { LDomUtilApplyClassesMethod('removeClass', el, names); }; + /** + * Compatible with L.Circle but a true marker instead of a path + */ + var LocationMarker = L.Marker.extend({ + initialize: function (latlng, options) { + L.Util.setOptions(this, options); + this._latlng = latlng; + this.createIcon(); + }, + + /** + * Create a styled circle location marker + */ + createIcon: function() { + var opt = this.options; + + var style = ''; + + if (opt.color !== undefined) { + style += 'stroke:'+opt.color+';'; + } + if (opt.weight !== undefined) { + style += 'stroke-width:'+opt.weight+';'; + } + if (opt.fillColor !== undefined) { + style += 'fill:'+opt.fillColor+';'; + } + if (opt.fillOpacity !== undefined) { + style += 'fill-opacity:'+opt.fillOpacity+';'; + } + if (opt.opacity !== undefined) { + style += 'opacity:'+opt.opacity+';'; + } + + var icon = this._getIconSVG(opt, style); + + this._locationIcon = L.divIcon({ + className: icon.className, + html: icon.svg, + iconSize: [icon.w,icon.h], + }); + + this.setIcon(this._locationIcon); + }, + + /** + * Return the raw svg for the shape + * + * Split so can be easily overridden + */ + _getIconSVG: function(options, style) { + var r = options.radius; + var w = options.weight; + var s = r + w; + var s2 = s * 2; + var svg = '' + + '' + + ''; + return { + className: 'leafet-control-locate-location', + svg: svg, + w: s2, + h: s2 + }; + }, + + setStyle: function(style) { + L.Util.setOptions(this, style); + this.createIcon(); + } + }); + + var CompassMarker = LocationMarker.extend({ + initialize: function (latlng, heading, options) { + L.Util.setOptions(this, options); + this._latlng = latlng; + this._heading = heading; + this.createIcon(); + }, + + setHeading: function(heading) { + this._heading = heading; + }, + + /** + * Create a styled arrow compass marker + */ + _getIconSVG: function(options, style) { + var r = options.radius; + var w = (options.width + options.weight); + var h = (r+options.depth + options.weight)*2; + var path = 'M0,0 l'+(options.width/2)+','+options.depth+' l-'+(w)+',0 z'; + var svgstyle = 'transform: rotate('+this._heading+'deg)'; + var svg = ''+ + ''+ + ''; + return { + className: 'leafet-control-locate-heading', + svg: svg, + w: w, + h: h + }; + }, + }); + + var LocateControl = L.Control.extend({ options: { /** Position of the control */ @@ -51,12 +157,15 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol * - false: never updates the map view when location changes. * - 'once': set the view when the location is first determined * - 'always': always updates the map view when location changes. - * The map view follows the users location. - * - 'untilPan': (default) like 'always', except stops updating the + * The map view follows the user's location. + * - 'untilPan': like 'always', except stops updating the + * view if the user has manually panned the map. + * The map view follows the user's location until she pans. + * - 'untilPanOrZoom': (default) like 'always', except stops updating the * view if the user has manually panned the map. - * The map view follows the users location until she pans. + * The map view follows the user's location until she pans. */ - setView: 'untilPan', + setView: 'untilPanOrZoom', /** Keep the current map zoom level when setting the view and only pan. */ keepCurrentZoomLevel: false, /** Smooth pan and zoom to the location of the marker. Only works in Leaflet 1.0+. */ @@ -89,24 +198,40 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol drawCircle: true, /** If set, the marker at the users' location is drawn. */ drawMarker: true, + /** If set and supported then show the compass heading */ + showCompass: true, /** The class to be used to create the marker. For example L.CircleMarker or L.Marker */ - markerClass: L.CircleMarker, - /** Accuracy circle style properties. */ + markerClass: LocationMarker, + /** The class us be used to create the compass bearing arrow */ + compassClass: CompassMarker, + /** Accuracy circle style properties. NOTE these styles should match the css animations styles */ circleStyle: { - color: '#136AEC', - fillColor: '#136AEC', + className: 'leaflet-control-locate-circle', + color: '#136AEC', + fillColor: '#136AEC', fillOpacity: 0.15, - weight: 2, - opacity: 0.5 + weight: 0 }, /** Inner marker style properties. Only works if your marker class supports `setStyle`. */ markerStyle: { - color: '#136AEC', - fillColor: '#2A93EE', - fillOpacity: 0.7, - weight: 2, - opacity: 0.9, - radius: 5 + className: 'leaflet-control-locate-marker', + color: '#fff', + fillColor: '#2A93EE', + fillOpacity: 1, + weight: 3, + opacity: 1, + radius: 9 + }, + /** Compass */ + compassStyle: { + fillColor: '#2A93EE', + fillOpacity: 1, + weight: 0, + color: '#fff', + opacity: 1, + radius: 9, // How far is the arrow is from the center of of the marker + width: 9, // Width of the arrow + depth: 6 // Length of the arrow }, /** * Changes to accuracy circle and inner marker while following. @@ -117,6 +242,7 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol // color: '#FFA500', // fillColor: '#FFB000' }, + followCompassStyle: {}, /** The CSS class for the icon. For example fa-location-arrow or fa-map-marker */ icon: 'fa fa-map-marker', iconLoading: 'fa fa-spinner fa-spin', @@ -142,7 +268,7 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol alert(err.message); }, /** - * This even is called when the user's location is outside the bounds set on the map. + * This event is called when the user's location is outside the bounds set on the map. * The event is called repeatedly when the location changes. */ onLocationOutsideMapBounds: function(control) { @@ -180,6 +306,7 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol // extend the follow marker style and circle from the normal style this.options.followMarkerStyle = L.extend({}, this.options.markerStyle, this.options.followMarkerStyle); this.options.followCircleStyle = L.extend({}, this.options.circleStyle, this.options.followCircleStyle); + this.options.followCompassStyle = L.extend({}, this.options.compassStyle, this.options.followCompassStyle); }, /** @@ -192,6 +319,7 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol this._layer = this.options.layer || new L.LayerGroup(); this._layer.addTo(map); this._event = undefined; + this._compassHeading = null; this._prevBounds = null; var linkAndIcon = this.options.createButtonCallback(container, this.options); @@ -217,6 +345,7 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol _onClick: function() { this._justClicked = true; this._userPanned = false; + this._userZoomed = false; if (this._active && !this._event) { // click while requesting @@ -298,6 +427,15 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol this._map.on('locationfound', this._onLocationFound, this); this._map.on('locationerror', this._onLocationError, this); this._map.on('dragstart', this._onDrag, this); + this._map.on('zoomstart', this._onZoom, this); + this._map.on('zoomend', this._onZoomEnd, this); + if (this.options.showCompass) { + if ('ondeviceorientationabsolute' in window) { + L.DomEvent.on(window, 'deviceorientationabsolute', this._onDeviceOrientation, this); + } else if ('ondeviceorientation' in window) { + L.DomEvent.on(window, 'deviceorientation', this._onDeviceOrientation, this); + } + } } }, @@ -318,6 +456,16 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol this._map.off('locationfound', this._onLocationFound, this); this._map.off('locationerror', this._onLocationError, this); this._map.off('dragstart', this._onDrag, this); + this._map.off('zoomstart', this._onZoom, this); + this._map.off('zoomend', this._onZoomEnd, this); + if (this.options.showCompass) { + this._compassHeading = null; + if ('ondeviceorientationabsolute' in window) { + L.DomEvent.off(window, 'deviceorientationabsolute', this._onDeviceOrientation, this); + } else if ('ondeviceorientation' in window) { + L.DomEvent.off(window, 'deviceorientation', this._onDeviceOrientation, this); + } + } }, /** @@ -342,6 +490,32 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol } }, + /** + * + */ + _drawCompass: function() { + var latlng = this._event.latlng; + + if (this.options.showCompass && latlng && this._compassHeading !== null) { + var cStyle = this._isFollowing() ? this.options.followCompassStyle : this.options.compassStyle; + if (!this._compass) { + this._compass = new this.options.compassClass(latlng, this._compassHeading, cStyle).addTo(this._layer); + } else { + this._compass.setLatLng(latlng); + this._compass.setHeading(this._compassHeading); + // If the compassClass can be updated with setStyle, update it. + if (this._compass.setStyle) { + this._compass.setStyle(cStyle); + } + } + // + } + if (this._compass && (!this.options.showCompass || this._compassHeading === null)) { + this._compass.removeFrom(this._layer); + this._compass = null; + } + }, + /** * Draw the marker and accuracy circle on the map. * @@ -389,12 +563,19 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol } } + this._drawCompass(); + var t = this.options.strings.popup; if (this.options.showPopup && t && this._marker) { this._marker .bindPopup(L.Util.template(t, {distance: distance, unit: unit})) ._popup.setLatLng(latlng); } + if (this.options.showPopup && t && this._compass) { + this._compass + .bindPopup(L.Util.template(t, {distance: distance, unit: unit})) + ._popup.setLatLng(latlng); + } }, /** @@ -415,6 +596,44 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol this._map.off('unload', this._unload, this); }, + /** + * Sets the compass heading + */ + _setCompassHeading: function(angle) { + if (!isNaN(parseFloat(angle)) && isFinite(angle)) { + angle = Math.round(angle); + + this._compassHeading = angle; + L.Util.requestAnimFrame(this._drawCompass, this); + } else { + this._compassHeading = null; + } + }, + + /** + * If the compass fails calibration just fail safely and remove the compass + */ + _onCompassNeedsCalibration: function() { + this._setCompassHeading(); + }, + + /** + * Process and normalise compass events + */ + _onDeviceOrientation: function(e) { + if (!this._active) { + return; + } + + if (e.webkitCompassHeading) { + // iOS + this._setCompassHeading(e.webkitCompassHeading); + } else if (e.absolute && e.alpha) { + // Android + this._setCompassHeading(360 - e.alpha) + } + }, + /** * Calls deactivate and dispatches an error. */ @@ -461,6 +680,11 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol this.setView(); } break; + case 'untilPanOrZoom': + if (!this._userPanned && !this._userZoomed) { + this.setView(); + } + break; case 'always': this.setView(); break; @@ -473,7 +697,7 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol }, /** - * When the user drags. Need a separate even so we can bind and unbind even listeners. + * When the user drags. Need a separate event so we can bind and unbind event listeners. */ _onDrag: function() { // only react to drags once we have a location @@ -484,6 +708,27 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol } }, + /** + * When the user zooms. Need a separate event so we can bind and unbind event listeners. + */ + _onZoom: function() { + // only react to drags once we have a location + if (this._event) { + this._userZoomed = true; + this._updateContainerStyle(); + this._drawMarker(); + } + }, + + /** + * After a zoom ends update the compass + */ + _onZoomEnd: function() { + if (this._event) { + this._drawCompass(); + } + }, + /** * Compute whether the map is following the user location with pan and zoom. */ @@ -496,6 +741,8 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol return true; } else if (this.options.setView === 'untilPan') { return !this._userPanned; + } else if (this.options.setView === 'untilPanOrZoom') { + return !this._userPanned && !this._userZoomed; } }, @@ -580,6 +827,9 @@ You can find the project at: https://github.com/domoritz/leaflet-locatecontrol // true if the user has panned the map after clicking the control this._userPanned = false; + + // true if the user has zoomed the map after clicking the control + this._userZoomed = false; } });