blob: 1b1043e8b752e15f21547f9e8fe562d95dadb727 [file] [log] [blame]
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import './dynamic-forms.css';
angular.module('zeppelinWebApp').directive('dynamicForms', DynamicFormDirective);
function DynamicFormDirective($templateRequest, $compile) {
return {
restrict: 'AE',
scope: {
id: '=id',
hide: '=hide',
disable: '=disable',
actiononchange: '=actiononchange',
forms: '=forms',
params: '=params',
action: '=action',
removeaction: '=removeaction',
},
link: function(scope, element, attrs, controller) {
scope.loadForm = this.loadForm;
scope.toggleCheckbox = this.toggleCheckbox;
$templateRequest('app/notebook/dynamic-forms/dynamic-forms.directive.html').then(function(formsHtml) {
let forms = angular.element(formsHtml);
element.append(forms);
$compile(forms)(scope);
});
},
loadForm: function(formulaire, params) {
let value = formulaire.defaultValue;
if (params[formulaire.name]) {
value = params[formulaire.name];
}
params[formulaire.name] = value;
},
toggleCheckbox: function(formulaire, option, params) {
let idx = params[formulaire.name].indexOf(option.value);
if (idx > -1) {
params[formulaire.name].splice(idx, 1);
} else {
params[formulaire.name].push(option.value);
}
},
};
}