Ox.FormPanel: support setting inital and updating selected panel

This commit is contained in:
j 2023-09-03 11:44:49 +01:00
parent 49742b8b1a
commit 6252e27f6c

View file

@ -15,11 +15,18 @@ Ox.FormPanel = function(options, self) {
var that = Ox.Element({}, self) var that = Ox.Element({}, self)
.defaults({ .defaults({
form: [], form: [],
listSize: 256 listSize: 256,
section: null
}) })
.options(options || {}); .options(options || {})
.update({
section: setSection
});
self.section = 0; if (self.options.section === null) {
self.options.section = self.options.form[0].id;
}
self.section = Ox.getIndexById(self.options.form, self.optoins.section);
self.sectionTitle = self.options.form[self.section].title; self.sectionTitle = self.options.form[self.section].title;
self.$list = Ox.TableList({ self.$list = Ox.TableList({
columns: [ columns: [
@ -62,7 +69,7 @@ Ox.FormPanel = function(options, self) {
}), }),
max: 1, max: 1,
min: 1, min: 1,
selected: [self.options.form[0].id], selected: [self.options.selected],
sort: [{key: 'id', operator: '+'}], sort: [{key: 'id', operator: '+'}],
unique: 'id', unique: 'id',
width: self.options.listSize width: self.options.listSize
@ -130,7 +137,18 @@ Ox.FormPanel = function(options, self) {
}); });
}); });
self.$sections[0].show(); self.$sections[self.section].show();
function setSection() {
var id = self.options.section,
section = Ox.getIndexById(self.options.form, id);
if (self.section != section) {
self.$sections[self.section].hide();
self.section = section;
self.$list.options('selected', [id]);
self.$sections[self.section].show();
}
};
that.setElement(Ox.SplitPanel({ that.setElement(Ox.SplitPanel({
elements: [ elements: [