swagger_ui_engine 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +18 -0
  3. data/app/assets/javascripts/swagger_ui_engine/lang/ca.js +3 -1
  4. data/app/assets/javascripts/swagger_ui_engine/lang/de.js +58 -0
  5. data/app/assets/javascripts/swagger_ui_engine/lang/el.js +3 -1
  6. data/app/assets/javascripts/swagger_ui_engine/lang/en.js +3 -1
  7. data/app/assets/javascripts/swagger_ui_engine/lang/es.js +3 -1
  8. data/app/assets/javascripts/swagger_ui_engine/lang/fr.js +3 -1
  9. data/app/assets/javascripts/swagger_ui_engine/lang/geo.js +3 -1
  10. data/app/assets/javascripts/swagger_ui_engine/lang/it.js +3 -1
  11. data/app/assets/javascripts/swagger_ui_engine/lang/ja.js +3 -1
  12. data/app/assets/javascripts/swagger_ui_engine/lang/ko-kr.js +3 -1
  13. data/app/assets/javascripts/swagger_ui_engine/lang/pl.js +3 -1
  14. data/app/assets/javascripts/swagger_ui_engine/lang/pt.js +3 -1
  15. data/app/assets/javascripts/swagger_ui_engine/lang/ru.js +3 -1
  16. data/app/assets/javascripts/swagger_ui_engine/lang/tr.js +3 -1
  17. data/app/assets/javascripts/swagger_ui_engine/lang/zh-cn.js +3 -1
  18. data/app/assets/javascripts/swagger_ui_engine/lib/swagger-oauth.js +1 -1
  19. data/app/assets/javascripts/swagger_ui_engine/swagger-ui.js +10 -10
  20. data/app/assets/stylesheets/swagger_ui_engine/application.css +1 -0
  21. data/app/assets/stylesheets/swagger_ui_engine/custom.css +7 -0
  22. data/app/controllers/swagger_ui_engine/application_controller.rb +2 -1
  23. data/app/controllers/swagger_ui_engine/docs_controller.rb +17 -3
  24. data/app/helpers/swagger_ui_engine/auth_config_parser.rb +19 -0
  25. data/app/helpers/swagger_ui_engine/config_parser.rb +39 -0
  26. data/app/helpers/swagger_ui_engine/oauth_config_parser.rb +31 -0
  27. data/app/helpers/swagger_ui_engine/swagger_ui_defaults.rb +27 -0
  28. data/app/helpers/swagger_ui_engine/translation_helper.rb +16 -0
  29. data/app/{assets/javascripts/swagger_ui_engine/o2c.html → views/swagger_ui_engine/docs/ouath2.html.erb} +0 -0
  30. data/app/views/swagger_ui_engine/docs/show.html.erb +13 -6
  31. data/config/routes.rb +6 -1
  32. data/lib/swagger_ui_engine/configuration.rb +7 -0
  33. data/lib/swagger_ui_engine/engine.rb +2 -0
  34. data/lib/swagger_ui_engine/version.rb +1 -1
  35. metadata +10 -6
  36. data/app/helpers/auth_config_parser.rb +0 -17
  37. data/app/helpers/config_parser.rb +0 -37
  38. data/app/helpers/swagger_ui_defaults.rb +0 -25
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d6fff974d9f7d8667215be02d2b198551fe8b80
4
- data.tar.gz: 0ff2b58a74369dabfb951a7e9c385eca9fc0e13a
3
+ metadata.gz: 523b130aea7593cd7682b8281962c30e5b2a0277
4
+ data.tar.gz: 23e0cbdee181c30db11d677fe3d296409de836be
5
5
  SHA512:
6
- metadata.gz: 777136dcf3369e1a715f32e91281eeb0f6ac2101811df40208da9595233fe17007dd313ab0bb1e77c8612a8b6df9583e9d9309eedcfac6a11438ae0773be9659
7
- data.tar.gz: 96779d30916340800fb2f3766009f49aa7b2a28c0ca8a8b2c5fdc8599f1adb8ba0b258dd35ec55ef5f9b8f2e60a357ecb39273a9fa3b7889b5a4eb6aa8d71ada
6
+ metadata.gz: 488bbc670b69c113d6960e7aec42c76bf6736cfe12ac2b1a0ee79d53559f8d98900189fe2cdd0690528727450fa1019d0f4e92eee9287d3656f0b5c72d3b9912
7
+ data.tar.gz: 9fbca2dd081d43b86db825e1e7079bd7c85b9fb43d2c208c9ff0ec55b56483af04b9f9fad85e89817e9720d3e51bd10fd0da11bb50c35c00334222ff52044634
data/CHANGELOG.md CHANGED
@@ -2,6 +2,24 @@
2
2
 
3
3
  ## master
4
4
 
5
+ ## 1.0.1
6
+
7
+ * Support OAuth2 authentication
8
+ * Support loading Swagger UI translations
9
+ * Add return link for multiple API versions
10
+ * Add `de` translation
11
+ * Refactor helpers
12
+
13
+ ## 1.0.0
14
+
15
+ * Rails 5 dependency. It is compatible with previous versions.
16
+ * Support API versioning/multiple APIs definitions
17
+ * Add basic HTTP auth support
18
+ * Add `validator_enabled` configurable option
19
+ * Refactor Configuration class definition
20
+ * Refactor controllers
21
+ * Redefine gem summary and description
22
+
5
23
  ## 0.0.5
6
24
 
7
25
  * Support Swagger UI version 2.2.10
