From 34790a0705d72b295bfd07ee3072b0875ce9ac03 Mon Sep 17 00:00:00 2001 From: lokonli Date: Sat, 26 Feb 2022 15:52:53 +0100 Subject: [PATCH] Public transport: lang and show_direction --- docs/blocks/specials/publictransport.rst | 5 +++++ docs/releasenotes/releasenotes.rst | 2 ++ js/components/publictransport.js | 27 ++++++++++++++++++------ lang/nl_NL.json | 3 ++- tpl/pubtrans_treinen.tpl | 2 +- 5 files changed, 30 insertions(+), 9 deletions(-) diff --git a/docs/blocks/specials/publictransport.rst b/docs/blocks/specials/publictransport.rst index 3fd2e802..ff7aa3b3 100644 --- a/docs/blocks/specials/publictransport.rst +++ b/docs/blocks/specials/publictransport.rst @@ -63,6 +63,11 @@ Parameters | ``'3,4'`` (comma seperated) * - show_via - ``false`` , ``true``. Hide the via-part. + * - show_direction + - ``false`` , ``true``. Show the line direction (only for ``ovapi`` and ``delijnbe``). + * - lang + - | ``'nl'``, ``'fr'``, ``'en'``, ``'de'`` : Set the language for search results (only for ``irailbe``) + | Default value is derived from the Dashticz language setting. * - icon - | The font-awesome icon (including ``fas fa-``) | ``'fas fa-bus'``, ``'fas fa-tram'``, ``'fas fa-train'``, ``'fas fa-ship'``, ``'fas fa-subway'``, ... diff --git a/docs/releasenotes/releasenotes.rst b/docs/releasenotes/releasenotes.rst index 6e95cce0..a9bbe2ae 100644 --- a/docs/releasenotes/releasenotes.rst +++ b/docs/releasenotes/releasenotes.rst @@ -12,6 +12,8 @@ Enhancements ~~~~~~~~~~~~ * Garbage: Added Maashorst (Uden, Volkel, Odiliapeel, Reek, Schaijk en Zeeland) +* Public transport: New block parameter ``show_direction`` to show bus line direction. +* Public transport: New block parameter ``lang`` to set language for search results (for ``irailbe`` only). Fixes ~~~~~~ diff --git a/js/components/publictransport.js b/js/components/publictransport.js index f2c4a462..b93669fe 100644 --- a/js/components/publictransport.js +++ b/js/components/publictransport.js @@ -19,13 +19,17 @@ // clickHandler: pubtransClick, //If url is defined in block def then clickHandler will be installed by Dashticz clickHandler: true, results: 10, - show_via: true + show_via: true, + show_direction: false }; if (!block || !block.station) { result.url = 'https://dashticz.readthedocs.io/en/master/blocks/specials/publictransport.html'; result.title = 'Example: Utrecht CS'; } + var languages = ['ne','en','fr','de']; + var language = settings.language.substr(0,2); + result.lang = (languages.includes(language) && language) || 'nl'; return result; }, defaultContent: language.misc.loading, @@ -130,11 +134,12 @@ todayDate + '&time=' + todayTime + - '&arrdep=departure&lang=nl&format=json&fast=false&alerts=false'; + '&arrdep=departure&lang=' + + block.lang + + '&format=json&fast=false&alerts=false'; } function transformTreinen(me, data) { - var block = me.block; var result = { departures: [] }; @@ -157,7 +162,6 @@ } function transformOvApiTpc(me, data) { - var block = me.block; var departures = []; Object.keys(data).forEach(function (tpc) { Object.keys(data[tpc].Passes).forEach(function (service) { @@ -169,11 +173,12 @@ } function formatDelay(actual, planned) { + if(!actual) actual=planned; var delay = Number((actual - planned) / 60000); return delay >= 0 ? (delay > 0 ? '+' + Math.ceil(delay) : '') : Math.floor(delay) } - function getOvApiDeparture(line) { + function getOvApiDeparture(line, block) { var fulltime = moment(line.TargetDepartureTime); var hasNumber = line.LineName.indexOf(line.LinePublicNumber) >= 0; var departure = { @@ -184,6 +189,9 @@ delay: formatDelay(moment(line.ExpectedDepartureTime), fulltime), line: line.LinePublicNumber } + if(block && block.show_direction && line.LineDirection) { + departure.destination += ' (ri. '+ line.LineDirection + ')'; + } return departure } @@ -194,7 +202,7 @@ Object.keys(data[dep]).forEach(function (tpc) { Object.keys(data[dep][tpc].Passes).forEach(function (service) { var line = data[dep][tpc].Passes[service]; - departures.push(getOvApiDeparture(line)); + departures.push(getOvApiDeparture(line, block)); }) }) }); @@ -303,7 +311,10 @@ voertuigNummer: "330265" delay: formatDelay(dep.vertrekRealtimeTijdstip, dep.vertrekTheoretischeTijdstip), line: dep.lijnNummerPubliek, destination: 'Lijn ' + dep.lijnNummerPubliek + ': ' + dep.bestemming, - via: dep.omschrijving + dep.viaBestemming && (' ' + dep.viaBestemming) + via: dep.omschrijving + (dep.viaBestemming && (' ' + dep.viaBestemming)) + } + if(me.block && me.block.show_direction && isDefined(dep.richtingCode)) { + departure.destination += ' (ri. '+ dep.richtingCode + ')'; } dataPart.departures.push(departure); } @@ -361,6 +372,8 @@ voertuigNummer: "330265" function renderTpl(me, data) { var tpl = me.providerCfg.tpl; + data.lang={}; + data.lang.platform=language.platform || 'spoor'; data.block = me.block; return templateEngine.load(tpl).then(function (template) { diff --git a/lang/nl_NL.json b/lang/nl_NL.json index fde624bb..ec06b91f 100644 --- a/lang/nl_NL.json +++ b/lang/nl_NL.json @@ -39,7 +39,8 @@ "spotify_select_playlist": "Selecteer afspeellijst", "value": "Waarde", "enter_pincode": "Voer de pincode in", - "wrong_code": "Verkeerde pincode" + "wrong_code": "Verkeerde pincode", + "platform": "spoor" }, "settings": { "about": { diff --git a/tpl/pubtrans_treinen.tpl b/tpl/pubtrans_treinen.tpl index 819f0b3d..502ae6f7 100644 --- a/tpl/pubtrans_treinen.tpl +++ b/tpl/pubtrans_treinen.tpl @@ -25,7 +25,7 @@ {{#if this.platform}} - spoor {{this.platform}} + {{../lang.misc.platform}} {{this.platform}} {{/if}}