From 0b542b75bed204f555d3c03169d422bae44985f7 Mon Sep 17 00:00:00 2001 From: Kyse Date: Wed, 1 Jun 2016 14:10:05 -0400 Subject: [PATCH] Adding support for showing tab panes via form defintiion condition option. Adding support for switching ng-show to ng-if for hiding tabs and tab-panes via tabCondition, and tabPaneCondition options. --- src/bootstrap-decorator.js | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/bootstrap-decorator.js b/src/bootstrap-decorator.js index 885ead9..bcefe77 100644 --- a/src/bootstrap-decorator.js +++ b/src/bootstrap-decorator.js @@ -12,13 +12,16 @@ function(decoratorsProvider, sfBuilderProvider, sfPathProvider) { // Tabs is so bootstrap specific that it stays here. var tabs = function(args) { if (args.form.tabs && args.form.tabs.length > 0) { + var tabLi = args.fieldFrag.querySelector('li'); + tabLi.setAttribute(args.form.tabCondition === 'if' ? 'ng-if' : 'ng-show', '!tab.condition ? true : evalExpr(tab.condition, { model: model, "arrayIndex": $index })'); + var tabContent = args.fieldFrag.querySelector('.tab-content'); args.form.tabs.forEach(function(tab, index) { var div = document.createElement('div'); div.className = 'tab-pane'; div.setAttribute('ng-disabled', 'form.readonly'); - div.setAttribute('ng-show', 'selected.tab === ' + index); + div.setAttribute(args.form.tabPaneCondition === 'if' ? 'ng-if' : 'ng-show', 'selected.tab === ' + index); div.setAttribute('ng-class', '{active: selected.tab === ' + index + '}'); var childFrag = args.build(tab.items, args.path + '.tabs[' + index + '].items', args.state);