@@ -49,5 +49,7 @@ window.SwaggerTranslator.learn({
49
49
  "Finished Loading Resource Information. Rendering Swagger UI":"Finalitzada la càrrega del recurs informatiu. Renderitzant Swagger UI",
50
50
  "Unable to read api":"No es pot llegir l'api",
51
51
  "from path":"des de la ruta",
52
- "server returned":"el servidor ha retornat"
52
+ "server returned":"el servidor ha retornat",
53
+ "Authorize":"Authorize",
54
+ "Back to the list":"Back to the list",
53
55
  });
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ /* jshint quotmark: double */
4
+ window.SwaggerTranslator.learn({
5
+ "Warning: Deprecated":"Warnung: Deprecated",
6
+ "Implementation Notes":"Implementierungshinweise",
7
+ "Response Class":"Response Class",
8
+ "Status":"Status",
9
+ "Parameters":"Parameter",
10
+ "Parameter":"Parameter",
11
+ "Value":"Wert",
12
+ "Description":"Beschreibung",
13
+ "Parameter Type":"Parametertyp",
14
+ "Data Type":"Datentyp",
15
+ "Response Messages":"Response Messages",
16
+ "HTTP Status Code":"HTTP Status Code",
17
+ "Reason":"Grund",
18
+ "Response Model":"Response Model",
19
+ "Request URL":"Request URL",
20
+ "Response Body":"Response Body",
21
+ "Response Code":"Response Code",
22
+ "Response Headers":"Response Headers",
23
+ "Hide Response":"Response ausblenden",
24
+ "Headers":"Headers",
25
+ "Try it out!":"Ausprobieren",
26
+ "Show/Hide":"Einblenden/Ausblenden",
27
+ "List Operations":"Endpunkte anzeigen",
28
+ "Expand Operations":"Endpunkte ausklappen",
29
+ "Raw":"Raw",
30
+ "can't parse JSON. Raw result":"Parsen von JSON fehlgeschlagen. Raw result",
31
+ "Example Value":"Beispielwert",
32
+ "Model Schema":"Schemamodell",
33
+ "Model":"Modell",
34
+ "Click to set as parameter value":"Klicken um Parameter zu setzen",
35
+ "apply":"anlegen",
36
+ "Username":"Benutzername",
37
+ "Password":"Passwort",
38
+ "Terms of service":"Nutzungsbedingungen",
39
+ "Created by":"Erstellt von",
40
+ "See more at":"Mehr unter",
41
+ "Contact the developer":"Entwickler kontaktieren",
42
+ "api version":"API-Version",
43
+ "Response Content Type":"Response Content Type",
44
+ "Parameter content type:":"Parameter Content Type:",
45
+ "fetching resource":"Lade Ressourcen",
46
+ "fetching resource list":"Lade Liste der Ressourcen",
47
+ "Explore":"Erkunde",
48
+ "Show Swagger Petstore Example Apis":"Anzeigen der Swagger Petstore Example Apis",
49
+ "Can't read from server. It may not have the appropriate access-control-origin settings.":"Lesen vom Server nicht möglich. Prüfen Sie die 'access-control-origin' Einstellungen.",
50
+ "Please specify the protocol for":"Bitte geben Sie das Protokoll an",
51
+ "Can't read swagger JSON from":"Swagger JSON kann nicht gelesen werden",
52
+ "Finished Loading Resource Information. Rendering Swagger UI":"Ressourceninformationen sind geladen. Rendern der Swagger UI",
53
+ "Unable to read api":"API kann nicht gelesen werden",
54
+ "from path":"von Pfad",
55
+ "server returned":"Server antwortet",
56
+ "Authorize":"Autorisieren",
57
+ "Back to the list":"Zurück zur Liste",
58
+ });
@@ -52,5 +52,7 @@ window.SwaggerTranslator.learn({
52
52
  "Finished Loading Resource Information. Rendering Swagger UI":"Ολοκλήρωση Φόρτωσης Πληροφορικών Πόρου. Παρουσίαση Swagger UI",
53
53
  "Unable to read api":"Αδυναμία ανάγνωσης api",
54
54
  "from path":"από το μονοπάτι",
55
- "server returned":"ο εξυπηρετηρής επέστρεψε"
55
+ "server returned":"ο εξυπηρετηρής επέστρεψε",
56
+ "Authorize":"Authorize",
57
+ "Back to the list":"Back to the list",
56
58
  });
@@ -52,5 +52,7 @@ window.SwaggerTranslator.learn({
52
52
  "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI",
53
53
  "Unable to read api":"Unable to read api",
54
54
  "from path":"from path",
55
- "server returned":"server returned"
55
+ "server returned":"server returned",
56
+ "Authorize":"Authorize",
57
+ "Back to the list":"Back to the list",
56
58
  });
@@ -49,5 +49,7 @@ window.SwaggerTranslator.learn({
49
49
  "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI",
50
50
  "Unable to read api":"No se puede leer la api",
51
51
  "from path":"desde ruta",
52
- "server returned":"el servidor retornó"
52
+ "server returned":"el servidor retornó",
53
+ "Authorize":"Authorize",
54
+ "Back to the list":"Volver a la lista",
53
55
  });
@@ -50,5 +50,7 @@ window.SwaggerTranslator.learn({
50
50
  "Finished Loading Resource Information. Rendering Swagger UI":"Chargement des informations terminé. Affichage de Swagger UI",
51
51
  "Unable to read api":"Impossible de lire l'api",
52
52
  "from path":"à partir du chemin",
53
- "server returned":"réponse du serveur"
53
+ "server returned":"réponse du serveur",
54
+ "Authorize":"Authorize",
55
+ "Back to the list":"Retour à la liste",
54
56
  });
@@ -52,5 +52,7 @@ window.SwaggerTranslator.learn({
52
52
  "Finished Loading Resource Information. Rendering Swagger UI":"რესურსების ჩატვირთვა სრულდება. Swagger UI რენდერდება",
53
53
  "Unable to read api":"api წაკითხვა ვერ მოხერხდა",
54
54
  "from path":"მისამართიდან",
55
- "server returned":"სერვერმა დააბრუნა"
55
+ "server returned":"სერვერმა დააბრუნა",
56
+ "Authorize":"Authorize",
57
+ "Back to the list":"Back to the list",
56
58
  });
@@ -48,5 +48,7 @@ window.SwaggerTranslator.learn({
48
48
  "Finished Loading Resource Information. Rendering Swagger UI":"Lettura informazioni risorse termianta. Swagger UI viene mostrata",
49
49
  "Unable to read api":"Impossibile leggere la api",
50
50
  "from path":"da cartella",
51
- "server returned":"il server ha restituito"
51
+ "server returned":"il server ha restituito",
52
+ "Authorize":"Authorize",
53
+ "Back to the list":"Torna all'elenco",
52
54
  });
@@ -52,5 +52,7 @@ window.SwaggerTranslator.learn({
52
52
  "Finished Loading Resource Information. Rendering Swagger UI":"リソース情報の読み込みが完了しました. Swagger UIを描画しています",
53
53
  "Unable to read api":"APIを読み込めません",
54
54
  "from path":"次のパスから",
55
- "server returned":"サーバからの返答"
55
+ "server returned":"サーバからの返答",
56
+ "Authorize":"Authorize",
57
+ "Back to the list":"Back to the list",
56
58
  });
