576 lines
23 KiB
HTML
576 lines
23 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Ticket\TicketFeedback.js</title>
|
|
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
|
|
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
|
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
|
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
|
|
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
|
|
</head>
|
|
<body class="yui3-skin-sam">
|
|
|
|
<div id="doc">
|
|
<div id="hd" class="yui3-g header">
|
|
<div class="yui3-u-3-4">
|
|
|
|
<h1><img src="../assets/css/logo.png" title=""></h1>
|
|
|
|
</div>
|
|
<div class="yui3-u-1-4 version">
|
|
<em>API Docs for: </em>
|
|
</div>
|
|
</div>
|
|
<div id="bd" class="yui3-g">
|
|
|
|
<div class="yui3-u-1-4">
|
|
<div id="docs-sidebar" class="sidebar apidocs">
|
|
<div id="api-list">
|
|
<h2 class="off-left">APIs</h2>
|
|
<div id="api-tabview" class="tabview">
|
|
<ul class="tabs">
|
|
<li><a href="#api-classes">Classes</a></li>
|
|
<li><a href="#api-modules">Modules</a></li>
|
|
</ul>
|
|
|
|
<div id="api-tabview-filter">
|
|
<input type="search" id="api-filter" placeholder="Type to filter APIs">
|
|
</div>
|
|
|
|
<div id="api-tabview-panel">
|
|
<ul id="api-classes" class="apis classes">
|
|
|
|
<li><a href="../classes/CallFeedbackRating.html">CallFeedbackRating</a></li>
|
|
|
|
<li><a href="../classes/CloseTicketReport.html">CloseTicketReport</a></li>
|
|
|
|
<li><a href="../classes/ConsolidatedReport.html">ConsolidatedReport</a></li>
|
|
|
|
<li><a href="../classes/CustomerReport.html">CustomerReport</a></li>
|
|
|
|
<li><a href="../classes/DealerWiseCallDetails.html">DealerWiseCallDetails</a></li>
|
|
|
|
<li><a href="../classes/DeclinedCalls.html">DeclinedCalls</a></li>
|
|
|
|
<li><a href="../classes/DropDownData.html">DropDownData</a></li>
|
|
|
|
<li><a href="../classes/EicherPromise.html">EicherPromise</a></li>
|
|
|
|
<li><a href="../classes/EosCallCount.html">EosCallCount</a></li>
|
|
|
|
<li><a href="../classes/GeoAnalysis.html">GeoAnalysis</a></li>
|
|
|
|
<li><a href="../classes/HdBusLmdContrCallFeedbackRatingibution.html">HdBusLmdContrCallFeedbackRatingibution</a></li>
|
|
|
|
<li><a href="../classes/HdBusLmdContribution.html">HdBusLmdContribution</a></li>
|
|
|
|
<li><a href="../classes/HistoryTracking.html">HistoryTracking</a></li>
|
|
|
|
<li><a href="../classes/LiveTracking.html">LiveTracking</a></li>
|
|
|
|
<li><a href="../classes/ManageEscalation.html">ManageEscalation</a></li>
|
|
|
|
<li><a href="../classes/ManageFleet.html">ManageFleet</a></li>
|
|
|
|
<li><a href="../classes/ManageFleet_Detail.html">ManageFleet_Detail</a></li>
|
|
|
|
<li><a href="../classes/ManageFleet_details.html">ManageFleet_details</a></li>
|
|
|
|
<li><a href="../classes/ManageOwner.html">ManageOwner</a></li>
|
|
|
|
<li><a href="../classes/ManageReason.html">ManageReason</a></li>
|
|
|
|
<li><a href="../classes/ManageVechile.html">ManageVechile</a></li>
|
|
|
|
<li><a href="../classes/ManageVehicle.html">ManageVehicle</a></li>
|
|
|
|
<li><a href="../classes/NonVecvUserManagement.html">NonVecvUserManagement</a></li>
|
|
|
|
<li><a href="../classes/Notifications.html">Notifications</a></li>
|
|
|
|
<li><a href="../classes/OpenTicketReport.html">OpenTicketReport</a></li>
|
|
|
|
<li><a href="../classes/OrganizationChart.html">OrganizationChart</a></li>
|
|
|
|
<li><a href="../classes/PositioningTool.html">PositioningTool</a></li>
|
|
|
|
<li><a href="../classes/PositioningTool_Report.html">PositioningTool_Report</a></li>
|
|
|
|
<li><a href="../classes/ReasonForClosure.html">ReasonForClosure</a></li>
|
|
|
|
<li><a href="../classes/Report.html">Report</a></li>
|
|
|
|
<li><a href="../classes/ShowDealerMap.html">ShowDealerMap</a></li>
|
|
|
|
<li><a href="../classes/TicketAdministration.html">TicketAdministration</a></li>
|
|
|
|
<li><a href="../classes/TicketAdministration_FullDetail.html">TicketAdministration_FullDetail</a></li>
|
|
|
|
<li><a href="../classes/TicketFeedback.html">TicketFeedback</a></li>
|
|
|
|
<li><a href="../classes/TicketForDealer.html">TicketForDealer</a></li>
|
|
|
|
<li><a href="../classes/TicketForDealer_FullDetails.html">TicketForDealer_FullDetails</a></li>
|
|
|
|
<li><a href="../classes/TicketReassign.html">TicketReassign</a></li>
|
|
|
|
<li><a href="../classes/TileDashboard.html">TileDashboard</a></li>
|
|
|
|
<li><a href="../classes/TimeSlotClosure.html">TimeSlotClosure</a></li>
|
|
|
|
<li><a href="../classes/TollFreeAndOpportunityLoss.html">TollFreeAndOpportunityLoss</a></li>
|
|
|
|
<li><a href="../classes/VanCoverageDesigner.html">VanCoverageDesigner</a></li>
|
|
|
|
<li><a href="../classes/VecvUserManagement.html">VecvUserManagement</a></li>
|
|
|
|
</ul>
|
|
|
|
<ul id="api-modules" class="apis modules">
|
|
|
|
<li><a href="../modules/Dashboard.html">Dashboard</a></li>
|
|
|
|
<li><a href="../modules/DropDownData.html">DropDownData</a></li>
|
|
|
|
<li><a href="../modules/Geo.html">Geo</a></li>
|
|
|
|
<li><a href="../modules/Inventory.html">Inventory</a></li>
|
|
|
|
<li><a href="../modules/Notifications.html">Notifications</a></li>
|
|
|
|
<li><a href="../modules/ReportModule.html">ReportModule</a></li>
|
|
|
|
<li><a href="../modules/Ticket.html">Ticket</a></li>
|
|
|
|
<li><a href="../modules/TrackingModule.html">TrackingModule</a></li>
|
|
|
|
<li><a href="../modules/UserManagement.html">UserManagement</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="yui3-u-3-4">
|
|
<div id="api-options">
|
|
Show:
|
|
<label for="api-show-inherited">
|
|
<input type="checkbox" id="api-show-inherited" checked>
|
|
Inherited
|
|
</label>
|
|
|
|
<label for="api-show-protected">
|
|
<input type="checkbox" id="api-show-protected">
|
|
Protected
|
|
</label>
|
|
|
|
<label for="api-show-private">
|
|
<input type="checkbox" id="api-show-private">
|
|
Private
|
|
</label>
|
|
<label for="api-show-deprecated">
|
|
<input type="checkbox" id="api-show-deprecated">
|
|
Deprecated
|
|
</label>
|
|
|
|
</div>
|
|
|
|
|
|
<div class="apidocs">
|
|
<div id="docs-main">
|
|
<div class="content">
|
|
<h1 class="file-heading">File: Ticket\TicketFeedback.js</h1>
|
|
|
|
<div class="file">
|
|
<pre class="code prettyprint linenums">
|
|
/*================================================================================================================\
|
|
+
|
|
+ Project : GoData-Eicher
|
|
+ Filename : TicketFeedback.js
|
|
+ Module Name : Ticket
|
|
+ Purpose : For ticket feedback and reason for more than 24 hours of closing a ticket
|
|
+ Coded By : Parul Gupta
|
|
+
|
|
+================================================================================================================*/
|
|
|
|
/**
|
|
* For ticketing
|
|
* @module Ticket
|
|
*/
|
|
|
|
/**
|
|
* This class contains functionality of Ticket Feedback Details for CCE.
|
|
* @class TicketFeedback
|
|
* @constructor
|
|
*/
|
|
|
|
//Global variables
|
|
var suggestionArr = []; //array of suggestions
|
|
var complaintArr = []; //array of complaints
|
|
|
|
/**
|
|
* Function call on slide
|
|
* @method sliderOnSlide
|
|
* @for TicketFeedback
|
|
*/
|
|
function sliderOnSlide(e) {
|
|
//console.log(e);
|
|
}
|
|
|
|
/**
|
|
* Function call on change of slider
|
|
* @method sliderOnChange
|
|
* @for TicketFeedback
|
|
*/
|
|
function sliderOnChange(e) {
|
|
var sliderId = e.sender.element[0].id;
|
|
var spanCount = sliderId.split("_").pop();
|
|
var spanId = "#spanRate_" + spanCount;
|
|
$(spanId).text(e.value);
|
|
}
|
|
|
|
/**
|
|
* Function call to validate if rating has given or not
|
|
* @method checkIfRatingHaveGiven
|
|
* @for TicketFeedback
|
|
*/
|
|
function checkIfRatingHaveGiven() {
|
|
|
|
var _rating1 = $("#spanRate_1").text();
|
|
var _rating2 = $("#spanRate_2").text();
|
|
var _rating3 = $("#spanRate_3").text();
|
|
var _rating4 = $("#spanRate_4").text();
|
|
var _rating5 = $("#spanRate_5").text();
|
|
var _rating6 = $("#spanRate_6").text();
|
|
var ddSuggestion = $("#SuggestionComplaintList").val();
|
|
var ddCompalint = $("#ComplaintList").val();
|
|
var otherSuggestion = $("#txtOtherSuggestionData").val();
|
|
var otherComplaint = $("#txtOtherComplaintData").val();
|
|
var ddCallStatustValue = $("#ddCallStatus").val();
|
|
var otherCallStatus = $("#txtOtherCallStatusData").val();
|
|
|
|
if ((_rating1 == "") && (_rating2 == "") && (_rating3 == "") && (_rating4 == "") && (_rating5 == "") && (_rating6 == "") && (ddSuggestion == null) && (otherSuggestion == "") && (ddCompalint == null) && (otherComplaint == "") && (ddCallStatustValue == "" || ddCallStatustValue == null) && (otherCallStatus == "")) {
|
|
//jAlert("Please select Call Status atleast !!", "Message");
|
|
jAlert(FEEDBACK_MESSAGES.requiredCallStatus, "Message");
|
|
return false;
|
|
} else { return true; }
|
|
}
|
|
|
|
/**
|
|
* Function call to check validations on feedback data
|
|
* @method onBeginFeedback
|
|
* @for TicketFeedback
|
|
*/
|
|
function onBeginFeedback() {
|
|
if (checkIfRatingHaveGiven() == true) {
|
|
if (($("#txtOtherSuggestionData").hasClass('requiredField') == true) || ($("#txtOtherComplaintData").hasClass('requiredField') == true) || ($("#txtOtherCallStatusData").hasClass('requiredField') == true)) {
|
|
//jAlert("Please fill required data to submit feedback !!", 'Message');
|
|
jAlert(FEEDBACK_MESSAGES.requiredFieldFill, 'Message');
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function call to submit feedback data
|
|
* @method addFeedbackDetails
|
|
* @for TicketFeedback
|
|
*/
|
|
function addFeedbackDetails() {
|
|
//create object of feedback model
|
|
var FeedBackModel = {};
|
|
|
|
if (onBeginFeedback() == true) {
|
|
if (($("#ddCallStatus").val() != "" && $("#ddCallStatus").val() != null) || ($("#txtOtherCallStatusData").val() != "")) {
|
|
FeedBackModel.TicketId = $("#ticketId").val();
|
|
FeedBackModel.FeedBackEaseOfGettingCall = $("#spanRate_1").text();
|
|
FeedBackModel.FeedBackResponseOfCallCenter = $("#spanRate_2").text();
|
|
FeedBackModel.FeedBackTimelyUpdationByDealer = $("#spanRate_3").text();
|
|
FeedBackModel.FeedBackTotalRepairTime = $("#spanRate_4").text();
|
|
FeedBackModel.FeedBackEosCharges = $("#spanRate_5").text();
|
|
FeedBackModel.FeedBackOverAllExperience = $("#spanRate_6").text();
|
|
FeedBackModel.CreationTime = $("#creationTime").val();
|
|
if (suggestionArr != null) {
|
|
var indexOtherSuggestion = suggestionArr.indexOf("Other");
|
|
if (indexOtherSuggestion > -1) {
|
|
suggestionArr.splice(indexOtherSuggestion, 1);
|
|
}
|
|
}
|
|
if ($("#txtOtherSuggestionData").val() != "") {
|
|
suggestionArr.push($("#txtOtherSuggestionData").val());
|
|
}
|
|
FeedBackModel.SuggestionComplaintList = suggestionArr;
|
|
if (complaintArr != null) {
|
|
var indexOtherComplaint = complaintArr.indexOf("Other");
|
|
if (indexOtherComplaint > -1) {
|
|
complaintArr.splice(indexOtherComplaint, 1);
|
|
}
|
|
}
|
|
if ($("#txtOtherComplaintData").val() != "") {
|
|
complaintArr.push($("#txtOtherComplaintData").val());
|
|
}
|
|
FeedBackModel.ComplaintList = complaintArr;
|
|
if ($("#ddCallStatus").val() == "Other") {
|
|
FeedBackModel.CallStatus = $("#txtOtherCallStatusData").val();
|
|
} else {
|
|
FeedBackModel.CallStatus = $("#ddCallStatus").val();
|
|
}
|
|
FeedBackModel.ReasonMoreThan24Hrs = "";
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/Ticket/TicketAdministration_CreateFeedback/",
|
|
contentType: 'application/json',
|
|
data: JSON.stringify({ model: FeedBackModel }),
|
|
success: function (data) {
|
|
//console.log(data);
|
|
if (data.success == true) {
|
|
//jAlert('Feedback Details saved successfully !!', 'Message', function () {
|
|
jAlert(FEEDBACK_MESSAGES.savedFeedbackSuccess, 'Message', function () {
|
|
$("#" + data.ticketId + " > td.reasonFeedback > span.feedback").css('background', 'green');
|
|
showFeedback();
|
|
});
|
|
}
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
});
|
|
} else {
|
|
//jAlert("Please select Call Status !!", 'Message');
|
|
jAlert(FEEDBACK_MESSAGES.requiredCallStatus, 'Message');
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function call to submit reason data
|
|
* @method addReasonDetails
|
|
* @for TicketFeedback
|
|
*/
|
|
function addReasonDetails() {
|
|
if ($("#ddReasonMoreThan24Hrs").val() == "" || $("#ddReasonMoreThan24Hrs").val() == null) {
|
|
//jAlert("Please select reason !!", 'Message');
|
|
jAlert(FEEDBACK_MESSAGES.requiredReason, 'Message');
|
|
return false;
|
|
} else {
|
|
if ($("#txtOtherReason").hasClass('requiredField') == true) {
|
|
//jAlert("Please fill required data to submit reason !!", 'Message');
|
|
jAlert(FEEDBACK_MESSAGES.requiredFieldsSubmitReason, 'Message');
|
|
return false;
|
|
} else {
|
|
//create feedback model object
|
|
var FeedBackModel = {};
|
|
|
|
FeedBackModel.TicketId = $("#ticketId").val();
|
|
FeedBackModel.FeedBackEaseOfGettingCall = "";
|
|
FeedBackModel.FeedBackResponseOfCallCenter = "";
|
|
FeedBackModel.FeedBackTimelyUpdationByDealer = "";
|
|
FeedBackModel.FeedBackTotalRepairTime = "";
|
|
FeedBackModel.FeedBackEosCharges = "";
|
|
FeedBackModel.FeedBackOverAllExperience = "";
|
|
FeedBackModel.CreationTime = $("#creationTime").val();
|
|
FeedBackModel.SuggestionComplaint = "";
|
|
FeedBackModel.Complaint = "";
|
|
|
|
// check 24 hours reason
|
|
if ($("#ddReasonMoreThan24Hrs").val() == 'Other') {
|
|
FeedBackModel.ReasonMoreThan24Hrs = $("#txtOtherReason").val();
|
|
} else {
|
|
FeedBackModel.ReasonMoreThan24Hrs = $("#ddReasonMoreThan24Hrs").val();
|
|
}
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/Ticket/TicketAdministration_SubmitReason/",
|
|
data: FeedBackModel,
|
|
success: function (data) {
|
|
//console.log(data);
|
|
if (data.success == true) {
|
|
//jAlert('Reason saved successfully !!', 'Message', function () {
|
|
jAlert(FEEDBACK_MESSAGES.reasonSavedSuccessfully, 'Message', function () {
|
|
$("#" + data.ticketId + " > td.reasonFeedback > span.Hours").css('background', 'green');
|
|
showFeedback();
|
|
});
|
|
}
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Function call on selection change of drop down data list
|
|
* @method onChangeDD
|
|
* @for TicketFeedback
|
|
*/
|
|
function onChangeDD($this) {
|
|
|
|
var ddId = $this;
|
|
var ddValue = $("#" + ddId).find('option:selected').text();
|
|
|
|
if (ddValue == "Other") {
|
|
if (ddId == "ddCallStatus") {
|
|
$("#txtOtherCallStatusData").addClass("requiredField");
|
|
$("#txtOtherCallStatusData").attr('disabled', false);
|
|
$("#txtOtherCallStatusData").val('');
|
|
} else if (ddId == "ddReasonMoreThan24Hrs") {
|
|
//console.log(ddId);
|
|
$("#txtOtherReason").addClass("requiredField");
|
|
$("#txtOtherReason").attr('disabled', false);
|
|
$("#txtOtherReason").val('');
|
|
}
|
|
} else {
|
|
if (ddId == "ddCallStatus") {
|
|
$("#txtOtherCallStatusData").removeClass("requiredField");
|
|
$("#txtOtherCallStatusData").attr('disabled', true);
|
|
$("#txtOtherCallStatusData").val('');
|
|
} else if (ddId == "ddReasonMoreThan24Hrs") {
|
|
//console.log(ddId);
|
|
$("#txtOtherReason").removeClass("requiredField");
|
|
$("#txtOtherReason").attr('disabled', true);
|
|
$("#txtOtherReason").val('');
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function call on selection change of multiple suggestions drop down data list
|
|
* @method onChangeSuggestion
|
|
* @for TicketFeedback
|
|
*/
|
|
function onChangeSuggestion() {
|
|
if ($("#SuggestionComplaintList").val() == null) {
|
|
$("#txtOtherSuggestionData").removeClass("requiredField");
|
|
$("#txtOtherSuggestionData").attr('disabled', true);
|
|
$("#txtOtherSuggestionData").val('');
|
|
} else if (($("#SuggestionComplaintList").val().indexOf("Other") != -1) == true) {
|
|
$("#txtOtherSuggestionData").addClass("requiredField");
|
|
$("#txtOtherSuggestionData").attr('disabled', false);
|
|
$("#txtOtherSuggestionData").val('');
|
|
} else {
|
|
$("#txtOtherSuggestionData").removeClass("requiredField");
|
|
$("#txtOtherSuggestionData").attr('disabled', true);
|
|
$("#txtOtherSuggestionData").val('');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function call on selection change of multiple complaints drop down data list
|
|
* @method onChangeComplaint
|
|
* @for TicketFeedback
|
|
*/
|
|
function onChangeComplaint() {
|
|
if ($("#ComplaintList").val() == null) {
|
|
$("#txtOtherComplaintData").removeClass("requiredField");
|
|
$("#txtOtherComplaintData").attr('disabled', true);
|
|
$("#txtOtherComplaintData").val('');
|
|
} else if (($("#ComplaintList").val().indexOf("Other") != -1) == true) {
|
|
$("#txtOtherComplaintData").addClass("requiredField");
|
|
$("#txtOtherComplaintData").attr('disabled', false);
|
|
$("#txtOtherComplaintData").val('');
|
|
} else {
|
|
$("#txtOtherComplaintData").removeClass("requiredField");
|
|
$("#txtOtherComplaintData").attr('disabled', true);
|
|
$("#txtOtherComplaintData").val('');
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Function call on close of multiple suggestions drop down data list
|
|
* @method onCloseSuggestion
|
|
* @for TicketFeedback
|
|
*/
|
|
function onCloseSuggestion() {
|
|
suggestionArr = $("#SuggestionComplaintList").val();
|
|
}
|
|
|
|
/**
|
|
* Function call on close of multiple complaints drop down data list
|
|
* @method onCloseComplaint
|
|
* @for TicketFeedback
|
|
*/
|
|
function onCloseComplaint() {
|
|
complaintArr = $("#ComplaintList").val();
|
|
}
|
|
|
|
/**
|
|
* Function call on select item of multiple suggestions drop down data list
|
|
* @method onSelectSuggestion
|
|
* @for TicketFeedback
|
|
*/
|
|
function onSelectSuggestion(e) {
|
|
var dataItem = this.dataSource.view()[e.item.index()];
|
|
}
|
|
|
|
/**
|
|
* Function call on select item of multiple Complaints drop down data list
|
|
* @method onSelectComplaint
|
|
* @for TicketFeedback
|
|
*/
|
|
function onSelectComplaint(e) {
|
|
var dataItem = this.dataSource.view()[e.item.index()];
|
|
}
|
|
|
|
/**
|
|
* Function call on blur of HTML input type tag
|
|
* @method onBlurTextBox
|
|
* @for TicketFeedback
|
|
*/
|
|
function onBlurTextBox($this) {
|
|
var inputId = $this;
|
|
if ($("#" + inputId).val() != "") {
|
|
$("#" + inputId).removeClass("requiredField");
|
|
} else {
|
|
$("#" + inputId).addClass("requiredField");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Function to add slider
|
|
* @method addSlider
|
|
* @param {String} sliderId HTML element id where slider is loaded.
|
|
* @param {String} spanId HTML element id where slider text is loaded.
|
|
* @for TicketFeedback
|
|
*/
|
|
function addSlider(sliderId, spanId) {
|
|
$(sliderId).kendoSlider({
|
|
increaseButtonTitle: "Right",
|
|
decreaseButtonTitle: "Left",
|
|
change: sliderOnChange,
|
|
//slide: sliderOnSlide,
|
|
min: 0,
|
|
max: 5,
|
|
smallStep: 1,
|
|
largeStep: 1
|
|
}).data("kendoSlider");
|
|
}
|
|
</pre>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
|
<script>prettyPrint();</script>
|
|
<script src="../assets/js/yui-prettify.js"></script>
|
|
<script src="../assets/../api.js"></script>
|
|
<script src="../assets/js/api-filter.js"></script>
|
|
<script src="../assets/js/api-list.js"></script>
|
|
<script src="../assets/js/api-search.js"></script>
|
|
<script src="../assets/js/apidocs.js"></script>
|
|
</body>
|
|
</html>
|