// basic JS needed for zymonic manual page // setups up the filter api manual page form to be able to generate api requests function setupFilterAPICallForm(filter_details) { // set default url and system from page url $("[name='url']").val(window.location.origin+"/zymonicmp"); var system = window.location.pathname.match(/\/man\/(.*)\/Filter/); if (system && system[1]) { $("[name='system']").val(system[1]); } // populate fields updateFilterAPICallFields(filter_details) $("#generate_example").click(function() { var request = generateFilterAPICallRequest(filter_details); var request_to_send = convertRequestToFormat(request.request, $("[name='api_request_type']").val()); var example_response = convertRequestToFormat(request.example_response, $("[name='api_response_type']").val()); $("#FilterAPICallRequest pre code").text(censorOutput(request_to_send)); $("#FilterAPICallResponse pre code").text(censorOutput(example_response)); return false; }); $("#send_request").click(function() { var request_type = $("[name='api_request_type']").val(); var response_type = $("[name='api_response_type']").val(); var request = generateFilterAPICallRequest(filter_details); var request_to_send = convertRequestToFormat(request.request, request_type); $("#FilterAPICallRequest pre code").text(censorOutput(request_to_send)); $("#FilterAPICallResponse pre code").text("Sending Request ..."); var data = setupDataForSending(request.request, request_type); $("#send_request").prop('disabled', true); if(request_type == "json") { $.ajax({ url: $("[name='url']").val(), type: "POST", data: data, datatype: "json", contentType: "application/json", error: function(xhr, type, error) { $("#FilterAPICallResponse pre code").text("ERROR: "+type+"\n"+error); $("#send_request").prop('disabled', false); }, success: function(incoming) { var response = convertResponseToFormat(incoming, response_type); $("#FilterAPICallResponse pre code").text(censorOutput(response)); $("#send_request").prop('disabled', false); } }); } else { // Send anything other than JSON using params and assume XML response $.ajax({ url: $("[name='url']").val(), type: "POST", data: data, error: function(xhr, type, error) { $("#FilterAPICallResponse pre code").text("ERROR: "+type+"\n"+error); $("#send_request").prop('disabled', false); }, success: function(xml) { var response = convertResponseToFormat(xml, response_type); $("#FilterAPICallResponse pre code").text(censorOutput(response)); $("#send_request").prop('disabled', false); } }); } return false; }); } // updates field inputs based on filter search fields function updateFilterAPICallFields(filter_details) { var fields_container = $("#FilterAPICallSearchFields").empty(); var input = buildFilterAPICallFormInput(filter_details); fields_container.append(input); } // builds a form to capture search fields for a filter function buildFilterAPICallFormInput(filter_details) { var form_container = $("