From bb84a78a090db5db95963653ccba89233415c508 Mon Sep 17 00:00:00 2001 From: Matt Amos Date: Thu, 6 Aug 2009 17:28:49 +0000 Subject: [PATCH 01/12] Made XML parsing routines raise an exception if the document is valid XML, but not valid as an OSM document. This is now the same behaviour as when the document isn't valid XML. --- app/models/node.rb | 1 + app/models/relation.rb | 1 + app/models/way.rb | 1 + test/functional/node_controller_test.rb | 18 ++++++++++++++++++ 4 files changed, 21 insertions(+) diff --git a/app/models/node.rb b/app/models/node.rb index dd8d96d12..df6442b83 100644 --- a/app/models/node.rb +++ b/app/models/node.rb @@ -70,6 +70,7 @@ class Node < ActiveRecord::Base doc.find('//osm/node').each do |pt| return Node.from_xml_node(pt, create) end + raise OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/node element.") rescue LibXML::XML::Error, ArgumentError => ex raise OSM::APIBadXMLError.new("node", xml, ex.message) end diff --git a/app/models/relation.rb b/app/models/relation.rb index 76cd86729..e3ba69b56 100644 --- a/app/models/relation.rb +++ b/app/models/relation.rb @@ -33,6 +33,7 @@ class Relation < ActiveRecord::Base doc.find('//osm/relation').each do |pt| return Relation.from_xml_node(pt, create) end + raise OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/relation element.") rescue LibXML::XML::Error, ArgumentError => ex raise OSM::APIBadXMLError.new("relation", xml, ex.message) end diff --git a/app/models/way.rb b/app/models/way.rb index e26418732..639f4e69a 100644 --- a/app/models/way.rb +++ b/app/models/way.rb @@ -34,6 +34,7 @@ class Way < ActiveRecord::Base doc.find('//osm/way').each do |pt| return Way.from_xml_node(pt, create) end + raise OSM::APIBadXMLError.new("node", xml, "XML doesn't contain an osm/way element.") rescue LibXML::XML::Error, ArgumentError => ex raise OSM::APIBadXMLError.new("way", xml, ex.message) end diff --git a/test/functional/node_controller_test.rb b/test/functional/node_controller_test.rb index 0595f3d08..b5f93c458 100644 --- a/test/functional/node_controller_test.rb +++ b/test/functional/node_controller_test.rb @@ -75,6 +75,12 @@ class NodeControllerTest < ActionController::TestCase lat = 3.434 lon = 3.23 + # test that the upload is rejected when xml is valid, but osm doc isn't + content("") + put :create + assert_response :bad_request, "node upload did not return bad_request status" + assert_equal "Cannot parse valid node from xml string . XML doesn't contain an osm/node element.", @response.body + # test that the upload is rejected when no lat is supplied # create a minimal xml file content("") @@ -184,6 +190,12 @@ class NodeControllerTest < ActionController::TestCase assert_response :bad_request, "should not be able to delete a node with a different ID from the XML" + # try to delete a node rubbish in the payloads + content("") + delete :delete, :id => current_nodes(:visible_node).id + assert_response :bad_request, + "should not be able to delete a node without a valid XML payload" + # valid delete now takes a payload content(nodes(:public_visible_node).to_xml) delete :delete, :id => current_nodes(:public_visible_node).id @@ -353,6 +365,12 @@ class NodeControllerTest < ActionController::TestCase assert_response :bad_request, "should not be able to update a node with a different ID from the XML" + ## try an update with a minimal valid XML doc which isn't a well-formed OSM doc. + content "" + put :update, :id => current_nodes(:visible_node).id + assert_response :bad_request, + "should not be able to update a node with non-OSM XML doc." + ## finally, produce a good request which should work content current_nodes(:public_visible_node).to_xml put :update, :id => current_nodes(:public_visible_node).id From 71a373bd1398a73c3d8ebb3fb129f05968d998ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= Date: Thu, 6 Aug 2009 19:25:09 +0000 Subject: [PATCH 02/12] Updated Hungarian translation of OpenStreetMap website --- config/locales/hu.yml | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/config/locales/hu.yml b/config/locales/hu.yml index 001cdcf6f..d65033c46 100644 --- a/config/locales/hu.yml +++ b/config/locales/hu.yml @@ -239,6 +239,7 @@ hu: showing_page: "Jelenlegi oldal:" of: "összesen:" changeset: + id: "#{{id}}" still_editing: "(szerkesztés alatt)" anonymous: "Névtelen" no_comment: "(nincs)" @@ -254,10 +255,19 @@ hu: area: "Terület" list: title: "Módosításcsomagok" - description: "Legutóbbi szerkesztések" - description_user: "{{user}} legutóbbi szerkesztései" - description_bbox: "Legutóbbi szerkesztések ezen belül: {{bbox}}" - description_user_bbox: "{{user}} legutóbbi szerkesztései ezen belül: {{bbox}}" + title_user: "{{user}} módosításcsomagjai" + title_bbox: "Módosításcsomagok ezen belül: {{bbox}}" + title_user_bbox: "{{user}} módosításcsomagjai ezen belül: {{bbox}}" + + heading: "Módosításcsomagok" + heading_user: "Módosításcsomagok" + heading_bbox: "Módosításcsomagok" + heading_user_bbox: "Módosításcsomagok" + + description: "Legutóbbi módosítások" + description_user: "{{user}} módosításcsomagjai" + description_bbox: "Módosításcsomagok ezen belül: {{bbox}}" + description_user_bbox: "{{user}} módosításcsomagjai ezen belül: {{bbox}}" diary_entry: new: title: Új naplóbejegyzés @@ -538,6 +548,7 @@ hu: unread_button: "Jelölés olvasatlanként" read_button: "Jelölés olvasottként" reply_button: "Válasz" + delete_button: "Törlés" new: title: "Üzenet küldése" send_message_to: "Új üzenet küldése neki: {{name}}" @@ -573,9 +584,13 @@ hu: reading_your_sent_messages: "Elküldött üzenetek olvasása" to: "Címzett" back_to_outbox: "Vissza az elküldött üzenetekhez" + sent_message_summary: + delete_button: "Törlés" mark: - as_read: "Üzenet jelölése olvasottként" - as_unread: "Üzenet jelölése olvasatlanként" + as_read: "Üzenet megjelölve olvasottként" + as_unread: "Üzenet megjelölve olvasatlanként" + delete: + deleted: "Üzenet törölve" site: index: js_1: "Vagy egy olyan böngészőt használsz, amely nem támogatja a javascriptet, vagy letiltottad a javascriptet." @@ -773,15 +788,19 @@ hu: account not active: "Sajnálom, a felhasználói fiókod még nincs aktiválva.
Az aktiváláshoz, kattints a fiókodat megerősítő e-mailben lévő hivatkozásra." auth failure: "Sajnálom, ilyen adatokkal nem tudsz bejelentkezni." lost_password: - title: "elvesztett jelszó" + title: "Elvesztett jelszó" heading: "Elfelejtetted jelszavad?" email address: "E-mail cím:" - new password button: "Küldj nekem egy új jelszót" + new password button: "Jelszó alaphelyzetbe állítása" notice email on way: "Sajnálom, hogy elvesztetted :-( de már úton van egy e-mail, így nemsokára alaphelyzetbe állíthatod." notice email cannot find: "Az e-mail cím nem található, sajnálom." reset_password: - title: "jelszó alaphelyzetbe állítása" - flash changed check mail: "Jelszavad megváltozott, és úton van a postaládádba :-)" + title: "Jelszó alaphelyzetbe állítása" + heading: "{{user}} jelszavának alaphelyzetbe állítása" + password: "Jelszó: " + confirm password: "Jelszó megerősítése: " + reset: "Jelszó alaphelyzetbe állítása" + flash changed: "Jelszavad megváltozott." flash token bad: "Nem található ez az utalvány, ellenőrizd az URL-t." new: title: "Felhasználói fiók létrehozása" From 9e03b38288cb72b194fb97402673d72b204433b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Thu, 6 Aug 2009 22:19:03 +0000 Subject: [PATCH 03/12] Translated user account creation message --- config/locales/is.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/is.yml b/config/locales/is.yml index 59ae29b88..c95589797 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -815,7 +815,7 @@ is: password: "Lykilorð: " confirm password: "Staðfestu lykilorðið: " signup: "Nýskrá" - flash create success message: "User was successfully created. Check your email for a confirmation note, and you\'ll be mapping in no time :-)

