api_epg_filter_set_str(&eq->summary, v, comp);
else if (!strcmp(k, "description"))
api_epg_filter_set_str(&eq->description, v, comp);
+ else if (!strcmp(k, "extratext"))
+ api_epg_filter_set_str(&eq->extratext, v, comp);
}
static void
{ "subtitle", ESK_SUBTITLE },
{ "summary", ESK_SUMMARY },
{ "description", ESK_DESCRIPTION },
+ { "extratext", ESK_EXTRATEXT },
{ "channelName", ESK_CHANNEL },
{ "channelNumber", ESK_CHANNEL_NUM },
{ "starRating", ESK_STARS },
return _epg_sort_description_ascending(a, b, eq) * -1;
}
+static int _epg_sort_extratext_ascending ( const void *a, const void *b, void *eq )
+{
+ int r = _epg_sort_subtitle_ascending(a, b, eq);
+ if (r == 0) {
+ r = _epg_sort_summary_ascending(a, b, eq);
+ if (r == 0)
+ return _epg_sort_description_ascending(a, b, eq);
+ }
+ return r;
+}
+
+static int _epg_sort_extratext_descending ( const void *a, const void *b, void *eq )
+{
+ return _epg_sort_extratext_ascending(a, b, eq) * -1;
+}
+
static int _epg_sort_channel_ascending ( const void *a, const void *b, void *eq )
{
char *s1 = strdup(channel_get_name((*(epg_broadcast_t**)a)->channel, ""));
if (_eq_init_str(&eq->subtitle)) goto fin;
if (_eq_init_str(&eq->summary)) goto fin;
if (_eq_init_str(&eq->description)) goto fin;
+ if (_eq_init_str(&eq->extratext)) goto fin;
if (_eq_init_str(&eq->channel_name)) goto fin;
if (eq->stitle)
case ESK_SUBTITLE: fcn = _epg_sort_subtitle_ascending; break;
case ESK_SUMMARY: fcn = _epg_sort_summary_ascending; break;
case ESK_DESCRIPTION: fcn = _epg_sort_description_ascending; break;
+ case ESK_EXTRATEXT: fcn = _epg_sort_extratext_ascending; break;
case ESK_CHANNEL: fcn = _epg_sort_channel_ascending; break;
case ESK_CHANNEL_NUM: fcn = _epg_sort_channel_num_ascending; break;
case ESK_STARS: fcn = _epg_sort_stars_ascending; break;
case ESK_SUBTITLE: fcn = _epg_sort_subtitle_descending; break;
case ESK_SUMMARY: fcn = _epg_sort_summary_descending; break;
case ESK_DESCRIPTION: fcn = _epg_sort_description_descending; break;
+ case ESK_EXTRATEXT: fcn = _epg_sort_extratext_descending; break;
case ESK_CHANNEL: fcn = _epg_sort_channel_descending; break;
case ESK_CHANNEL_NUM: fcn = _epg_sort_channel_num_descending; break;
case ESK_STARS: fcn = _epg_sort_stars_descending; break;
_eq_done_str(&eq->subtitle);
_eq_done_str(&eq->summary);
_eq_done_str(&eq->description);
+ _eq_done_str(&eq->extratext);
_eq_done_str(&eq->channel_name);
if (eq->stitle)
epg_filter_str_t subtitle;
epg_filter_str_t summary;
epg_filter_str_t description;
+ epg_filter_str_t extratext;
epg_filter_num_t episode;
epg_filter_num_t stars;
epg_filter_num_t age;
ESK_SUBTITLE,
ESK_SUMMARY,
ESK_DESCRIPTION,
+ ESK_EXTRATEXT,
ESK_CHANNEL,
ESK_CHANNEL_NUM,
ESK_STARS,
-insertContentGroupClearOption = function( scope, records, options ){
+insertContentGroupClearOption = function(scope, records, options) {
var placeholder = Ext.data.Record.create(['val', 'key']);
scope.insert(0,new placeholder({val: _('(Clear filter)'), key: '-1'}));
};
}
});
-insertCategoryClearOption = function( scope, records, options ){
+insertCategoryClearOption = function(scope, records, options) {
var placeholder = Ext.data.Record.create(['key', 'val']);
scope.insert(0,new placeholder({key: '-1', val: _('(Clear filter)')}));
};
{ name: 'subtitle' },
{ name: 'summary' },
{ name: 'description' },
+ { name: 'extratext' },
{ name: 'episodeOnscreen' },
{ name: 'image' },
{
return value;
}
- function renderTextSubtitle(value, meta, record) {
+ function renderExtraText(value, meta, record) {
setMetaAttr(meta, record);
- if (!value)
+ value = record.data.subtitle;
+ if (!value) {
value = record.data.summary;
+ if (!value)
+ value = record.data.description;
+ }
return value;
}
},
{
width: 250,
- id: 'subtitle',
- header: _("Subtitle or summary"),
- tooltip: _("Subtitle or summary"),
- dataIndex: 'subtitle',
- renderer: renderTextSubtitle
+ id: 'extratext',
+ header: _("Extra text"),
+ tooltip: _("Extra text: subtitle or summary or description"),
+ dataIndex: 'extratext',
+ renderer: renderExtraText
},
{
width: 100,
local: false,
filters: [
{ type: 'string', dataIndex: 'title' },
- { type: 'string', dataIndex: 'subtitle' },
+ { type: 'string', dataIndex: 'extratext' },
{ type: 'string', dataIndex: 'episodeOnscreen' },
{ type: 'intsplit', dataIndex: 'channelNumber', intsplit: 1000000 },
{ type: 'string', dataIndex: 'channelName' },