@@ -49,5 +49,7 @@ window.SwaggerTranslator.learn({
49
49
  "Finished Loading Resource Information. Rendering Swagger UI":"리소스 정보 불러오기 완료. Swagger UI 랜더링",
50
50
  "Unable to read api":"api를 읽을 수 없습니다.",
51
51
  "from path":"다음 경로로 부터",
52
- "server returned":"서버 응답함."
52
+ "server returned":"서버 응답함.",
53
+ "Authorize":"Authorize",
54
+ "Back to the list":"Back to the list",
53
55
  });
@@ -49,5 +49,7 @@ window.SwaggerTranslator.learn({
49
49
  "Finished Loading Resource Information. Rendering Swagger UI":"Ukończono Ładowanie Informacji o Zasobie. Renderowanie Swagger UI",
50
50
  "Unable to read api":"Nie można odczytać api",
51
51
  "from path":"ze ścieżki",
52
- "server returned":"serwer zwrócił"
52
+ "server returned":"serwer zwrócił",
53
+ "Authorize": "Autoryzuj",
54
+ "Back to the list":"Powrót do listy",
53
55
  });
@@ -49,5 +49,7 @@ window.SwaggerTranslator.learn({
49
49
  "Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI",
50
50
  "Unable to read api":"Não foi possível ler api",
51
51
  "from path":"do caminho",
52
- "server returned":"servidor retornou"
52
+ "server returned":"servidor retornou",
53
+ "Authorize":"Authorize",
54
+ "Back to the list":"Back to the list",
53
55
  });
@@ -52,5 +52,7 @@ window.SwaggerTranslator.learn({
52
52
  "Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ресурсах завершена. Рендерим",
53
53
  "Unable to read api":"Не удалось прочитать api",
54
54
  "from path":"по адресу",
55
- "server returned":"сервер сказал"
55
+ "server returned":"сервер сказал",
56
+ "Authorize":"Authorize",
57
+ "Back to the list":"Back to the list",
56
58
  });
@@ -49,5 +49,7 @@ window.SwaggerTranslator.learn({
49
49
  "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor",
50
50
  "Unable to read api":"api okunamadı",
51
51
  "from path":"yoldan",
52
- "server returned":"sunucuya dönüldü"
52
+ "server returned":"sunucuya dönüldü",
53
+ "Authorize":"Authorize",
54
+ "Back to the list":"Back to the list",
53
55
  });
@@ -52,5 +52,7 @@ window.SwaggerTranslator.learn({
52
52
  "Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI",
53
53
  "Unable to read api":"无法读取api",
54
54
  "from path":"从路径",
55
- "server returned":"服务器返回"
55
+ "server returned":"服务器返回",
56
+ "Authorize":"Authorize",
57
+ "Back to the list":"Back to the list",
56
58
  });