Please note that you won't be able to login until you've received and confirmed your email address.

If you use an antispam system which sends confirmation requests then please make sure you whitelist webmaster@openstreetmap.org as we are unable to reply to any confirmation requests." + flash create success message: "Nýr notandi var búinn til fyrir þig og staðfestingarpóstur sendur á netfangið sem þú gafst upp.

Þú muntu ekki geta innskráð þig fyrr en þú ert búin(n) að fylgja leiðbeiningunum í staðfestingarpóstinum.

Ef þú notar spamkerfi sem sendir staðfestingarbeðnir þegar það verður vart við nýja sendendur þarft þú að bæta webmaster@openstreetmap.org á hvítlista. Það netfang getur ekki svarað staðfestingarbeiðnum." no_such_user: title: "Notandi ekki til" heading: "Notandinn {{user}} er ekki til" From 6e6b44e494590088443eb6ea2eae16bf9ff69e73 Mon Sep 17 00:00:00 2001 From: Richard Fairhurst Date: Fri, 7 Aug 2009 00:25:00 +0000 Subject: [PATCH 04/12] small parallel way fix, plus handy new 'join' keypress (J) --- config/potlatch/localised/en/help.html | 9 +++++---- public/potlatch/potlatch.swf | Bin 256906 -> 255104 bytes 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/config/potlatch/localised/en/help.html b/config/potlatch/localised/en/help.html index e69f4b00f..55c4a515c 100644 --- a/config/potlatch/localised/en/help.html +++ b/config/potlatch/localised/en/help.html @@ -74,7 +74,7 @@ The best type of GPS is one that records to the tracklog frequently (every secon Uploading your track Now, you need to get your track off the GPS set. Maybe your GPS came with some software, or maybe it lets you copy the files off via USB. If not, try GPSBabel. Whatever, you want the file to be in GPX format. -Then use the 'GPS Traces' tab to upload your track to the OpenStreetMap server. But this is only the first bit - it won't appear on the map yet. You need to draw and name the roads yourself, using the track as a guide. +Then use the 'GPS Traces' tab to upload your track to OpenStreetMap. But this is only the first bit - it won't appear on the map yet. You must draw and name the roads yourself, using the track as a guide. Using your track Find your uploaded track in the 'GPS Traces' listing, and click 'edit' right next to it. Potlatch will start with this track loaded, plus any waypoints. You're ready to draw! @@ -156,13 +156,12 @@ You can 'revert' to a previously saved version of a way or point. Select it, the If you've accidentally deleted a way and saved it, press U (for 'undelete'). All the deleted ways will be shown. Choose the one you want; unlock it by clicking the padlock (by the ID); and save as usual. Think someone else has made a mistake? Send them a friendly message. Use the history option (H) to select their name, then click 'Mail'. + +Use the Inspector (in the 'Advanced' menu) for helpful information about the current way or point. FAQs How do I see my waypoints? Waypoints only show up if you click 'edit' by the track name in 'GPS Traces'. The file has to have both waypoints and tracklog in it - the server rejects anything with waypoints alone. -Why can't I type text with accents? -Linux users only: This is a bug in Adobe Flash Player for Linux. We can't do anything until Adobe fixes it - sorry. Until then, you can copy and paste from elsewhere. - More FAQs for Potlatch and OpenStreetMap. @@ -202,6 +201,8 @@ Page 7: Quick reference C Close changeset G Show GPS tracks H Show history +I Show inspector +J Join point to crossing ways K Lock/unlock current selection L Show current latitude/longitude M Maximise editing window diff --git a/public/potlatch/potlatch.swf b/public/potlatch/potlatch.swf index 74e021a6f4612beaf129716566f6db377f065cec..6557e79202d4442d193373d1589c92beadef849f 100644 GIT binary patch literal 255104 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

+TDG^TBhc@o%h}duQgt>rYy7`&z}*W6`XgcgKtG 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


