feat(roadtrip): turn a place into a stop on the way from its own number

An ordinary place could not become a fuel stop without going through the full
form, and the number in the rail is exactly what changes when it does: a service
stop has none. So the number is the control. Click the 3, pick the pump, and the
3 becomes an orange disc while everything below renumbers itself. The disc of a
service stop opens the same picker the other way, with a row to make it an
ordinary destination again.

Six coloured discs rather than six lines of text: at that size the colour and
the shape are the label, and anyone who has seen one petrol stop on the map
knows the orange pump before reading anything.

Centred on the column rather than on the number, which sits hard against the
left edge and would hang the panel half over the map. The click stops at the
disc, so picking a kind never also selects the place underneath.

Also in this change, from the same round: the corridor search offers hotels, a
hit somebody could sleep at opens the popup in an overnight mode with a check-out
day instead of a dwell, and booking one writes the place, its day and the row in
day_accommodations together. A hotel keeps its number, because sleeping there
ends the day rather than interrupting the drive, which is why the category list
and the stop-kind list are now two lists instead of one.
This commit is contained in:
Maurice
2026-09-04 23:14:35 +02:00
committed by Maurice
parent 49f97af3fb
commit fc74991a15
28 changed files with 392 additions and 19 deletions
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'اليوم {number}',
'roadtrip.stay.nightAdded': 'أُضيف كمبيت',
'roadtrip.stay.nightAction': 'إضافة كمبيت',
'roadtrip.stop.makeService': 'اجعله توقفاً في الطريق',
'roadtrip.stop.changeKind': 'تغيير نوع التوقف',
'roadtrip.stop.backToDestination': 'العودة إلى وجهة',
'roadtrip.poi.rest': 'استراحة',
'roadtrip.poi.campsite': 'مخيم',
'roadtrip.poi.food': 'طعام',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Dia {number}',
'roadtrip.stay.nightAdded': 'Adicionado como pernoite',
'roadtrip.stay.nightAction': 'Adicionar como pernoite',
'roadtrip.stop.makeService': 'Tornar uma parada no caminho',
'roadtrip.stop.changeKind': 'Alterar o tipo de parada',
'roadtrip.stop.backToDestination': 'Voltar a ser um destino',
'roadtrip.poi.rest': 'Área de descanso',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Comida',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Dia {number}',
'roadtrip.stay.nightAdded': 'Afegit com a pernoctació',
'roadtrip.stay.nightAction': 'Afegeix com a pernoctació',
'roadtrip.stop.makeService': 'Converteix en parada del camí',
'roadtrip.stop.changeKind': 'Canvia el tipus de parada',
'roadtrip.stop.backToDestination': 'Torna a ser una destinació',
'roadtrip.poi.rest': 'Àrea de descans',
'roadtrip.poi.campsite': 'Càmping',
'roadtrip.poi.food': 'Menjar',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Den {number}',
'roadtrip.stay.nightAdded': 'Přidáno jako nocleh',
'roadtrip.stay.nightAction': 'Přidat jako nocleh',
'roadtrip.stop.makeService': 'Změnit na zastávku po cestě',
'roadtrip.stop.changeKind': 'Změnit typ zastávky',
'roadtrip.stop.backToDestination': 'Zpět na cíl cesty',
'roadtrip.poi.rest': 'Odpočívadlo',
'roadtrip.poi.campsite': 'Kemp',
'roadtrip.poi.food': 'Jídlo',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Tag {number}',
'roadtrip.stay.nightAdded': 'Als Übernachtung hinzugefügt',
'roadtrip.stay.nightAction': 'Als Übernachtung hinzufügen',
'roadtrip.stop.makeService': 'Zum Halt unterwegs machen',
'roadtrip.stop.changeKind': 'Art des Halts ändern',
'roadtrip.stop.backToDestination': 'Wieder ein Ziel',
'roadtrip.poi.rest': 'Rastplatz',
'roadtrip.poi.campsite': 'Campingplatz',
'roadtrip.poi.food': 'Essen',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Day {number}',
'roadtrip.stay.nightAdded': 'Added as an overnight stay',
'roadtrip.stay.nightAction': 'Add as an overnight stay',
'roadtrip.stop.makeService': 'Make it a stop on the way',
'roadtrip.stop.changeKind': 'Change what kind of stop this is',
'roadtrip.stop.backToDestination': 'Back to a destination',
'roadtrip.poi.rest': 'Rest area',
'roadtrip.poi.campsite': 'Campsite',
'roadtrip.poi.food': 'Food',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Día {number}',
'roadtrip.stay.nightAdded': 'Añadido como pernoctación',
'roadtrip.stay.nightAction': 'Añadir como pernoctación',
'roadtrip.stop.makeService': 'Convertir en parada del camino',
'roadtrip.stop.changeKind': 'Cambiar el tipo de parada',
'roadtrip.stop.backToDestination': 'Volver a ser un destino',
'roadtrip.poi.rest': 'Área de descanso',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Comida',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Jour {number}',
'roadtrip.stay.nightAdded': 'Ajouté comme nuitée',
'roadtrip.stay.nightAction': 'Ajouter comme nuitée',
'roadtrip.stop.makeService': 'En faire un arrêt en chemin',
'roadtrip.stop.changeKind': 'Changer le type d’arrêt',
'roadtrip.stop.backToDestination': 'Redevenir une destination',
'roadtrip.poi.rest': 'Aire de repos',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Restauration',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Ημέρα {number}',
'roadtrip.stay.nightAdded': 'Προστέθηκε ως διανυκτέρευση',
'roadtrip.stay.nightAction': 'Προσθήκη ως διανυκτέρευση',
'roadtrip.stop.makeService': 'Μετατροπή σε στάση στον δρόμο',
'roadtrip.stop.changeKind': 'Αλλαγή είδους στάσης',
'roadtrip.stop.backToDestination': 'Πίσω σε προορισμό',
'roadtrip.poi.rest': 'Χώρος ανάπαυσης',
'roadtrip.poi.campsite': 'Κάμπινγκ',
'roadtrip.poi.food': 'Φαγητό',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': '{number}. nap',
'roadtrip.stay.nightAdded': 'Hozzáadva éjszakázásként',
'roadtrip.stay.nightAction': 'Hozzáadás éjszakázásként',
'roadtrip.stop.makeService': 'Legyen útközbeni megálló',
'roadtrip.stop.changeKind': 'Megálló típusának módosítása',
'roadtrip.stop.backToDestination': 'Vissza úti céllá',
'roadtrip.poi.rest': 'Pihenőhely',
'roadtrip.poi.campsite': 'Kemping',
'roadtrip.poi.food': 'Étkezés',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Hari {number}',
'roadtrip.stay.nightAdded': 'Ditambahkan sebagai menginap',
'roadtrip.stay.nightAction': 'Tambahkan sebagai menginap',
'roadtrip.stop.makeService': 'Jadikan perhentian di jalan',
'roadtrip.stop.changeKind': 'Ubah jenis perhentian',
'roadtrip.stop.backToDestination': 'Kembali jadi tujuan',
'roadtrip.poi.rest': 'Tempat istirahat',
'roadtrip.poi.campsite': 'Perkemahan',
'roadtrip.poi.food': 'Makanan',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Giorno {number}',
'roadtrip.stay.nightAdded': 'Aggiunto come pernottamento',
'roadtrip.stay.nightAction': 'Aggiungi come pernottamento',
'roadtrip.stop.makeService': 'Trasforma in sosta lungo il percorso',
'roadtrip.stop.changeKind': 'Cambia il tipo di sosta',
'roadtrip.stop.backToDestination': 'Torna a essere una destinazione',
'roadtrip.poi.rest': 'Area di sosta',
'roadtrip.poi.campsite': 'Campeggio',
'roadtrip.poi.food': 'Ristoro',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': '{number}日目',
'roadtrip.stay.nightAdded': '宿泊として追加しました',
'roadtrip.stay.nightAction': '宿泊として追加',
'roadtrip.stop.makeService': '途中の立ち寄りにする',
'roadtrip.stop.changeKind': '立ち寄りの種類を変更',
'roadtrip.stop.backToDestination': '目的地に戻す',
'roadtrip.poi.rest': 'サービスエリア',
'roadtrip.poi.campsite': 'キャンプ場',
'roadtrip.poi.food': '食事',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': '{number}일차',
'roadtrip.stay.nightAdded': '숙박으로 추가했습니다',
'roadtrip.stay.nightAction': '숙박으로 추가',
'roadtrip.stop.makeService': '경유 정차로 변경',
'roadtrip.stop.changeKind': '정차 유형 변경',
'roadtrip.stop.backToDestination': '다시 목적지로',
'roadtrip.poi.rest': '휴게소',
'roadtrip.poi.campsite': '캠핑장',
'roadtrip.poi.food': '식사',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Dag {number}',
'roadtrip.stay.nightAdded': 'Toegevoegd als overnachting',
'roadtrip.stay.nightAction': 'Toevoegen als overnachting',
'roadtrip.stop.makeService': 'Maak er een stop onderweg van',
'roadtrip.stop.changeKind': 'Soort stop wijzigen',
'roadtrip.stop.backToDestination': 'Weer een bestemming',
'roadtrip.poi.rest': 'Rustplaats',
'roadtrip.poi.campsite': 'Camping',
'roadtrip.poi.food': 'Eten',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Dzień {number}',
'roadtrip.stay.nightAdded': 'Dodano jako nocleg',
'roadtrip.stay.nightAction': 'Dodaj jako nocleg',
'roadtrip.stop.makeService': 'Zamień w postój po drodze',
'roadtrip.stop.changeKind': 'Zmień rodzaj postoju',
'roadtrip.stop.backToDestination': 'Z powrotem cel podróży',
'roadtrip.poi.rest': 'Miejsce odpoczynku',
'roadtrip.poi.campsite': 'Kemping',
'roadtrip.poi.food': 'Jedzenie',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'День {number}',
'roadtrip.stay.nightAdded': 'Добавлено как ночёвка',
'roadtrip.stay.nightAction': 'Добавить как ночёвку',
'roadtrip.stop.makeService': 'Сделать остановкой в пути',
'roadtrip.stop.changeKind': 'Изменить тип остановки',
'roadtrip.stop.backToDestination': 'Снова пункт назначения',
'roadtrip.poi.rest': 'Зона отдыха',
'roadtrip.poi.campsite': 'Кемпинг',
'roadtrip.poi.food': 'Еда',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Dag {number}',
'roadtrip.stay.nightAdded': 'Tillagd som övernattning',
'roadtrip.stay.nightAction': 'Lägg till som övernattning',
'roadtrip.stop.makeService': 'Gör det till ett stopp på vägen',
'roadtrip.stop.changeKind': 'Byt typ av stopp',
'roadtrip.stop.backToDestination': 'Tillbaka till ett resmål',
'roadtrip.poi.rest': 'Rastplats',
'roadtrip.poi.campsite': 'Campingplats',
'roadtrip.poi.food': 'Mat',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': '{number}. gün',
'roadtrip.stay.nightAdded': 'Konaklama olarak eklendi',
'roadtrip.stay.nightAction': 'Konaklama olarak ekle',
'roadtrip.stop.makeService': 'Yol üzerinde molaya dönüştür',
'roadtrip.stop.changeKind': 'Mola türünü değiştir',
'roadtrip.stop.backToDestination': 'Yeniden varış noktası yap',
'roadtrip.poi.rest': 'Dinlenme alanı',
'roadtrip.poi.campsite': 'Kamp alanı',
'roadtrip.poi.food': 'Yemek',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'День {number}',
'roadtrip.stay.nightAdded': 'Додано як ночівлю',
'roadtrip.stay.nightAction': 'Додати як ночівлю',
'roadtrip.stop.makeService': 'Зробити зупинкою в дорозі',
'roadtrip.stop.changeKind': 'Змінити тип зупинки',
'roadtrip.stop.backToDestination': 'Знову пункт призначення',
'roadtrip.poi.rest': 'Зона відпочинку',
'roadtrip.poi.campsite': 'Кемпінг',
'roadtrip.poi.food': 'Їжа',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': 'Ngày {number}',
'roadtrip.stay.nightAdded': 'Đã thêm làm nơi nghỉ đêm',
'roadtrip.stay.nightAction': 'Thêm làm nơi nghỉ đêm',
'roadtrip.stop.makeService': 'Biến thành điểm dừng dọc đường',
'roadtrip.stop.changeKind': 'Đổi loại điểm dừng',
'roadtrip.stop.backToDestination': 'Trở lại là điểm đến',
'roadtrip.poi.rest': 'Trạm dừng nghỉ',
'roadtrip.poi.campsite': 'Khu cắm trại',
'roadtrip.poi.food': 'Đồ ăn',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': '第 {number} 天',
'roadtrip.stay.nightAdded': '已新增為過夜住宿',
'roadtrip.stay.nightAction': '新增為過夜住宿',
'roadtrip.stop.makeService': '設為途中停靠',
'roadtrip.stop.changeKind': '變更停靠類型',
'roadtrip.stop.backToDestination': '恢復為目的地',
'roadtrip.poi.rest': '休息站',
'roadtrip.poi.campsite': '露營地',
'roadtrip.poi.food': '餐飲',
+3
View File
@@ -38,6 +38,9 @@ const roadtrip: TranslationStrings = {
'roadtrip.stay.dayNumber': '第 {number} 天',
'roadtrip.stay.nightAdded': '已添加为过夜住宿',
'roadtrip.stay.nightAction': '添加为过夜住宿',
'roadtrip.stop.makeService': '设为途中停靠',
'roadtrip.stop.changeKind': '更改停靠类型',
'roadtrip.stop.backToDestination': '恢复为目的地',
'roadtrip.poi.rest': '服务区',
'roadtrip.poi.campsite': '露营地',
'roadtrip.poi.food': '餐饮',