int64_t duration_min, duration_max;
htsmsg_field_t *f, *f2;
htsmsg_t *l = NULL, *e, *filter;
+ const char* mode;
memset(&eq, 0, sizeof(eq));
lang = access_get_lang(perm, htsmsg_get_str(args, "lang"));
if (lang)
eq.lang = strdup(lang);
+ mode = htsmsg_get_str(args, "mode");
str = htsmsg_get_str(args, "title");
if (str)
eq.stitle = strdup(str);
if (str)
eq.channel_tag = strdup(str);
+ if (mode != NULL) {
+ if (!strcmp(mode, "now")) {
+ eq.start.comp = EC_LT;
+ eq.stop.comp = EC_GT;
+ eq.start.val1 = eq.stop.val1 = gclk();
+ }
+ }
+
duration_min = -1;
duration_max = -1;
htsmsg_get_s64(args, "durationMin", &duration_min);
]
});
+ // Mode filter
+ var epgMode = new Ext.form.ComboBox({
+ width: 60,
+ displayField: 'val',
+ valueField: 'key',
+ store: new Ext.data.ArrayStore({
+ id: 0,
+ fields: [ 'key', 'val' ],
+ data: [
+ [ 'all', _("All") ],
+ [ 'now', _("Now") ]
+ ]
+ }),
+ mode: 'local',
+ editable: false,
+ forceSelection: true,
+ triggerAction: 'all',
+ typeAhead: true,
+ value: 'all'
+ });
+
// Title search box
var epgFilterTitle = new Ext.form.TextField({
epgFilterDuration.setValue("");
};
+ clearModeFilter = function() {
+ delete epgStore.baseParams.mode;
+ epgMode.setValue("all");
+ };
+
function epgQueryClear() {
+ clearModeFilter();
clearTitleFilter();
clearFulltextFilter();
clearChannelFilter();
epgView.reset();
};
+ function clearModeFilterAndReload() {
+ clearModeFilter();
+ epgView.reset();
+ }
+
/*
* Filter selection event handlers
*/
epgView.reset();
});
+ epgMode.on('select', function(c, r) {
+ epgStore.baseParams.mode = r.data.key;
+ if (epgStore.baseParams.mode == "next" || epgStore.baseParams.mode == "now") {
+ // Change ordering to ordering by number asc, because that's what users would expect to see
+ epgStore.sortInfo = { field: 'channelNumber', direction: 'ASC' };
+ }
+ epgView.reset();
+ });
+
epgFilterTitle.on('valid', function(c) {
var value = c.getValue();
});
var tbar = [
+ epgMode, '-',
epgFilterTitle, { text: _('Fulltext') }, epgFilterFulltext, '-',
epgFilterChannels, '-',
epgFilterChannelTags, '-',
value = tvheadend.regexEscape(value);
if (value && epgStore.baseParams.title !== value) {
epgFilterTitle.setValue(value);
+ clearModeFilterAndReload();
return false;
}
} else if (column.dataIndex === 'channelName') {
if (value && epgStore.baseParams.channel !== value) {
epgFilterChannels.setValue(rec['channelName']);
epgFilterChannelSet(value);
+ clearModeFilterAndReload();
return false;
}
} else if (column.dataIndex === 'genre') {
var l = tvheadend.contentGroupLookupName(value);
epgFilterContentGroup.setValue(l);
epgFilterContentGroupSet(value);
+ clearModeFilterAndReload();
return false;
}
}