summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2008-02-24 19:37:21 +0100
committerDieter Hametner <dh (plus) vdr (at) gekrumbel (dot) de>2008-02-24 19:37:21 +0100
commit41298f1f32e40644b2837c96c45b02e9ad27f95f (patch)
tree19d0ba2874a237e27344a0b56c2e881d0f65f5f6
parent503a94cd38b65b686fe898aba960b55ab47ddbf5 (diff)
downloadvdr-plugin-live-41298f1f32e40644b2837c96c45b02e9ad27f95f.tar.gz
vdr-plugin-live-41298f1f32e40644b2837c96c45b02e9ad27f95f.tar.bz2
Added functionality to display timer conflicts when polled through the
statusbox updates. Created the layout and look of the status message.
-rw-r--r--css/styles.css46
-rw-r--r--live/css/siteprefs.css3
-rw-r--r--live/img/msgbar_line_bg.pngbin0 -> 144 bytes
-rw-r--r--live/js/live/vdr_status.js135
-rw-r--r--pages/ibox.ecpp19
-rw-r--r--pages/menu.ecpp17
-rw-r--r--pages/xmlresponse.ecpp12
-rw-r--r--po/ca_ES.po17
-rw-r--r--po/cs_CZ.po17
-rw-r--r--po/da_DK.po17
-rw-r--r--po/de_DE.po22
-rw-r--r--po/el_GR.po17
-rw-r--r--po/es_ES.po17
-rw-r--r--po/et_EE.po17
-rw-r--r--po/fi_FI.po22
-rw-r--r--po/fr_FR.po22
-rw-r--r--po/hr_HR.po17
-rw-r--r--po/hu_HU.po17
-rw-r--r--po/it_IT.po22
-rw-r--r--po/nl_NL.po22
-rw-r--r--po/nn_NO.po17
-rw-r--r--po/pl_PL.po17
-rw-r--r--po/pt_PT.po17
-rw-r--r--po/ro_RO.po17
-rw-r--r--po/ru_RU.po17
-rw-r--r--po/sl_SI.po17
-rw-r--r--po/sv_SE.po17
-rw-r--r--po/tr_TR.po17
-rw-r--r--timerconflict.cpp13
-rw-r--r--timerconflict.h4
30 files changed, 557 insertions, 74 deletions
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
--- /dev/null
+++ b/live/img/msgbar_line_bg.png
Binary files 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();
</%session>
<%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())
{
</%cpp>
-<& 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()) {
</%cpp>
-<& 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()) {
</%cpp>
-<& 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 {
</%cpp>
-<& 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()) {
</%cpp>
| <a <& tooltip.display domId=("aboutBox") &>>?</a>
</div>
+<div id="messagebar" class="<? !timerNotifier.ShouldNotify() ? "notpresent" ?>">
+ <div> <!-- outer -->
+ <div><!-- inner -->
+ <$ tr("Your attention is required") $>:
+ <span id="mbmessage"><$ timerNotifier.Message() $></span>
+ <a id="mbreact" href="<$ timerNotifier.Url() $>"><$ tr("React") $></a>
+<%cpp>
+if (LiveSetup().GetUseAjax()) {
+</%cpp>
+ <span id="mbdelimiter" class="<? timerNotifier.Url().empty() ? "notpresent" ?>">|</span>
+ <span id="mbdismiss"><a href="" onclick="$('messagebar').addClass('notpresent'); return false"><$ tr("Dismiss") $></a></span>
+<%cpp>
+}
+</%cpp>
+ </div>
+ </div>
+</div>
<%cpp>
if (!component.empty()) {
</%cpp>
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 = "<?xml version=\"1.0\" encoding=\"" + LiveI18n().Charac
int elapsed;
string prev_chan;
string next_chan;
+ string infoMsg;
+ string infoUrl;
</%args>
<$$ XMLHEADER $>
<service>
@@ -63,5 +65,15 @@ string const XMLHEADER = "<?xml version=\"1.0\" encoding=\"" + LiveI18n().Charac
<prevchan><$ prev_chan $></prevchan>
</epginfo>
</values>
+<%cpp>
+if (!infoMsg.empty()) {
+</%cpp>
+ <info>
+ <message><$ infoMsg $></message>
+ <url><$ infoUrl $></url>
+ </info>
+<%cpp>
+}
+</%cpp>
</service>
</%def>
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ührliche Ansicht"
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äyttäminen epäonnistui!"
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érir périphérique primaire"
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élécommande du VDR"
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;