From 858bb35612097e7a01d832b89a1795dc121641d5 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Mon, 25 May 2020 21:46:08 +0300 Subject: [PATCH] v4.05 --- CHANGELOG.md | 15 +- Stackerfile.yml | 2 +- models/checklists.js | 4 +- package-lock.json | 2 +- package.json | 2 +- public/api/wekan.html | 648 ++++++++++++++++++++--------------------- public/api/wekan.yml | 6 +- sandstorm-pkgdef.capnp | 4 +- 8 files changed, 344 insertions(+), 339 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0b45d0117..7f4b34057 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,4 @@ -# Upcoming Wekan release +# v4.05 2020-05-25 Wekan release This release adds the following new features: @@ -12,7 +12,7 @@ and adds the following updates: and fixes the following bugs: -- Try to fix Snap [1](https://github.com/wekan/wekan/commit/6fad68b9b9afd8de7074037d73eeac40f6a3f7c1), [2](https://github.com/wekan/wekan/commit/b737adfcdfc9b8084a7eb84420a89c014bbec1fb). +- Try to fix Snap [1](https://github.com/wekan/wekan/commit/6fad68b9b9afd8de7074037d73eeac40f6a3f7c1), [2](https://github.com/wekan/wekan/commit/b737adfcdfc9b8084a7eb84420a89c014bbec1fb). Later reverted those like other ostrio-files changes too. Thanks to xet7. - [Add default attachments store path /var/snap/wekan/common/uploads where attachments will be stored](https://github.com/wekan/wekan/commit/c61a126c8bcb25a1eda0203b89c990ae31de7a70). @@ -27,17 +27,20 @@ attachment](https://github.com/wekan/wekan/commit/66d35a15280795b76a81c3e59cebbd Thanks to marc1006. - [Some fixes suggested by deepcode.ai](https://github.com/wekan/wekan/pull/3112). Thanks to marc1006. +- [Sorry marc1006, I had to revert deepcode.ai arrow function fixes because Python API docs generator does not work all when code has arrow functions](https://github.com/wekan/wekan/commit/f9018fc3a87080d8d97c371e29a8f3f0a20ca932). + Thanks to xet7. - [Move In Progress ostrio-files changes to separate branch, and revert ostrio-files changes, so that: - Export to CSV/TSV with custom fields works, - Attachments are not exported to disk, + Export to CSV/TSV with custom fields works, Attachments are not exported to disk, It is possible to build arm64/s390x versions - again](https://github.com/wekan/wekan/commit d52affe65893f17bab59bb43aa9f5afbb54993d3). - Thanks to xet7 ! + again](https://github.com/wekan/wekan/commit/d52affe65893f17bab59bb43aa9f5afbb54993d3). + Thanks to xet7. Thanks to above GitHub users for their contributions and translators for their translations. # v4.04 2020-05-24 Wekan release +Please use v4.05 or newer instead, that works better. + This release adds the following features: - [Found Time Tracking GPLv3 software "Titra" with integration to Wekan](https://github.com/wekan/wekan/wiki/Time-Tracking). diff --git a/Stackerfile.yml b/Stackerfile.yml index b1cf282c7..876eb6820 100644 --- a/Stackerfile.yml +++ b/Stackerfile.yml @@ -1,5 +1,5 @@ appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928 -appVersion: "v4.04.0" +appVersion: "v4.05.0" files: userUploads: - README.md diff --git a/models/checklists.js b/models/checklists.js index 831779b71..cbf7d6d9c 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -70,7 +70,9 @@ Checklists.helpers({ this._id = null; this.cardId = newCardId; const newChecklistId = Checklists.insert(this); - ChecklistItems.find({ checklistId: oldChecklistId }).forEach(function(item) { + ChecklistItems.find({ checklistId: oldChecklistId }).forEach(function( + item, + ) { item._id = null; item.checklistId = newChecklistId; item.cardId = newCardId; diff --git a/package-lock.json b/package-lock.json index cc6d043dd..443e6f079 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v4.04.0", + "version": "v4.05.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index da5fe3cc5..388374d85 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "wekan", - "version": "v4.04.0", + "version": "v4.05.0", "description": "Open-Source kanban", "private": true, "scripts": { diff --git a/public/api/wekan.html b/public/api/wekan.html index 485e6e8b3..0678ab98e 100644 --- a/public/api/wekan.html +++ b/public/api/wekan.html @@ -1458,12 +1458,12 @@ Darkula color scheme from the JetBrains family of IDEs opacity: 0.5; } - + - + @@ -1477,552 +1477,552 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
- +
- - + + Shell - - - + + + HTTP - - - + + + JavaScript - - - + + + Node.js - - - + + + Ruby - - - + + + Python - - - + + + Java - - - + + + Go - - + +
- - + + - +
- + - +
-