@@ -1 +1 @@
1
- function handleLogin(){var e=[],o=window.swaggerUiAuth.authSchemes||window.swaggerUiAuth.securityDefinitions;if(o){var i,n=o;for(i in n){var a=n[i];if("oauth2"===a.type&&a.scopes){var t;if(Array.isArray(a.scopes)){var p;for(p=0;p<a.scopes.length;p++)e.push(a.scopes[p])}else for(t in a.scopes)e.push({scope:t,description:a.scopes[t],OAuthSchemeKey:i})}}}for(window.swaggerUi.api&&window.swaggerUi.api.info&&(appName=window.swaggerUi.api.info.title),$(".api-popup-dialog").remove(),popupDialog=$(['<div class="api-popup-dialog">','<div class="api-popup-title">Select OAuth2.0 Scopes</div>','<div class="api-popup-content">',"<p>Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.",'<a href="#">Learn how to use</a>',"</p>","<p><strong>"+appName+"</strong> API requires the following scopes. Select which ones you want to grant to Swagger UI.</p>",'<ul class="api-popup-scopes">',"</ul>",'<p class="error-msg"></p>','<div class="api-popup-actions"><button class="api-popup-authbtn api-button green" type="button">Authorize</button><button class="api-popup-cancel api-button gray" type="button">Cancel</button></div>',"</div>","</div>"].join("")),$(document.body).append(popupDialog),popup=popupDialog.find("ul.api-popup-scopes").empty(),p=0;p<e.length;p++)t=e[p],str='<li><input type="checkbox" id="scope_'+p+'" scope="'+t.scope+'"" oauthtype="'+t.OAuthSchemeKey+'"/><label for="scope_'+p+'">'+t.scope,t.description&&($.map(o,function(e,o){return o}).length>1?str+='<br/><span class="api-scope-desc">'+t.description+" ("+t.OAuthSchemeKey+")</span>":str+='<br/><span class="api-scope-desc">'+t.description+"</span>"),str+="</label></li>",popup.append(str);var r=$(window),s=r.width(),c=r.height(),l=r.scrollTop(),d=popupDialog.outerWidth(),u=popupDialog.outerHeight(),h=(c-u)/2+l,g=(s-d)/2;popupDialog.css({top:(h<0?0:h)+"px",left:(g<0?0:g)+"px"}),popupDialog.find("button.api-popup-cancel").click(function(){popupMask.hide(),popupDialog.hide(),popupDialog.empty(),popupDialog=[]}),$("button.api-popup-authbtn").unbind(),popupDialog.find("button.api-popup-authbtn").click(function(){function e(e){return e.vendorExtensions["x-tokenName"]||e.tokenName}popupMask.hide(),popupDialog.hide();var o,i=window.swaggerUi.api.authSchemes,n=window.location,a=location.pathname.substring(0,location.pathname.lastIndexOf("/")),t=n.protocol+"//"+n.host+a+"/o2c.html",p=window.oAuthRedirectUrl||t,r=null,s=[],c=popup.find("input:checked"),l=[];for(k=0;k<c.length;k++){var d=$(c[k]).attr("scope");s.indexOf(d)===-1&&s.push(d);var u=$(c[k]).attr("oauthtype");l.indexOf(u)===-1&&l.push(u)}window.enabledScopes=s;for(var h in i)if(i.hasOwnProperty(h)&&l.indexOf(h)!=-1){var g=i[h].flow;if("oauth2"!==i[h].type||!g||"implicit"!==g&&"accessCode"!==g){if("oauth2"===i[h].type&&g&&"application"===g){var w=i[h];return window.swaggerUi.tokenName=e(w)||"access_token",void clientCredentialsFlow(s,w.tokenUrl,h)}if(i[h].grantTypes){var c=i[h].grantTypes;for(var f in c)if(c.hasOwnProperty(f)&&"implicit"===f){var w=c[f];w.loginEndpoint.url;r=w.loginEndpoint.url+"?response_type=token",window.swaggerUi.tokenName=e(w)}else if(c.hasOwnProperty(f)&&"accessCode"===f){var w=c[f];w.tokenRequestEndpoint.url;r=w.tokenRequestEndpoint.url+"?response_type=code",window.swaggerUi.tokenName=e(w)}}}else{var w=i[h];r=w.authorizationUrl+"?response_type="+("implicit"===g?"token":"code"),window.swaggerUi.tokenName=e(w)||"access_token",window.swaggerUi.tokenUrl="accessCode"===g?w.tokenUrl:null,o=h}}redirect_uri=p,r+="&redirect_uri="+encodeURIComponent(p),r+="&realm="+encodeURIComponent(realm),r+="&client_id="+encodeURIComponent(clientId),r+="&scope="+encodeURIComponent(s.join(scopeSeparator)),r+="&state="+encodeURIComponent(o);for(var h in additionalQueryStringParams)r+="&"+h+"="+encodeURIComponent(additionalQueryStringParams[h]);window.open(r)}),popupMask.show(),popupDialog.show()}function handleLogout(){for(key in window.swaggerUi.api.clientAuthorizations.authz)window.swaggerUi.api.clientAuthorizations.remove(key);window.enabledScopes=null,$(".api-ic.ic-on").addClass("ic-off"),$(".api-ic.ic-on").removeClass("ic-on"),$(".api-ic.ic-warning").addClass("ic-error"),$(".api-ic.ic-warning").removeClass("ic-warning")}function initOAuth(e){var o=e||{},i=[];return appName=o.appName||i.push("missing appName"),popupMask=o.popupMask||$("#api-common-mask"),popupDialog=o.popupDialog||$(".api-popup-dialog"),clientId=o.clientId||i.push("missing client id"),clientSecret=o.clientSecret||null,realm=o.realm||i.push("missing realm"),scopeSeparator=o.scopeSeparator||" ",additionalQueryStringParams=o.additionalQueryStringParams||{},i.length>0?void log("auth unable initialize oauth: "+i):($("pre code").each(function(e,o){hljs.highlightBlock(o)}),$(".api-ic").unbind(),void $(".api-ic").click(function(e){$(e.target).hasClass("ic-off")?handleLogin():handleLogout()}))}function clientCredentialsFlow(e,o,i){var n={client_id:clientId,client_secret:clientSecret,scope:e.join(" "),grant_type:"client_credentials"};$.ajax({url:o,type:"POST",data:n,success:function(e,o,n){onOAuthComplete(e,i)},error:function(e,o,i){onOAuthComplete("")}})}var appName,popupMask,popupDialog,clientId,realm,redirect_uri,clientSecret,scopeSeparator,additionalQueryStringParams;window.processOAuthCode=function(e){var o=e.state,i=window.location,n=location.pathname.substring(0,location.pathname.lastIndexOf("/")),a=i.protocol+"//"+i.host+n+"/o2c.html",t=window.oAuthRedirectUrl||a,p={client_id:clientId,code:e.code,grant_type:"authorization_code",redirect_uri:t};clientSecret&&(p.client_secret=clientSecret),$.ajax({url:window.swaggerUiAuth.tokenUrl,type:"POST",data:p,success:function(e,i,n){onOAuthComplete(e,o)},error:function(e,o,i){onOAuthComplete("")}})},window.onOAuthComplete=function(e,o){if(e)if(e.error){var i=$("input[type=checkbox],.secured");i.each(function(e){i[e].checked=!1}),alert(e.error)}else{var n=e[window.swaggerUiAuth.tokenName];if(o||(o=e.state),n){var a=null;$.each($(".auth .api-ic .api_information_panel"),function(e,o){var i=o;if(i&&i.childNodes){var n=[];$.each(i.childNodes,function(e,o){var i=o.innerHTML;i&&n.push(i)});for(var t=[],p=0;p<n.length;p++){var r=n[p];window.enabledScopes&&window.enabledScopes.indexOf(r)==-1&&t.push(r)}t.length>0?(a=o.parentNode.parentNode,$(a.parentNode).find(".api-ic.ic-on").addClass("ic-off"),$(a.parentNode).find(".api-ic.ic-on").removeClass("ic-on"),$(a).find(".api-ic").addClass("ic-warning"),$(a).find(".api-ic").removeClass("ic-error")):(a=o.parentNode.parentNode,$(a.parentNode).find(".api-ic.ic-off").addClass("ic-on"),$(a.parentNode).find(".api-ic.ic-off").removeClass("ic-off"),$(a).find(".api-ic").addClass("ic-info"),$(a).find(".api-ic").removeClass("ic-warning"),$(a).find(".api-ic").removeClass("ic-error"))}}),"undefined"!=typeof window.swaggerUi&&(window.swaggerUi.api.clientAuthorizations.add(window.swaggerUiAuth.OAuthSchemeKey,new SwaggerClient.ApiKeyAuthorization("Authorization","Bearer "+n,"header")),window.swaggerUi.load())}}};
1
+ function handleLogin(){var e=[],o=window.swaggerUiAuth.authSchemes||window.swaggerUiAuth.securityDefinitions;if(o){var i,n=o;for(i in n){var a=n[i];if("oauth2"===a.type&&a.scopes){var t;if(Array.isArray(a.scopes)){var p;for(p=0;p<a.scopes.length;p++)e.push(a.scopes[p])}else for(t in a.scopes)e.push({scope:t,description:a.scopes[t],OAuthSchemeKey:i})}}}for(window.swaggerUi.api&&window.swaggerUi.api.info&&(appName=window.swaggerUi.api.info.title),$(".api-popup-dialog").remove(),popupDialog=$(['<div class="api-popup-dialog">','<div class="api-popup-title">Select OAuth2.0 Scopes</div>','<div class="api-popup-content">',"<p>Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.",'<a href="#">Learn how to use</a>',"</p>","<p><strong>"+appName+"</strong> API requires the following scopes. Select which ones you want to grant to Swagger UI.</p>",'<ul class="api-popup-scopes">',"</ul>",'<p class="error-msg"></p>','<div class="api-popup-actions"><button class="api-popup-authbtn api-button green" type="button" data-sw-translate>Authorize</button><button class="api-popup-cancel api-button gray" type="button">Cancel</button></div>',"</div>","</div>"].join("")),$(document.body).append(popupDialog),popup=popupDialog.find("ul.api-popup-scopes").empty(),p=0;p<e.length;p++)t=e[p],str='<li><input type="checkbox" id="scope_'+p+'" scope="'+t.scope+'"" oauthtype="'+t.OAuthSchemeKey+'"/><label for="scope_'+p+'">'+t.scope,t.description&&($.map(o,function(e,o){return o}).length>1?str+='<br/><span class="api-scope-desc">'+t.description+" ("+t.OAuthSchemeKey+")</span>":str+='<br/><span class="api-scope-desc">'+t.description+"</span>"),str+="</label></li>",popup.append(str);var r=$(window),s=r.width(),c=r.height(),l=r.scrollTop(),d=popupDialog.outerWidth(),u=popupDialog.outerHeight(),h=(c-u)/2+l,g=(s-d)/2;popupDialog.css({top:(h<0?0:h)+"px",left:(g<0?0:g)+"px"}),popupDialog.find("button.api-popup-cancel").click(function(){popupMask.hide(),popupDialog.hide(),popupDialog.empty(),popupDialog=[]}),$("button.api-popup-authbtn").unbind(),popupDialog.find("button.api-popup-authbtn").click(function(){function e(e){return e.vendorExtensions["x-tokenName"]||e.tokenName}popupMask.hide(),popupDialog.hide();var o,i=window.swaggerUi.api.authSchemes,n=window.location,a=location.pathname.substring(0,location.pathname.lastIndexOf("/")),t=n.protocol+"//"+n.host+a+"/o2c.html",p=window.oAuthRedirectUrl||t,r=null,s=[],c=popup.find("input:checked"),l=[];for(k=0;k<c.length;k++){var d=$(c[k]).attr("scope");s.indexOf(d)===-1&&s.push(d);var u=$(c[k]).attr("oauthtype");l.indexOf(u)===-1&&l.push(u)}window.enabledScopes=s;for(var h in i)if(i.hasOwnProperty(h)&&l.indexOf(h)!=-1){var g=i[h].flow;if("oauth2"!==i[h].type||!g||"implicit"!==g&&"accessCode"!==g){if("oauth2"===i[h].type&&g&&"application"===g){var w=i[h];return window.swaggerUi.tokenName=e(w)||"access_token",void clientCredentialsFlow(s,w.tokenUrl,h)}if(i[h].grantTypes){var c=i[h].grantTypes;for(var f in c)if(c.hasOwnProperty(f)&&"implicit"===f){var w=c[f];w.loginEndpoint.url;r=w.loginEndpoint.url+"?response_type=token",window.swaggerUi.tokenName=e(w)}else if(c.hasOwnProperty(f)&&"accessCode"===f){var w=c[f];w.tokenRequestEndpoint.url;r=w.tokenRequestEndpoint.url+"?response_type=code",window.swaggerUi.tokenName=e(w)}}}else{var w=i[h];r=w.authorizationUrl+"?response_type="+("implicit"===g?"token":"code"),window.swaggerUi.tokenName=e(w)||"access_token",window.swaggerUi.tokenUrl="accessCode"===g?w.tokenUrl:null,o=h}}redirect_uri=p,r+="&redirect_uri="+encodeURIComponent(p),r+="&realm="+encodeURIComponent(realm),r+="&client_id="+encodeURIComponent(clientId),r+="&scope="+encodeURIComponent(s.join(scopeSeparator)),r+="&state="+encodeURIComponent(o);for(var h in additionalQueryStringParams)r+="&"+h+"="+encodeURIComponent(additionalQueryStringParams[h]);window.open(r)}),popupMask.show(),popupDialog.show()}function handleLogout(){for(key in window.swaggerUi.api.clientAuthorizations.authz)window.swaggerUi.api.clientAuthorizations.remove(key);window.enabledScopes=null,$(".api-ic.ic-on").addClass("ic-off"),$(".api-ic.ic-on").removeClass("ic-on"),$(".api-ic.ic-warning").addClass("ic-error"),$(".api-ic.ic-warning").removeClass("ic-warning")}function initOAuth(e){var o=e||{},i=[];return appName=o.appName||i.push("missing appName"),popupMask=o.popupMask||$("#api-common-mask"),popupDialog=o.popupDialog||$(".api-popup-dialog"),clientId=o.clientId||i.push("missing client id"),clientSecret=o.clientSecret||null,realm=o.realm||i.push("missing realm"),scopeSeparator=o.scopeSeparator||" ",additionalQueryStringParams=o.additionalQueryStringParams||{},i.length>0?void log("auth unable initialize oauth: "+i):($("pre code").each(function(e,o){hljs.highlightBlock(o)}),$(".api-ic").unbind(),void $(".api-ic").click(function(e){$(e.target).hasClass("ic-off")?handleLogin():handleLogout()}))}function clientCredentialsFlow(e,o,i){var n={client_id:clientId,client_secret:clientSecret,scope:e.join(" "),grant_type:"client_credentials"};$.ajax({url:o,type:"POST",data:n,success:function(e,o,n){onOAuthComplete(e,i)},error:function(e,o,i){onOAuthComplete("")}})}var appName,popupMask,popupDialog,clientId,realm,redirect_uri,clientSecret,scopeSeparator,additionalQueryStringParams;window.processOAuthCode=function(e){var o=e.state,i=window.location,n=location.pathname.substring(0,location.pathname.lastIndexOf("/")),a=i.protocol+"//"+i.host+n+"/o2c.html",t=window.oAuthRedirectUrl||a,p={client_id:clientId,code:e.code,grant_type:"authorization_code",redirect_uri:t};clientSecret&&(p.client_secret=clientSecret),$.ajax({url:window.swaggerUiAuth.tokenUrl,type:"POST",data:p,success:function(e,i,n){onOAuthComplete(e,o)},error:function(e,o,i){onOAuthComplete("")}})},window.onOAuthComplete=function(e,o){if(e)if(e.error){var i=$("input[type=checkbox],.secured");i.each(function(e){i[e].checked=!1}),alert(e.error)}else{var n=e[window.swaggerUiAuth.tokenName];if(o||(o=e.state),n){var a=null;$.each($(".auth .api-ic .api_information_panel"),function(e,o){var i=o;if(i&&i.childNodes){var n=[];$.each(i.childNodes,function(e,o){var i=o.innerHTML;i&&n.push(i)});for(var t=[],p=0;p<n.length;p++){var r=n[p];window.enabledScopes&&window.enabledScopes.indexOf(r)==-1&&t.push(r)}t.length>0?(a=o.parentNode.parentNode,$(a.parentNode).find(".api-ic.ic-on").addClass("ic-off"),$(a.parentNode).find(".api-ic.ic-on").removeClass("ic-on"),$(a).find(".api-ic").addClass("ic-warning"),$(a).find(".api-ic").removeClass("ic-error")):(a=o.parentNode.parentNode,$(a.parentNode).find(".api-ic.ic-off").addClass("ic-on"),$(a.parentNode).find(".api-ic.ic-off").removeClass("ic-off"),$(a).find(".api-ic").addClass("ic-info"),$(a).find(".api-ic").removeClass("ic-warning"),$(a).find(".api-ic").removeClass("ic-error"))}}),"undefined"!=typeof window.swaggerUi&&(window.swaggerUi.api.clientAuthorizations.add(window.swaggerUiAuth.OAuthSchemeKey,new SwaggerClient.ApiKeyAuthorization("Authorization","Bearer "+n,"header")),window.swaggerUi.load())}}};
@@ -4,7 +4,7 @@
4
4
  * @link http://swagger.io
