]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
DVR: add disp_extratext which shows subtitle or summary or description, fixes #4899
authorJaroslav Kysela <perex@perex.cz>
Mon, 29 Jan 2018 16:19:45 +0000 (17:19 +0100)
committerJaroslav Kysela <perex@perex.cz>
Mon, 29 Jan 2018 16:19:45 +0000 (17:19 +0100)
src/dvr/dvr_db.c
src/webui/static/app/dvr.js

index fd43b8c13d21ddff8bf3a3509d3d305f91ef6be2..aabca969071e85c803dad1bc7ee9caa66b182ef2 100644 (file)
@@ -3214,6 +3214,22 @@ dvr_entry_class_disp_description_get(void *o)
   return &prop_ptr;
 }
 
+static const void *
+dvr_entry_class_disp_extratext_get(void *o)
+{
+  dvr_entry_t *de = (dvr_entry_t *)o;
+  prop_ptr = NULL;
+  if (de->de_subtitle)
+    prop_ptr = lang_str_get(de->de_subtitle, idnode_lang(o));
+  if (prop_ptr == NULL || prop_ptr[0] == '\0')
+    prop_ptr = lang_str_get(de->de_summary, idnode_lang(o));
+  if (prop_ptr == NULL || prop_ptr[0] == '\0')
+    prop_ptr = lang_str_get(de->de_desc, idnode_lang(o));
+  if (prop_ptr == NULL)
+    prop_ptr = "";
+  return &prop_ptr;
+}
+
 static int
 dvr_entry_class_disp_episode_set(void *o, const void *v)
 {
@@ -3693,6 +3709,14 @@ const idclass_t dvr_entry_class = {
       .get      = dvr_entry_class_disp_description_get,
       .opts     = PO_RDONLY | PO_NOSAVE | PO_HIDDEN,
     },
+    {
+      .type     = PT_STR,
+      .id       = "disp_extratext",
+      .name     = N_("Extra text"),
+      .desc     = N_("Subtitle, summary or description of the program (if any) (display only)."),
+      .get      = dvr_entry_class_disp_extratext_get,
+      .opts     = PO_RDONLY | PO_NOSAVE,
+    },
     {
       .type     = PT_INT,
       .id       = "pri",
index 749a2b6922131f6a83a8209a82fda88c42eac08f..0df5df9b678d2a882a9f76fc83a8345af926098a 100644 (file)
@@ -239,7 +239,7 @@ tvheadend.displayDuplicate = function(value, meta, record) {
 tvheadend.displayWithDuplicateRenderer = function(value, meta, record) {
     return function() {
         return function(value, meta, record) {
-          return tvheadend.displayDuplicate(value, meta, record);
+            return tvheadend.displayDuplicate(value, meta, record);
         }
     }
 }
@@ -247,7 +247,7 @@ tvheadend.displayWithDuplicateRenderer = function(value, meta, record) {
 tvheadend.displayWithYearAndDuplicateRenderer = function(value, meta, record) {
     return function() {
         return function(value, meta, record) {
-            value = tvheadend.getDisplayTitle(value, record);
+            var value = tvheadend.getDisplayTitle(value, record);
             return tvheadend.displayDuplicate(value, meta, record);
         }
     }
@@ -256,8 +256,7 @@ tvheadend.displayWithYearAndDuplicateRenderer = function(value, meta, record) {
 tvheadend.displayWithYearRenderer = function(value, meta, record) {
     return function() {
         return function(value, meta, record) {
-            value = tvheadend.getDisplayTitle(value, record);
-            return value;
+            return tvheadend.getDisplayTitle(value, record);
         }
     }
 }
@@ -419,18 +418,15 @@ tvheadend.dvr_upcoming = function(panel, index) {
             }
         },
         del: true,
-        list: 'category,enabled,duplicate,disp_title,disp_subtitle,disp_summary,episode_disp,' +
+        list: 'category,enabled,duplicate,disp_title,disp_extratext,episode_disp,' +
               'channel,image,copyright_year,start_real,stop_real,duration,pri,filesize,' +
               'sched_status,errors,data_errors,config_name,owner,creator,comment,genre',
         columns: {
             disp_title: {
-              renderer: tvheadend.displayWithYearAndDuplicateRenderer()
-            },
-            disp_subtitle: {
-              renderer: tvheadend.displayWithDuplicateRenderer()
+                renderer: tvheadend.displayWithYearAndDuplicateRenderer()
             },
-            disp_summary: {
-              renderer: tvheadend.displayWithDuplicateRenderer()
+            disp_extratext: {
+                renderer: tvheadend.displayWithDuplicateRenderer()
             },
             filesize: {
                 renderer: tvheadend.filesizeRenderer()
@@ -597,12 +593,12 @@ tvheadend.dvr_finished = function(panel, index) {
             }
         },
         del: false,
-        list: 'disp_title,disp_subtitle,disp_summary,episode_disp,channelname,' +
+        list: 'disp_title,disp_extratext,episode_disp,channelname,' +
               'start_real,stop_real,duration,filesize,copyright_year,' +
               'sched_status,errors,data_errors,playcount,url,config_name,owner,creator,comment,',
         columns: {
             disp_title: {
-              renderer: tvheadend.displayWithYearRenderer(),
+                renderer: tvheadend.displayWithYearRenderer(),
             },
             filesize: {
                 renderer: tvheadend.filesizeRenderer()
@@ -713,7 +709,7 @@ tvheadend.dvr_failed = function(panel, index) {
         del: true,
         delquestion: _('Do you really want to delete the selected recordings?') + '<br/><br/>' +
                      _('The associated file will be removed from storage.'),
-        list: 'disp_title,disp_subtitle,disp_summary,episode_disp,channelname,' +
+        list: 'disp_title,disp_extratext,episode_disp,channelname,' +
               'image,copyright_year,start_real,stop_real,duration,filesize,status,' +
               'sched_status,errors,data_errors,playcount,url,config_name,owner,creator,comment',
         columns: {
@@ -788,12 +784,12 @@ tvheadend.dvr_removed = function(panel, index) {
         uilevel: 'expert',
         edit: { params: { list: tvheadend.admin ? "retention,owner,comment" : "retention,comment" } },
         del: true,
-        list: 'disp_title,disp_subtitle,disp_summary,episode_disp,channelname,image,' +
+        list: 'disp_title,disp_extratext,episode_disp,channelname,image,' +
               'copyright_year,start_real,stop_real,duration,status,' +
               'sched_status,errors,data_errors,url,config_name,owner,creator,comment',
         columns: {
             disp_title: {
-              renderer: tvheadend.displayWithYearRenderer(),
+                renderer: tvheadend.displayWithYearRenderer(),
             },
         },
         sort: {