diff options
-rw-r--r-- | client/components/lists/list.styl | 4 | ||||
-rw-r--r-- | client/components/lists/listHeader.jade | 2 | ||||
-rw-r--r-- | models/export.js | 23 | ||||
-rw-r--r-- | openapi/generate_openapi.py | 2 |
4 files changed, 21 insertions, 10 deletions
diff --git a/client/components/lists/list.styl b/client/components/lists/list.styl index dcbeb93f..05da07e1 100644 --- a/client/components/lists/list.styl +++ b/client/components/lists/list.styl @@ -99,6 +99,10 @@ .highlight color: #ce1414 + .cardCount + color: #8c8c8c + font-size: 0.8em + .list-body flex: 1 1 auto flex-direction: column diff --git a/client/components/lists/listHeader.jade b/client/components/lists/listHeader.jade index d9644d00..306659b4 100644 --- a/client/components/lists/listHeader.jade +++ b/client/components/lists/listHeader.jade @@ -19,7 +19,7 @@ template(name="listHeader") if showCardsCountForList cards.count | - p.quiet.small {{cardsCount}} {{_ 'cards-count'}} + span(class="cardCount") {{cardsCount}} {{_ 'cards-count'}} if isMiniScreen if currentList if isWatching diff --git a/models/export.js b/models/export.js index 4f17d727..8e5ce786 100644 --- a/models/export.js +++ b/models/export.js @@ -6,27 +6,34 @@ if (Meteor.isServer) { // `ApiRoutes.path('boards/export', boardId)`` // on the client instead of copy/pasting the route path manually between the // client and the server. - /* - * This route is used to export the board FROM THE APPLICATION. - * If user is already logged-in, pass loginToken as param "authToken": - * '/api/boards/:boardId/export?authToken=:token' + /** + * @operation export + * @tag Boards + * + * @summary This route is used to export the board. + * + * @description If user is already logged-in, pass loginToken as param + * "authToken": '/api/boards/:boardId/export?authToken=:token' * * See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/ * for detailed explanations + * + * @param {string} boardId the ID of the board we are exporting + * @param {string} authToken the loginToken */ - - JsonRoutes.add('get', '/api/boards/:boardId/export', function(req, res) { const boardId = req.params.boardId; let user = null; - // todo XXX for real API, first look for token in Authentication: header - // then fallback to parameter + const loginToken = req.query.authToken; if (loginToken) { const hashToken = Accounts._hashLoginToken(loginToken); user = Meteor.users.findOne({ 'services.resume.loginTokens.hashedToken': hashToken, }); + } else if (!Meteor.settings.public.sandstorm) { + Authentication.checkUserId(req.userId); + user = Users.findOne({ _id: req.userId, isAdmin: true }); } const exporter = new Exporter(boardId); diff --git a/openapi/generate_openapi.py b/openapi/generate_openapi.py index 2a898f0e..1bf04c15 100644 --- a/openapi/generate_openapi.py +++ b/openapi/generate_openapi.py @@ -678,7 +678,7 @@ def parse_schemas(schemas_dir): data = ''.join(f.readlines()) try: # if the file failed, it's likely it doesn't contain a schema - program = esprima.parseScript(data, options={'comment': True, 'loc': True}) + program = esprima.parseModule(data, options={'comment': True, 'loc': True}) except: continue |