@W-nm2EP} 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%0DUXq~aDyKhh@aO-U$ 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 From a6f190eabec4772cba2e94ef7372442058f49f2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= Date: Fri, 7 Aug 2009 00:59:01 +0000 Subject: [PATCH 05/12] Include the changeset comment in the of the Atom feeds if there's a changeset comment. I'm not doing any snipping of the comment so they could run to 255 characters (the max size in the database), but from testing a few feed clients it looks like they do this pretty well at the client side. --- app/views/changeset/list.atom.builder | 6 +++++- config/locales/en.yml | 3 +++ config/locales/is.yml | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/views/changeset/list.atom.builder b/app/views/changeset/list.atom.builder index db53cdb08..1fbfe8c56 100644 --- a/app/views/changeset/list.atom.builder +++ b/app/views/changeset/list.atom.builder @@ -29,7 +29,11 @@ atom_feed(:language => I18n.locale, :schema_date => 2009, :href => changeset_download_url(changeset, :only_path => false), :type => "application/osmChange+xml" - entry.title t('browse.changeset.title') + " " + h(changeset.id) + if !changeset.tags.empty? and changeset.tags.has_key? "comment" + entry.title t('browse.changeset.feed.title_comment', :id => h(changeset.id), :comment => h(changeset.tags['comment'])) + else + entry.title t('browse.changeset.feed.title', :id => h(changeset.id)) + end if changeset.user.data_public? entry.author do |author| diff --git a/config/locales/en.yml b/config/locales/en.yml index ad857b875..4e61c16bf 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -87,6 +87,9 @@ en: download: "Download {{changeset_xml_link}} or {{osmchange_xml_link}}" changesetxml: "Changeset XML" osmchangexml: "osmChange XML" + feed: + title: "Changeset {{id}}" + title_comment: "Changeset {{id}} - {{comment}}" changeset_navigation: user: name_tooltip: "View edits by {{user}}" diff --git a/config/locales/is.yml b/config/locales/is.yml index c95589797..e59180333 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -87,6 +87,9 @@ is: download: "Niðurhala breytingunni á {{changeset_xml_link}} eða á {{osmchange_xml_link}}" changesetxml: "Breytingarsetts XML sniði" osmchangexml: "osmChange XML sniði" + feed: + title: "Breytingarsett {{id}}" + title_comment: "Breytingarsett {{id}} - {{comment}}" changeset_navigation: user: name_tooltip: "Skoða breytingarsett eftir {{user}}" From 127241cdffc29691f474e78e1874446323f624b1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= <avarab@gmail.com> Date: Fri, 7 Aug 2009 01:03:42 +0000 Subject: [PATCH 06/12] Make the diary RSS feed translatable --- app/controllers/diary_entry_controller.rb | 12 ++++++------ config/locales/en.yml | 10 ++++++++++ config/locales/is.yml | 10 ++++++++++ 3 files changed, 26 insertions(+), 6 deletions(-) diff --git a/app/controllers/diary_entry_controller.rb b/app/controllers/diary_entry_controller.rb index 48cdda8a0..52e287b9a 100644 --- a/app/controllers/diary_entry_controller.rb +++ b/app/controllers/diary_entry_controller.rb @@ -103,8 +103,8 @@ class DiaryEntryController < ApplicationController if user @entries = DiaryEntry.find(:all, :conditions => ['user_id = ?', user.id], :order => 'created_at DESC', :limit => 20) - @title = "OpenStreetMap diary entries for #{user.display_name}" - @description = "Recent OpenStreetmap diary entries from #{user.display_name}" + @title = I18n.t('diary_entry.feed.user.title', :user => user.display_name, :locale => I18n.locale) + @description = I18n.t('diary_entry.feed.user.description', :user => user.display_name) @link = "http://#{SERVER_URL}/user/#{user.display_name}/diary" else render :nothing => true, :status => :not_found @@ -113,15 +113,15 @@ class DiaryEntryController < ApplicationController @entries = DiaryEntry.find(:all, :include => :user, :conditions => ["users.visible = ? AND diary_entries.language_code = ?", true, params[:language]], :order => 'created_at DESC', :limit => 20) - @title = "OpenStreetMap diary entries in #{Language.find(params[:language]).english_name}" - @description = "Recent diary entries from users of OpenStreetMap in #{Language.find(params[:language]).english_name}" + @title = I18n.t('diary_entry.feed.language.title', Language.find(params[:language]).english_name) + @description = I18n.t('diary_entry.feed.language.description', Language.find(params[:language]).english_name) @link = "http://#{SERVER_URL}/diary/#{params[:language]}" else @entries = DiaryEntry.find(:all, :include => :user, :conditions => ["users.visible = ?", true], :order => 'created_at DESC', :limit => 20) - @title = "OpenStreetMap diary entries" - @description = "Recent diary entries from users of OpenStreetMap" + @title = I18n.t('diary_entry.feed.all.title') + @description = I18n.t('diary_entry.feed.all.description') @link = "http://#{SERVER_URL}/diary" end end diff --git a/config/locales/en.yml b/config/locales/en.yml index 4e61c16bf..c89ac8025 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -320,6 +320,16 @@ en: edit_link: Edit this entry diary_comment: comment_from: "Comment from {{link_user}} at {{comment_created_at}}" + feed: + user: + title: "OpenStreetMap diary entries for {{user}}" + description: "Recent OpenStreetmap diary entries from {{user}}" + language: + title: "OpenStreetMap diary entries in {{language_name}}" + description: "Recent diary entries from users of OpenStreetMap in {{language_name}}" + all: + title: "OpenStreetMap diary entries" + description: "Recent diary entries from users of OpenStreetMap" export: start: area_to_export: "Area to Export" diff --git a/config/locales/is.yml b/config/locales/is.yml index e59180333..c38ae9ae1 100644 --- a/config/locales/is.yml +++ b/config/locales/is.yml @@ -318,6 +318,16 @@ is: edit_link: "Breyta þessari færslu" diary_comment: comment_from: "Athugasemd eftir {{link_user}} þann {{comment_created_at}}" + feed: + user: + title: "OpenStreetMap dagbókarfærslur eftir {{user}}" + description: "Nýjustu dagbókarfærslur eftir {{user}}" + language: + title: "OpenStreetMap dagbókarfærslur á {{language_name}}" + description: "Nýjustu dagbókarfærslur frá OpenStreetMap á {{language_name}}" + all: + title: "OpenStreetMap dagbókarfærslur" + description: "Nýjustu dagbókarfærslur frá OpenStreetMap" export: start: area_to_export: "Svæði til að niðurhala" From 66eafbf09e8489590ea671b5d7bcbf15abf40a74 Mon Sep 17 00:00:00 2001 From: Tom Hughes <tom@compton.nu> Date: Fri, 7 Aug 2009 07:45:15 +0000 Subject: [PATCH 07/12] Update Vietnamese translation. Closes #2142. --- config/locales/vi.yml | 101 +++++++++++++++++++++++++++++------------- 1 file changed, 69 insertions(+), 32 deletions(-) diff --git a/config/locales/vi.yml b/config/locales/vi.yml index 7c39618cb..715ad92c8 100644 --- a/config/locales/vi.yml +++ b/config/locales/vi.yml @@ -87,6 +87,17 @@ vi: download: "Tải xuống {{changeset_xml_link}} hoặc {{osmchange_xml_link}}" changesetxml: "Bộ thay đổi XML" osmchangexml: "osmChange XML" + feed: + title: "Bộ thay đổi {{id}}" + title_comment: "Bộ thay đổi {{id}} - {{comment}}" + changeset_navigation: + user: + name_tooltip: "Xem các đóng góp của {{user}}" + prev_tooltip: "Đóng góp trước của {{user}}" + next_tooltip: "Đóng góp sau của {{user}}" + all: + prev_tooltip: "Bộ thay đổi trước" + next_tooltip: "Bộ thay đổi sau" changeset_details: created_at: "Lúc Tạo:" closed_at: "Lúc Đóng:" @@ -95,9 +106,15 @@ vi: no_bounding_box: "Không lưu hộp bao của bộ thay đổi này." show_area_box: "Hiện Hộp vùng" box: "hộp" - has_nodes: "Có {{count}} nốt sau:" - has_ways: "Có {{count}} lối sau:" - has_relations: "Có {{count}} quan hệ sau:" + has_nodes: + one: "Có {{count}} nốt sau:" + other: "Có {{count}} nốt sau:" + has_ways: + one: "Có {{count}} lối sau:" + other: "Có {{count}} lối sau:" + has_relations: + one: "Có {{count}} quan hệ sau:" + other: "Có {{count}} quan hệ sau:" common_details: edited_at: "Lúc Sửa đổi:" edited_by: "Người Sửa đổi:" @@ -145,6 +162,9 @@ vi: relation_history: relation_history: "Lịch sử Quan hệ" relation_history_title: "Lịch sử Quan hệ: {{relation_name}}" + download: "{{download_xml_link}} hoặc {{view_details_link}}" + download_xml: "Tải xuống XML" + view_details: "xem chi tiết" relation_member: entry: "{{type}} {{name}}" entry_role: "{{type}} {{name}} với vai trò {{role}}" @@ -222,6 +242,7 @@ vi: showing_page: "Đang hiện trang" of: "trong" changeset: + id: "#{{id}}" still_editing: "(đang mở)" anonymous: "Vô danh" no_comment: "(không có)" @@ -235,27 +256,22 @@ vi: user: "Người dùng" comment: "Miêu tả" area: "Vùng" - list_bbox: - history: "Lịch sử" - changesets_within_the_area: "Bộ thay đổi ở vùng:" - show_area_box: "xem hộp vùng" - no_changesets: "Không có bộ thay đổi" - all_changes_everywhere: "Xem các thay đổi ở mọi nơi tại {{recent_changes_link}}" - recent_changes: "Thay đổi Gần đây" - no_area_specified: "Không định rõ vùng" - first_use_view: "Trước tiên dùng {{view_tab_link}} để chuyển và phóng to một vùng, rồi nhấn chuột vào thẻ lịch sử." - view_the_map: "xem bản đồ" - view_tab: "thẻ Xem" - alternatively_view: "Hoặc xem tất cả các {{recent_changes_link}}" list: - recent_changes: "Thay đổi Gần đây" - recently_edited_changesets: "Bộ thay đổi được sửa đổi gần đây:" - for_more_changesets: 'Để xem thêm bộ thay đổi, chọn người dùng và xem danh sách sửa đổi của họ, hoặc xem "lịch sử" của một vùng.' - list_user: - edits_by_username: "Sửa đổi của {{username_link}}" - no_visible_edits_by: "{{name}} không có sửa đổi công khai." - for_all_changes: "Xem các thay đổi bởi mọi người dùng tại {{recent_changes_link}}" - recent_changes: "Thay đổi Gần đây" + title: "Các bộ thay đổi" + description: "Những đóng góp gần đây" + title_user: "Những bộ thay đổi của {{user}}" + title_bbox: "Những bộ thay đổi ở trong {{bbox}}" + title_user_bbox: "v bộ thay đổi của {{user}} ở trong {{bbox}}" + + heading: "Các bộ thay đổi" + heading_user: "Các bộ thay đổi" + heading_bbox: "Các bộ thay đổi" + heading_user_bbox: "Các bộ thay đổi" + + description: "Những thay đổi gần đây" + description_user: "Những bộ thay đổi của {{user}}" + description_bbox: "Những bộ thay đổi ở trong {{bbox}}" + description_user_bbox: "Những bộ thay đổi của {{user}} ở trong {{bbox}}" diary_entry: new: title: "Mục Nhật ký Mới" @@ -305,6 +321,16 @@ vi: edit_link: "Sửa đổi mục này" diary_comment: comment_from: "Bình luận của {{link_user}} lúc {{comment_created_at}}" + feed: + user: + title: "Các mục nhật ký của {{user}}" + description: "Những mục gần đây trong nhật ký OpenStreetMap của {{user}}" + language: + title: "Các mục nhật ký OpenStreetMap bằng {{language_name}}" + description: "Những mục nhật ký gần đây của người dùng OpenStreetMap bằng {{language_name}}" + all: + title: "Các mục nhật ký OpenStreetMap" + description: "Những mục nhật ký gần đây của người dùng OpenStreetMap" export: start: area_to_export: "Vùng để Xuất" @@ -536,6 +562,7 @@ vi: unread_button: "Đánh dấu là chưa đọc" read_button: "Đánh dấu là đã đọc" reply_button: "Trả lời" + delete_button: "Xóa" new: title: "Gửi thư" send_message_to: "Gửi thư mới cho {{name}}" @@ -571,9 +598,13 @@ vi: reading_your_sent_messages: "Đọc thư đã gửi" to: "Tới" back_to_outbox: "Trở về hộp thư đã gửi" + sent_message_summary: + delete_button: "Xóa" mark: as_read: "Thư đã đọc" as_unread: "Thư chưa đọc" + delete: + deleted: "Đã xóa thư" site: index: js_1: "Hoặc trình duyệt của bạn không hỗ trợ JavaScript, hoặc bạn đã tắt JavaScript." @@ -610,11 +641,11 @@ vi: table: heading: "Chú giải tại mức {{zoom_level}}" entry: - motorway: "Quốc lộ" + motorway: "Đường cao tốc" trunk: "Xa lộ" - primary: "Tỉnh lộ" - secondary: "Đường chính" - unclassified: "Đường lớn" + primary: "Đường chính" + secondary: "Đường lớn" + unclassified: "Đường không phân loại" unsurfaced: "Đường không lát" track: "Đường mòn" byway: "Đường mòn đa mốt" @@ -689,6 +720,7 @@ vi: owner: "Tác giả:" description: "Miêu tả:" tags: "Thẻ:" + tags_help: "dấu phẩy phân cách" save_button: "Lưu các Thay đổi" no_such_user: title: "Người dùng không tồn tại" @@ -698,6 +730,7 @@ vi: upload_gpx: "Tải lên Tập tin GPX" description: "Miêu tả" tags: "Thẻ" + tags_help: "dấu phẩy phân cách" public: "Công khai?" public_help: "có nghĩa là gì?" public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces?uselang=vi" @@ -769,15 +802,19 @@ vi: account not active: "Rất tiếc, tài khoản của bạn chưa được kích hoạt.<br>Xin hãy nhấn chuột vào liên kết trong thư điện tử xác nhận tài khoản để kích hoạt tài khoản." auth failure: "Rất tiếc, không thể đăng nhập với những chi tiết đó." lost_password: - title: "quên mất mật khẩu" + title: "Quên mất mật khẩu" heading: "Quên mất Mật khẩu?" email address: "Địa chỉ Thư điện tử:" - new password button: "Gửi mật khẩu mới cho tôi" + new password button: "Đặt lại mật khẩu" notice email on way: "Đáng tiếc là bạn quên nó. :-( May là thư điện tử sắp tới để bạn đặt nó lại." notice email cannot find: "Rất tiếc, không tìm thấy địa chỉ thư điện tử." reset_password: - title: "đặt lại mật khẩu" - flash changed check mail: "Mật khẩu của bạn đã được đổi và mật khẩu mới sắp tới hộp thư của bạn. :-)" + title: "Đặt lại mật khẩu" + heading: "Đặt lại Mật khẩu của {{user}}" + password: "Mật khẩu: " + confirm password: "Xác nhận Mật khẩu: " + reset: "Đặt lại Mật khẩu" + flash changed: "Mật khẩu của bạn đã được thay đổi." flash token bad: "Không tìm thấy dấu hiệu đó. Có lẽ kiểm tra URL?" new: title: "Mở tài khoản" @@ -875,5 +912,5 @@ vi: failed: "Rất tiếc, việc thêm {{name}} là người bạn bị thất bại." already_a_friend: "{{name}} đã là người bạn." remove_friend: - success: "{{name}} không còn người bạn." + success: "{{name}} không còn là người bạn." not_a_friend: "{{name}} đã không phải người bạn." From fc9768f34c803f9a9746d1705af097655d55f3e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=86var=20Arnfj=C3=B6r=C3=B0=20Bjarmason?= <avarab@gmail.com> Date: Fri, 7 Aug 2009 12:17:02 +0000 Subject: [PATCH 08/12] Add type="html" to <title> so a <title> with "<" will be displayed as "<" and not literally as "<". See section 3.1.1 in RFC 4287 --- app/views/changeset/list.atom.builder | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/changeset/list.atom.builder b/app/views/changeset/list.atom.builder index 1fbfe8c56..6dcdd4f1d 100644 --- a/app/views/changeset/list.atom.builder +++ b/app/views/changeset/list.atom.builder @@ -30,7 +30,7 @@ atom_feed(:language => I18n.locale, :schema_date => 2009, :type => "application/osmChange+xml" if !changeset.tags.empty? and changeset.tags.has_key? "comment" - entry.title t('browse.changeset.feed.title_comment', :id => h(changeset.id), :comment => h(changeset.tags['comment'])) + entry.title t('browse.changeset.feed.title_comment', :id => h(changeset.id), :comment => h(changeset.tags['comment'])), :type => "html" else entry.title t('browse.changeset.feed.title', :id => h(changeset.id)) end From 7ac66a371e0338e858c86fac54d5cf41b0e5964f Mon Sep 17 00:00:00 2001 From: Matt Amos <zerebubuth@gmail.com> Date: Fri, 7 Aug 2009 14:14:27 +0000 Subject: [PATCH 09/12] Fix test to reflect change to changeset templates. --- test/functional/changeset_controller_test.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/functional/changeset_controller_test.rb b/test/functional/changeset_controller_test.rb index 8f0b21477..46f8a1a6a 100644 --- a/test/functional/changeset_controller_test.rb +++ b/test/functional/changeset_controller_test.rb @@ -1507,7 +1507,7 @@ EOF user = users(:public_user) get :list, {:format => "html", :display_name => user.display_name} assert_response :success - assert_template "list" + assert_template "changeset/_user" ## FIXME need to add more checks to see which if edits are actually shown if your data is public end From c5349c360f2b97bec763977735d650efe04b0b01 Mon Sep 17 00:00:00 2001 From: Tom Hughes <tom@compton.nu> Date: Sat, 8 Aug 2009 22:45:56 +0000 Subject: [PATCH 10/12] Escape usernames. Closes #2149. --- app/views/user/_friend_map.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/user/_friend_map.html.erb b/app/views/user/_friend_map.html.erb index 72f02bd61..75303f10d 100644 --- a/app/views/user/_friend_map.html.erb +++ b/app/views/user/_friend_map.html.erb @@ -2,7 +2,7 @@ <% if !@user.home_lat.nil? and !@user.home_lon.nil? %> <% if !@user.nearby.empty? %> <% @user.nearby.each do |nearby| %> - <% nearest_str += "nearest.push( { 'display_name' : '#{nearby.display_name}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %> + <% nearest_str += "nearest.push( { 'display_name' : '#{escape_javascript(nearby.display_name)}', 'home_lat' : #{nearby.home_lat}, 'home_lon' : #{nearby.home_lon} } );\n" %> <% end %> <% end %> <% end %> From 7a7c56743656fdcc1a2fdbcb4362b4dc550b8a4d Mon Sep 17 00:00:00 2001 From: Tom Hughes <tom@compton.nu> Date: Thu, 13 Aug 2009 14:02:49 +0000 Subject: [PATCH 11/12] Remove layers argument from the shortlink if we change to mapnik from a non-mapnik layer. --- public/javascripts/site.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/public/javascripts/site.js b/public/javascripts/site.js index 3e28e0c0a..b6566fa81 100644 --- a/public/javascripts/site.js +++ b/public/javascripts/site.js @@ -65,7 +65,7 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj node.style.fontStyle = 'italic'; } } - + node = document.getElementById("historyanchor"); if (node) { if (zoom >= 11) { @@ -75,14 +75,14 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj typeof minlat == "number" && typeof maxlon == "number" && typeof maxlat == "number") { - + minlon = Math.round(minlon * decimals) / decimals; minlat = Math.round(minlat * decimals) / decimals; maxlon = Math.round(maxlon * decimals) / decimals; maxlat = Math.round(maxlat * decimals) / decimals; args.bbox = minlon + "," + minlat + "," + maxlon + "," + maxlat; } - + node.href = setArgs("/history", args); node.style.fontStyle = 'normal'; } else { @@ -108,6 +108,9 @@ function updatelinks(lon,lat,zoom,layers,minlon,minlat,maxlon,maxlat,objtype,obj if (layers && (layers != "B000FTF") && (layers != "B000FTFT")) { args["layers"] = layers; } + else { + delete args["layers"]; + } // Here we're assuming that all parameters but ?layers= and // ?{node,way,relation}= can be safely omitted from the shortlink @@ -128,7 +131,7 @@ function shortlinkPrefix() { if (window.location.hostname.match(/^www\.openstreetmap\.org/i)) { return "http://osm.org"; } else { - return ""; + return ""; } } @@ -201,12 +204,12 @@ function i18n(string, keys) { for (var key in keys) { var re_key = '\\[\\[' + key + '\\]\\]'; var re = new RegExp(re_key, "g"); - + string = string.replace(re, keys[key]); } - + return string; -} +} function makeShortCode(lat, lon, zoom) { char_array = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_@"; From 565171486f6d90321e0291d5ccc3cf6a1c12e730 Mon Sep 17 00:00:00 2001 From: Tom Hughes <tom@compton.nu> Date: Thu, 13 Aug 2009 17:06:11 +0000 Subject: [PATCH 12/12] Add extra visibility options for GPS traces, and enhance the API call that returns trace data to return more information if the owner of the trace has allowed it. Based on a patch from Matt Amos. --- app/controllers/api_controller.rb | 66 ++++++++++++++--- app/controllers/trace_controller.rb | 73 ++++++++----------- app/models/trace.rb | 23 ++++-- app/models/tracepoint.rb | 3 +- app/models/user.rb | 4 - app/views/trace/_trace_form.html.erb | 2 +- app/views/trace/edit.html.erb | 4 + app/views/trace/view.html.erb | 7 +- config/locales/en.yml | 16 +++- config/routes.rb | 1 - .../039_add_more_controls_to_gpx_files.rb | 21 ++++++ test/fixtures/gps_points.yml | 24 ++++++ test/fixtures/gpx_files.yml | 30 +++++++- test/functional/api_controller_test.rb | 55 +++++++++++++- test/unit/trace_test.rb | 2 +- test/unit/tracepoint_test.rb | 2 +- 16 files changed, 252 insertions(+), 81 deletions(-) create mode 100644 db/migrate/039_add_more_controls_to_gpx_files.rb diff --git a/app/controllers/api_controller.rb b/app/controllers/api_controller.rb index 564f71899..3e9e627db 100644 --- a/app/controllers/api_controller.rb +++ b/app/controllers/api_controller.rb @@ -11,10 +11,7 @@ class ApiController < ApplicationController # within the specified bounding box, and in the specified page. def trackpoints #retrieve the page number - page = params['page'].to_i - unless page - page = 0; - end + page = params['page'].to_s.to_i unless page >= 0 report_error("Page number must be greater than or equal to 0") @@ -42,7 +39,7 @@ class ApiController < ApplicationController end # get all the points - points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => APP_CONFIG['tracepoints_per_page'], :order => "timestamp DESC" ) + points = Tracepoint.find_by_area(min_lat, min_lon, max_lat, max_lon, :offset => offset, :limit => APP_CONFIG['tracepoints_per_page'], :order => "gpx_id DESC, trackid ASC, timestamp ASC" ) doc = XML::Document.new doc.encoding = XML::Encoding::UTF_8 @@ -53,14 +50,61 @@ class ApiController < ApplicationController doc.root = root - track = XML::Node.new 'trk' - doc.root << track - - trkseg = XML::Node.new 'trkseg' - track << trkseg + # initialise these variables outside of the loop so that they + # stay in scope and don't get free'd up by the GC during the + # loop. + gpx_id = -1 + trackid = -1 + track = nil + trkseg = nil + anon_track = nil + anon_trkseg = nil + gpx_file = nil + timestamps = false points.each do |point| - trkseg << point.to_xml_node() + if gpx_id != point.gpx_id + gpx_id = point.gpx_id + trackid = -1 + gpx_file = Trace.find(gpx_id) + + if gpx_file.trackable? + track = XML::Node.new 'trk' + doc.root << track + timestamps = true + + if gpx_file.identifiable? + track << (XML::Node.new("name") << gpx_file.name) + track << (XML::Node.new("desc") << gpx_file.description) + track << (XML::Node.new("url") << url_for(:controller => 'trace', :action => 'view', :id => gpx_file.id)) + end + else + # use the anonymous track segment if the user hasn't allowed + # their GPX points to be tracked. + timestamps = false + if anon_track.nil? + anon_track = XML::Node.new 'trk' + doc.root << anon_track + end + track = anon_track + end + end + + if trackid != point.trackid + if gpx_file.trackable? + trkseg = XML::Node.new 'trkseg' + track << trkseg + trackid = point.trackid + else + if anon_trkseg.nil? + anon_trkseg = XML::Node.new 'trkseg' + anon_track << anon_trkseg + end + trkseg = anon_trkseg + end + end + + trkseg << point.to_xml_node(timestamps) end response.headers["Content-Disposition"] = "attachment; filename=\"map.osm\"" diff --git a/app/controllers/trace_controller.rb b/app/controllers/trace_controller.rb index d0e3a853c..b8d189316 100644 --- a/app/controllers/trace_controller.rb +++ b/app/controllers/trace_controller.rb @@ -3,10 +3,10 @@ class TraceController < ApplicationController before_filter :authorize_web before_filter :set_locale - before_filter :require_user, :only => [:mine, :create, :edit, :delete, :make_public] + before_filter :require_user, :only => [:mine, :create, :edit, :delete] before_filter :authorize, :only => [:api_details, :api_data, :api_create] before_filter :check_database_readable, :except => [:api_details, :api_data, :api_create] - before_filter :check_database_writable, :only => [:create, :edit, :delete, :make_public] + before_filter :check_database_writable, :only => [:create, :edit, :delete] before_filter :check_api_readable, :only => [:api_details, :api_data] before_filter :check_api_writable, :only => [:api_create] @@ -43,15 +43,15 @@ class TraceController < ApplicationController # 4 - user's traces, not logged in as that user = all user's public traces if target_user.nil? # all traces if @user - conditions = ["(gpx_files.public = ? OR gpx_files.user_id = ?)", true, @user.id] #1 + conditions = ["(gpx_files.visibility <> 'private' OR gpx_files.user_id = ?)", @user.id] #1 else - conditions = ["gpx_files.public = ?", true] #2 + conditions = ["gpx_files.visibility <> 'private'"] #2 end else if @user and @user == target_user conditions = ["gpx_files.user_id = ?", @user.id] #3 (check vs user id, so no join + can't pick up non-public traces by changing name) else - conditions = ["gpx_files.public = ? AND gpx_files.user_id = ?", true, target_user.id] #4 + conditions = ["gpx_files.public <> 'private' AND gpx_files.user_id = ?", target_user.id] #4 end end @@ -96,10 +96,13 @@ class TraceController < ApplicationController def mine # Load the preference of whether the user set the trace public the last time @trace = Trace.new - if @user.preferences.find(:first, :conditions => {:k => "gps.trace.public", :v => "default"}).nil? - @trace.public = false + visibility = @user.preferences.find(:first, :conditions => {:k => "gps.trace.visibility"}) + if visibility + @trace.visibility = visibility.v + elsif @user.preferences.find(:first, :conditions => {:k => "gps.trace.public", :v => "default"}).nil? + @trace.visibility = "private" else - @trace.public = true + @trace.visibility = "public" end list(@user, "mine") end @@ -124,7 +127,7 @@ class TraceController < ApplicationController logger.info(params[:trace][:gpx_file].class.name) if params[:trace][:gpx_file].respond_to?(:read) do_create(params[:trace][:gpx_file], params[:trace][:tagstring], - params[:trace][:description], params[:trace][:public]) + params[:trace][:description], params[:trace][:visibility]) if @trace.id logger.info("id is #{@trace.id}") @@ -136,7 +139,7 @@ class TraceController < ApplicationController @trace = Trace.new({:name => "Dummy", :tagstring => params[:trace][:tagstring], :description => params[:trace][:description], - :public => params[:trace][:public], + :visibility => params[:trace][:visibility], :inserted => false, :user => @user, :timestamp => Time.now.getutc}) @trace.valid? @@ -170,6 +173,7 @@ class TraceController < ApplicationController if params[:trace] @trace.description = params[:trace][:description] @trace.tagstring = params[:trace][:tagstring] + @trace.visibility = params[:trace][:visibility] if @trace.save redirect_to :action => 'view' end @@ -200,27 +204,8 @@ class TraceController < ApplicationController render :nothing => true, :status => :not_found end - def make_public - trace = Trace.find(params[:id]) - - if @user and trace.user == @user - if request.post? and !trace.public? - trace.public = true - trace.save - flash[:notice] = t 'trace.make_public.made_public' - redirect_to :controller => 'trace', :action => 'view', :id => params[:id] - else - render :nothing => true, :status => :bad_request - end - else - render :nothing => true, :status => :forbidden - end - rescue ActiveRecord::RecordNotFound - render :nothing => true, :status => :not_found - end - def georss - conditions = ["gpx_files.public = ?", true] + conditions = ["gpx_files.visibility <> 'private'"] if params[:display_name] conditions[0] += " AND users.display_name = ?" @@ -249,7 +234,7 @@ class TraceController < ApplicationController if trace.inserted? if trace.public? or (@user and @user == trace.user) - expires_in 7.days, :private => !trace.public, :public => trace.public + 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 render :nothing => true, :status => :forbidden @@ -266,7 +251,7 @@ class TraceController < ApplicationController if trace.inserted? if trace.public? or (@user and @user == trace.user) - expires_in 7.days, :private => !trace.public, :public => trace.public + 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 render :nothing => true, :status => :forbidden @@ -306,10 +291,14 @@ class TraceController < ApplicationController if request.post? tags = params[:tags] || "" description = params[:description] || "" - pub = params[:public] || false + visibility = params[:visibility] || false + + if params[:public] && !visibility + visibility = "public" + end if params[:file].respond_to?(:read) - do_create(params[:file], tags, description, pub) + do_create(params[:file], tags, description, visibility) if @trace.id render :text => @trace.id.to_s, :content_type => "text/plain" @@ -328,7 +317,7 @@ class TraceController < ApplicationController private - def do_create(file, tags, description, public) + def do_create(file, tags, description, visibility) # Sanitise the user's filename name = file.original_filename.gsub(/[^a-zA-Z0-9.]/, '_') @@ -344,7 +333,7 @@ private :name => name, :tagstring => tags, :description => description, - :public => public, + :visibility => visibility, :inserted => true, :user => @user, :timestamp => Time.now.getutc @@ -363,14 +352,12 @@ private FileUtils.rm_f(filename) end - # Finally save whether the user marked the trace as being public - if @trace.public? - if @user.trace_public_default.nil? - @user.preferences.create(:k => "gps.trace.public", :v => "default") - end + # Finally save the user's preferred previacy level + if pref = @user.preferences.find(:first, :conditions => {:k => "gps.trace.visibility"}) + pref.v = visibility + pref.save else - pref = @user.trace_public_default - pref.destroy unless pref.nil? + @user.preferences.create(:k => "gps.trace.visibility", :v => visibility) end end diff --git a/app/models/trace.rb b/app/models/trace.rb index 7f2607b0f..cbfd68996 100644 --- a/app/models/trace.rb +++ b/app/models/trace.rb @@ -6,8 +6,9 @@ class Trace < ActiveRecord::Base validates_length_of :name, :maximum => 255 validates_length_of :description, :maximum => 255 # validates_numericality_of :latitude, :longitude - validates_inclusion_of :public, :inserted, :in => [ true, false] - + validates_inclusion_of :inserted, :in => [ true, false ] + validates_inclusion_of :visibility, :in => ["private", "public", "trackable", "identifiable"] + belongs_to :user has_many :tags, :class_name => 'Tracetag', :foreign_key => 'gpx_id', :dependent => :delete_all has_many :points, :class_name => 'Tracepoint', :foreign_key => 'gpx_id', :dependent => :delete_all @@ -24,7 +25,7 @@ class Trace < ActiveRecord::Base end def tagstring=(s) - if s.include?',' + if s.include? ',' self.tags = s.split(/\s*,\s*/).collect {|tag| tt = Tracetag.new tt.tag = tag @@ -39,7 +40,19 @@ class Trace < ActiveRecord::Base } end end - + + def public? + visibility == "public" || visibility == "identifiable" + end + + def trackable? + visibility == "trackable" || visibility == "identifiable" + end + + def identifiable? + visibility == "identifiable" + end + def large_picture= (data) f = File.new(large_picture_name, "wb") f.syswrite(data) @@ -139,7 +152,7 @@ class Trace < ActiveRecord::Base el1['lat'] = self.latitude.to_s el1['lon'] = self.longitude.to_s el1['user'] = self.user.display_name - el1['public'] = self.public.to_s + el1['visibility'] = self.visibility el1['pending'] = (!self.inserted).to_s el1['timestamp'] = self.timestamp.xmlschema return el1 diff --git a/app/models/tracepoint.rb b/app/models/tracepoint.rb index bf3cdd7c0..d4ba39de3 100644 --- a/app/models/tracepoint.rb +++ b/app/models/tracepoint.rb @@ -11,10 +11,11 @@ class Tracepoint < ActiveRecord::Base belongs_to :trace, :foreign_key => 'gpx_id' - def to_xml_node + def to_xml_node(print_timestamp = false) el1 = XML::Node.new 'trkpt' el1['lat'] = self.lat.to_s el1['lon'] = self.lon.to_s + el1 << (XML::Node.new("time") << self.timestamp.xmlschema) if print_timestamp return el1 end end diff --git a/app/models/user.rb b/app/models/user.rb index 9a1106972..9d135a3a1 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -122,10 +122,6 @@ class User < ActiveRecord::Base return false end - def trace_public_default - return self.preferences.find(:first, :conditions => {:k => "gps.trace.public", :v => "default"}) - end - def delete self.active = false self.display_name = "user_#{self.id}" diff --git a/app/views/trace/_trace_form.html.erb b/app/views/trace/_trace_form.html.erb index b178a7532..194b8b2bc 100644 --- a/app/views/trace/_trace_form.html.erb +++ b/app/views/trace/_trace_form.html.erb @@ -3,7 +3,7 @@ <tr><td align="right"><%= t'trace.trace_form.upload_gpx' %></td><td><%= f.file_field :gpx_file, :size => 50, :maxlength => 255 %></td></tr> <tr><td align="right"><%= t'trace.trace_form.description' %></td><td><%= f.text_field :description, :size => 50, :maxlength => 255 %></td></tr> <tr><td align="right"><%= t'trace.trace_form.tags' %></td><td><%= f.text_field :tagstring, :size => 50, :maxlength => 255 %> (<%= t'trace.trace_form.tags_help' %>)</td></tr> - <tr><td align="right"><%= t'trace.trace_form.public' %></td><td><%= f.check_box :public %> <span class="minorNote">(<a href="<%= t'trace.trace_form.public_help_url' %>"><%= t'trace.trace_form.public_help' %></a>)</span></td></tr> + <tr><td align="right"><%= t'trace.trace_form.visibility' %></td><td><%= f.select :visibility, [[t('trace.visibility.private'),"private"],[t('trace.visibility.public'),"public"],[t('trace.visibility.trackable'),"trackable"],[t('trace.visibility.identifiable'),"identifiable"]] %> <span class="minorNote">(<a href="<%= t'trace.trace_form.visibility_help_url' %>"><%= t'trace.trace_form.visibility_help' %></a>)</span></td></tr> <tr><td></td><td><%= submit_tag t('trace.trace_form.upload_button') %> | <a href="<%= t'trace.trace_form.help_url' %>"><%= t'trace.trace_form.help' %></a></td></tr> </table> <% end %> diff --git a/app/views/trace/edit.html.erb b/app/views/trace/edit.html.erb index e14e152dd..523607ae6 100644 --- a/app/views/trace/edit.html.erb +++ b/app/views/trace/edit.html.erb @@ -34,6 +34,10 @@ <td><%= t'trace.edit.tags' %></td> <td><%= f.text_field :tagstring, :size => 50 %> (<%= t'trace.edit.tags_help' %>)</td> </tr> + <tr> + <td><%= t'trace.edit.visibility' %></td> + <td><%= f.select :visibility, [[t('trace.visibility.private'),"private"],[t('trace.visibility.public'),"public"],[t('trace.visibility.trackable'),"trackable"],[t('trace.visibility.identifiable'),"identifiable"]] %> (<a href="<%= t'trace.edit.visibility_help_url' %>"><%= t'trace.edit.visibility_help' %></a>)</td> + </tr> </table> <br /><br /> diff --git a/app/views/trace/view.html.erb b/app/views/trace/view.html.erb index 4ab46bd3e..47a9f8ad2 100644 --- a/app/views/trace/view.html.erb +++ b/app/views/trace/view.html.erb @@ -42,15 +42,16 @@ <% end %> </td> </tr> + <tr> + <td><%= t'trace.view.visibility' %></td> + <td><%= t"trace.visibility.#{@trace.visibility}" %></td> + </tr> </table> <br /><br /> <table> <tr> - <% unless @trace.public? %> - <td><%= button_to t('trace.view.make_public'), :controller => 'trace', :action => 'make_public', :id => @trace.id %></td> - <% end %> <% if @trace.user == @user %> <td><%= button_to t('trace.view.edit_track'), :controller => 'trace', :action => 'edit', :id => @trace.id %></td> <% end %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c89ac8025..29a75b810 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -703,6 +703,11 @@ en: destination: "Destination access" construction: "Roads under construction" trace: + visibility: + private: "Private (only shared as anonymous, unordered points)" + public: "Public (shown in trace list and as anonymous, unordered points)" + trackable: "Trackable (only shared as anonymous, ordered points with timestamps)" + identifiable: "Identifiable (shown in trace list and as identifiable, ordered points with timestamps)" create: upload_trace: "Upload GPS Trace" trace_uploaded: "Your GPX file has been uploaded and is awaiting insertion in to the database. This will usually happen within half an hour, and an email will be sent to you on completion." @@ -721,6 +726,9 @@ en: tags: "Tags:" tags_help: "comma delimited" save_button: "Save Changes" + visibility: "Visibility:" + visibility_help: "what does this mean?" + visibility_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces" no_such_user: title: "No such user" heading: "The user {{user}} does not exist" @@ -730,9 +738,9 @@ en: description: "Description" tags: "Tags" tags_help: "comma delimited" - public: "Public?" - public_help: "what does this mean?" - public_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces" + visibility: "Visibility" + visibility_help: "what does this mean?" + visibility_help_url: "http://wiki.openstreetmap.org/wiki/Visibility_of_GPS_traces" upload_button: "Upload" help: "Help" help_url: "http://wiki.openstreetmap.org/wiki/Upload" @@ -758,10 +766,10 @@ en: description: "Description:" tags: "Tags:" none: "None" - make_public: "Make this track public permanently" edit_track: "Edit this track" delete_track: "Delete this track" trace_not_found: "Trace not found!" + visibility: "Visibility:" trace_paging_nav: showing: "Showing page" of: "of" diff --git a/config/routes.rb b/config/routes.rb index 5ac2d744a..d2407f705 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -135,7 +135,6 @@ ActionController::Routing::Routes.draw do |map| map.connect '/trace/:id/data.:format', :controller => 'trace', :action => 'data' map.connect '/trace/:id/edit', :controller => 'trace', :action => 'edit' map.connect '/trace/:id/delete', :controller => 'trace', :action => 'delete' - map.connect '/trace/:id/make_public', :controller => 'trace', :action => 'make_public' map.connect '/user/:display_name/traces', :controller => 'trace', :action => 'list' map.connect '/user/:display_name/traces/page/:page', :controller => 'trace', :action => 'list' map.connect '/user/:display_name/traces/rss', :controller => 'trace', :action => 'georss' diff --git a/db/migrate/039_add_more_controls_to_gpx_files.rb b/db/migrate/039_add_more_controls_to_gpx_files.rb new file mode 100644 index 000000000..133838ac2 --- /dev/null +++ b/db/migrate/039_add_more_controls_to_gpx_files.rb @@ -0,0 +1,21 @@ +require 'lib/migrate' + +class AddMoreControlsToGpxFiles < ActiveRecord::Migration + def self.up + create_enumeration :gpx_visibility_enum, ["private", "public", "trackable", "identifiable"] + add_column :gpx_files, :visibility, :gpx_visibility_enum, :default => "public", :null => false + Trace.update_all("visibility = 'private'", { :public => false }) + add_index :gpx_files, [:visible, :visibility], :name => "gpx_files_visible_visibility_idx" + remove_index :gpx_files, :name => "gpx_files_visible_public_idx" + remove_column :gpx_files, :public + end + + def self.down + add_column :gpx_files, :public, :boolean, :default => true, :null => false + Trace.update_all("public = false", { :visibility => "private" }) + add_index :gpx_files, [:visible, :public], :name => "gpx_files_visible_public_idx" + remove_index :gpx_files, :name => "gpx_files_visible_visibility_idx" + remove_column :gpx_files, :visibility + drop_enumeration :gpx_visibility_enum + end +end diff --git a/test/fixtures/gps_points.yml b/test/fixtures/gps_points.yml index 31bd90120..b3171ac45 100644 --- a/test/fixtures/gps_points.yml +++ b/test/fixtures/gps_points.yml @@ -9,3 +9,27 @@ first_trace_1: timestamp: "2008-10-01 10:10:10" tile: <%= QuadTile.tile_for_point(1, 1) %> +trackable_trace_1: + trackid: 1 + latitude: <%= (51.510 * SCALE).to_i %> + longitude: <%= (-0.140 * SCALE).to_i %> + gpx_id: 3 + timestamp: "2009-07-30 17:46:00" + tile: <%= QuadTile.tile_for_point(51.510, -0.140) %> + +trackable_trace_2: + trackid: 2 + latitude: <%= (51.511 * SCALE).to_i %> + longitude: <%= (-0.141 * SCALE).to_i %> + gpx_id: 3 + timestamp: "2009-07-30 17:47:00" + tile: <%= QuadTile.tile_for_point(51.511, -0.141) %> + +identifiable_trace_1: + trackid: 1 + latitude: <%= (51.512 * SCALE).to_i %> + longitude: <%= (0.142 * SCALE).to_i %> + gpx_id: 4 + timestamp: "2009-07-30 17:46:00" + tile: <%= QuadTile.tile_for_point(51.512, 0.142) %> + diff --git a/test/fixtures/gpx_files.yml b/test/fixtures/gpx_files.yml index ef0c004b4..08616bd99 100644 --- a/test/fixtures/gpx_files.yml +++ b/test/fixtures/gpx_files.yml @@ -7,7 +7,7 @@ public_trace_file: latitude: 1 longitude: 1 timestamp: "2008-10-29 10:10:10" - public: true + visibility: "public" description: This is a trace inserted: true @@ -20,6 +20,32 @@ anon_trace_file: latitude: 51.3 longitude: -0.56 timestamp: "2009-05-06 13:34:34" - public: false + visibility: "private" description: This is an anonymous trace inserted: true + +trackable_trace_file: + id: 3 + user_id: 2 + visible: false + name: Trackable Trace.gpx + size: 123 + latitude: 51.51 + longitude: -0.14 + timestamp: "2009-07-30 17:48:34" + visibility: "trackable" + description: This trace shows trksegs and timestamps, but no user details. + inserted: true + +identifiable_trace_file: + id: 4 + user_id: 2 + visible: false + name: Identifiable Trace.gpx + size: 123 + latitude: 51.512 + longitude: 0.142 + timestamp: "2009-07-30 17:48:34" + visibility: "identifiable" + description: This trace shows trksegs, timestamps and user details. + inserted: true diff --git a/test/functional/api_controller_test.rb b/test/functional/api_controller_test.rb index 866c7bd27..ce4020ca7 100644 --- a/test/functional/api_controller_test.rb +++ b/test/functional/api_controller_test.rb @@ -60,10 +60,10 @@ class ApiControllerTest < ActionController::TestCase def test_tracepoints point = gpx_files(:public_trace_file) - minlon = point.longitude-0.1 - minlat = point.latitude-0.1 - maxlon = point.longitude+0.1 - maxlat = point.latitude+0.1 + minlon = point.longitude-0.001 + minlat = point.latitude-0.001 + maxlon = point.longitude+0.001 + maxlat = point.latitude+0.001 bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" get :trackpoints, :bbox => bbox #print @response.body @@ -75,6 +75,53 @@ class ApiControllerTest < ActionController::TestCase end end + def test_tracepoints_trackable + point = gpx_files(:trackable_trace_file) + minlon = point.longitude-0.002 + minlat = point.latitude-0.002 + maxlon = point.longitude+0.002 + maxlat = point.latitude+0.002 + bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" + get :trackpoints, :bbox => bbox + #print @response.body + assert_response :success + assert_select "gpx[version=1.0][creator=OpenStreetMap.org][xmlns=http://www.topografix.com/GPX/1/0/]:root", :count => 1 do + assert_select "trk", :count => 1 do + assert_select "trk > trkseg", :count => 2 do |trksegs| + trksegs.each do |trkseg| + assert_select trkseg, "trkpt", :count => 1 do |trkpt| + assert_select trkpt[0], "time", :count => 1 + end + end + end + end + end + end + + def test_tracepoints_identifiable + point = gpx_files(:identifiable_trace_file) + minlon = point.longitude-0.002 + minlat = point.latitude-0.002 + maxlon = point.longitude+0.002 + maxlat = point.latitude+0.002 + bbox = "#{minlon},#{minlat},#{maxlon},#{maxlat}" + get :trackpoints, :bbox => bbox + #print @response.body + assert_response :success + assert_select "gpx[version=1.0][creator=OpenStreetMap.org][xmlns=http://www.topografix.com/GPX/1/0/]:root", :count => 1 do + assert_select "trk", :count => 1 do + assert_select "trk>name", :count => 1 + assert_select "trk>desc", :count => 1 + assert_select "trk>url", :count => 1 + assert_select "trkseg", :count => 1 do + assert_select "trkpt", :count => 1 do + assert_select "time", :count => 1 + end + end + end + end + end + def test_map_without_bbox ["trackpoints", "map"].each do |tq| get tq diff --git a/test/unit/trace_test.rb b/test/unit/trace_test.rb index a39aa4fa2..0d72e553e 100644 --- a/test/unit/trace_test.rb +++ b/test/unit/trace_test.rb @@ -4,7 +4,7 @@ class TraceTest < ActiveSupport::TestCase api_fixtures def test_trace_count - assert_equal 2, Trace.count + assert_equal 4, Trace.count end end diff --git a/test/unit/tracepoint_test.rb b/test/unit/tracepoint_test.rb index 9f85b9c8c..c49f9fbdc 100644 --- a/test/unit/tracepoint_test.rb +++ b/test/unit/tracepoint_test.rb @@ -4,7 +4,7 @@ class TracepointTest < ActiveSupport::TestCase api_fixtures def test_tracepoint_count - assert_equal 1, Tracepoint.count + assert_equal 4, Tracepoint.count end end