diff options
Diffstat (limited to 'openecomp-be/tools/swagger-ui/index.html')
-rw-r--r-- | openecomp-be/tools/swagger-ui/index.html | 328 |
1 files changed, 328 insertions, 0 deletions
diff --git a/openecomp-be/tools/swagger-ui/index.html b/openecomp-be/tools/swagger-ui/index.html new file mode 100644 index 0000000000..fe0c8ad7c7 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/index.html @@ -0,0 +1,328 @@ +<!DOCTYPE html> +<html> +<head> + <meta charset="UTF-8"> + <title>API Docs</title> + <link rel="SHORTCUT ICON" href="images/favicon.ico"/> + <link href='css/typography.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/reset.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/screen.css' media='screen' rel='stylesheet' type='text/css'/> + <link href='css/reset.css' media='print' rel='stylesheet' type='text/css'/> + <link href='css/print.css' media='print' rel='stylesheet' type='text/css'/> + <!--Custom: Take from application\frontend\nfv-client\dist\optimize\resources\nfv\css\style.css--> + <link href='css/ncso-style.css' rel='stylesheet' type='text/css'/> + <!--/Custom: Take from application\frontend\nfv-client\dist\optimize\resources\nfv\css\style.css--> + + <script src='lib/jquery-1.8.0.min.js' type='text/javascript'></script> + <script src='lib/jquery.slideto.min.js' type='text/javascript'></script> + <script src='lib/jquery.wiggle.min.js' type='text/javascript'></script> + <script src='lib/jquery.ba-bbq.min.js' type='text/javascript'></script> + <script src='lib/handlebars-2.0.0.js' type='text/javascript'></script> + <script src='lib/underscore-min.js' type='text/javascript'></script> + <script src='lib/backbone-min.js' type='text/javascript'></script> + <script src='swagger-ui.js' type='text/javascript'></script> + <script src='lib/highlight.7.3.pack.js' type='text/javascript'></script> + <script src='lib/marked.js' type='text/javascript'></script> + <script src='lib/swagger-oauth.js' type='text/javascript'></script> + + <!-- Some basic translations --> + <!-- <script src='lang/translator.js' type='text/javascript'></script> --> + <!-- <script src='lang/ru.js' type='text/javascript'></script> --> + <!-- <script src='lang/en.js' type='text/javascript'></script> --> + + <script type="text/javascript"> + $(function () { + var url = window.location.protocol + "//" + window.location.host; + if (window.location.pathname.indexOf('/api-docs') > 0) { + url += window.location.pathname.substring(0, window.location.pathname.indexOf('/api-docs')) + } + url += "/api-docs/api.json"; + log('API URL: ' + url); + + // Pre load translate... + if(window.SwaggerTranslator) { + window.SwaggerTranslator.translate(); + } + window.swaggerUi = new SwaggerUi({ + url: url, + dom_id: "swagger-ui-container", + supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], + onComplete: function(swaggerApi, swaggerUi){ + if(typeof initOAuth == "function") { + initOAuth({ + clientId: "your-client-id", + clientSecret: "your-client-secret", + realm: "your-realms", + appName: "your-app-name", + scopeSeparator: "," + }); + } + + if(window.SwaggerTranslator) { + window.SwaggerTranslator.translate(); + } + + $('pre code').each(function(i, e) { + hljs.highlightBlock(e) + }); + + }, + onFailure: function(data) { + log("Unable to Load SwaggerUI"); + }, + docExpansion: "none", + apisSorter: "alpha", + showRequestHeaders: false + }); + + + window.swaggerUi.load(); + + function log() { + if ('console' in window) { + console.log.apply(console, arguments); + } + } + }); + </script> + + <!-- Hide the swagger io --> + <style> + .footer a, .footer img{ + display: none !important; + } + </style> +</head> + +<body class="swagger-section"> + +<!--NCSO script--> +<script> + + //SET TITLE - START + function pollData() { + if(!(document.querySelector('#api_info .info_title') && document.querySelector('#api_info .info_title').innerText)) { + setTimeout(pollData, 50); + } + else { + setData(); + } + } + + function setData() { + document.querySelector('[data-uxf-point="main-title"]').innerText = document.querySelector('#api_info .info_title').innerText; + document.querySelector('#api_info .info_title').innerText = ''; + } + + pollData(); + //SET TITLE - END + + var __LOGIN_REST_STATUS = {OPEN: 'OPEN', SEND: 'SEND'}; + var __loginPath = '/auth/tokens', __isLoginInProcess, __xAuthToken; + + function isAuthanticationRest(path) { + return path.endsWith(__loginPath); + } + + //Proxy requests - START + + //Proxy Open Method + (function() { + var proxiedOpen = window.XMLHttpRequest.prototype.open; + window.XMLHttpRequest.prototype.open = function(method, path) { + if(isAuthanticationRest(path)) { + __isLoginInProcess = true; + } + else { + __isLoginInProcess = false; + } + return proxiedOpen.apply(this, Array.prototype.slice.call(arguments)); + }; + })(); + + //Proxy Send Method - X-AUTH-STUFF + (function() { + var proxiedSend = window.XMLHttpRequest.prototype.send; + window.XMLHttpRequest.prototype.send = function() { + if(__isLoginInProcess) { + proxyAuthanticationCallback(this); + } + return proxiedSend.apply(this, Array.prototype.slice.call(arguments)); + }; + })(); + + //Proxy Authantication Callback Method - X-AUTH-STUFF + function proxyAuthanticationCallback(xhrObject) { + var proxy = xhrObject.onreadystatechange; + xhrObject.onreadystatechange = function() { + if (xhrObject.readyState == 4) { + if(xhrObject.status == 200 || xhrObject.status == 401) { + window.swaggerUi.api.clientAuthorizations.remove('X-AUTH-TOKEN'); + if(xhrObject.status == 200) { + var key = xhrObject.getResponseHeader('x-auth-token'); + if(key && key.trim() != "") { + var apiKeyAuth = new SwaggerClient.ApiKeyAuthorization("X-AUTH-TOKEN", key, "header"); + window.swaggerUi.api.clientAuthorizations.add("X-AUTH-TOKEN", apiKeyAuth); + console.log("added x-auth-key ", key); + } + } + } + } + return proxy.apply(xhrObject, Array.prototype.slice.call(arguments)); + } + } + + //Proxy Send Method - CUSTOM HEADERS STUFF + (function () { + var proxiedSend = window.XMLHttpRequest.prototype.send; + window.XMLHttpRequest.prototype.send = function () { + var headerItems = document.querySelectorAll('.custom-headers .headers-list .header-item'); + if (headerItems) { + Array.prototype.forEach.call(headerItems, function (header) { + var headerName = header.querySelector('.header-name').value; + var headerValue = header.querySelector('.header-value').value; + if (headerName && headerValue) { + this.setRequestHeader(headerName, headerValue); + } + }, this); + } + return proxiedSend.apply(this, Array.prototype.slice.call(arguments)); + }; + })(); + + //Proxy requests - END + +</script> + +<div data-uxf-point="nfv-header" class="nfv-header"> + <div class="header-content-wrapper"> + <div data-uxf-point="nfv-logo" class="nfv-logo"><a href="../ncso/landingpage.html">VENDOR</a></div> + <div data-uxf-point="header-title" class="header-title"> + <div data-uxf-point="main-title" class="main-title"></div> + <div data-uxf-point="version-controller" class="version-select"></div> + <div data-uxf-point="sub-title" class="sub-title"></div> + </div> + </div> +</div> + +<div class="custom-headers"> + <style> + .custom-headers { + margin-left: 124px; + width: 500px; + border: 1px solid #419EF1; + } + + .custom-headers .headers-title { + background-color: #0F6AB4; + height: 24px; + color: white; + text-align: center; + font-size: 1.2em; + } + + .custom-headers .headers-list .header-item { + display: flex; + justify-content: space-around; + padding: 10px 5px 0 5px; + } + + .custom-headers .headers-list .header-item.default-item .header-col.header-delete { + visibility: hidden; + } + + .custom-headers .headers-list .header-item.default-item .header-col.header-name { + pointer-events: none; + } + + .custom-headers .headers-list .header-item .header-col.header-delete { + cursor: pointer; + align-self: center; + } + + .custom-headers .add-header { + text-align: right; + padding: 5px; + border-top: 1px solid #0F6AB4; + margin-top: 10px; + background-color: #E7F6EC; + } + + .custom-headers .add-header .add-header-button, .custom-headers .add-header .reset-header-button { + + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.9em; + text-align: center; + padding: 7px 0 4px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; + background-color: #0f6ab4; + cursor: pointer; + } + + .custom-headers .add-header .reset-header-button { + + } + </style> + <div class="headers-title">Custom Headers</div> + <div class="headers-list"> + <!--Dynamically add headers using addHeaderItem function--> + </div> + <div class="add-header"> + <span class="reset-header-button" onclick="resetHeaderItems();">Reset</span> + <span class="add-header-button" onclick="addHeaderItem();">Add</span> + </div> + <script> + function addHeaderItem(defaultName, defaultValue) { + + var headerItemName = document.createElement('input'); + headerItemName.type = 'text'; + headerItemName.value = defaultName || ''; + headerItemName.classList.add('header-col', 'header-name'); + + var headerItemValue = document.createElement('input'); + headerItemValue.type = 'text'; + headerItemValue.value = defaultValue || ''; + headerItemValue.classList.add('header-col', 'header-value'); + + var headerItemDelete = document.createElement('div'); + headerItemDelete.innerHTML = '✖'; + headerItemDelete.classList.add('header-col', 'header-delete'); + + var headerItem = document.createElement('div'); + headerItem.classList.add('header-item'); + headerItem.appendChild(headerItemName); + headerItem.appendChild(headerItemValue); + headerItem.appendChild(headerItemDelete); + + headerItemDelete.onclick = function () { + headersList.removeChild(headerItem); + }; + + var headersList = document.querySelector('.custom-headers .headers-list'); + headersList.appendChild(headerItem); + + return headerItem; + } + function resetHeaderItems() { + var headersList = document.querySelector('.custom-headers .headers-list'); + while (headersList.firstChild) { + headersList.removeChild(headersList.firstChild); + } + var defaultHeaderItem = addHeaderItem('USER_ID'); + defaultHeaderItem.classList.add('default-item'); + } + resetHeaderItems(); + </script> +</div> +<div id="message-bar" class="swagger-ui-wrap" data-sw-translate> </div> +<div id="swagger-ui-container" class="swagger-ui-wrap"></div> +</body> +</html> |