From b1203fe77efe2085f2f4c4081bd511019a466a35 Mon Sep 17 00:00:00 2001 From: Peter Bennett Date: Fri, 24 May 2024 15:53:13 -0400 Subject: [PATCH] web app: Improve recording override support Allow overrides for Don't Record and Never Record to be set and to be undone from the upcoming list or the guide page. --- mythtv/html/assets/i18n/bg.json | 2 + mythtv/html/assets/i18n/ca.json | 4 +- mythtv/html/assets/i18n/cs.json | 4 +- mythtv/html/assets/i18n/da.json | 2 + mythtv/html/assets/i18n/de.json | 2 + mythtv/html/assets/i18n/el.json | 4 +- mythtv/html/assets/i18n/en_CA.json | 18 ++-- mythtv/html/assets/i18n/en_GB.json | 16 +-- mythtv/html/assets/i18n/en_US.json | 4 +- mythtv/html/assets/i18n/es.json | 4 +- mythtv/html/assets/i18n/es_ES.json | 4 +- mythtv/html/assets/i18n/et.json | 2 + mythtv/html/assets/i18n/fi.json | 4 +- mythtv/html/assets/i18n/fr.json | 2 + mythtv/html/assets/i18n/he.json | 4 +- mythtv/html/assets/i18n/hr.json | 4 +- mythtv/html/assets/i18n/hu.json | 4 +- mythtv/html/assets/i18n/is.json | 4 +- mythtv/html/assets/i18n/it.json | 4 +- mythtv/html/assets/i18n/ja.json | 4 +- mythtv/html/assets/i18n/nb.json | 4 +- mythtv/html/assets/i18n/nl.json | 4 +- mythtv/html/assets/i18n/pl.json | 4 +- mythtv/html/assets/i18n/pt.json | 4 +- mythtv/html/assets/i18n/pt_BR.json | 4 +- mythtv/html/assets/i18n/ru.json | 2 + mythtv/html/assets/i18n/sl.json | 2 + mythtv/html/assets/i18n/sv.json | 4 +- mythtv/html/assets/i18n/tr.json | 2 + mythtv/html/assets/i18n/zh_CN.json | 2 + mythtv/html/assets/i18n/zh_HK.json | 4 +- .../upcoming/upcoming.component.html | 17 ++-- .../dashboard/upcoming/upcoming.component.ts | 7 +- .../src/app/schedule/schedule.component.html | 5 +- .../src/app/schedule/schedule.component.ts | 99 +++++++++++++++---- .../backend/src/app/services/dvr.service.ts | 4 +- 36 files changed, 198 insertions(+), 66 deletions(-) diff --git a/mythtv/html/assets/i18n/bg.json b/mythtv/html/assets/i18n/bg.json index 6d16506faff..e206e1e0470 100644 --- a/mythtv/html/assets/i18n/bg.json +++ b/mythtv/html/assets/i18n/bg.json @@ -182,7 +182,9 @@ "del_override": "Запишете това показване с нормални опции", "del_template": "Изтрийте този шаблон на правило за запис", "dont_rec_override": "Не записвайте това показване", + "forget_history": "Забравете историята, за да разрешите записа на този епизод", "mod_template": "Променете този шаблон на правило за запис", + "never_rec_override": "Никога не записвайте този епизод", "not": "Не записвайте тази програма", "one": "Запишете само едно показване", "rec_override": "Запишете това показване с опции за отмяна", diff --git a/mythtv/html/assets/i18n/ca.json b/mythtv/html/assets/i18n/ca.json index cccb51ebfa6..b720cf35e5f 100644 --- a/mythtv/html/assets/i18n/ca.json +++ b/mythtv/html/assets/i18n/ca.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Actualitza les metadades", "mnu_updaterecgrp": "Canvia el grup de gravació", "mnu_updaterecrule": "Actualitza la regla de registre", - "nonrerec": "Per permetre la nova gravació del programa danyat, utilitzeu Allow Re Record.", + "nonrerec": "Per permetre tornar a enregistrar el programa danyat, utilitzeu Permet tornar a gravar.", "orig_airdate": "Data d'emissió original", "override_rule": "Afegeix o edita una regla de substitució", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Enregistreu aquesta mostra amb les opcions normals", "del_template": "Suprimeix aquesta plantilla de regla d'enregistrament", "dont_rec_override": "No enregistreu aquesta projecció", + "forget_history": "Oblida't de l'historial per permetre la gravació d'aquest episodi", "mod_template": "Modifiqueu aquesta plantilla de regla d'enregistrament", + "never_rec_override": "No enregistreu mai aquest episodi", "not": "No enregistreu aquest programa", "one": "Registra només una mostra", "rec_override": "Enregistreu aquesta mostra amb opcions de substitució", diff --git a/mythtv/html/assets/i18n/cs.json b/mythtv/html/assets/i18n/cs.json index 379a4597c8e..7ba8724d0af 100644 --- a/mythtv/html/assets/i18n/cs.json +++ b/mythtv/html/assets/i18n/cs.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Aktualizujte metadata", "mnu_updaterecgrp": "Změnit záznamovou skupinu", "mnu_updaterecrule": "Aktualizovat pravidlo záznamu", - "nonrerec": "Chcete-li povolit opětovné nahrávání poškozeného programu, použijte možnost Povolit opětovné nahrávání.", + "nonrerec": "Chcete-li povolit opětovné nahrání poškozeného programu, použijte možnost Povolit opětovné nahrání.", "orig_airdate": "Původní datum vysílání", "override_rule": "Přidat nebo upravit pravidlo přepsání", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Zaznamenejte toto zobrazení s normálními možnostmi", "del_template": "Odstraňte tuto šablonu pravidla nahrávání", "dont_rec_override": "Toto představení nezaznamenávejte", + "forget_history": "Chcete-li povolit nahrávání této epizody, zapomeňte na historii", "mod_template": "Upravte tuto šablonu pravidla nahrávání", + "never_rec_override": "Tuto epizodu nikdy nenahrávejte", "not": "Tento program nenahrávat", "one": "Nahrajte pouze jedno představení", "rec_override": "Zaznamenejte toto zobrazení s možnostmi přepsání", diff --git a/mythtv/html/assets/i18n/da.json b/mythtv/html/assets/i18n/da.json index 3a7862039aa..0a0938915f5 100644 --- a/mythtv/html/assets/i18n/da.json +++ b/mythtv/html/assets/i18n/da.json @@ -182,7 +182,9 @@ "del_override": "Optag denne visning med normale muligheder", "del_template": "Slet denne optagelsesregelskabelon", "dont_rec_override": "Optag ikke denne visning", + "forget_history": "Glem historik for at tillade optagelse af denne episode", "mod_template": "Rediger denne optagelsesregelskabelon", + "never_rec_override": "Optag aldrig denne episode", "not": "Optag ikke dette program", "one": "Optag kun én visning", "rec_override": "Optag denne visning med tilsidesættelsesmuligheder", diff --git a/mythtv/html/assets/i18n/de.json b/mythtv/html/assets/i18n/de.json index bdc6aa1c463..20edd5c1dc3 100644 --- a/mythtv/html/assets/i18n/de.json +++ b/mythtv/html/assets/i18n/de.json @@ -182,7 +182,9 @@ "del_override": "Zeichnen Sie diese Anzeige mit normalen Optionen auf", "del_template": "Löschen Sie diese Aufzeichnungsregelvorlage", "dont_rec_override": "Zeichnen Sie diese Vorführung nicht auf", + "forget_history": "Vergessen Sie den Verlauf, um die Aufnahme dieser Episode zu ermöglichen", "mod_template": "Ändern Sie diese Aufzeichnungsregelvorlage", + "never_rec_override": "Nehmen Sie diese Episode niemals auf", "not": "Nehmen Sie dieses Programm nicht auf", "one": "Zeichnen Sie nur eine Vorführung auf", "rec_override": "Zeichnen Sie diese Vorführung mit Überschreibungsoptionen auf", diff --git a/mythtv/html/assets/i18n/el.json b/mythtv/html/assets/i18n/el.json index b7ca4dfcb05..ac38e37c84c 100644 --- a/mythtv/html/assets/i18n/el.json +++ b/mythtv/html/assets/i18n/el.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Ενημέρωση Μεταδεδομένων", "mnu_updaterecgrp": "Αλλαγή ομάδας εγγραφής", "mnu_updaterecrule": "Ενημέρωση κανόνα εγγραφής", - "nonrerec": "Για να επιτρέψετε την επανεγγραφή του κατεστραμμένου προγράμματος, χρησιμοποιήστε το Allow Record.", + "nonrerec": "Για να επιτρέψετε την επανεγγραφή του κατεστραμμένου προγράμματος, χρησιμοποιήστε το Allow Rerecord.", "orig_airdate": "Πρωτότυπη ημερομηνία προβολής", "override_rule": "Προσθήκη ή επεξεργασία κανόνα παράκαμψης", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Καταγράψτε αυτήν την εμφάνιση με κανονικές επιλογές", "del_template": "Διαγράψτε αυτό το πρότυπο κανόνα εγγραφής", "dont_rec_override": "Μην καταγράψετε αυτήν την εμφάνιση", + "forget_history": "Ξεχάστε το ιστορικό για να επιτρέψετε την εγγραφή αυτού του επεισοδίου", "mod_template": "Τροποποιήστε αυτό το πρότυπο κανόνα εγγραφής", + "never_rec_override": "Μην ηχογραφήσετε ποτέ αυτό το επεισόδιο", "not": "Μην εγγράφετε αυτό το πρόγραμμα", "one": "Εγγραφή μόνο μίας εμφάνισης", "rec_override": "Καταγράψτε αυτήν την εμφάνιση με επιλογές παράκαμψης", diff --git a/mythtv/html/assets/i18n/en_CA.json b/mythtv/html/assets/i18n/en_CA.json index aefe9f32abc..87905f054af 100644 --- a/mythtv/html/assets/i18n/en_CA.json +++ b/mythtv/html/assets/i18n/en_CA.json @@ -41,18 +41,18 @@ "channeleditor": "Channel Editor", "guide": { "calendar_tip": "Date Picker: Select the time first, then the date.", - "catcolors": "Category Colors", + "catcolors": "Category Colours", "channel": "Channel", "channel_group": "Channel Group", - "color_customize": "Customize colors this by editing this file: ", - "color_expl": "Shows with categories that do not have a Category color use the Category Type color.", - "color_includes": "This list only includes colors for programs on the current page of the guide. The full list of colors is in the file mentioned below.", - "colors": "Colors", + "color_customize": "Customize colours by editing this file:", + "color_expl": "Shows with categories that do not have a Category colour use the Category Type colour.", + "color_includes": "This list only includes colours for programs on the current page of the guide. The full list of colours is in the file mentioned below.", + "colors": "Colours", "full_search": "Full Search", "people_search": "People Search", "retgrid": "Return to Grid Display", "title_search": "Title Search", - "typecolors": "Category Type Colors" + "typecolors": "Category Type Colours" }, "programguide": "Program Guide", "recordings": { @@ -92,7 +92,7 @@ "mnu_updatemeta": "Update Metadata", "mnu_updaterecgrp": "Change Recording Group", "mnu_updaterecrule": "Update Record Rule", - "nonrerec": "To alow rerecord of the damaged program, please use Allow Rerecord.", + "nonrerec": "To allow rerecord of the damaged program, please use Allow Rerecord.", "orig_airdate": "Orig Airdate", "override_rule": "Add or Edit Override Rule", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Record this showing with normal options", "del_template": "Delete this recording rule template", "dont_rec_override": "Do not record this showing", + "forget_history": "Forget history to allow recording this episode", "mod_template": "Modify this recording rule template", + "never_rec_override": "Never record this episode", "not": "Do Not Record This Program", "one": "Record Only One Showing", "rec_override": "Record this showing with override options", @@ -1343,7 +1345,7 @@ "user_help": "The MySQL user name to use while connecting to the database. The default is mythtv." }, "testbed": { - "title": "This is a testbed area", + "title": "This is a testbed area ", "welcome": "Welcome to MythTV Backend running on host" } } \ No newline at end of file diff --git a/mythtv/html/assets/i18n/en_GB.json b/mythtv/html/assets/i18n/en_GB.json index eb694ace460..4bd608bbed8 100644 --- a/mythtv/html/assets/i18n/en_GB.json +++ b/mythtv/html/assets/i18n/en_GB.json @@ -41,18 +41,18 @@ "channeleditor": "Channel Editor", "guide": { "calendar_tip": "Date Picker: Select the time first, then the date.", - "catcolors": "Category Colors", + "catcolors": "Category Colours", "channel": "Channel", "channel_group": "Channel Group", - "color_customize": "Customize colors this by editing this file:", - "color_expl": "Shows with categories that do not have a Category color use the Category Type color.", - "color_includes": "This list only includes colors for programs on the current page of the guide. The full list of colors is in the file mentioned below.", - "colors": "Colors", + "color_customize": "Customize colours by editing this file:", + "color_expl": "Shows with categories that do not have a Category colour use the Category Type colour.", + "color_includes": "This list only includes colours for programs on the current page of the guide. The full list of colours is in the file mentioned below.", + "colors": "Colours", "full_search": "Full Search", "people_search": "People Search", "retgrid": "Return to Grid Display", "title_search": "Title Search", - "typecolors": "Category Type Colors" + "typecolors": "Category Type Colours" }, "programguide": "Program Guide", "recordings": { @@ -92,7 +92,7 @@ "mnu_updatemeta": "Update Metadata", "mnu_updaterecgrp": "Change Recording Group", "mnu_updaterecrule": "Update Record Rule", - "nonrerec": "To allow re record of the damaged program, please use Allow Re Record.", + "nonrerec": "To allow rerecord of the damaged program, please use Allow Rerecord.", "orig_airdate": "Orig Airdate", "override_rule": "Add or Edit Override Rule", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Record this showing with normal options", "del_template": "Delete this recording rule template", "dont_rec_override": "Do not record this showing", + "forget_history": "Forget history to allow recording this episode", "mod_template": "Modify this recording rule template", + "never_rec_override": "Never record this episode", "not": "Do Not Record This Program", "one": "Record Only One Showing", "rec_override": "Record this showing with override options", diff --git a/mythtv/html/assets/i18n/en_US.json b/mythtv/html/assets/i18n/en_US.json index 05678c9abe6..be4709727ef 100644 --- a/mythtv/html/assets/i18n/en_US.json +++ b/mythtv/html/assets/i18n/en_US.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Update Metadata", "mnu_updaterecgrp": "Change Recording Group", "mnu_updaterecrule": "Update Record Rule", - "nonrerec": "To alow rerecord of the damaged program, please use Allow Rerecord.", + "nonrerec": "To allow rerecord of the damaged program, please use Allow Rerecord.", "orig_airdate": "Orig Airdate", "override_rule": "Add or Edit Override Rule", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Record this showing with normal options", "del_template": "Delete this recording rule template", "dont_rec_override": "Do not record this showing", + "forget_history": "Forget history to allow recording this episode", "mod_template": "Modify this recording rule template", + "never_rec_override": "Never record this episode", "not": "Do Not Record This Program", "one": "Record Only One Showing", "rec_override": "Record this showing with override options", diff --git a/mythtv/html/assets/i18n/es.json b/mythtv/html/assets/i18n/es.json index 9e5dfedfa43..810a3dc6a13 100644 --- a/mythtv/html/assets/i18n/es.json +++ b/mythtv/html/assets/i18n/es.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Actualizar metadatos", "mnu_updaterecgrp": "Cambiar grupo de grabación", "mnu_updaterecrule": "Actualizar regla de registro", - "nonrerec": "Para permitir la regrabación del programa dañado, utilice Permitir regrabación.", + "nonrerec": "Para permitir volver a grabar el programa dañado, utilice Permitir volver a grabar.", "orig_airdate": "Fecha de emisión original", "override_rule": "Agregar o editar regla de anulación", "recgrp": "Grupo rec.", @@ -182,7 +182,9 @@ "del_override": "Grabar esta proyección con opciones normales", "del_template": "Eliminar esta plantilla de regla de grabación", "dont_rec_override": "No grabar esta muestra", + "forget_history": "Olvidar el historial para permitir la grabación de este episodio.", "mod_template": "Modificar esta plantilla de regla de grabación", + "never_rec_override": "Nunca grabes este episodio", "not": "No grabar este programa", "one": "Registrar solo una presentación", "rec_override": "Grabar esta proyección con opciones de anulación", diff --git a/mythtv/html/assets/i18n/es_ES.json b/mythtv/html/assets/i18n/es_ES.json index b94a597a179..ab5836477d1 100644 --- a/mythtv/html/assets/i18n/es_ES.json +++ b/mythtv/html/assets/i18n/es_ES.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Actualizar metadatos", "mnu_updaterecgrp": "Cambiar grupo de grabación", "mnu_updaterecrule": "Actualizar regla de registro", - "nonrerec": "Para permitir la regrabación del programa dañado, utilice Permitir regrabación.", + "nonrerec": "Para permitir volver a grabar el programa dañado, utilice Permitir volver a grabar.", "orig_airdate": "Fecha de emisión original", "override_rule": "Agregar o editar regla de anulación", "recgrp": "Grupo rec.", @@ -182,7 +182,9 @@ "del_override": "Grabar esta proyección con opciones normales", "del_template": "Eliminar esta plantilla de regla de grabación", "dont_rec_override": "No grabar esta muestra", + "forget_history": "Olvidar el historial para permitir la grabación de este episodio.", "mod_template": "Modificar esta plantilla de regla de grabación", + "never_rec_override": "Nunca grabes este episodio", "not": "No grabar este programa", "one": "Registrar solo una presentación", "rec_override": "Grabar esta proyección con opciones de anulación", diff --git a/mythtv/html/assets/i18n/et.json b/mythtv/html/assets/i18n/et.json index 86337b1c50b..a8d35f933ff 100644 --- a/mythtv/html/assets/i18n/et.json +++ b/mythtv/html/assets/i18n/et.json @@ -182,7 +182,9 @@ "del_override": "Salvestage see näitamine tavaliste suvanditega", "del_template": "Kustutage see salvestusreegli mall", "dont_rec_override": "Ärge salvestage seda saadet", + "forget_history": "Selle jao salvestamise lubamiseks unustage ajalugu", "mod_template": "Muutke seda salvestusreegli malli", + "never_rec_override": "Ärge kunagi salvestage seda episoodi", "not": "Ärge salvestage seda programmi", "one": "Salvestage ainult üks esitus", "rec_override": "Salvestage see näitamine alistamisvalikutega", diff --git a/mythtv/html/assets/i18n/fi.json b/mythtv/html/assets/i18n/fi.json index b32a97f1c3f..1bcc4c3af86 100644 --- a/mythtv/html/assets/i18n/fi.json +++ b/mythtv/html/assets/i18n/fi.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Päivitä metatiedot", "mnu_updaterecgrp": "Muuta tallennusryhmää", "mnu_updaterecrule": "Päivitä tallennussääntö", - "nonrerec": "Salli vioittuneen ohjelman tallentaminen uudelleen valitsemalla Allow Re Record.", + "nonrerec": "Jos haluat sallia vaurioituneen ohjelman uudelleentallentamisen, käytä Salli nauhoitus uudelleen.", "orig_airdate": "Alkuperäinen lentopäivämäärä", "override_rule": "Lisää tai muokkaa ohitussääntöä", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Tallenna tämä esitys tavallisilla vaihtoehdoilla", "del_template": "Poista tämä tallennussääntömalli", "dont_rec_override": "Älä tallenna tätä esitystä", + "forget_history": "Unohda historia salliaksesi tämän jakson tallentamisen", "mod_template": "Muokkaa tätä tallennussääntömallia", + "never_rec_override": "Älä koskaan nauhoita tätä jaksoa", "not": "Älä tallenna tätä ohjelmaa", "one": "Tallenna vain yksi esitys", "rec_override": "Tallenna tämä esitys ohitusvaihtoehdoilla", diff --git a/mythtv/html/assets/i18n/fr.json b/mythtv/html/assets/i18n/fr.json index 0e4bae3d23d..f3307a26ccf 100644 --- a/mythtv/html/assets/i18n/fr.json +++ b/mythtv/html/assets/i18n/fr.json @@ -182,7 +182,9 @@ "del_override": "Enregistrez cette projection avec les options normales", "del_template": "Supprimer ce modèle de règle d'enregistrement", "dont_rec_override": "Ne pas enregistrer cette émission", + "forget_history": "Oublier l'historique pour autoriser l'enregistrement de cet épisode", "mod_template": "Modifier ce modèle de règle d'enregistrement", + "never_rec_override": "N'enregistrez jamais cet épisode", "not": "Ne pas enregistrer ce programme", "one": "Enregistrer une seule projection", "rec_override": "Enregistrez cette émission avec des options de remplacement", diff --git a/mythtv/html/assets/i18n/he.json b/mythtv/html/assets/i18n/he.json index fdf759dfeff..c2cf0b951d9 100644 --- a/mythtv/html/assets/i18n/he.json +++ b/mythtv/html/assets/i18n/he.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "עדכן מטא נתונים", "mnu_updaterecgrp": "שנה קבוצת הקלטה", "mnu_updaterecrule": "עדכון כלל הרשומה", - "nonrerec": "כדי לאפשר הקלטה חוזרת של התוכנית הפגומה, אנא השתמש ב- Allow Re Record.", + "nonrerec": "כדי לאפשר הקלטה חוזרת של התוכנית הפגומה, אנא השתמש באפשר הקלטה מחדש.", "orig_airdate": "תאריך שידור מקורי", "override_rule": "הוסף או ערוך כלל ביטול", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "הקלט את ההופעה הזו עם אפשרויות רגילות", "del_template": "מחק תבנית כלל הקלטה זו", "dont_rec_override": "אין להקליט את ההופעה הזו", + "forget_history": "שכח מההיסטוריה כדי לאפשר הקלטת הפרק הזה", "mod_template": "שנה תבנית כלל הקלטה זו", + "never_rec_override": "לעולם אל תקליטו את הפרק הזה", "not": "אין להקליט תוכנית זו", "one": "הקלט רק מופע אחד", "rec_override": "הקלט את ההצגה הזו עם אפשרויות ביטול", diff --git a/mythtv/html/assets/i18n/hr.json b/mythtv/html/assets/i18n/hr.json index 8c6bb9becdb..82adcd2c25e 100644 --- a/mythtv/html/assets/i18n/hr.json +++ b/mythtv/html/assets/i18n/hr.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Ažuriraj metapodatke", "mnu_updaterecgrp": "Promjena grupe za snimanje", "mnu_updaterecrule": "Pravilo za ažuriranje zapisa", - "nonrerec": "Kako biste omogućili ponovno snimanje oštećenog programa, koristite Dopusti ponovno snimanje.", + "nonrerec": "Kako biste dopustili ponovno snimanje oštećenog programa, koristite Dopusti ponovno snimanje.", "orig_airdate": "Izvorni datum emitiranja", "override_rule": "Dodajte ili uredite pravilo nadjačavanja", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Snimite ovu emisiju s normalnim opcijama", "del_template": "Izbriši ovaj predložak pravila snimanja", "dont_rec_override": "Nemojte snimati ovu emisiju", + "forget_history": "Zaboravi povijest da dopustiš snimanje ove epizode", "mod_template": "Izmijenite ovaj predložak pravila snimanja", + "never_rec_override": "Nikada ne snimaj ovu epizodu", "not": "Ne snimajte ovaj program", "one": "Snimi samo jedno prikazivanje", "rec_override": "Snimite ovo prikazivanje s opcijama nadjačavanja", diff --git a/mythtv/html/assets/i18n/hu.json b/mythtv/html/assets/i18n/hu.json index c7e2f6b9265..510473ec2e7 100644 --- a/mythtv/html/assets/i18n/hu.json +++ b/mythtv/html/assets/i18n/hu.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Frissítse a metaadatokat", "mnu_updaterecgrp": "Felvételi csoport módosítása", "mnu_updaterecrule": "Frissítse a rögzítési szabályt", - "nonrerec": "A sérült program újbóli rögzítésének engedélyezéséhez használja az Allow Re Record lehetőséget.", + "nonrerec": "A sérült program újbóli rögzítésének engedélyezéséhez használja az Újrarögzítés engedélyezése lehetőséget.", "orig_airdate": "Eredeti sugárzási dátum", "override_rule": "Felülbírálási szabály hozzáadása vagy szerkesztése", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Rögzítse ezt a megjelenítést normál opciókkal", "del_template": "Törölje ezt a rögzítési szabálysablont", "dont_rec_override": "Ne rögzítse ezt a műsort", + "forget_history": "Az epizód rögzítésének engedélyezéséhez felejtse el az előzményeket", "mod_template": "Módosítsa ezt a rögzítési szabálysablont", + "never_rec_override": "Soha ne vegye fel ezt az epizódot", "not": "Ne rögzítse ezt a programot", "one": "Csak egy bemutató rögzítése", "rec_override": "Rögzítse ezt a megjelenítést felülbírálási opciókkal", diff --git a/mythtv/html/assets/i18n/is.json b/mythtv/html/assets/i18n/is.json index b3e127332e4..d3420a92702 100644 --- a/mythtv/html/assets/i18n/is.json +++ b/mythtv/html/assets/i18n/is.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Uppfærðu lýsigögn", "mnu_updaterecgrp": "Skiptu um upptökuhóp", "mnu_updaterecrule": "Uppfærðu skráningarreglu", - "nonrerec": "Til að leyfa endurskráningu á skemmda forritinu skaltu nota Allow Re Record.", + "nonrerec": "Til að leyfa endurupptöku á skemmda forritinu skaltu nota Leyfa endurupptöku.", "orig_airdate": "Upprunaleg flugdagsetning", "override_rule": "Bæta við eða breyta hnekkjareglu", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Skráðu þessa sýningu með venjulegum valkostum", "del_template": "Eyða þessu upptökureglusniðmáti", "dont_rec_override": "Ekki taka upp þessa sýningu", + "forget_history": "Gleymdu sögunni til að leyfa upptöku á þessum þætti", "mod_template": "Breyttu þessu upptökureglusniðmáti", + "never_rec_override": "Taktu aldrei upp þennan þátt", "not": "Ekki taka upp þetta forrit", "one": "Taka aðeins upp eina sýningu", "rec_override": "Skráðu þessa sýningu með hnekkjavalkostum", diff --git a/mythtv/html/assets/i18n/it.json b/mythtv/html/assets/i18n/it.json index 6e3d5c9ee14..30f30ffe828 100644 --- a/mythtv/html/assets/i18n/it.json +++ b/mythtv/html/assets/i18n/it.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Aggiorna metadati", "mnu_updaterecgrp": "Cambia gruppo di registrazione", "mnu_updaterecrule": "Aggiorna regola registrazione", - "nonrerec": "Per consentire la ri-registrazione del programma danneggiato, utilizzare Consenti ri-registrazione.", + "nonrerec": "Per consentire la nuova registrazione del programma danneggiato, utilizzare Consenti nuova registrazione.", "orig_airdate": "Data messa in onda originale", "override_rule": "Aggiungi o modifica regola di esclusione", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Registra questo programma con le opzioni normali", "del_template": "Elimina questo modello regola di registrazione", "dont_rec_override": "Non registrare questo programma", + "forget_history": "Dimentica la cronologia per consentire la registrazione di questo episodio", "mod_template": "Modifica questo modello regola di registrazione", + "never_rec_override": "Non registrare mai questo episodio", "not": "Non registrare questo programma", "one": "Registra solo un evento", "rec_override": "Registra questo programma con le opzioni di esclusione", diff --git a/mythtv/html/assets/i18n/ja.json b/mythtv/html/assets/i18n/ja.json index a1c41522073..5ffae4547d7 100644 --- a/mythtv/html/assets/i18n/ja.json +++ b/mythtv/html/assets/i18n/ja.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "メタデータの更新", "mnu_updaterecgrp": "記録グループの変更", "mnu_updaterecrule": "レコード更新ルール", - "nonrerec": "破損した番組の再録画を許可するには、「再録画を許可」を使用してください。", + "nonrerec": "破損したプログラムの再録画を許可するには、「再録画を許可」を使用してください。", "orig_airdate": "元の放送日", "override_rule": "上書きルールの追加または編集", "recgrp": "レクグループ", @@ -182,7 +182,9 @@ "del_override": "この表示を通常のオプションで録画します", "del_template": "この記録ルール テンプレートを削除します", "dont_rec_override": "この番組を録画しないでください", + "forget_history": "このエピソードの録画を許可するには履歴を忘れてください", "mod_template": "この記録ルール テンプレートを変更します", + "never_rec_override": "このエピソードは絶対に録画しないでください", "not": "この番組を録画しないでください", "one": "1 つの番組だけを録画する", "rec_override": "上書きオプションを使用してこの表示を記録します", diff --git a/mythtv/html/assets/i18n/nb.json b/mythtv/html/assets/i18n/nb.json index 2207a164788..6c93bb98287 100644 --- a/mythtv/html/assets/i18n/nb.json +++ b/mythtv/html/assets/i18n/nb.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Oppdater metadata", "mnu_updaterecgrp": "Endre opptaksgruppe", "mnu_updaterecrule": "Oppdater postregel", - "nonrerec": "For å tillate ny registrering av det skadede programmet, vennligst bruk Tillat ny registrering.", + "nonrerec": "For å tillate ny opptak av det skadede programmet, vennligst bruk Tillat ny opptak.", "orig_airdate": "Original luftdato", "override_rule": "Legg til eller rediger overstyringsregel", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Ta opp denne visningen med normale alternativer", "del_template": "Slett denne opptaksregelmalen", "dont_rec_override": "Ikke ta opp denne visningen", + "forget_history": "Glem historien for å tillate opptak av denne episoden", "mod_template": "Endre denne opptaksregelmalen", + "never_rec_override": "Ta aldri opp denne episoden", "not": "Ikke ta opp dette programmet", "one": "Ta opp kun én visning", "rec_override": "Ta opp denne visningen med overstyringsalternativer", diff --git a/mythtv/html/assets/i18n/nl.json b/mythtv/html/assets/i18n/nl.json index 3227bdbc7f9..742befac98f 100644 --- a/mythtv/html/assets/i18n/nl.json +++ b/mythtv/html/assets/i18n/nl.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Metagegevens bijwerken", "mnu_updaterecgrp": "Wijzig de opnamegroep", "mnu_updaterecrule": "Recordregel bijwerken", - "nonrerec": "Om opnieuw opnemen van het beschadigde programma mogelijk te maken, gebruikt u Toestaan ​​opnieuw opnemen.", + "nonrerec": "Om het opnieuw opnemen van het beschadigde programma mogelijk te maken, gebruikt u Toestaan ​​opnieuw opnemen.", "orig_airdate": "Originele uitzenddatum", "override_rule": "Negeerregel toevoegen of bewerken", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Neem deze vertoning op met normale opties", "del_template": "Verwijder deze sjabloon voor opnameregels", "dont_rec_override": "Neem deze vertoning niet op", + "forget_history": "Vergeet de geschiedenis om deze aflevering op te nemen", "mod_template": "Wijzig deze sjabloon voor opnameregels", + "never_rec_override": "Neem deze aflevering nooit op", "not": "Neem dit programma niet op", "one": "Neem slechts één weergave op", "rec_override": "Neem deze vertoning op met onderdrukkingsopties", diff --git a/mythtv/html/assets/i18n/pl.json b/mythtv/html/assets/i18n/pl.json index 9e9c78e0324..68fc606bb7d 100644 --- a/mythtv/html/assets/i18n/pl.json +++ b/mythtv/html/assets/i18n/pl.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Zaktualizuj metadane", "mnu_updaterecgrp": "Zmień grupę nagrań", "mnu_updaterecrule": "Zaktualizuj regułę rekordu", - "nonrerec": "Aby umożliwić ponowne nagranie uszkodzonego programu, użyj opcji Zezwól na ponowne nagranie.", + "nonrerec": "Aby zezwolić na ponowne nagranie uszkodzonego programu, użyj opcji Zezwól na ponowne nagranie.", "orig_airdate": "Oryginalna data emisji", "override_rule": "Dodaj lub edytuj regułę nadpisywania", "recgrp": "Grupa nagr", @@ -182,7 +182,9 @@ "del_override": "Nagraj ten pokaz z normalnymi opcjami", "del_template": "Usuń ten szablon reguły nagrywania", "dont_rec_override": "Nie nagrywaj tego pokazu", + "forget_history": "Zapomnij historię, aby umożliwić nagranie tego odcinka", "mod_template": "Zmodyfikuj ten szablon reguły nagrywania", + "never_rec_override": "Nigdy nie nagrywaj tego odcinka", "not": "Nie nagrywaj tego programu", "one": "Nagraj tylko jeden pokaz", "rec_override": "Nagraj to pokazywanie z opcjami zastępowania", diff --git a/mythtv/html/assets/i18n/pt.json b/mythtv/html/assets/i18n/pt.json index a77b79bb08a..e9cccdc29f5 100644 --- a/mythtv/html/assets/i18n/pt.json +++ b/mythtv/html/assets/i18n/pt.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Atualizar metadados", "mnu_updaterecgrp": "Alterar grupo de gravação", "mnu_updaterecrule": "Atualizar regra de registro", - "nonrerec": "Para permitir a nova gravação do programa danificado, use Permitir nova gravação.", + "nonrerec": "Para permitir a regravação do programa danificado, use Permitir nova gravação.", "orig_airdate": "Data Original de Transmissão", "override_rule": "Adicionar ou editar regra de substituição", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Grave esta exibição com opções normais", "del_template": "Excluir este modelo de regra de gravação", "dont_rec_override": "Não grave esta exibição", + "forget_history": "Esqueça o histórico para permitir a gravação deste episódio", "mod_template": "Modifique este modelo de regra de gravação", + "never_rec_override": "Nunca grave este episódio", "not": "Não Grave Este Programa", "one": "Gravar apenas uma exibição", "rec_override": "Grave esta exibição com opções de substituição", diff --git a/mythtv/html/assets/i18n/pt_BR.json b/mythtv/html/assets/i18n/pt_BR.json index a77b79bb08a..e9cccdc29f5 100644 --- a/mythtv/html/assets/i18n/pt_BR.json +++ b/mythtv/html/assets/i18n/pt_BR.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Atualizar metadados", "mnu_updaterecgrp": "Alterar grupo de gravação", "mnu_updaterecrule": "Atualizar regra de registro", - "nonrerec": "Para permitir a nova gravação do programa danificado, use Permitir nova gravação.", + "nonrerec": "Para permitir a regravação do programa danificado, use Permitir nova gravação.", "orig_airdate": "Data Original de Transmissão", "override_rule": "Adicionar ou editar regra de substituição", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Grave esta exibição com opções normais", "del_template": "Excluir este modelo de regra de gravação", "dont_rec_override": "Não grave esta exibição", + "forget_history": "Esqueça o histórico para permitir a gravação deste episódio", "mod_template": "Modifique este modelo de regra de gravação", + "never_rec_override": "Nunca grave este episódio", "not": "Não Grave Este Programa", "one": "Gravar apenas uma exibição", "rec_override": "Grave esta exibição com opções de substituição", diff --git a/mythtv/html/assets/i18n/ru.json b/mythtv/html/assets/i18n/ru.json index 8e1e6132866..a1cafbbd2c9 100644 --- a/mythtv/html/assets/i18n/ru.json +++ b/mythtv/html/assets/i18n/ru.json @@ -182,7 +182,9 @@ "del_override": "Запишите этот показ с обычными параметрами", "del_template": "Удалить этот шаблон правила записи", "dont_rec_override": "Не записывайте этот показ", + "forget_history": "Забудьте историю, чтобы разрешить запись этого эпизода", "mod_template": "Изменить этот шаблон правила записи", + "never_rec_override": "Никогда не записывайте этот эпизод", "not": "Не записывайте эту программу", "one": "Запись только одного показа", "rec_override": "Запишите этот показ с параметрами переопределения", diff --git a/mythtv/html/assets/i18n/sl.json b/mythtv/html/assets/i18n/sl.json index 458637e0f2d..e5105d8bca7 100644 --- a/mythtv/html/assets/i18n/sl.json +++ b/mythtv/html/assets/i18n/sl.json @@ -182,7 +182,9 @@ "del_override": "Posnemite to predstavo z običajnimi možnostmi", "del_template": "Izbriši to predlogo pravila snemanja", "dont_rec_override": "Ne snemajte te oddaje", + "forget_history": "Pozabi na zgodovino, če želiš dovoliti snemanje te epizode", "mod_template": "Spremenite to predlogo pravila snemanja", + "never_rec_override": "Nikoli ne posnemite te epizode", "not": "Ne snemajte tega programa", "one": "Posnemite samo eno prikazovanje", "rec_override": "Posnemite to prikazovanje z možnostmi preglasitve", diff --git a/mythtv/html/assets/i18n/sv.json b/mythtv/html/assets/i18n/sv.json index a9c12ea756a..3a2b8bdfaba 100644 --- a/mythtv/html/assets/i18n/sv.json +++ b/mythtv/html/assets/i18n/sv.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "Uppdatera metadata", "mnu_updaterecgrp": "Byt inspelningsgrupp", "mnu_updaterecrule": "Uppdatera postregel", - "nonrerec": "För att tillåta återinspelning av det skadade programmet, använd Allow Re Record.", + "nonrerec": "För att tillåta återinspelning av det skadade programmet, använd Tillåt återinspelning.", "orig_airdate": "Original Air Date", "override_rule": "Lägg till eller redigera åsidosättningsregel", "recgrp": "Rec Grp", @@ -182,7 +182,9 @@ "del_override": "Spela in denna visning med normala alternativ", "del_template": "Ta bort den här inspelningsregelmallen", "dont_rec_override": "Spela inte in denna visning", + "forget_history": "Glöm historiken för att tillåta inspelning av det här avsnittet", "mod_template": "Ändra den här inspelningsregelmallen", + "never_rec_override": "Spela aldrig in det här avsnittet", "not": "Spela inte in det här programmet", "one": "Spela in endast en visning", "rec_override": "Spela in denna visning med åsidosättande alternativ", diff --git a/mythtv/html/assets/i18n/tr.json b/mythtv/html/assets/i18n/tr.json index b7d17135a8c..caa7d625c60 100644 --- a/mythtv/html/assets/i18n/tr.json +++ b/mythtv/html/assets/i18n/tr.json @@ -182,7 +182,9 @@ "del_override": "Bu gösterimi normal seçeneklerle kaydedin", "del_template": "Bu kayıt kuralı şablonunu sil", "dont_rec_override": "Bu gösterimi kaydetme", + "forget_history": "Bu bölümün kaydedilmesine izin vermek için geçmişi unut", "mod_template": "Bu kayıt kuralı şablonunu değiştirin", + "never_rec_override": "Bu bölümü asla kaydetme", "not": "Bu Programı Kaydetme", "one": "Yalnızca Bir Gösterimi Kaydedin", "rec_override": "Geçersiz kılma seçenekleriyle bu gösterimi kaydedin", diff --git a/mythtv/html/assets/i18n/zh_CN.json b/mythtv/html/assets/i18n/zh_CN.json index 4a59a215449..a6392b3473c 100644 --- a/mythtv/html/assets/i18n/zh_CN.json +++ b/mythtv/html/assets/i18n/zh_CN.json @@ -182,7 +182,9 @@ "del_override": "使用正常选项记录此显示", "del_template": "删除该录音规则模板", "dont_rec_override": "请勿录制此放映", + "forget_history": "忘记历史记录以允许录制此剧集", "mod_template": "修改此录制规则模板", + "never_rec_override": "切勿录制此集", "not": "请勿录制该节目", "one": "仅记录一场演出", "rec_override": "使用覆盖选项记录此显示", diff --git a/mythtv/html/assets/i18n/zh_HK.json b/mythtv/html/assets/i18n/zh_HK.json index e3f6a846577..b4025ac3a02 100644 --- a/mythtv/html/assets/i18n/zh_HK.json +++ b/mythtv/html/assets/i18n/zh_HK.json @@ -92,7 +92,7 @@ "mnu_updatemeta": "更新元數據", "mnu_updaterecgrp": "更改錄音組", "mnu_updaterecrule": "更新記錄規則", - "nonrerec": "要允許重新錄製損壞的程序,請使用“允許重新錄製”。", + "nonrerec": "若要允許重新錄製損壞的程序,請使用“允許重新錄製”。", "orig_airdate": "原始播出日期", "override_rule": "添加或編輯覆蓋規則", "recgrp": "記錄組", @@ -182,7 +182,9 @@ "del_override": "使用正常選項記錄此顯示", "del_template": "刪除該錄音規則模板", "dont_rec_override": "請勿錄製此放映", + "forget_history": "忘記歷史記錄以允許錄製此劇集", "mod_template": "修改此錄製規則模板", + "never_rec_override": "切勿錄製此集", "not": "請勿錄製該節目", "one": "僅記錄一場演出", "rec_override": "使用覆蓋選項記錄此顯示", diff --git a/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.html b/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.html index 1b9ec033153..e880f551fa0 100644 --- a/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.html +++ b/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.html @@ -12,7 +12,8 @@

{{ 'dashboard.upcoming.heading' | translate }}

- + {{ 'dashboard.upcoming.heading' | translate }}       {{ 'dashboard.upcoming.recrule' | translate }}:   - + {{ 'dashboard.upcoming.heading' | translate }} [style]="{width: '2rem', height: '2rem'}"> + (click)="refresh()" pTooltip="{{ 'common.refresh' | translate }}">    {{ programs.length }} Rows @@ -61,7 +62,8 @@

{{ 'dashboard.upcoming.heading' | translate }}

{{ 'dashboard.recordings.orig_airdate' | translate }} - {{ 'dashboard.recordings.channel' | translate + {{ + 'dashboard.recordings.channel' | translate }} {{ 'dashboard.recordings.recgrp' | translate }} @@ -103,7 +105,7 @@

{{ 'dashboard.upcoming.heading' | translate }}

{{program.Channel.ChanNum}} {{program.Channel.CallSign}} {{program.Recording.RecGroup}} -
{{dataService.recStatusText[program.Recording.StatusName]}}
@@ -125,7 +127,8 @@

{{ 'dashboard.upcoming.heading' | translate }}

+ [disabled]="program.Recording && (program.Recording.RecType == 7 || program.Recording.RecType == 8 + || program.Recording.StatusName == 'NeverRecord')">
diff --git a/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.ts b/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.ts index b9cba72025d..afb4ee9c739 100644 --- a/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.ts +++ b/mythtv/html/backend/src/app/dashboard/upcoming/upcoming.component.ts @@ -137,8 +137,8 @@ export class UpcomingComponent implements OnInit, SchedulerSummary { formatStartDate(program: ScheduleOrProgram, rowIndex: number): string { let priorDate = ''; - if (rowIndex > 0 && this.programs[rowIndex-1].Recording.StartTs) - priorDate = this.utility.formatDate(this.programs[rowIndex-1].Recording.StartTs, true, true); + if (rowIndex > 0 && this.programs[rowIndex - 1].Recording.StartTs) + priorDate = this.utility.formatDate(this.programs[rowIndex - 1].Recording.StartTs, true, true); let thisDate = this.utility.formatDate(program.Recording.StartTs, true, true); if (priorDate == thisDate) return ' '; @@ -171,7 +171,8 @@ export class UpcomingComponent implements OnInit, SchedulerSummary { override(program: ScheduleOrProgram) { if (this.inter.sched) { - if (program.Recording.RecType == 7) // If already an override + if (program.Recording.RecType == 7 || program.Recording.RecType == 8 + || program.Recording.StatusName == 'NeverRecord') // If already an override this.inter.sched.open(program); else this.inter.sched.open(program, undefined, { Type: 'Override Recording' }); diff --git a/mythtv/html/backend/src/app/schedule/schedule.component.html b/mythtv/html/backend/src/app/schedule/schedule.component.html index b0e5e1ce2a2..c8504f8e332 100644 --- a/mythtv/html/backend/src/app/schedule/schedule.component.html +++ b/mythtv/html/backend/src/app/schedule/schedule.component.html @@ -106,7 +106,8 @@ + optionValue="value" [maxlength]="0" [style]="{'minWidth':'400px'}" name="Type" #Type="ngModel" + [disabled]="schedTypeDisabled"> @@ -316,7 +317,7 @@ + [disabled]="!schedform.dirty || recRule.Id == 0 && recRule.Type == 'Not Recording' || !recRule.Title || schedTypeDisabled">
diff --git a/mythtv/html/backend/src/app/schedule/schedule.component.ts b/mythtv/html/backend/src/app/schedule/schedule.component.ts index 8ca4fa68f35..148981e4db3 100644 --- a/mythtv/html/backend/src/app/schedule/schedule.component.ts +++ b/mythtv/html/backend/src/app/schedule/schedule.component.ts @@ -50,7 +50,6 @@ export class ScheduleComponent implements OnInit { successCount = 0; errorCount = 0; errortext = ''; - htmlRegex = new RegExp("|"); srchTypeDisabled = true; titleRows = 1; subTitleRows = 1; @@ -65,6 +64,12 @@ export class ScheduleComponent implements OnInit { reqRecRule?: RecRule reqDate = new Date(); reqDuration = 60; + metaPrefix = ''; + templateId = 0; + neverRecord = false; + schedTypeDisabled = false; + + htmlRegex = new RegExp("|"); recRules: RecRule[] = []; playGroups: string[] = []; @@ -127,8 +132,6 @@ export class ScheduleComponent implements OnInit { selectedPostProc: string[] = []; - metaPrefix = ''; - templateId = 0; constructor(private dvrService: DvrService, private translate: TranslateService, private mythService: MythService, public utility: UtilityService, private channelService: ChannelService) { @@ -240,6 +243,11 @@ export class ScheduleComponent implements OnInit { this.reqChannel = channel; this.reqRecRule = recRule; this.titleRows = 1; + this.neverRecord = false; + this.successCount = 0; + this.errorCount = 0; + this.errortext = ''; + this.metaPrefix = ''; if (program || recRule) { this.srchTypeDisabled = true; this.srchTypeList[0].inactive = false; @@ -248,6 +256,7 @@ export class ScheduleComponent implements OnInit { this.srchTypeDisabled = false; this.srchTypeList[0].inactive = true; } + this.schedTypeDisabled = false; this.loadLists(); } @@ -268,6 +277,7 @@ export class ScheduleComponent implements OnInit { } else this.recRule = undefined; + this.channel = undefined; if (this.reqChannel) this.channel = this.reqChannel; else if (this.reqRecRule) @@ -312,6 +322,10 @@ export class ScheduleComponent implements OnInit { if (newOverride) this.recRule.ParentId = this.program!.Recording.RecordId; + if (this.reqProgram?.Recording?.StatusName == 'NeverRecord') { + this.neverRecord = true; + ruleType = 'Never Record'; + } if (!ruleType) ruleType = 'Not Recording'; @@ -336,6 +350,8 @@ export class ScheduleComponent implements OnInit { this.recRule.Inactive = false; setTimeout(() => { + if (newOverride) + ruleType = 'Not Recording'; if (this.recRule) this.recRule.Type = ruleType; this.currentForm.form.markAsPristine(); @@ -346,6 +362,7 @@ export class ScheduleComponent implements OnInit { let ruleType = recRule.Type; this.typeList.length = 0; this.override = false; + if (ruleType == 'Recording Template') { this.typeList.push( { @@ -362,22 +379,45 @@ export class ScheduleComponent implements OnInit { ); } } - else if (['Override Recording', 'Do not Record'].indexOf(ruleType) > -1) { + else if (['Override Recording', 'Do not Record'].indexOf(ruleType) > -1 + || this.neverRecord) { this.override = true; + if (this.neverRecord) + this.typeList.push( + { + prompt: this.translate.instant('dashboard.sched.type.forget_history'), + value: 'Forget History' + } + ); + else + this.typeList.push( + { + prompt: this.translate.instant('dashboard.sched.type.del_override'), + value: 'Not Recording' + }, + { + prompt: this.translate.instant('dashboard.sched.type.rec_override'), + value: 'Override Recording' + }, + { + prompt: this.translate.instant('dashboard.sched.type.dont_rec_override'), + value: 'Do not Record' + }); this.typeList.push( { - prompt: this.translate.instant('dashboard.sched.type.del_override'), - value: 'Not Recording' - }, - { - prompt: this.translate.instant('dashboard.sched.type.rec_override'), - value: 'Override Recording' - }, - { - prompt: this.translate.instant('dashboard.sched.type.dont_rec_override'), - value: 'Do not Record' + prompt: this.translate.instant('dashboard.sched.type.never_rec_override'), + value: 'Never Record' } ); + + if (this.reqProgram?.Recording?.StatusName == 'CurrentRecording' + || this.reqProgram?.Recording?.StatusName == 'PreviousRecording') + this.typeList.push( + { + prompt: this.translate.instant('dashboard.sched.type.forget_history'), + value: 'Forget History' + } + ); } else { const isManual = (recRule.SearchType == 'Manual Search'); @@ -421,7 +461,7 @@ export class ScheduleComponent implements OnInit { } ); } - // If the selected entry is no longet in the available list, set it to the + // If the selected entry is no longer in the available list, set it to the // first item in the list if (this.typeList.findIndex((x) => x.value == recRule.Type) == -1) { recRule.Type = this.typeList[0].value; @@ -627,7 +667,7 @@ export class ScheduleComponent implements OnInit { this.displayDlg = false; return; } - if (this.currentForm.dirty) { + if (this.currentForm.dirty && !this.schedTypeDisabled) { if (this.displayUnsaved) { // Close on the unsaved warning this.displayUnsaved = false; @@ -650,9 +690,13 @@ export class ScheduleComponent implements OnInit { saveObserver = { next: (x: any) => { if (this.recRule) { - if (this.recRule.Id && x.bool) { + if ((this.recRule.Id || this.recRule.Type == 'Never Record' + || this.recRule.Type == 'Forget History') && x.bool) { this.successCount++; this.currentForm.form.markAsPristine(); + // After setting never record, disable further changes + if (this.recRule.Type == 'Never Record' || this.neverRecord) + this.schedTypeDisabled = true; setTimeout(() => this.inter.summaryComponent.refresh(), 3000); // after a deletion clear out the id so the next save // would add a new one. @@ -692,6 +736,27 @@ export class ScheduleComponent implements OnInit { this.errortext = ''; if (!this.recRule) return; + if (this.recRule.Type == 'Forget History') { + if (this.program && this.channel) { + this.dvrService.AllowReRecord(undefined, this.channel.ChanId, + this.program.StartTime).subscribe(this.saveObserver); + } + return; + } + if (this.neverRecord) { + // For a neverRecord situation the only valid entry is "Forget History" + // so if it gets here there is nothing to do. + this.currentForm.form.markAsPristine(); + return; + } + if (this.recRule.Type == 'Never Record') { + this.dvrService.AddDontRecordSchedule({ + ChanId: this.recRule.ChanId, + StartTime: this.recRule.StartTime, + NeverRecord: true + }).subscribe(this.saveObserver); + return; + } if (this.recRule.Id == 0 && this.recRule.Type == 'Not Recording') return; this.errorCount = 0; diff --git a/mythtv/html/backend/src/app/services/dvr.service.ts b/mythtv/html/backend/src/app/services/dvr.service.ts index aca2288a039..b71ce200a0e 100644 --- a/mythtv/html/backend/src/app/services/dvr.service.ts +++ b/mythtv/html/backend/src/app/services/dvr.service.ts @@ -61,8 +61,8 @@ export class DvrService { return this.httpClient.post('/Dvr/AddRecordedProgram', json); } - public AllowReRecord(RecordedId: number): Observable { - return this.httpClient.post('/Dvr/AllowReRecord', { RecordedId: RecordedId }); + public AllowReRecord(RecordedId?: number, ChanId?: number, StartTime?: string): Observable { + return this.httpClient.post('/Dvr/AllowReRecord', { RecordedId: RecordedId, ChanId: ChanId, StartTime: StartTime }); } public DeleteRecording(request: DeleteRecordingRequest): Observable {