/* * jQuery Karbor Function */ (function ($) { /* add warning span */ function add_warning_span(cur_node) { var warning_span = $(cur_node).has("span.help-block"); if( warning_span.length == 0) { var warning_info = $("").addClass("help-block") .html("This field is required"); cur_node.append(warning_info); } $(cur_node).closest(".form-group.required").addClass("has-error"); } /* remove warning span */ function remove_warning_span(cur_node) { var warning_spans = $(cur_node).has("span.help-block"); if( warning_spans.length > 0) { warning_spans.each(function(){ $(this).children("span").remove(); }); } $(cur_node).closest(".form-group.required").removeClass("has-error"); } /* create dynamic field */ function createDynamicField(schema, userdata, modal_body) { if(schema!=null) { for(var p in schema.properties) { var property = schema.properties[p]; /* confirm whether the field is required */ var required = false; if($.inArray(p, schema.required) >= 0) { required = true; } /* form group */ var form_group = $("
").addClass("form-group"); if(required) { form_group.addClass("required"); } /* control label */ var control_label = $("").addClass("control-label") .attr("for", "id_"+p) .html(property.title); if(required) { control_label.addClass("required"); } form_group.append(control_label); /* icon required */ if(required) { var icon_required = $("").addClass("hz-icon-required") .addClass("fa") .addClass("fa-asterisk"); form_group.append(icon_required); } /* help icon */ if(property.hasOwnProperty("description")) { var help_icon = $("").addClass("help-icon") .attr("data-toggle", "tooltip") .attr("data-placement", "top") .attr("title", "") .attr("data-original-title", property.description); var question_circle = $("").addClass("fa") .addClass("fa-question-circle"); help_icon.append(question_circle); form_group.append(help_icon); } /* control wrapper */ var control_wrapper = $(""); if(property.hasOwnProperty("eumn")) { //drop down list var dropdownlist_control = $(""); dropdownlist_control.addClass("form-control"); dropdownlist_control.attr("id", "id_"+p); dropdownlist_control.attr("name", p); //get drop down list options for(option in property.eumn) { var option_control = $("").attr('value', property.eumn[option]) .html(property.eumn[option]); dropdownlist_control.append(option_control); } //default value if(property.hasOwnProperty("default")) { if(property.default != null) { dropdownlist_control.val(property.default); } } //user value if(userdata != null) { if(userdata.hasOwnProperty(p)) { dropdownlist_control.val(userdata[p]); } } control_wrapper.append(dropdownlist_control); } else { switch(property.type) { case "string": { //text box var text_control = $(""); text_control.addClass("form-control"); text_control.attr("id", "id_"+p); text_control.attr("name", p); //default value if(property.hasOwnProperty("default")) { if(property.default != null) { text_control.val(property.default); } } //user value if(userdata != null) { if(userdata.hasOwnProperty(p)) { text_control.val(userdata[p]); } } control_wrapper.append(text_control); break; } case "boolean": { //check box var checkbox_control = $(""); checkbox_control.addClass("form-control"); checkbox_control.attr("id", "id_"+p); checkbox_control.attr("name", p); //default value if(property.hasOwnProperty("default")) { if(property.default&&eval(property.default)) { checkbox_control.attr("checked",true); } } //user value if(userdata != null) { if(userdata.hasOwnProperty(p)) { if(userdata[p]) { checkbox_control.attr("checked", true); } else { checkbox_control.removeAttr("checked"); } } } control_wrapper.append(checkbox_control); break; } default: { break; } } } /* add control to body */ form_group.append(control_wrapper); modal_body.append(form_group); } } } $.Karbor = { /* get the default resources parameters */ getResourceDefaultParameters: function(provider, schemaname) { var parameters = {}; if(provider != null) { if(provider.extended_info_schema != null) { var result = provider.extended_info_schema[schemaname]; for(var r in result) { parameters[r] = {}; var schema = result[r]; if(schema!=null) { for(var p in schema.properties) { var property = schema.properties[p]; if(property.hasOwnProperty("default")) { parameters[r][p] = property.default; } } } } } } return parameters; }, /* check html control required */ check_required: function(div_id){ var flag = true; var required_node = div_id.find(".form-group.required").find(".form-control"); for(var i = 0; i