5
5
  * @license Apache-2.0
6
6
  */
7
- (function(){/* jshint ignore:start */
7
+ (function(){/* jshint ignore:start */
8
8
  {(function() {
9
9
  var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {};
10
10
  templates['apikey_auth'] = template({"1":function(container,depth0,helpers,partials,data) {
@@ -29,7 +29,7 @@ templates['apikey_auth'] = template({"1":function(container,depth0,helpers,parti
29
29
  + " </div>\n </div>\n</div>\n";
30
30
  },"useData":true});
31
31
  templates['auth_button'] = template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
32
- return "<a class='authorize__btn' href=\"#\">Authorize</a>\n";
32
+ return "<a class='authorize__btn' href=\"#\" data-sw-translate>Authorize</a>\n";
33
33
  },"useData":true});
34
34
  templates['auth_button_operation'] = template({"1":function(container,depth0,helpers,partials,data) {
35
35
  return " authorize__btn_operation_login\n";
@@ -685,7 +685,7 @@ templates['resource'] = template({"1":function(container,depth0,helpers,partials
685
685
  + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.url : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "")
686
686
  + "' data-sw-translate>Raw</a>\n </li>\n";
687
687
  },"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) {
688
- var stack1, helper, options, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, buffer =
688
+ var stack1, helper, options, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, buffer =
689
689
  "<div class='heading'>\n <h2>\n <a href='#!/"
690
690
  + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.id : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "")
691
691
  + "' class=\"toggleEndpointList\" data-id=\""
@@ -797,7 +797,7 @@ templates['status_code'] = template({"1":function(container,depth0,helpers,parti
797
797
  + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.headers : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "")
798
798
  + " </tbody>\n </table>\n</td>";
799
799
  },"useData":true});
800
- })();}
800
+ })();}
801
801
  /* jshint ignore:end */
802
802
  'use strict';
803
803
 
@@ -24827,7 +24827,7 @@ SwaggerUi.partials.signature = (function () {
24827
24827
  return result;
24828
24828
  };
24829
24829
  */
24830
-
24830
+
24831
24831
  var getPrefix = function (name, xml) {
24832
24832
  var result = name || '';
24833
24833
 
@@ -24965,7 +24965,7 @@ SwaggerUi.partials.signature = (function () {
24965
24965
 
24966
24966
  if (namespace) {
24967
24967
  attrs.push(namespace);
24968
- }
24968
+ }
24969
24969
 
24970
24970
  if (!properties && !additionalProperties) { return getErrorMessage(); }
24971
24971
 
@@ -25010,10 +25010,10 @@ SwaggerUi.partials.signature = (function () {
25010
25010
  var output, index;
25011
25011
  config = config || {};
25012
25012
  config.modelsToIgnore = config.modelsToIgnore || [];
25013
-
25013
+
25014
25014
  var descriptor = _.isString($ref) ? getDescriptorByRef($ref, name, models, config)
25015
25015
  : getDescriptor(name, definition, models, config);
25016
-
25016
+
25017
25017
  if (!descriptor) {
25018
25018
  return getErrorMessage();
25019
25019
  }
@@ -25064,7 +25064,7 @@ SwaggerUi.partials.signature = (function () {
25064
25064
  else {
25065
25065
  name = name || model.name;
25066
25066
  }
25067
-
25067
+
25068
25068
  if (config.modelsToIgnore.indexOf($ref) > -1) {
25069
25069
  type = 'loop';
25070
25070
  config.loopTo = modelType;
@@ -25075,7 +25075,7 @@ SwaggerUi.partials.signature = (function () {
25075
25075
  if (!model.definition) {
25076
25076
  return null;
25077
25077
  }
25078
- return new Descriptor(name, type, model.definition, models, config);
25078
+ return new Descriptor(name, type, model.definition, models, config);
25079
25079
  }
25080
25080
 
25081
25081
  function getDescriptor (name, definition, models, config){
@@ -2,4 +2,5 @@
2
2
  *= require ./lib/typography.css
3
3
  *= require ./lib/reset.css
4
4
  *= require ./lib/screen.css
5
+ *= require ./custom.css
5
6
  */
@@ -0,0 +1,7 @@
1
+ #swagger-ui-container {
2
+ margin-bottom: 30px;
3
+ }
4
+
5
+ .swagger-return-link {
6
+ padding-bottom: 30px;
7
+ }
@@ -1,6 +1,7 @@
1
1
  module SwaggerUiEngine
2
2
  class ApplicationController < ActionController::Base
3
- include AuthConfigParser
3
+ include SwaggerUiEngine::AuthConfigParser
4
+ include SwaggerUiEngine::TranslationHelper
4
5
 
5
6
  protect_from_forgery with: :exception
6
7
  layout false
@@ -1,9 +1,13 @@
1
1
  module SwaggerUiEngine
2
2
  class DocsController < ApplicationController
3
- include ConfigParser
4
- include SwaggerUiDefaults
3
+ include SwaggerUiEngine::ConfigParser
4
+ include SwaggerUiEngine::OauthConfigParser
5
+ include SwaggerUiEngine::SwaggerUiDefaults
5
6
 
6
- before_action :set_configs
7
+ before_action :set_configs, :set_oauth_configs
8
+
9
+ def oauth2
10
+ end
7
11
 
8
12
  def index
9
13
  # backward compatibility for defining single doc url in strings
@@ -12,6 +16,7 @@ module SwaggerUiEngine
12
16
  end
13
17
 
14
18
  def show
19
+ @single_doc_url = single_doc_url? || single_doc_url_hash?
15
20
  @swagger_url = @swagger_url[params[:id].to_sym] unless single_doc_url?
16
21
  end
17
22
 
@@ -26,6 +31,15 @@ module SwaggerUiEngine
26
31
  @validator_url = set_validator_url
27
32
  end
28
33
 
34
+ def set_oauth_configs
35
+ @oauth_app_name = set_oauth_app_name
36
+ @oauth_client_id = set_oauth_client_id
37
+ @oauth_client_secret = set_oauth_client_secret
38
+ @oauth_realm = set_oauth_realm
39
+ @oauth_query_string_params = set_oauth_query_string_params
40
+ @oauth_scope_separator = set_oauth_scope_separator
41
+ end
42
+
29
43
  def single_doc_url?
30
44
  @swagger_url.is_a?(String)
31
45
  end
@@ -0,0 +1,19 @@
1
+ module SwaggerUiEngine
2
+ module AuthConfigParser
3
+ def admin_username
4
+ configuration.admin_username
5
+ end
6
+
7
+ def admin_password
8
+ configuration.admin_password
9
+ end
10
+
11
+ def basic_authentication_enabled?
12
+ admin_username && admin_password
13
+ end
14
+
15
+ def configuration
16
+ SwaggerUiEngine.configuration
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,39 @@
1
+ module SwaggerUiEngine
2
+ module ConfigParser
3
+ def set_doc_expansion
4
+ configuration.doc_expansion || default_doc_expansion
5
+ end
6
+
7
+ def set_json_editor
8
+ configuration.json_editor || default_json_editor
9
+ end
10
+
11
+ def set_model_rendering
12
+ configuration.model_rendering || default_model_rendering
13
+ end
14
+
15
+ def set_request_headers
16
+ configuration.request_headers || default_request_headers
17
+ end
18
+
19
+ def set_show_operation_ids
20
+ configuration.show_operation_ids || default_show_operation_ids
21
+ end
22
+
23
+ def set_swagger_url
24
+ configuration.swagger_url || default_swagger_url
25
+ end
26
+
27
+ def set_validator_url
28
+ validator_enabled ? default_validator_url : 'null'
29
+ end
30
+
31
+ def validator_enabled
32
+ configuration.validator_enabled || false
33
+ end
34
+
35
+ def configuration
36
+ SwaggerUiEngine.configuration
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,31 @@
1
+ module SwaggerUiEngine
2
+ module OauthConfigParser
3
+ def set_oauth_app_name
4
+ configuration.oauth_app_name || 'your-app-name'
5
+ end
6
+
7
+ def set_oauth_client_id
8
+ configuration.oauth_client_id || 'your-client-id'
9
+ end
10
+
11
+ def set_oauth_client_secret
12
+ configuration.oauth_client_secret || 'your-client-secret-if-required'
13
+ end
14
+
15
+ def set_oauth_realm
16
+ configuration.oauth_realm || 'your-realms'
17
+ end
18
+
19
+ def set_oauth_scope_separator
20
+ configuration.oauth_scope_separator || ' '
21
+ end
22
+
23
+ def set_oauth_query_string_params
24
+ configuration.oauth_query_string_params || {}
25
+ end
26
+
27
+ def configuration
28
+ SwaggerUiEngine.configuration
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ module SwaggerUiEngine
2
+ module SwaggerUiDefaults
3
+ def default_swagger_url
4
+ 'http://petstore.swagger.io/v2/swagger.json'
5
+ end
6
+
7
+ def default_doc_expansion
8
+ 'none'
9
+ end
10
+
11
+ def default_json_editor
12
+ false
13
+ end
14
+
15
+ def default_model_rendering
16
+ 'schema'
17
+ end
18
+
19
+ def default_request_headers
20
+ false
21
+ end
22
+
23
+ def default_validator_url
24
+ '//online.swagger.io/validator'
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,16 @@
1
+ module SwaggerUiEngine
2
+ module TranslationHelper
3
+ def load_translation_file
4
+ return unless translator_enabled?
5
+ javascript_include_tag('swagger_ui_engine/lang/translator', lang_file_path)
6
+ end
7
+
8
+ def lang_file_path
9
+ "swagger_ui_engine/lang/#{I18n.locale.to_s.downcase}.js"
10
+ end
11
+
12
+ def translator_enabled?
13
+ SwaggerUiEngine.configuration.translator_enabled
14
+ end
15
+ end
16
+ end
@@ -11,6 +11,7 @@
11
11
  <%= stylesheet_link_tag "swagger_ui_engine/print", media: "print" %>
12
12
 
13
13
  <%= javascript_include_tag "swagger_ui_engine/application" %>
14
+ <%= load_translation_file %>
14
15
  <%= csrf_meta_tags %>
15
16
 
16
17
  <script type="text/javascript">
@@ -33,17 +34,18 @@
33
34
  window.swaggerUi = new SwaggerUi({
34
35
  url: url,
35
36
  validatorUrl: "<%= @validator_url %>",
37
+ oauth2RedirectUrl: "<%= oauth2_docs_path %>",
36
38
  dom_id: "swagger-ui-container",
37
39
  supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'],
38
40
  onComplete: function(swaggerApi, swaggerUi){
39
41
  if(typeof initOAuth == "function") {
40
42
  initOAuth({
41
- clientId: "your-client-id",
42
- clientSecret: "your-client-secret-if-required",
43
- realm: "your-realms",
44
- appName: "your-app-name",
45
- scopeSeparator: " ",
46
- additionalQueryStringParams: {}
43
+ clientId: "<%= @oauth_client_id %>",
44
+ clientSecret: "<%= @oauth_client_secret %>",
45
+ realm: "<%= @oauth_realm %>",
46
+ appName: "<%= @oauth_app_name %>",
47
+ scopeSeparator: "<%= @oauth_scope_separator %>",
48
+ additionalQueryStringParams: "<%= @oauth_query_string_params %>"
47
49
  });
48
50
  }
49
51
 
@@ -86,5 +88,10 @@
86
88
 
87
89
  <div id="message-bar" class="swagger-ui-wrap" data-sw-translate>&nbsp;</div>
88
90
  <div id="swagger-ui-container" class="swagger-ui-wrap"></div>
91
+ <% unless @single_doc_url %>
92
+ <div class="swagger-ui-wrap">
93
+ <a href="<%= docs_path %>" class="swagger-return-link" data-sw-translate>Back to the list</a>
94
+ </div>
95
+ <% end %>
89
96
  </body>
90
97
  </html>
data/config/routes.rb CHANGED
@@ -1,6 +1,11 @@
1
1
  SwaggerUiEngine::Engine.routes.draw do
2
2
  scope format: false do
3
- resources :docs, only: [:index, :show]
3
+ resources :docs, only: [:index, :show] do
4
+ collection do
5
+ get 'oauth2', to: 'docs#oauth2', format: false
6
+ end
7
+ end
8
+
4
9
  root to: 'docs#index'
5
10
  end
6
11
  end
@@ -7,8 +7,15 @@ module SwaggerUiEngine
7
7
  :doc_expansion,
8
8
  :json_editor,
9
9
  :model_rendering,
10
+ :oauth_client_id,
11
+ :oauth_client_secret,
12
+ :oauth_realm,
13
+ :oauth_app_name,
14
+ :oauth_scope_separator,
15
+ :oauth_query_string_params,
10
16
  :request_headers,
11
17
  :swagger_url,
18
+ :translator_enabled,
12
19
  :validator_enabled,
13
20
  ].freeze
14
21
 
@@ -8,10 +8,12 @@ module SwaggerUiEngine
8
8
  swagger_ui_engine/lib/reset.css
9
9
  swagger_ui_engine/lib/screen.css
10
10
  swagger_ui_engine/lib/print.css
11
+ swagger_ui_engine/custom.css
11
12
  swagger_ui_engine/print.css
12
13
  swagger_ui_engine/logo_small.png
13
14
  swagger_ui_engine/favicon-32x32.png
14
15
  swagger_ui_engine/favicon-16x16.png
16
+ swagger_ui_engine/lang/*.js
15
17
  )
16
18
 
17
19
  Rails.application.config.assets.paths << Rails.root.join('vendor', 'assets', 'fonts')
@@ -1,4 +1,4 @@
1
1
  module SwaggerUiEngine
2
- VERSION = '1.0.0'.freeze
2
+ VERSION = '1.0.1'.freeze
3
3
  SWAGGER_UI_VERSION = '2.2.10'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swagger_ui_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - ZuzannaSt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-09 00:00:00.000000000 Z
11
+ date: 2017-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -55,6 +55,7 @@ files:
55
55
  - app/assets/images/swagger_ui_engine/wordnik_api.png
56
56
  - app/assets/javascripts/swagger_ui_engine/application.js
57
57
  - app/assets/javascripts/swagger_ui_engine/lang/ca.js
58
+ - app/assets/javascripts/swagger_ui_engine/lang/de.js
58
59
  - app/assets/javascripts/swagger_ui_engine/lang/el.js
59
60
  - app/assets/javascripts/swagger_ui_engine/lang/en.js
60
61
  - app/assets/javascripts/swagger_ui_engine/lang/es.js
@@ -85,11 +86,11 @@ files:
85
86
  - app/assets/javascripts/swagger_ui_engine/lib/object-assign-pollyfill.js
86
87
  - app/assets/javascripts/swagger_ui_engine/lib/sanitize-html.min.js
87
88
  - app/assets/javascripts/swagger_ui_engine/lib/swagger-oauth.js
88
- - app/assets/javascripts/swagger_ui_engine/o2c.html
89
89
  - app/assets/javascripts/swagger_ui_engine/swagger-ui.js
90
90
  - app/assets/javascripts/swagger_ui_engine/swagger-ui.min.js
91
91
  - app/assets/javascripts/swagger_ui_engine/swagger.json
92
92
  - app/assets/stylesheets/swagger_ui_engine/application.css
93
+ - app/assets/stylesheets/swagger_ui_engine/custom.css
93
94
  - app/assets/stylesheets/swagger_ui_engine/lib/print.css.erb
94
95
  - app/assets/stylesheets/swagger_ui_engine/lib/reset.css
95
96
  - app/assets/stylesheets/swagger_ui_engine/lib/screen.css.erb
@@ -98,10 +99,13 @@ files:
98
99
  - app/assets/stylesheets/swagger_ui_engine/print.css
99
100
  - app/controllers/swagger_ui_engine/application_controller.rb
100
101
  - app/controllers/swagger_ui_engine/docs_controller.rb
101
- - app/helpers/auth_config_parser.rb
102
- - app/helpers/config_parser.rb
103
- - app/helpers/swagger_ui_defaults.rb
102
+ - app/helpers/swagger_ui_engine/auth_config_parser.rb
103
+ - app/helpers/swagger_ui_engine/config_parser.rb
104
+ - app/helpers/swagger_ui_engine/oauth_config_parser.rb
105
+ - app/helpers/swagger_ui_engine/swagger_ui_defaults.rb
106
+ - app/helpers/swagger_ui_engine/translation_helper.rb
104
107
  - app/views/swagger_ui_engine/docs/index.html.erb
108
+ - app/views/swagger_ui_engine/docs/ouath2.html.erb
105
109
  - app/views/swagger_ui_engine/docs/show.html.erb
106
110
  - config/routes.rb
107
111
  - lib/swagger_ui_engine.rb
@@ -1,17 +0,0 @@
1
- module AuthConfigParser
2
- def admin_username
3
- configuration.admin_username
4
- end
5
-
6
- def admin_password
7
- configuration.admin_password
8
- end
9
-
10
- def basic_authentication_enabled?
11
- admin_username && admin_password
12
- end
13
-
14
- def configuration
15
- SwaggerUiEngine.configuration
16
- end
17
- end
@@ -1,37 +0,0 @@
1
- module ConfigParser
2
- def set_doc_expansion
3
- configuration.doc_expansion || default_doc_expansion
4
- end
5
-
6
- def set_json_editor
7
- configuration.json_editor || default_json_editor
8
- end
9
-
10
- def set_model_rendering
11
- configuration.model_rendering || default_model_rendering
12
- end
13
-
14
- def set_request_headers
15
- configuration.request_headers || default_request_headers
16
- end
17
-
18
- def set_show_operation_ids
19
- configuration.show_operation_ids || default_show_operation_ids
20
- end
21
-
22
- def set_swagger_url
23
- configuration.swagger_url || default_swagger_url
24
- end
25
-
26
- def set_validator_url
27
- validator_enabled ? default_validator_url : 'null'
28
- end
29
-
30
- def validator_enabled
31
- configuration.validator_enabled || false
32
- end
33
-
34
- def configuration
35
- SwaggerUiEngine.configuration
36
- end
37
- end
@@ -1,25 +0,0 @@
1
- module SwaggerUiDefaults
2
- def default_swagger_url
3
- 'http://petstore.swagger.io/v2/swagger.json'
4
- end
5
-
6
- def default_doc_expansion
7
- 'none'
8
- end
9
-
10
- def default_model_rendering
11
- 'schema'
12
- end
13
-
14
- def default_json_editor
15
- false
16
- end
17
-
18
- def default_request_headers
19
- false
20
- end
21
-
22
- def default_validator_url
23
- '//online.swagger.io/validator'
24
- end
25
- end