luci-base: form.js: rendering fixes for grid sections
[project/luci.git] / modules / luci-base / htdocs / luci-static / resources / form.js
index 4ce5e45ebe6d1c1319074f79e5b890efdbb278bd..80b1393d5f6aad168c1d28bf773707213bea71ae 100644 (file)
@@ -1104,7 +1104,7 @@ var CBITableSection = CBITypedSection.extend({
                return sectionEl;
        },
 
-       renderHeaderRows: function(max_cols) {
+       renderHeaderRows: function(max_cols, has_action) {
                var has_titles = false,
                    has_descriptions = false,
                    max_cols = isNaN(this.max_cols) ? this.children.length : this.max_cols,
@@ -1113,7 +1113,7 @@ var CBITableSection = CBITypedSection.extend({
                    trEls = E([]);
 
                for (var i = 0, opt; i < max_cols && (opt = this.children[i]) != null; i++) {
-                       if (opt.optional || opt.modalonly)
+                       if (opt.modalonly)
                                continue;
 
                        has_titles = has_titles || !!opt.title;
@@ -1127,7 +1127,7 @@ var CBITableSection = CBITypedSection.extend({
                        });
 
                        for (var i = 0, opt; i < max_cols && (opt = this.children[i]) != null; i++) {
-                               if (opt.optional || opt.modalonly)
+                               if (opt.modalonly)
                                        continue;
 
                                trEl.appendChild(E('div', {
@@ -1149,7 +1149,7 @@ var CBITableSection = CBITypedSection.extend({
                                        L.dom.content(trEl.lastElementChild, opt.title);
                        }
 
-                       if (this.sortable || this.extedit || this.addremove || has_more)
+                       if (this.sortable || this.extedit || this.addremove || has_more || has_action)
                                trEl.appendChild(E('div', {
                                        'class': 'th cbi-section-table-cell cbi-section-actions'
                                }));
@@ -1163,7 +1163,7 @@ var CBITableSection = CBITypedSection.extend({
                        });
 
                        for (var i = 0, opt; i < max_cols && (opt = this.children[i]) != null; i++) {
-                               if (opt.optional || opt.modalonly)
+                               if (opt.modalonly)
                                        continue;
 
                                trEl.appendChild(E('div', {
@@ -1477,6 +1477,10 @@ var CBIGridSection = CBITableSection.extend({
                }, (value != null) ? value : E('em', _('none')));
        },
 
+       renderHeaderRows: function(section_id) {
+               return this.super('renderHeaderRows', [ NaN, true ]);
+       },
+
        renderRowActions: function(section_id) {
                return this.super('renderRowActions', [ section_id, _('Edit') ]);
        },