Wekan REST API v4.04

+

Wekan REST API v4.05

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

@@ -2160,7 +2160,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"application/x-www-form-urlencoded"}, "Accept": []string{"*/*"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -2435,7 +2435,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"application/x-www-form-urlencoded"}, "Accept": []string{"*/*"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -2718,7 +2718,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -2924,7 +2924,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -3219,7 +3219,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -3444,7 +3444,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -3505,8 +3505,8 @@ System.out.println(response.toString()); To perform this operation, you must be authenticated by means of one of the following methods: UserSecurity -

export

-

+

exportJson

+

Code samples

@@ -3606,7 +3606,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -3620,12 +3620,12 @@ System.out.println(response.toString());

GET /api/boards/{board}/export

-

This route is used to export the board.

+

This route is used to export the board to a json file format.

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

-

Parameters

+

Parameters

@@ -3648,7 +3648,7 @@ for detailed explanations

Detailed descriptions

board: the ID of the board we are exporting

-

Responses

+

Responses

@@ -3789,7 +3789,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -3994,7 +3994,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -4216,7 +4216,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -4421,7 +4421,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -4598,7 +4598,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -4792,7 +4792,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -4965,7 +4965,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -5139,7 +5139,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -5330,7 +5330,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -5538,7 +5538,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -5727,7 +5727,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -5958,7 +5958,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -6152,7 +6152,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -6325,7 +6325,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -6507,7 +6507,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -6740,7 +6740,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -7000,7 +7000,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -7166,7 +7166,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -7341,7 +7341,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -7635,7 +7635,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -7857,7 +7857,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -8069,7 +8069,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -8331,7 +8331,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -8533,7 +8533,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -8709,7 +8709,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -8904,7 +8904,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -9125,7 +9125,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -9347,7 +9347,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -9550,7 +9550,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -9763,7 +9763,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -10005,7 +10005,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -10267,7 +10267,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -10468,7 +10468,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -10805,7 +10805,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -10978,7 +10978,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -11165,7 +11165,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -11432,7 +11432,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Content-Type": []string{"multipart/form-data"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -11626,7 +11626,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -11827,7 +11827,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -12028,7 +12028,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -12258,7 +12258,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -12492,7 +12492,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -12729,7 +12729,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -12933,7 +12933,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -13154,7 +13154,7 @@ System.out.println(response.toString()); "Content-Type": []string{"multipart/form-data"}, "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -13376,7 +13376,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Accept": []string{"application/json"}, "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -13564,7 +13564,7 @@ System.out.println(response.toString()); headers := map[string][]string{ "Authorization": []string{"API_KEY"}, - + } data := bytes.NewBuffer([]byte{jsonReq}) @@ -16149,43 +16149,43 @@ UserSecurity
- +
- - + + Shell - - - + + + HTTP - - - + + + JavaScript - - - + + + Node.js - - - + + + Ruby - - - + + + Python - - - + + + Java - - - + + + Go - - + +
- +
diff --git a/public/api/wekan.yml b/public/api/wekan.yml index f0b49c945..cadfc74e1 100644 --- a/public/api/wekan.yml +++ b/public/api/wekan.yml @@ -1,7 +1,7 @@ swagger: '2.0' info: title: Wekan REST API - version: v4.04 + version: v4.05 description: | The REST API allows you to control and extend Wekan with ease. @@ -797,8 +797,8 @@ paths: 200 response /api/boards/{board}/export: get: - operationId: export - summary: This route is used to export the board. + operationId: exportJson + summary: This route is used to export the board to a json file format. description: | If user is already logged-in, pass loginToken as param "authToken": '/api/boards/:boardId/export?authToken=:token' diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index 3dcf9e5f6..71dabd2ab 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = ( appTitle = (defaultText = "Wekan"), # The name of the app as it is displayed to the user. - appVersion = 403, + appVersion = 405, # Increment this for every release. - appMarketingVersion = (defaultText = "4.03.0~2020-05-16"), + appMarketingVersion = (defaultText = "4.05.0~2020-05-25"), # Human-readable presentation of the app version. minUpgradableAppVersion = 0,