From 0224569ca36fc6746644681e58e96b6ea839a531 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Fri, 9 Sep 2016 15:59:47 +0300 Subject: [PATCH 01/15] change addHooks to hooks --- documentation/client/manage/autoform.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/documentation/client/manage/autoform.js b/documentation/client/manage/autoform.js index d0b3b69df5..4fa9284a6f 100644 --- a/documentation/client/manage/autoform.js +++ b/documentation/client/manage/autoform.js @@ -1,5 +1,7 @@ -AutoForm.addHooks(['apiDocumentationForm'], { - onSuccess () { - sAlert.success(TAPi18n.__('manageApiDocumentationModal_LinkField_Updated_Message')); - }, -}); +AutoForm.hooks({ + apiDocumentationForm: { + onSuccess () { + sAlert.success(TAPi18n.__('manageApiDocumentationModal_LinkField_Updated_Message')); + }, + } +}); \ No newline at end of file From 7964a0349e8b80fb0889ff16ce8bd4e072f697bb Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Fri, 9 Sep 2016 15:43:03 +0300 Subject: [PATCH 02/15] fix codegen feature --- documentation/client/codegenerator/codegenerator.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/client/codegenerator/codegenerator.js b/documentation/client/codegenerator/codegenerator.js index 1d6c9099fd..1f6dab1aa4 100644 --- a/documentation/client/codegenerator/codegenerator.js +++ b/documentation/client/codegenerator/codegenerator.js @@ -14,7 +14,7 @@ Template.sdkCodeGeneratorModal.onCreated(function () { instance.dataReady = new ReactiveVar(false); // Get documentation file id - const documentationFileId = instance.data.apiBackend.documentationFileId; + const documentationFileId = instance.data.api.documentationFileId; // Save documentation file URL instance.documentationFileURL = Meteor.absoluteUrl().slice(0, -1) + DocumentationFiles.baseURL + '/id/' + documentationFileId; From 95ef85d07a06c78ca2e779f7e878d90ad9ddccb6 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Mon, 12 Sep 2016 14:36:41 +0300 Subject: [PATCH 03/15] add field in Manage modal for checking methods --- apis/collection/schema.js | 6 ++ documentation/client/manage/manage.html | 90 ++++++++++++++----------- documentation/client/manage/manage.js | 9 +++ 3 files changed, 64 insertions(+), 41 deletions(-) diff --git a/apis/collection/schema.js b/apis/collection/schema.js index 0cc25c0d97..05c01cbe25 100644 --- a/apis/collection/schema.js +++ b/apis/collection/schema.js @@ -25,6 +25,7 @@ Apis.schema = new SimpleSchema({ type: String, optional: true }, + apiLogoFileId: { type: String, optional: true @@ -34,6 +35,11 @@ Apis.schema = new SimpleSchema({ optional: true, regEx: SimpleSchema.RegEx.Url }, + submit_methods: { + type: [String], + label: 'Allow try-out for following methods:', + optional: true + }, created_at: { type: Date, optional: true diff --git a/documentation/client/manage/manage.html b/documentation/client/manage/manage.html index 2a7c2a0eaf..761b7fa7b1 100644 --- a/documentation/client/manage/manage.html +++ b/documentation/client/manage/manage.html @@ -9,48 +9,56 @@

{{_ "manageApiDocumentationModal_Title" }}

diff --git a/documentation/client/manage/manage.js b/documentation/client/manage/manage.js index 5f61286970..8450659a1c 100644 --- a/documentation/client/manage/manage.js +++ b/documentation/client/manage/manage.js @@ -110,4 +110,13 @@ Template.manageApiDocumentationModal.helpers({ // Return a reference to Apis collection, for AutoForm return Apis; }, + submitMethods () { + return [ + {label: 'GET', value: 'get'}, + {label: 'POST', value: 'post'}, + {label: 'DELETE', value: 'delete'}, + {label: 'PATCH', value: 'patch'}, + {label: 'PUT', value: 'put'} + ] + }, }); From 832948ef4b82445e288109e2cd5970a2ea4f63a8 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Mon, 12 Sep 2016 15:28:15 +0300 Subject: [PATCH 04/15] work version --- documentation/client/swaggerUI/swaggerUi.html | 2 +- documentation/client/swaggerUI/swaggerUi.js | 6 ++++- .../swaggerUiContent/swaggerUiContent.js | 25 ++++++++++++------- documentation/client/view/documentation.html | 2 +- 4 files changed, 23 insertions(+), 12 deletions(-) diff --git a/documentation/client/swaggerUI/swaggerUi.html b/documentation/client/swaggerUI/swaggerUi.html index a28e459613..0aa5b31b62 100644 --- a/documentation/client/swaggerUI/swaggerUi.html +++ b/documentation/client/swaggerUI/swaggerUi.html @@ -16,7 +16,7 @@
{{#if dataFetched}} {{#if documentationValid}} - {{>swaggerUiContent apiDocumentation=apiDocumentation}} + {{>swaggerUiContent apiDoc=apiDoc api=api}} {{else}} {{_ 'swaggerUi_swaggerDocumentInvalidText'}} diff --git a/documentation/client/swaggerUI/swaggerUi.js b/documentation/client/swaggerUI/swaggerUi.js index 2d2f6c639f..d362334753 100644 --- a/documentation/client/swaggerUI/swaggerUi.js +++ b/documentation/client/swaggerUI/swaggerUi.js @@ -7,7 +7,7 @@ Template.swaggerUi.onCreated(function () { instance.dataFetched = new ReactiveVar(false); // Get url of api documentation - const documentationURL = instance.data.apiDocumentation; + const documentationURL = instance.data.apiDoc; // Check validation of Swagger file Meteor.call('isValidSwagger', documentationURL, function (error, result) { @@ -21,6 +21,10 @@ Template.swaggerUi.onCreated(function () { }); }); +Template.swaggerUi.onRendered(function () { + console.log('ui onRendered') +}); + Template.swaggerUi.helpers({ dataFetched () { const instance = Template.instance(); diff --git a/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js b/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js index 1b70d82493..4a8d720d8d 100644 --- a/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js +++ b/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js @@ -1,29 +1,36 @@ import SwaggerUi from 'swagger-ui-browserify'; Template.swaggerUiContent.onCreated(function () { + const instance = this; + // Get URL of api documentation - const documentationURL = this.data.apiDocumentation; - + const documentationURL = this.data.apiDoc; + + const submitMethods = instance.data.api.submit_methods || [] + // Create Swagger UI const swagger = window.swaggerUi = new SwaggerUi({ url: documentationURL, dom_id: 'swagger-ui-container', useJQuery: true, supportHeaderParams: true, - supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], + supportedSubmitMethods: submitMethods, apisSorter: 'alpha', operationsSorter: 'alpha', docExpansion: 'none' }); - // Load Swagger UI swagger.load(); + + // instance.autorun(function () { + // }) }); Template.swaggerUiContent.onRendered(function () { - // Get URL of api documentation - const documentationURL = this.data.apiDocumentation; - - // Display URL on Swagger UI input - $('#input_baseUrl').val(documentationURL); + const instance = this; + instance.autorun = () => { + const submitMethods = instance.data.api.submit_methods || [] + swagger.setOption('supportedSubmitMethods', submitMethods) + console.log('content onRendered') + } }); diff --git a/documentation/client/view/documentation.html b/documentation/client/view/documentation.html index 2344becf5f..65f6c2d7a2 100644 --- a/documentation/client/view/documentation.html +++ b/documentation/client/view/documentation.html @@ -66,7 +66,7 @@

{{_ "documentation_Viewer_Title" }}

{{#if Template.subscriptionsReady }} {{#if documentationExists }} - {{> swaggerUi apiDocumentation=uploadedDocumentationLink}} + {{> swaggerUi api=api apiDoc=uploadedDocumentationLink}} {{ else }} {{_ "documentation_No_Swagger_Message" }} From 9fe75f577d8203290af5d1329d9130f01b9fb427 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Mon, 12 Sep 2016 17:57:30 +0300 Subject: [PATCH 05/15] Fix console error with conflictof available doc editor --- documentation/client/manage/manage.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/documentation/client/manage/manage.js b/documentation/client/manage/manage.js index 8450659a1c..fd5e0204c1 100644 --- a/documentation/client/manage/manage.js +++ b/documentation/client/manage/manage.js @@ -98,7 +98,11 @@ Template.manageApiDocumentationModal.helpers({ const settings = Settings.findOne(); // Check settings exists, editor is enabled and host setting exists - if (settings && settings.apiDocumentationEditor.enabled && settings.apiDocumentationEditor.host) { + if ( + settings && + settings.apiDocumentationEditor && + settings.apiDocumentationEditor.enabled && + settings.apiDocumentationEditor.host) { // Editor is enabled and has host setting, return true return true; } else { From 7298b3c66866a72dbb3bb998a8a2b4b20e8af21d Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Mon, 12 Sep 2016 18:44:42 +0300 Subject: [PATCH 06/15] realize updating methods in swagger --- documentation/client/swaggerUI/swaggerUi.js | 4 -- .../swaggerUiContent/swaggerUiContent.js | 39 +++++++++---------- documentation/client/view/documentation.html | 6 +-- 3 files changed, 22 insertions(+), 27 deletions(-) diff --git a/documentation/client/swaggerUI/swaggerUi.js b/documentation/client/swaggerUI/swaggerUi.js index d362334753..c6d007ad72 100644 --- a/documentation/client/swaggerUI/swaggerUi.js +++ b/documentation/client/swaggerUI/swaggerUi.js @@ -21,10 +21,6 @@ Template.swaggerUi.onCreated(function () { }); }); -Template.swaggerUi.onRendered(function () { - console.log('ui onRendered') -}); - Template.swaggerUi.helpers({ dataFetched () { const instance = Template.instance(); diff --git a/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js b/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js index 4a8d720d8d..4543c60d62 100644 --- a/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js +++ b/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js @@ -1,36 +1,35 @@ import SwaggerUi from 'swagger-ui-browserify'; +import { Apis } from '/apis/collection'; Template.swaggerUiContent.onCreated(function () { const instance = this; - + // Get URL of api documentation const documentationURL = this.data.apiDoc; - - const submitMethods = instance.data.api.submit_methods || [] - - // Create Swagger UI + + // Create Swagger UI object const swagger = window.swaggerUi = new SwaggerUi({ url: documentationURL, dom_id: 'swagger-ui-container', useJQuery: true, supportHeaderParams: true, - supportedSubmitMethods: submitMethods, apisSorter: 'alpha', operationsSorter: 'alpha', - docExpansion: 'none' + docExpansion: 'none', }); - // Load Swagger UI - swagger.load(); - - // instance.autorun(function () { - // }) -}); -Template.swaggerUiContent.onRendered(function () { - const instance = this; - instance.autorun = () => { - const submitMethods = instance.data.api.submit_methods || [] - swagger.setOption('supportedSubmitMethods', submitMethods) - console.log('content onRendered') - } + // Subscribe to api collection + instance.autorun(() => { + // Get relevant api collection + instance.subscribe('apiBackend', instance.data.api._id); + + // Get api + const api = Apis.findOne(instance.data.api._id); + + // Set selected methods in Swagger + swagger.setOption('supportedSubmitMethods', api.submit_methods); + + // Load Swagger UI + swagger.load(); + }); }); diff --git a/documentation/client/view/documentation.html b/documentation/client/view/documentation.html index 65f6c2d7a2..b8bccbc15d 100644 --- a/documentation/client/view/documentation.html +++ b/documentation/client/view/documentation.html @@ -41,7 +41,7 @@

{{_ "documentation_Link_Title" }}

{{else}} {{_ "documentation_No_Link_Message" }} - {{#if apiBackend.currentUserCanEdit }} + {{#if api.currentUserCanEdit }} {{_ "documentation_No_Link_Manager_Message" }} {{/if}} @@ -66,11 +66,11 @@

{{_ "documentation_Viewer_Title" }}

{{#if Template.subscriptionsReady }} {{#if documentationExists }} - {{> swaggerUi api=api apiDoc=uploadedDocumentationLink}} + {{> swaggerUi apiDoc=uploadedDocumentationLink api=api}} {{ else }} {{_ "documentation_No_Swagger_Message" }} - {{#if apiBackend.currentUserCanEdit }} + {{#if api.currentUserCanEdit }} {{_ "documentation_No_Swagger_Manager_Message" }} {{/if}} From a55770051bc6c1bcaabd3e620b4d783258126cec Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Tue, 13 Sep 2016 11:37:43 +0300 Subject: [PATCH 07/15] fix duplicated sAlert on Manage module --- documentation/client/manage/manage.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/client/manage/manage.html b/documentation/client/manage/manage.html index 761b7fa7b1..82bbc51b2b 100644 --- a/documentation/client/manage/manage.html +++ b/documentation/client/manage/manage.html @@ -24,7 +24,7 @@

{{_ "manageApiDocumentationModal_Title" }}

{{ documentationFile.filename }} - From 999207c9467e8bae77436894db02c708b3d36be2 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Tue, 13 Sep 2016 16:11:20 +0300 Subject: [PATCH 08/15] update swagger-ui-browserify version --- .../client/swaggerUI/swaggerUiContent/swaggerUiContent.js | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js b/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js index 4543c60d62..7109f7d935 100644 --- a/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js +++ b/documentation/client/swaggerUI/swaggerUiContent/swaggerUiContent.js @@ -8,7 +8,7 @@ Template.swaggerUiContent.onCreated(function () { const documentationURL = this.data.apiDoc; // Create Swagger UI object - const swagger = window.swaggerUi = new SwaggerUi({ + const swagger = new SwaggerUi({ url: documentationURL, dom_id: 'swagger-ui-container', useJQuery: true, diff --git a/package.json b/package.json index b80793cfac..35f8e7c444 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,7 @@ "swagger-client": "^2.1.0", "swagger-parser": "^3.4.1", "swagger-ui": "^2.2.3", - "swagger-ui-browserify": "^2.2.3", + "swagger-ui-browserify": "^2.2.3-a", "urijs": "^1.18.1" }, "devDependencies": { From 209b7a0f4e26e96afa4dd578da417a68a88de618 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Tue, 13 Sep 2016 16:18:10 +0300 Subject: [PATCH 09/15] fix sAlert on clicking button Choose File --- documentation/client/manage/uploadButton/uploadButton.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/client/manage/uploadButton/uploadButton.html b/documentation/client/manage/uploadButton/uploadButton.html index 3f6a5d63f5..110f2c7a71 100644 --- a/documentation/client/manage/uploadButton/uploadButton.html +++ b/documentation/client/manage/uploadButton/uploadButton.html @@ -1,3 +1,3 @@ From b02083d50804ccd6bb8aff3ab6532f7ad532859d Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Wed, 14 Sep 2016 10:49:01 +0300 Subject: [PATCH 10/15] add i18n in schema --- apis/collection/schema.js | 4 +++- lib/i18n/en.i18n.json | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apis/collection/schema.js b/apis/collection/schema.js index 05c01cbe25..9e51e55ada 100644 --- a/apis/collection/schema.js +++ b/apis/collection/schema.js @@ -37,7 +37,6 @@ Apis.schema = new SimpleSchema({ }, submit_methods: { type: [String], - label: 'Allow try-out for following methods:', optional: true }, created_at: { @@ -94,4 +93,7 @@ Apis.schema = new SimpleSchema({ } }); +// Enable translations (i18n) +Apis.schema.i18n('schemas.apis'); + Apis.attachSchema(Apis.schema); diff --git a/lib/i18n/en.i18n.json b/lib/i18n/en.i18n.json index f0c6b238bf..c72759b15d 100644 --- a/lib/i18n/en.i18n.json +++ b/lib/i18n/en.i18n.json @@ -295,6 +295,11 @@ "responseTimeDistributionChart_title": "API Response Time", "responseTimeDistributionChart_help_text": "Click on any bar to filter API Request Timeline and HTTP Status Code chart by requests that have the selected response time range.", "schemas": { + "apis": { + "submit_methods": { + "label": "Allow try-out for following methods:" + } + }, "apiMetadata": { "organization": { "label": "Organization", From 0422cde07b91d1949f1285606cfd13663565f04a Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Wed, 14 Sep 2016 12:02:10 +0300 Subject: [PATCH 11/15] separate long line with sAlert --- documentation/client/manage/autoform.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/documentation/client/manage/autoform.js b/documentation/client/manage/autoform.js index 4fa9284a6f..5bd8c41e05 100644 --- a/documentation/client/manage/autoform.js +++ b/documentation/client/manage/autoform.js @@ -1,7 +1,11 @@ AutoForm.hooks({ apiDocumentationForm: { onSuccess () { - sAlert.success(TAPi18n.__('manageApiDocumentationModal_LinkField_Updated_Message')); + // Get success message translation + const message = TAPi18n.__('manageApiDocumentationModal_LinkField_Updated_Message'); + + // Alert user of success + sAlert.success(message); }, } }); \ No newline at end of file From 8799a81fce65e9d58ebeb04ad63458bfb5e0cba0 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Wed, 14 Sep 2016 12:14:25 +0300 Subject: [PATCH 12/15] replace Glyphicon icon to font awesome --- documentation/client/manage/manage.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/client/manage/manage.html b/documentation/client/manage/manage.html index 82bbc51b2b..3b4b56e3f1 100644 --- a/documentation/client/manage/manage.html +++ b/documentation/client/manage/manage.html @@ -21,11 +21,11 @@

{{_ "manageApiDocumentationModal_Title" }}

{{else}}
  • - + {{ documentationFile.filename }}
  • From 8a82642000ec9ec46fd80bbcad51d81682160fd1 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Wed, 14 Sep 2016 12:19:58 +0300 Subject: [PATCH 13/15] add comment to helper --- documentation/client/manage/manage.html | 2 +- documentation/client/manage/manage.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/documentation/client/manage/manage.html b/documentation/client/manage/manage.html index 3b4b56e3f1..0c4f672231 100644 --- a/documentation/client/manage/manage.html +++ b/documentation/client/manage/manage.html @@ -32,7 +32,7 @@

    {{_ "manageApiDocumentationModal_Title" }}

{{> afQuickField name="submit_methods" - options=submitMethods + options=supportedSubmitMethods type="select-checkbox-inline" noselect=false }} diff --git a/documentation/client/manage/manage.js b/documentation/client/manage/manage.js index fd5e0204c1..d20dd75e8f 100644 --- a/documentation/client/manage/manage.js +++ b/documentation/client/manage/manage.js @@ -114,7 +114,8 @@ Template.manageApiDocumentationModal.helpers({ // Return a reference to Apis collection, for AutoForm return Apis; }, - submitMethods () { + // Return list of all try-out methods, which is used in Swagger Options + supportedSubmitMethods () { return [ {label: 'GET', value: 'get'}, {label: 'POST', value: 'post'}, From 395b72ea0f0f8628948dd6b14d737f063539580a Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Wed, 14 Sep 2016 12:29:09 +0300 Subject: [PATCH 14/15] replace class of button to id --- documentation/client/manage/uploadButton/uploadButton.html | 4 +++- documentation/client/manage/uploadButton/uploadButton.js | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/documentation/client/manage/uploadButton/uploadButton.html b/documentation/client/manage/uploadButton/uploadButton.html index 110f2c7a71..4a7fefe572 100644 --- a/documentation/client/manage/uploadButton/uploadButton.html +++ b/documentation/client/manage/uploadButton/uploadButton.html @@ -1,3 +1,5 @@ diff --git a/documentation/client/manage/uploadButton/uploadButton.js b/documentation/client/manage/uploadButton/uploadButton.js index e4a9e03ac2..d192d2a8c2 100644 --- a/documentation/client/manage/uploadButton/uploadButton.js +++ b/documentation/client/manage/uploadButton/uploadButton.js @@ -2,5 +2,5 @@ import { DocumentationFiles } from '/documentation/collection/collection'; Template.manageApiDocumentationModalUploadButton.onRendered(function() { // Assign resumable browse to element - DocumentationFiles.resumable.assignBrowse($('.fileBrowse')); + DocumentationFiles.resumable.assignBrowse($('#file-browse')); }); From cc9919447c86aa0296bbf55d60c233f9dbbde143 Mon Sep 17 00:00:00 2001 From: Daria Voytova Date: Wed, 14 Sep 2016 12:34:32 +0300 Subject: [PATCH 15/15] lint --- documentation/client/manage/autoform.js | 2 +- documentation/client/manage/manage.html | 34 ++++++------ documentation/client/manage/manage.js | 34 ++++++------ documentation/client/swaggerUI/swaggerUi.html | 52 +++++++++---------- documentation/client/swaggerUI/swaggerUi.js | 4 +- .../swaggerUiContent/swaggerUiContent.html | 2 +- .../swaggerUiContent/swaggerUiContent.js | 12 ++--- 7 files changed, 70 insertions(+), 70 deletions(-) diff --git a/documentation/client/manage/autoform.js b/documentation/client/manage/autoform.js index 5bd8c41e05..f54d9531d4 100644 --- a/documentation/client/manage/autoform.js +++ b/documentation/client/manage/autoform.js @@ -3,7 +3,7 @@ AutoForm.hooks({ onSuccess () { // Get success message translation const message = TAPi18n.__('manageApiDocumentationModal_LinkField_Updated_Message'); - + // Alert user of success sAlert.success(message); }, diff --git a/documentation/client/manage/manage.html b/documentation/client/manage/manage.html index 0c4f672231..6bc88cb32c 100644 --- a/documentation/client/manage/manage.html +++ b/documentation/client/manage/manage.html @@ -11,25 +11,25 @@

{{_ "manageApiDocumentationModal_Title" }}