From 41298f1f32e40644b2837c96c45b02e9ad27f95f Mon Sep 17 00:00:00 2001 From: Dieter Hametner Date: Sun, 24 Feb 2008 19:37:21 +0100 Subject: Added functionality to display timer conflicts when polled through the statusbox updates. Created the layout and look of the status message. --- css/styles.css | 46 +++++++++++++++ live/css/siteprefs.css | 3 + live/img/msgbar_line_bg.png | Bin 0 -> 144 bytes live/js/live/vdr_status.js | 135 ++++++++++++++++++++++++++++++-------------- pages/ibox.ecpp | 19 +++++-- pages/menu.ecpp | 17 ++++++ pages/xmlresponse.ecpp | 12 ++++ po/ca_ES.po | 17 +++++- po/cs_CZ.po | 17 +++++- po/da_DK.po | 17 +++++- po/de_DE.po | 22 +++++++- po/el_GR.po | 17 +++++- po/es_ES.po | 17 +++++- po/et_EE.po | 17 +++++- po/fi_FI.po | 22 +++++++- po/fr_FR.po | 22 +++++++- po/hr_HR.po | 17 +++++- po/hu_HU.po | 17 +++++- po/it_IT.po | 22 +++++++- po/nl_NL.po | 22 +++++++- po/nn_NO.po | 17 +++++- po/pl_PL.po | 17 +++++- po/pt_PT.po | 17 +++++- po/ro_RO.po | 17 +++++- po/ru_RU.po | 17 +++++- po/sl_SI.po | 17 +++++- po/sv_SE.po | 17 +++++- po/tr_TR.po | 17 +++++- timerconflict.cpp | 13 ++++- timerconflict.h | 4 +- 30 files changed, 557 insertions(+), 74 deletions(-) create mode 100644 live/img/msgbar_line_bg.png diff --git a/css/styles.css b/css/styles.css index 3e64f09..f8ff476 100644 --- a/css/styles.css +++ b/css/styles.css @@ -413,6 +413,8 @@ div.inhalt { padding: 10px; } +/* styles for pagemenu */ + div#pagemenu { margin-top: 2px; padding-top: 6px; @@ -451,6 +453,50 @@ div#pagemenu a.active { font-weight: bold; } +/* styles for messagebar */ + +div#messagebar { + margin-top: 8px; + margin-bottom: 2px; + line-height: 20px; + min-height: 27px; + vertical-align: middle; + background: #7CAD3F url(img/msgbar_line_bg.png) top repeat-x; + border-top: 1px solid #2B6B00; + border-bottom: 1px solid #2B6B00; +} + +div#messagebar div { + color: black; +} + +div#messagebar div div { + padding-left: 10px; + background: transparent; +} + +div#messagebar div div div { + border: 0; + padding: 0; + margin: 0; +} + +div#messagebar a { + color: black; + font-weight: bold; +} + +div#messagebar a.active { + color: blue; + font-weight: bold; +} + +div#messagebar span#mbmessage { + padding: 0em 1em 0em 1em; + color: #A14040; + font-weight: bold; +} + /* ####################### # Info Box (near logo) diff --git a/live/css/siteprefs.css b/live/css/siteprefs.css index 5056813..5e16262 100644 --- a/live/css/siteprefs.css +++ b/live/css/siteprefs.css @@ -23,3 +23,6 @@ table { .info-win span.epg_images { width: 120px; } + + + diff --git a/live/img/msgbar_line_bg.png b/live/img/msgbar_line_bg.png new file mode 100644 index 0000000..75e5981 Binary files /dev/null and b/live/img/msgbar_line_bg.png differ diff --git a/live/js/live/vdr_status.js b/live/js/live/vdr_status.js index 13e4a0d..84afac2 100644 --- a/live/js/live/vdr_status.js +++ b/live/js/live/vdr_status.js @@ -28,51 +28,13 @@ var LiveVdrInfo = Ajax.extend({ showInfo: function(text, xmldoc) { try { - var infoType = xmldoc.getElementsByTagName('type').item(0); - - var channel = $(this.boxId + '_channel_buttons'); - var playback = $(this.boxId + '_recording_buttons'); - - if (infoType.firstChild.nodeValue != "channel") { - channel.style.display = 'none'; - playback.style.display = 'block'; - this.setTextContent('pause', infoType.firstChild.nodeValue); - this.setTextContent('play', infoType.firstChild.nodeValue); - this.setTextContent('rwd', infoType.firstChild.nodeValue); - this.setTextContent('ffw', infoType.firstChild.nodeValue); - this.setTextContent('stop', infoType.firstChild.nodeValue); - } - else { - playback.style.display = 'none'; - channel.style.display = 'block'; - } - - var epgInfo = xmldoc.getElementsByTagName('epginfo').item(0); + this.selectInfoElems(xmldoc); - for (var i = 0; i < epgInfo.childNodes.length; i++) { - var node = epgInfo.childNodes.item(i); - if (node.nodeType == 1) { - var textContent = ""; - if (node.firstChild != null) - textContent = node.firstChild.nodeValue; - this.setTextContent(node.nodeName, textContent); - } - } + this.setEpgInfo(xmldoc); - /* check if we still need to update the status */ - var upd = xmldoc.getElementsByTagName('update').item(0); - var rel = (upd.firstChild.nodeValue == "1"); + this.setInfoMessage(xmldoc); - if (rel != this.reload) { - this.reload = rel; - var img = $('statusReloadBtn'); - if (img != null) { - // change image according to state. - img.src = this.reload ? 'img/stop_update.png' : 'img/reload.png'; - } - } - if (this.reload) - this.timer = this.request.delay(1000, this, true); + this.setUpdate(xmldoc); } catch (e) { this.reportError(null); @@ -92,6 +54,75 @@ var LiveVdrInfo = Ajax.extend({ this.setTextContent('name', message); }, + // private function to switch visibility of controls. + selectInfoElems: function(xmldoc) + { + var infoType = xmldoc.getElementsByTagName('type').item(0); + + var channel = $(this.boxId + '_channel_buttons'); + var playback = $(this.boxId + '_recording_buttons'); + + if (infoType.firstChild.nodeValue != "channel") { + channel.style.display = 'none'; + playback.style.display = 'block'; + this.setTextContent('pause', infoType.firstChild.nodeValue); + this.setTextContent('play', infoType.firstChild.nodeValue); + this.setTextContent('rwd', infoType.firstChild.nodeValue); + this.setTextContent('ffw', infoType.firstChild.nodeValue); + this.setTextContent('stop', infoType.firstChild.nodeValue); + } + else { + playback.style.display = 'none'; + channel.style.display = 'block'; + } + }, + + // private function to activate the info message display if the + // corresponding element is found in the current page. + setInfoMessage: function(xmldoc) + { + var info = xmldoc.getElementsByTagName('info').item(0); + if (! $defined(info)) + return; + + var messagebar = $('messagebar'); + if (! $defined(messagebar)) + return; + + var message = xmldoc.getElementsByTagName('message').item(0); + var url = xmldoc.getElementsByTagName('url').item(0); + + if (message.firstChild.nodeValue != "") { + $('mbmessage').setText(message.firstChild.nodeValue); + if ($defined(url.firstChild)) { + $('mbdelimiter').removeClass('notpresent'); + $('mbreact').setProperty('href', url.firstChild.nodeValue); + } + else { + $('mbdelimiter').addClass('notpresent'); + $('mbreact').addClass('notpresent'); + } + messagebar.removeClass('notpresent'); + } + }, + + // private function to display information from epg info. + setEpgInfo: function(xmldoc) + { + var epgInfo = xmldoc.getElementsByTagName('epginfo').item(0); + + for (var i = 0; i < epgInfo.childNodes.length; i++) { + var node = epgInfo.childNodes.item(i); + if (node.nodeType == 1) { + var textContent = ""; + if (node.firstChild != null) + textContent = node.firstChild.nodeValue; + this.setTextContent(node.nodeName, textContent); + } + } + }, + + // private function to update text contents. setTextContent: function(nodeName, textContent) { var docNode = $(this.boxId + '_' + nodeName); @@ -148,6 +179,26 @@ var LiveVdrInfo = Ajax.extend({ } }, + // private function to determine update status and to trigger + // the next update. + setUpdate: function(xmldoc) + { + /* check if we still need to update the status */ + var upd = xmldoc.getElementsByTagName('update').item(0); + var rel = (upd.firstChild.nodeValue == "1"); + + if (rel != this.reload) { + this.reload = rel; + var img = $('statusReloadBtn'); + if (img != null) { + // change image according to state. + img.src = this.reload ? 'img/stop_update.png' : 'img/reload.png'; + } + } + if (this.reload) + this.timer = this.request.delay(1000, this, true); + }, + toggleUpdate: function() { if (this.reload) { diff --git a/pages/ibox.ecpp b/pages/ibox.ecpp index 147dcfa..eeada61 100644 --- a/pages/ibox.ecpp +++ b/pages/ibox.ecpp @@ -11,6 +11,7 @@ #include "tools.h" #include "epg_events.h" #include "recman.h" +#include "timerconflict.h" using namespace vdrlive; using namespace std; @@ -22,6 +23,7 @@ using namespace std; <%session scope="global"> bool logged_in(false); int update_status(1); +TimerConflictNotifier timerNotifier(); <%cpp> if (!logged_in && LiveSetup().UseAuth()) return reply.redirect("login.html"); @@ -33,6 +35,15 @@ int update_status(1); if (update_status != update) { update_status = update; } + + string infoMsg; + string infoUrl; + + if (timerNotifier.ShouldNotify()) { + infoMsg = timerNotifier.Message(); + infoUrl = "timerconflicts.html"; + } + #if VDRVERSNUM >= 10403 const char* NowReplaying = cReplayControl::NowReplaying(); #else @@ -110,22 +121,22 @@ int update_status(1); if (prev_chan.Valid() && next_chan.Valid()) { -<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) prev_chan=(prev_chan) next_chan=(next_chan) &> + <& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) prev_chan=(prev_chan) next_chan=(next_chan) infoMsg=(infoMsg) infoUrl=(infoUrl) &> <%cpp> } else if (prev_chan.Valid()) { -<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) prev_chan=(prev_chan) &> +<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) prev_chan=(prev_chan) infoMsg=(infoMsg) infoUrl=(infoUrl) &> <%cpp> } else if (next_chan.Valid()) { -<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) next_chan=(next_chan) &> +<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) next_chan=(next_chan) infoMsg=(infoMsg) infoUrl=(infoUrl) &> <%cpp> } else { -<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) &> +<& xmlresponse.ibox update=(update_status) type=(epgEvent->Id()) caption=(epgEvent->Caption()) currentTime=(epgEvent->CurrentTime(tr("%I:%M:%S %p"))) duration=(epgEvent->StartTime(tr("%I:%M %p")) + string(" - ") + epgEvent->EndTime(tr("%I:%M %p"))) title=(epgEvent->Title()) elapsed=(epgEvent->Elapsed()) infoMsg=(infoMsg) infoUrl=(infoUrl) &> <%cpp> } } diff --git a/pages/menu.ecpp b/pages/menu.ecpp index bb7f47a..a998169 100644 --- a/pages/menu.ecpp +++ b/pages/menu.ecpp @@ -60,6 +60,23 @@ if (LiveSetup().UseAuth()) { | >? +
"> +
+
+ <$ tr("Your attention is required") $>: + <$ timerNotifier.Message() $> + <$ tr("React") $> +<%cpp> +if (LiveSetup().GetUseAjax()) { + + ">| + <$ tr("Dismiss") $> +<%cpp> +} + +
+
+
<%cpp> if (!component.empty()) { diff --git a/pages/xmlresponse.ecpp b/pages/xmlresponse.ecpp index 4bca87f..bf0a6c1 100644 --- a/pages/xmlresponse.ecpp +++ b/pages/xmlresponse.ecpp @@ -42,6 +42,8 @@ string const XMLHEADER = " <$$ XMLHEADER $> @@ -63,5 +65,15 @@ string const XMLHEADER = "<$ prev_chan $> +<%cpp> +if (!infoMsg.empty()) { + + + <$ infoMsg $> + <$ infoUrl $> + +<%cpp> +} + diff --git a/po/ca_ES.po b/po/ca_ES.po index 712efd2..10ed873 100644 --- a/po/ca_ES.po +++ b/po/ca_ES.po @@ -113,7 +113,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -428,6 +434,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/cs_CZ.po b/po/cs_CZ.po index 0390e14..4f09824 100644 --- a/po/cs_CZ.po +++ b/po/cs_CZ.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/da_DK.po b/po/da_DK.po index 0a0394e..2bf5baa 100644 --- a/po/da_DK.po +++ b/po/da_DK.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/de_DE.po b/po/de_DE.po index fba621d..afdc27a 100644 --- a/po/de_DE.po +++ b/po/de_DE.po @@ -113,8 +113,14 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." -msgstr "Timer Konflikte entdeckt! Sie sollten die entsprechenden Timer prüfen." +msgid "Timer conflict check detected " +msgstr "Die Timer Konflikt Überprüfung hat " + +msgid " conflict" +msgstr "Timerkonflikt entdeckt" + +msgid " conflicts" +msgstr "Timerkonflikte entdeckt" msgid "Couldn't aquire access to channels, please try again later." msgstr "Zugriff auf die Kanäle wurde verweigert. Bitte später versuchen." @@ -428,6 +434,15 @@ msgstr "Fernbedienung" msgid "Logout" msgstr "Abmelden" +msgid "Your attention is required" +msgstr "Ihre Aufmerksamkeit ist erforderlich" + +msgid "React" +msgstr "Reagieren" + +msgid "Dismiss" +msgstr "Verwerfen" + msgid "Find more at the Internet Movie Database." msgstr "Weitere Informationen in der Internet Movie Database." @@ -773,6 +788,9 @@ msgstr "Ausf msgid "List view" msgstr "Listenansicht" +#~ msgid "Timer conflicts detected! You should check the conflicting timers." +#~ msgstr "Timer Konflikte entdeckt! Sie sollten die entsprechenden Timer prüfen." + #~ msgid "Start" #~ msgstr "Start" diff --git a/po/el_GR.po b/po/el_GR.po index 5c2a2f8..9f92782 100644 --- a/po/el_GR.po +++ b/po/el_GR.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/es_ES.po b/po/es_ES.po index cc97418..1f2f36f 100644 --- a/po/es_ES.po +++ b/po/es_ES.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/et_EE.po b/po/et_EE.po index 8ec561c..90b079b 100644 --- a/po/et_EE.po +++ b/po/et_EE.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/fi_FI.po b/po/fi_FI.po index 497919a..fb8e166 100644 --- a/po/fi_FI.po +++ b/po/fi_FI.po @@ -111,8 +111,17 @@ msgstr "Ensisijaisen DVB-sovittimen k msgid "Couldn't grab image from primary device" msgstr "Kuvan kaappaus ensisijaiselta DVB-sovittimelta epäonnistui!" -msgid "Timer conflicts detected! You should check the conflicting timers." -msgstr "" +#, fuzzy +msgid "Timer conflict check detected " +msgstr "Aktiivinen ajastin" + +#, fuzzy +msgid " conflict" +msgstr "Aktiivinen ajastin" + +#, fuzzy +msgid " conflicts" +msgstr "Aktiivinen ajastin" msgid "Couldn't aquire access to channels, please try again later." msgstr "Kanavien käyttäminen epäonnistui! Yritä myöhemmin uudelleen." @@ -426,6 +435,15 @@ msgstr "Kauko-ohjain" msgid "Logout" msgstr "Kirjaudu ulos" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "Hae IMDB:stä" diff --git a/po/fr_FR.po b/po/fr_FR.po index e89bb20..fd8765c 100644 --- a/po/fr_FR.po +++ b/po/fr_FR.po @@ -114,8 +114,17 @@ msgstr "Impossible d'acqu msgid "Couldn't grab image from primary device" msgstr "Impossible de récupérer l'image du périphérique primaire" -msgid "Timer conflicts detected! You should check the conflicting timers." -msgstr "" +#, fuzzy +msgid "Timer conflict check detected " +msgstr "Programmation est active." + +#, fuzzy +msgid " conflict" +msgstr "Programmation est active." + +#, fuzzy +msgid " conflicts" +msgstr "Programmation est active." msgid "Couldn't aquire access to channels, please try again later." msgstr "Impossible d'avoir accès à des chaînes, réessayer ultérieurement." @@ -429,6 +438,15 @@ msgstr "T msgid "Logout" msgstr "Fin de session" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "Trouver plus d'information du film dans la base de données film IMDB." diff --git a/po/hr_HR.po b/po/hr_HR.po index f882f26..09e9e73 100644 --- a/po/hr_HR.po +++ b/po/hr_HR.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/hu_HU.po b/po/hu_HU.po index eae5c10..a7ee422 100644 --- a/po/hu_HU.po +++ b/po/hu_HU.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/it_IT.po b/po/it_IT.po index fc67cc8..9e158b5 100644 --- a/po/it_IT.po +++ b/po/it_IT.po @@ -113,8 +113,17 @@ msgstr "Impossibile identificare scheda primaria" msgid "Couldn't grab image from primary device" msgstr "Impossibile ottenere immagine da scheda primaria" -msgid "Timer conflicts detected! You should check the conflicting timers." -msgstr "" +#, fuzzy +msgid "Timer conflict check detected " +msgstr "Timer attivo." + +#, fuzzy +msgid " conflict" +msgstr "Timer attivo." + +#, fuzzy +msgid " conflicts" +msgstr "Timer attivo." msgid "Couldn't aquire access to channels, please try again later." msgstr "Impossibile avere accesso ai canali, per favore riprova più tardi." @@ -428,6 +437,15 @@ msgstr "Telecomando" msgid "Logout" msgstr "Esci" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "Cerca ulteriori informazioni nel database internet (IMDB)" diff --git a/po/nl_NL.po b/po/nl_NL.po index 96f636a..16e8f80 100644 --- a/po/nl_NL.po +++ b/po/nl_NL.po @@ -114,8 +114,17 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." -msgstr "" +#, fuzzy +msgid "Timer conflict check detected " +msgstr "Serie's opnemen" + +#, fuzzy +msgid " conflict" +msgstr "Serie's opnemen" + +#, fuzzy +msgid " conflicts" +msgstr "Serie's opnemen" msgid "Couldn't aquire access to channels, please try again later." msgstr "" @@ -429,6 +438,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/nn_NO.po b/po/nn_NO.po index 274e7c5..239bbb4 100644 --- a/po/nn_NO.po +++ b/po/nn_NO.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/pl_PL.po b/po/pl_PL.po index dfd1360..0faf362 100644 --- a/po/pl_PL.po +++ b/po/pl_PL.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/pt_PT.po b/po/pt_PT.po index 3d5c725..ead6e89 100644 --- a/po/pt_PT.po +++ b/po/pt_PT.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/ro_RO.po b/po/ro_RO.po index 0887d2e..9ab90d0 100644 --- a/po/ro_RO.po +++ b/po/ro_RO.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/ru_RU.po b/po/ru_RU.po index e13e12b..c7dc079 100644 --- a/po/ru_RU.po +++ b/po/ru_RU.po @@ -111,7 +111,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -426,6 +432,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/sl_SI.po b/po/sl_SI.po index eaa37f5..412537d 100644 --- a/po/sl_SI.po +++ b/po/sl_SI.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/sv_SE.po b/po/sv_SE.po index 3cb7520..a9bd7c7 100644 --- a/po/sv_SE.po +++ b/po/sv_SE.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/po/tr_TR.po b/po/tr_TR.po index df3cd0d..7211c2f 100644 --- a/po/tr_TR.po +++ b/po/tr_TR.po @@ -112,7 +112,13 @@ msgstr "" msgid "Couldn't grab image from primary device" msgstr "" -msgid "Timer conflicts detected! You should check the conflicting timers." +msgid "Timer conflict check detected " +msgstr "" + +msgid " conflict" +msgstr "" + +msgid " conflicts" msgstr "" msgid "Couldn't aquire access to channels, please try again later." @@ -427,6 +433,15 @@ msgstr "" msgid "Logout" msgstr "" +msgid "Your attention is required" +msgstr "" + +msgid "React" +msgstr "" + +msgid "Dismiss" +msgstr "" + msgid "Find more at the Internet Movie Database." msgstr "" diff --git a/timerconflict.cpp b/timerconflict.cpp index 6f2c95c..14f42f9 100644 --- a/timerconflict.cpp +++ b/timerconflict.cpp @@ -111,7 +111,18 @@ namespace vdrlive { std::string TimerConflictNotifier::Message() const { int count = conflicts ? conflicts->size() : 0; - return count > 0 ? tr("Timer conflicts detected! You should check the conflicting timers.") : ""; + std::string msg = tr("Timer conflict check detected "); + if (count == 1) + msg += ConvertToString(count) + tr(" conflict"); + else + msg += ConvertToString(count) + tr(" conflicts"); + return count > 0 ? msg : ""; } + std::string TimerConflictNotifier::Url() const + { + return "timerconflicts.html"; + } + + } // namespace vdrlive diff --git a/timerconflict.h b/timerconflict.h index 80fba99..c8bca2c 100644 --- a/timerconflict.h +++ b/timerconflict.h @@ -71,11 +71,13 @@ namespace vdrlive { virtual ~TimerConflictNotifier(); bool ShouldNotify(); + std::string Message() const; + std::string Url() const; TimerConflictsPtr const CurrentConflicts() const { return conflicts; } - static int const CHECKINTERVAL = 30; // recheck value in seconds. + static int const CHECKINTERVAL = 5; // recheck value in seconds. private: time_t lastCheck; -- cgit v1.2.3