htsmsg_add_bool(m, "lorder", 1);
if (opts & PO_MULTILINE)
htsmsg_add_bool(m, "multiline", 1);
+ if (opts & PO_PERSIST)
+ htsmsg_add_bool(m, "persistent", 1);
/* Enum list */
if (pl->list) {
this.group = conf.group;
this.lorder = conf.lorder;
this.multiline = conf.multiline;
+ this.persistent = conf.persistent;
this['enum'] = conf['enum'];
this.store = null;
if (this['enum'])
tvheadend.idnode_editor_form(uilevel, item.props || item.params, item.meta, panel, c);
}
+ function values(form) {
+ var node = form.getFieldValues();
+ var props = item.props || item.params;
+ node.uuid = conf.uuids ? conf.uuids : item.uuid;
+ for (var i = 0; i < props.length; i++) {
+ var p = props[i];
+ if (p.persistent)
+ node[p.name] = p.value;
+ }
+ return node;
+ }
+
/* Buttons */
if (!conf.noButtons) {
if (conf.cancel) {
text: conf.saveText || _('Save'),
iconCls: conf.saveIconCls || 'save',
handler: function() {
+ var form = panel.getForm();
var node = null;
- if (panel.getForm().isDirty() || conf.alwaysDirty) {
- node = panel.getForm().getFieldValues();
- node.uuid = conf.uuids ? conf.uuids : item.uuid;
+ if (form.isDirty() || conf.alwaysDirty) {
+ node = values(form);
tvheadend.Ajax({
url: conf.saveURL || 'api/idnode/save',
params: {
text: _('Apply'),
iconCls: 'apply',
handler: function() {
- if (panel.getForm().isDirty()) {
- var form = panel.getForm();
- var node = form.getFieldValues();
- node.uuid = conf.uuids ? conf.uuids : item.uuid;
+ var form = panel.getForm();
+ if (form.isDirty()) {
+ var node = values(form);
tvheadend.Ajax({
url: conf.saveURL || 'api/idnode/save',
params: {
.group = num, \
}, { \
.type = PT_STR, \
- .id = "hidden_tunerid" STRINGIFY(num), \
+ .id = "tunerid" STRINGIFY(num), \
.name = "Tuner", \
.get = network_get_tidvalue##num, \
- .opts = PO_RDONLY | PO_NOUI, \
+ .opts = PO_RDONLY | PO_PERSIST | PO_NOUI, \
}, { \
.type = PT_STR, \
.id = "network" STRINGIFY(num), \