From 59a51ba4a7e57fb08354a5ffcebce3525e00bf59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cristi=20V=C3=AEjdea?= Date: Thu, 11 Jan 2018 23:08:55 +0100 Subject: [PATCH] Remove inline style from redoc --- src/drf_yasg/static/drf-yasg/redoc-init.js | 29 +++++++++++++++++++ src/drf_yasg/static/drf-yasg/style.css | 4 +++ .../static/drf-yasg/swagger-ui-init.js | 15 ++++++++-- .../templates/drf-yasg/redoc-alpha.html | 14 ++------- src/drf_yasg/templates/drf-yasg/redoc.html | 16 +++------- .../templates/drf-yasg/swagger-ui.html | 4 +-- 6 files changed, 54 insertions(+), 28 deletions(-) diff --git a/src/drf_yasg/static/drf-yasg/redoc-init.js b/src/drf_yasg/static/drf-yasg/redoc-init.js index 15ea8ef..fd1c788 100644 --- a/src/drf_yasg/static/drf-yasg/redoc-init.js +++ b/src/drf_yasg/static/drf-yasg/redoc-init.js @@ -17,3 +17,32 @@ if (redocSettings.hideHostname) { } redoc.setAttribute("expand-responses", redocSettings.expandResponses); document.body.appendChild(redoc); + +function hideEmptyVersion() { + // 'span.api-info-version' is for redoc 1.x, 'div.api-info span' is for redoc 2-alpha + var apiVersion = document.querySelector('span.api-info-version') || document.querySelector('div.api-info span'); + if (!apiVersion) { + console.log("WARNING: could not find API versionString element (span.api-info-version)"); + return; + } + + var versionString = apiVersion.innerText; + if (versionString) { + // trim spaces and surrounding () + versionString = versionString.replace(/ /g,''); + versionString = versionString.replace(/(^\()|(\)$)/g,''); + } + + if (!versionString) { + // hide version element if empty + apiVersion.classList.add("hidden"); + } +} + +if (document.querySelector('span.api-info-version') || document.querySelector('div.api-info span')) { + hideEmptyVersion(); +} +else { + insertionQ('span.api-info-version').every(hideEmptyVersion); + insertionQ('div.api-info span').every(hideEmptyVersion); +} diff --git a/src/drf_yasg/static/drf-yasg/style.css b/src/drf_yasg/static/drf-yasg/style.css index 8cf61a1..b06852f 100644 --- a/src/drf_yasg/static/drf-yasg/style.css +++ b/src/drf_yasg/static/drf-yasg/style.css @@ -12,6 +12,10 @@ html { body { margin: 0; + padding: 0; +} + +body.swagger-body { background: #fafafa; } diff --git a/src/drf_yasg/static/drf-yasg/swagger-ui-init.js b/src/drf_yasg/static/drf-yasg/swagger-ui-init.js index 39c6b85..acf28a6 100644 --- a/src/drf_yasg/static/drf-yasg/swagger-ui-init.js +++ b/src/drf_yasg/static/drf-yasg/swagger-ui-init.js @@ -7,7 +7,7 @@ function patchSwaggerUi() { var authorizeButton = document.querySelector('.auth-wrapper .authorize'); var djangoSessionAuth = document.querySelector('#django-session-auth'); if (document.querySelector('.auth-wrapper #django-session-auth')) { - console.log("session auth already patched"); + console.log("WARNING: session auth already patched; skipping patchSwaggerUi()"); return; } @@ -20,6 +20,10 @@ function patchSwaggerUi() { } function initSwaggerUi() { + if (window.ui) { + console.log("WARNING: skipping initSwaggerUi() because window.ui is already defined"); + return; + } var swaggerConfig = { url: specURL, dom_id: '#swagger-ui', @@ -46,7 +50,6 @@ function initSwaggerUi() { var swaggerSettings = JSON.parse(document.getElementById('swagger-settings').innerHTML); - console.log(swaggerSettings); for (var p in swaggerSettings) { if (swaggerSettings.hasOwnProperty(p)) { swaggerConfig[p] = swaggerSettings[p]; @@ -56,6 +59,12 @@ function initSwaggerUi() { } window.onload = function () { - insertionQ('.auth-wrapper .authorize').every(patchSwaggerUi); initSwaggerUi(); }; + +if (document.querySelector('.auth-wrapper .authorize')) { + patchSwaggerUi(); +} +else { + insertionQ('.auth-wrapper .authorize').every(patchSwaggerUi); +} diff --git a/src/drf_yasg/templates/drf-yasg/redoc-alpha.html b/src/drf_yasg/templates/drf-yasg/redoc-alpha.html index 0de7169..a89c275 100644 --- a/src/drf_yasg/templates/drf-yasg/redoc-alpha.html +++ b/src/drf_yasg/templates/drf-yasg/redoc-alpha.html @@ -5,21 +5,13 @@ {{ title }} - + + + diff --git a/src/drf_yasg/templates/drf-yasg/redoc.html b/src/drf_yasg/templates/drf-yasg/redoc.html index 4b75832..5a5b527 100644 --- a/src/drf_yasg/templates/drf-yasg/redoc.html +++ b/src/drf_yasg/templates/drf-yasg/redoc.html @@ -5,22 +5,14 @@ {{ title }} - + + + - + diff --git a/src/drf_yasg/templates/drf-yasg/swagger-ui.html b/src/drf_yasg/templates/drf-yasg/swagger-ui.html index a8173ec..6e70dae 100644 --- a/src/drf_yasg/templates/drf-yasg/swagger-ui.html +++ b/src/drf_yasg/templates/drf-yasg/swagger-ui.html @@ -14,7 +14,7 @@ - + @@ -61,10 +61,10 @@ - +