Compare commits

...
19 Commits
Author SHA1 Message Date
Lauri Ojansivu 8951d0aa57 v6.89 2023-05-12 20:24:33 +03:00
Lauri Ojansivu 582bc3a4c4 Updated ChangeLog. 2023-05-12 19:59:25 +03:00
Lauri Ojansivu 5f21823c43 Merge pull request #4926 from Aman-Maheshwari/fix-broken-migration-attachements-collectionFs-to-ostrioFiles
Fixed broken migration migrate-attachments-collectionFS-to-ostrioFiles
2023-05-12 19:13:02 +03:00
Aman-Maheshwari 11162585ca fixed broken migration 2023-05-12 21:40:12 +05:30
Lauri Ojansivu dad5d2a905 Fix typo.
Thanks to xet7 !

Related #2687,
related https://github.com/wekan/wekan/pull/4923
2023-05-12 17:07:45 +03:00
Lauri Ojansivu 2d683ea198 Merge pull request #4923 from DimDz/master
Fix for the Create Card at Calendar
2023-05-12 17:05:44 +03:00
DimDz c082a48e67 bugfix for calendar month view 2023-05-12 09:40:05 +03:00
DimDz ba387bcc84 createCardWithDueDate 2023-05-12 09:39:23 +03:00
Lauri Ojansivu c8d1a576b0 v6.88 2023-05-11 23:50:36 +03:00
Lauri Ojansivu 3e691f8b25 Updated ChangeLog. 2023-05-11 23:16:38 +03:00
Lauri Ojansivu f700970cd4 Updated ChangeLog. 2023-05-11 20:04:30 +03:00
Lauri Ojansivu 2828027cc8 Merge pull request #4922 from DimDz/master
Create Card on Calendar View
2023-05-11 19:52:09 +03:00
DimDz 4a5d05a19f Fix typo 2023-05-11 13:15:38 +03:00
DimDz 0867f728d1 Calendar Modal 2023-05-11 12:48:50 +03:00
DimDz 0bd8b298d7 Create Card from Calendar View 2023-05-11 12:48:11 +03:00
Lauri Ojansivu 6d8cf57868 Updated OpenAPI docs.
Thanks to bentiss !

Fixes #4917
2023-05-09 17:29:33 +03:00
Lauri Ojansivu 4790d31ff7 Merge pull request #4918 from bentiss/fix-docs
openapi: also ignores ThrowStatement
2023-05-09 17:27:23 +03:00
Benjamin Tissoires d7243bba77 openapi: also ignores ThrowStatement
This gives an error in the resulting file, which makes it not OpenAPI
compatible (not yaml actually).

Fixes #4917

Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
2023-05-09 10:13:23 +02:00
Lauri Ojansivu 0225eefa66 Updated ChangeLog. 2023-05-08 23:23:52 +03:00
13 changed files with 825 additions and 58 deletions

No files matched your search

+26 -2
View File
@@ -18,6 +18,31 @@ Note:
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
# v6.89 2023-05-12 WeKan ® release
This release fixes the following bugs:
- [Fix for the Create Card at Calendar](https://github.com/wekan/wekan/pull/4923).
Thanks to DimDz.
- [Fixed broken migration migrate-attachments-collectionFS-to-ostrioFiles](https://github.com/wekan/wekan/pull/4926).
Thanks to Aman-Maheshwari.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.88 2023-05-11 WeKan ® release
This release adds the following new features:
- [Create Card on Calendar View](https://github.com/wekan/wekan/pull/4922).
Thanks to DimDz.
and fixes the following bugs:
- [OpenaAPI: Also ignores ThrowStatement](https://github.com/wekan/wekan/pull/4918).
Thanks to bentiss.
Thanks to above GitHub users for their contributions and translators for their translations.
# v6.87 2023-05-08 WeKan ® release
This release adds the following new features:
@@ -37,10 +62,9 @@ and adds the following updates:
Thanks to developers of dependencies.
- [Upgraded to Meteor 2.12](https://github.com/wekan/wekan/commit/d519429ea14de3740408fbca3d231a1440562201).
Thanks to Meteor developers.
- Updated translations.
- [Updated translations](https://github.com/wekan/wekan/commit/40c077101a94f639b90f607624c4c72e12235711).
xet7 fixed all translations of advanced filter description to have correct escaping of slash and backslash,
so that bulding bundle of WeKan would not crash to invalid JSON syntax in translations.
[Part 1](https://github.com/wekan/wekan/commit/40c077101a94f639b90f607624c4c72e12235711),
Thanks to xet7.
and fixes the following bugs:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v6.87.0"
appVersion: "v6.89.0"
files:
userUploads:
- README.md
+8
View File
@@ -167,3 +167,11 @@
border-color: #2b004d;
color: #fff !important;
}
.modal-dialog {
display: flex;
justify-content: center;
align-items: center;
}
.modal-header {
text-align: center;
}
+39
View File
@@ -328,6 +328,7 @@ BlazeComponent.extendComponent({
id: 'calendar-view',
defaultView: 'agendaDay',
editable: true,
selectable: true,
timezone: 'local',
weekNumbers: true,
header: {
@@ -422,6 +423,44 @@ BlazeComponent.extendComponent({
revertFunc();
}
},
select: function(startDate) {
const currentBoard = Boards.findOne(Session.get('currentBoard'));
const currentUser = Meteor.user();
const $modal = $(`
<div class="modal fade" tabindex="-1" role="dialog">
<div class="modal-dialog justify-content-center align-items-center" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">Card Title</h5>
</div>
<div class="modal-body text-center">
<input type="text" class="form-control" id="card-title-input" placeholder="Card Title">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" id="create-card-button">Create Card</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal"Cancel</button>
</div>
</div>
</div>
</div>
`);
$modal.modal('show');
$modal.find('#create-card-button').click(function() {
const myTitle = $modal.find('#card-title-input').val();
if (myTitle) {
const firstList = currentBoard.draggableLists().fetch()[0];
const firstSwimlane = currentBoard.swimlanes().fetch()[0];
Meteor.call('createCardWithDueDate', currentBoard._id, firstList._id, myTitle, startDate.toDate(), firstSwimlane._id, function(error, result) {
if (error) {
console.log(error);
} else {
console.log("Card Created", result);
}
});
$modal.modal('hide');
}
});
},
};
},
isViewCalendar() {
+21
View File
@@ -2943,6 +2943,27 @@ function cardCreation(userId, doc) {
});
}
Meteor.methods({
createCardWithDueDate: function(boardId, listId, title, dueDate, swimlaneId) {
check(boardId, String);
check(listId, String);
check(title, String);
check(dueDate, Date);
check(swimlaneId, String);
const card = {
title,
listId,
boardId,
swimlaneId,
createdAt: new Date(),
dueAt: dueDate,
sort: 0,
};
const cardId = Cards.insert(card);
return cardId;
},
});
function cardRemover(userId, doc) {
ChecklistItems.remove({
cardId: doc._id,
+1 -3
View File
@@ -67,11 +67,9 @@ def get_req_body_elems(obj, elems):
get_req_body_elems(obj.right, elems)
elif obj.type in ('ReturnStatement', 'UnaryExpression'):
get_req_body_elems(obj.argument, elems)
elif obj.type == 'Literal':
pass
elif obj.type == 'Identifier':
return obj.name
elif obj.type == 'FunctionDeclaration':
elif obj.type in ['Literal', 'FunctionDeclaration', 'ThrowStatement']:
pass
else:
print(obj)
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v6.87.0",
"version": "v6.89.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v6.87.0",
"version": "v6.89.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
+615 -42
View File
@@ -7,7 +7,7 @@
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Wekan REST API v6.85</title>
<title>Wekan REST API v6.89</title>
<style>
</style>
@@ -1558,7 +1558,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<ul class="toc-list-h1">
<li>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.85">Wekan REST API v6.85</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v6.89">Wekan REST API v6.89</a>
</li>
@@ -1675,6 +1675,11 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
<a href="#new_checklist_item" class="toc-h2 toc-link" data-title="">new_checklist_item</a>
</li>
</ul>
</li>
@@ -1772,6 +1777,11 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
<a href="#edit_card_custom_field" class="toc-h2 toc-link" data-title="">edit_card_custom_field</a>
</li>
<li>
<a href="#get_list_cards_count" class="toc-h2 toc-link" data-title="">get_list_cards_count</a>
@@ -2161,7 +2171,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<div class="page-wrapper">
<div class="dark-box"></div>
<div class="content">
<h1 id="wekan-rest-api">Wekan REST API v6.85</h1>
<h1 id="wekan-rest-api">Wekan REST API v6.89</h1>
<blockquote>
<p>Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.</p>
</blockquote>
@@ -6281,6 +6291,279 @@ System.out.println(response.toString());
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
<h2 id="new_checklist_item">new_checklist_item</h2>
<p><a id="opIdnew_checklist_item"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items \
-H <span class="hljs-string">&#x27;Content-Type: multipart/form-data&#x27;</span> \
-H <span class="hljs-string">&#x27;Accept: application/json&#x27;</span> \
-H <span class="hljs-string">&#x27;Authorization: API_KEY&#x27;</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/cards/{card}/checklists/{checklist}/items</span> <span class="hljs-meta">HTTP/1.1</span>
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">const</span> inputBody = <span class="hljs-string">&#x27;{
&quot;title&quot;: &quot;string&quot;
}&#x27;</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span>:<span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span>:<span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span>:<span class="hljs-string">&#x27;API_KEY&#x27;</span>
};
fetch(<span class="hljs-string">&#x27;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&#x27;</span>,
{
<span class="hljs-attr">method</span>: <span class="hljs-string">&#x27;POST&#x27;</span>,
<span class="hljs-attr">body</span>: inputBody,
<span class="hljs-attr">headers</span>: headers
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{
<span class="hljs-keyword">return</span> res.json();
}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{
<span class="hljs-built_in">console</span>.log(body);
});
</code></pre>
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;node-fetch&#x27;</span>);
<span class="hljs-keyword">const</span> inputBody = {
<span class="hljs-string">&quot;title&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
};
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span>:<span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span>:<span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span>:<span class="hljs-string">&#x27;API_KEY&#x27;</span>
};
fetch(<span class="hljs-string">&#x27;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&#x27;</span>,
{
<span class="hljs-attr">method</span>: <span class="hljs-string">&#x27;POST&#x27;</span>,
<span class="hljs-attr">body</span>: <span class="hljs-built_in">JSON</span>.stringify(inputBody),
<span class="hljs-attr">headers</span>: headers
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{
<span class="hljs-keyword">return</span> res.json();
}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{
<span class="hljs-built_in">console</span>.log(body);
});
</code></pre>
<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">&#x27;rest-client&#x27;</span>
<span class="hljs-keyword">require</span> <span class="hljs-string">&#x27;json&#x27;</span>
headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span> =&gt; <span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span> =&gt; <span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span> =&gt; <span class="hljs-string">&#x27;API_KEY&#x27;</span>
}
result = RestClient.post <span class="hljs-string">&#x27;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&#x27;</span>,
<span class="hljs-symbol">params:</span> {
}, <span class="hljs-symbol">headers:</span> headers
p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span>: <span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span>: <span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span>: <span class="hljs-string">&#x27;API_KEY&#x27;</span>
}
r = requests.post(<span class="hljs-string">&#x27;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&#x27;</span>, headers = headers)
<span class="hljs-built_in">print</span>(r.json())
</code></pre>
<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">&quot;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&quot;</span>);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(<span class="hljs-string">&quot;POST&quot;</span>);
<span class="hljs-keyword">int</span> responseCode = con.getResponseCode();
BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader(
<span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer();
<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
</code></pre>
<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;bytes&quot;</span>
<span class="hljs-string">&quot;net/http&quot;</span>
)
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">&quot;Content-Type&quot;</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">&quot;multipart/form-data&quot;</span>},
<span class="hljs-string">&quot;Accept&quot;</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">&quot;application/json&quot;</span>},
<span class="hljs-string">&quot;Authorization&quot;</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">&quot;API_KEY&quot;</span>},
}
data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq})
req, err := http.NewRequest(<span class="hljs-string">&quot;POST&quot;</span>, <span class="hljs-string">&quot;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&quot;</span>, data)
req.Header = headers
client := &amp;http.Client{}
resp, err := client.Do(req)
<span class="hljs-comment">// ...</span>
}
</code></pre>
<pre class="highlight tab tab-php"><code> <span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span> =&gt; <span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span> =&gt; <span class="hljs-string">&#x27;API_KEY&#x27;</span>,
);
<span class="hljs-variable">$client</span> = <span class="hljs-keyword">new</span> \GuzzleHttp\Client();
<span class="hljs-comment">// Define array of request body.</span>
<span class="hljs-variable">$request_body</span> = <span class="hljs-keyword">array</span>();
<span class="hljs-keyword">try</span> {
<span class="hljs-variable">$response</span> = <span class="hljs-variable">$client</span>-&gt;request(<span class="hljs-string">&#x27;POST&#x27;</span>,<span class="hljs-string">&#x27;/api/boards/{board}/cards/{card}/checklists/{checklist}/items&#x27;</span>, <span class="hljs-keyword">array</span>(
<span class="hljs-string">&#x27;headers&#x27;</span> =&gt; <span class="hljs-variable">$headers</span>,
<span class="hljs-string">&#x27;json&#x27;</span> =&gt; <span class="hljs-variable">$request_body</span>,
)
);
print_r(<span class="hljs-variable">$response</span>-&gt;getBody()-&gt;getContents());
}
<span class="hljs-keyword">catch</span> (\GuzzleHttp\<span class="hljs-built_in">Exception</span>\BadResponseException <span class="hljs-variable">$e</span>) {
<span class="hljs-comment">// handle exception or api errors.</span>
print_r(<span class="hljs-variable">$e</span>-&gt;getMessage());
}
<span class="hljs-comment">// ...</span>
</code></pre>
<p><code>POST /api/boards/{board}/cards/{card}/checklists/{checklist}/items</code></p>
<p><em>add a new item to a checklist</em></p>
<blockquote>
<p>Body parameter</p>
</blockquote>
<pre class="highlight tab tab-yaml"><code><span class="hljs-attr">title:</span> <span class="hljs-string">string</span>
</code></pre>
<h3 id="new_checklist_item-parameters">Parameters</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>board</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the board ID</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the card ID</td>
</tr>
<tr>
<td>checklist</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the ID of the checklist</td>
</tr>
<tr>
<td>body</td>
<td>body</td>
<td>object</td>
<td>true</td>
<td>none</td>
</tr>
<tr>
<td>» title</td>
<td>body</td>
<td>string</td>
<td>true</td>
<td>the title of the new item</td>
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-13">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>card</strong>: the card ID</p>
<p><strong>checklist</strong>: the ID of the checklist</p>
<blockquote>
<p>Example responses</p>
</blockquote>
<blockquote>
<p>200 Response</p>
</blockquote>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">&quot;_id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
}
</code></pre>
<h3 id="new_checklist_item-responses">Responses</h3>
<table>
<thead>
<tr>
<th>Status</th>
<th>Meaning</th>
<th>Description</th>
<th>Schema</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
<td>Inline</td>
</tr>
</tbody>
</table>
<h3 id="new_checklist_item-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Required</th>
<th>Restrictions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>» _id</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
</tbody>
</table>
<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
<h1 id="wekan-rest-api-checklistitems">ChecklistItems</h1>
<h2 id="get_checklist_item">get_checklist_item</h2>
<p><a id="opIdget_checklist_item"></a></p>
@@ -6471,7 +6754,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-13">Detailed descriptions</h4>
<h4 id="detailed-descriptions-14">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>card</strong>: the card ID</p>
<p><strong>checklist</strong>: the checklist ID</p>
@@ -6746,7 +7029,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-14">Detailed descriptions</h4>
<h4 id="detailed-descriptions-15">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>card</strong>: the card ID</p>
<p><strong>checklist</strong>: the checklist ID</p>
@@ -6996,7 +7279,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-15">Detailed descriptions</h4>
<h4 id="detailed-descriptions-16">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>card</strong>: the card ID</p>
<p><strong>checklist</strong>: the checklist ID</p>
@@ -7232,7 +7515,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-16">Detailed descriptions</h4>
<h4 id="detailed-descriptions-17">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
<blockquote>
@@ -7525,7 +7808,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-17">Detailed descriptions</h4>
<h4 id="detailed-descriptions-18">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
<blockquote>
@@ -7765,7 +8048,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-18">Detailed descriptions</h4>
<h4 id="detailed-descriptions-19">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
<p><strong>comment</strong>: the ID of the comment to retrieve</p>
@@ -7989,7 +8272,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-19">Detailed descriptions</h4>
<h4 id="detailed-descriptions-20">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
<p><strong>comment</strong>: the ID of the comment to delete</p>
@@ -8231,7 +8514,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-20">Detailed descriptions</h4>
<h4 id="detailed-descriptions-21">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>customField</strong>: the list ID</p>
<p><strong>customFieldValue</strong>: the value to look for</p>
@@ -8492,7 +8775,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-21">Detailed descriptions</h4>
<h4 id="detailed-descriptions-22">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<blockquote>
<p>Example responses</p>
@@ -8724,7 +9007,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-22">Detailed descriptions</h4>
<h4 id="detailed-descriptions-23">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>list</strong>: the list ID</p>
<blockquote>
@@ -9057,7 +9340,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-23">Detailed descriptions</h4>
<h4 id="detailed-descriptions-24">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the new card</p>
<p><strong>list</strong>: the list ID of the new card</p>
<blockquote>
@@ -9297,7 +9580,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-24">Detailed descriptions</h4>
<h4 id="detailed-descriptions-25">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>list</strong>: the list ID of the card</p>
<p><strong>card</strong>: the card ID</p>
@@ -9861,7 +10144,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-25">Detailed descriptions</h4>
<h4 id="detailed-descriptions-26">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>list</strong>: the list ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
@@ -10104,7 +10387,7 @@ is not put in the recycle bin.</p>
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-26">Detailed descriptions</h4>
<h4 id="detailed-descriptions-27">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>list</strong>: the list ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
@@ -10163,6 +10446,296 @@ is not put in the recycle bin.</p>
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
<h2 id="edit_card_custom_field">edit_card_custom_field</h2>
<p><a id="opIdedit_card_custom_field"></a></p>
<blockquote>
<p>Code samples</p>
</blockquote>
<pre class="highlight tab tab-shell"><code><span class="hljs-comment"># You can also use wget</span>
curl -X POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField} \
-H <span class="hljs-string">&#x27;Content-Type: multipart/form-data&#x27;</span> \
-H <span class="hljs-string">&#x27;Accept: application/json&#x27;</span> \
-H <span class="hljs-string">&#x27;Authorization: API_KEY&#x27;</span>
</code></pre>
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}</span> <span class="hljs-meta">HTTP/1.1</span>
<span class="fortran">Content-<span class="hljs-keyword">Type</span>: multipart/<span class="hljs-keyword">form</span>-<span class="hljs-keyword">data</span>
Accept: application/json
</span></code></pre>
<pre class="highlight tab tab-javascript"><code><span class="hljs-keyword">const</span> inputBody = <span class="hljs-string">&#x27;{
&quot;value&quot;: &quot;string&quot;
}&#x27;</span>;
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span>:<span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span>:<span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span>:<span class="hljs-string">&#x27;API_KEY&#x27;</span>
};
fetch(<span class="hljs-string">&#x27;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&#x27;</span>,
{
<span class="hljs-attr">method</span>: <span class="hljs-string">&#x27;POST&#x27;</span>,
<span class="hljs-attr">body</span>: inputBody,
<span class="hljs-attr">headers</span>: headers
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{
<span class="hljs-keyword">return</span> res.json();
}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{
<span class="hljs-built_in">console</span>.log(body);
});
</code></pre>
<pre class="highlight tab tab-javascript--nodejs"><code><span class="hljs-keyword">const</span> fetch = <span class="hljs-built_in">require</span>(<span class="hljs-string">&#x27;node-fetch&#x27;</span>);
<span class="hljs-keyword">const</span> inputBody = {
<span class="hljs-string">&quot;value&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
};
<span class="hljs-keyword">const</span> headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span>:<span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span>:<span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span>:<span class="hljs-string">&#x27;API_KEY&#x27;</span>
};
fetch(<span class="hljs-string">&#x27;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&#x27;</span>,
{
<span class="hljs-attr">method</span>: <span class="hljs-string">&#x27;POST&#x27;</span>,
<span class="hljs-attr">body</span>: <span class="hljs-built_in">JSON</span>.stringify(inputBody),
<span class="hljs-attr">headers</span>: headers
})
.then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">res</span>) </span>{
<span class="hljs-keyword">return</span> res.json();
}).then(<span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params">body</span>) </span>{
<span class="hljs-built_in">console</span>.log(body);
});
</code></pre>
<pre class="highlight tab tab-ruby"><code><span class="hljs-keyword">require</span> <span class="hljs-string">&#x27;rest-client&#x27;</span>
<span class="hljs-keyword">require</span> <span class="hljs-string">&#x27;json&#x27;</span>
headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span> =&gt; <span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span> =&gt; <span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span> =&gt; <span class="hljs-string">&#x27;API_KEY&#x27;</span>
}
result = RestClient.post <span class="hljs-string">&#x27;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&#x27;</span>,
<span class="hljs-symbol">params:</span> {
}, <span class="hljs-symbol">headers:</span> headers
p JSON.parse(result)
</code></pre>
<pre class="highlight tab tab-python"><code><span class="hljs-keyword">import</span> requests
headers = {
<span class="hljs-string">&#x27;Content-Type&#x27;</span>: <span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span>: <span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span>: <span class="hljs-string">&#x27;API_KEY&#x27;</span>
}
r = requests.post(<span class="hljs-string">&#x27;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&#x27;</span>, headers = headers)
<span class="hljs-built_in">print</span>(r.json())
</code></pre>
<pre class="highlight tab tab-java"><code>URL obj = <span class="hljs-keyword">new</span> URL(<span class="hljs-string">&quot;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&quot;</span>);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod(<span class="hljs-string">&quot;POST&quot;</span>);
<span class="hljs-keyword">int</span> responseCode = con.getResponseCode();
BufferedReader in = <span class="hljs-keyword">new</span> BufferedReader(
<span class="hljs-keyword">new</span> InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = <span class="hljs-keyword">new</span> StringBuffer();
<span class="hljs-keyword">while</span> ((inputLine = in.readLine()) != <span class="hljs-keyword">null</span>) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
</code></pre>
<pre class="highlight tab tab-go"><code><span class="hljs-keyword">package</span> main
<span class="hljs-keyword">import</span> (
<span class="hljs-string">&quot;bytes&quot;</span>
<span class="hljs-string">&quot;net/http&quot;</span>
)
<span class="hljs-function"><span class="hljs-keyword">func</span> <span class="hljs-title">main</span><span class="hljs-params">()</span></span> {
headers := <span class="hljs-keyword">map</span>[<span class="hljs-keyword">string</span>][]<span class="hljs-keyword">string</span>{
<span class="hljs-string">&quot;Content-Type&quot;</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">&quot;multipart/form-data&quot;</span>},
<span class="hljs-string">&quot;Accept&quot;</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">&quot;application/json&quot;</span>},
<span class="hljs-string">&quot;Authorization&quot;</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">&quot;API_KEY&quot;</span>},
}
data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq})
req, err := http.NewRequest(<span class="hljs-string">&quot;POST&quot;</span>, <span class="hljs-string">&quot;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&quot;</span>, data)
req.Header = headers
client := &amp;http.Client{}
resp, err := client.Do(req)
<span class="hljs-comment">// ...</span>
}
</code></pre>
<pre class="highlight tab tab-php"><code> <span class="hljs-string">&#x27;multipart/form-data&#x27;</span>,
<span class="hljs-string">&#x27;Accept&#x27;</span> =&gt; <span class="hljs-string">&#x27;application/json&#x27;</span>,
<span class="hljs-string">&#x27;Authorization&#x27;</span> =&gt; <span class="hljs-string">&#x27;API_KEY&#x27;</span>,
);
<span class="hljs-variable">$client</span> = <span class="hljs-keyword">new</span> \GuzzleHttp\Client();
<span class="hljs-comment">// Define array of request body.</span>
<span class="hljs-variable">$request_body</span> = <span class="hljs-keyword">array</span>();
<span class="hljs-keyword">try</span> {
<span class="hljs-variable">$response</span> = <span class="hljs-variable">$client</span>-&gt;request(<span class="hljs-string">&#x27;POST&#x27;</span>,<span class="hljs-string">&#x27;/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}&#x27;</span>, <span class="hljs-keyword">array</span>(
<span class="hljs-string">&#x27;headers&#x27;</span> =&gt; <span class="hljs-variable">$headers</span>,
<span class="hljs-string">&#x27;json&#x27;</span> =&gt; <span class="hljs-variable">$request_body</span>,
)
);
print_r(<span class="hljs-variable">$response</span>-&gt;getBody()-&gt;getContents());
}
<span class="hljs-keyword">catch</span> (\GuzzleHttp\<span class="hljs-built_in">Exception</span>\BadResponseException <span class="hljs-variable">$e</span>) {
<span class="hljs-comment">// handle exception or api errors.</span>
print_r(<span class="hljs-variable">$e</span>-&gt;getMessage());
}
<span class="hljs-comment">// ...</span>
</code></pre>
<p><code>POST /api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}</code></p>
<p><em>Edit Custom Field in a Card</em></p>
<p>Edit a custom field value in a card</p>
<blockquote>
<p>Body parameter</p>
</blockquote>
<pre class="highlight tab tab-yaml"><code><span class="hljs-attr">value:</span> <span class="hljs-string">string</span>
</code></pre>
<h3 id="edit_card_custom_field-parameters">Parameters</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>In</th>
<th>Type</th>
<th>Required</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>board</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the board ID of the card</td>
</tr>
<tr>
<td>list</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the list ID of the card</td>
</tr>
<tr>
<td>card</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the ID of the card</td>
</tr>
<tr>
<td>customField</td>
<td>path</td>
<td>string</td>
<td>true</td>
<td>the ID of the custom field</td>
</tr>
<tr>
<td>body</td>
<td>body</td>
<td>object</td>
<td>true</td>
<td>none</td>
</tr>
<tr>
<td>» value</td>
<td>body</td>
<td>string</td>
<td>true</td>
<td>the new custom field value</td>
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-28">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID of the card</p>
<p><strong>list</strong>: the list ID of the card</p>
<p><strong>card</strong>: the ID of the card</p>
<p><strong>customField</strong>: the ID of the custom field</p>
<blockquote>
<p>Example responses</p>
</blockquote>
<blockquote>
<p>200 Response</p>
</blockquote>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">&quot;_id&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;customFields&quot;</span>: {}
}
</code></pre>
<h3 id="edit_card_custom_field-responses">Responses</h3>
<table>
<thead>
<tr>
<th>Status</th>
<th>Meaning</th>
<th>Description</th>
<th>Schema</th>
</tr>
</thead>
<tbody>
<tr>
<td>200</td>
<td><a href="https://tools.ietf.org/html/rfc7231#section-6.3.1">OK</a></td>
<td>200 response</td>
<td>Inline</td>
</tr>
</tbody>
</table>
<h3 id="edit_card_custom_field-responseschema">Response Schema</h3>
<p>Status Code <strong>200</strong></p>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Required</th>
<th>Restrictions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>» _id</td>
<td>string</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
<tr>
<td>» customFields</td>
<td>object</td>
<td>false</td>
<td>none</td>
<td>none</td>
</tr>
</tbody>
</table>
<aside class="warning">
To perform this operation, you must be authenticated by means of one of the following methods:
UserSecurity
</aside>
<h2 id="get_list_cards_count">get_list_cards_count</h2>
<p><a id="opIdget_list_cards_count"></a></p>
<blockquote>
@@ -10338,7 +10911,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-27">Detailed descriptions</h4>
<h4 id="detailed-descriptions-29">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>list</strong>: the List ID</p>
<blockquote>
@@ -10571,7 +11144,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-28">Detailed descriptions</h4>
<h4 id="detailed-descriptions-30">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>swimlane</strong>: the swimlane ID</p>
<blockquote>
@@ -11397,7 +11970,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-29">Detailed descriptions</h4>
<h4 id="detailed-descriptions-31">Detailed descriptions</h4>
<p><strong>customField</strong>: the ID of the custom field</p>
<blockquote>
<p>Example responses</p>
@@ -11972,7 +12545,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-30">Detailed descriptions</h4>
<h4 id="detailed-descriptions-32">Detailed descriptions</h4>
<p><strong>customField</strong>: the ID of the custom field</p>
<blockquote>
<p>Example responses</p>
@@ -12966,7 +13539,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-31">Detailed descriptions</h4>
<h4 id="detailed-descriptions-33">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<blockquote>
<p>Example responses</p>
@@ -13306,7 +13879,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-32">Detailed descriptions</h4>
<h4 id="detailed-descriptions-34">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<blockquote>
<p>Example responses</p>
@@ -13538,7 +14111,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-33">Detailed descriptions</h4>
<h4 id="detailed-descriptions-35">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>int</strong>: the integration ID</p>
<blockquote>
@@ -13832,7 +14405,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-34">Detailed descriptions</h4>
<h4 id="detailed-descriptions-36">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>int</strong>: the integration ID</p>
<blockquote>
@@ -14065,7 +14638,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-35">Detailed descriptions</h4>
<h4 id="detailed-descriptions-37">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>int</strong>: the integration ID</p>
<blockquote>
@@ -14298,7 +14871,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-36">Detailed descriptions</h4>
<h4 id="detailed-descriptions-38">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>int</strong>: the integration ID</p>
<blockquote>
@@ -14552,7 +15125,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-37">Detailed descriptions</h4>
<h4 id="detailed-descriptions-39">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>int</strong>: the integration ID</p>
<blockquote>
@@ -14768,7 +15341,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-38">Detailed descriptions</h4>
<h4 id="detailed-descriptions-40">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<blockquote>
<p>Example responses</p>
@@ -15035,7 +15608,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-39">Detailed descriptions</h4>
<h4 id="detailed-descriptions-41">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<blockquote>
<p>Example responses</p>
@@ -15267,7 +15840,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-40">Detailed descriptions</h4>
<h4 id="detailed-descriptions-42">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>list</strong>: the List ID</p>
<blockquote>
@@ -15498,7 +16071,7 @@ The list is not put in the recycle bin.</p>
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-41">Detailed descriptions</h4>
<h4 id="detailed-descriptions-43">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>list</strong>: the ID of the list to remove</p>
<blockquote>
@@ -15807,7 +16380,7 @@ to later change the permissions.</p>
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-42">Detailed descriptions</h4>
<h4 id="detailed-descriptions-44">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>user</strong>: the user ID</p>
<blockquote>
@@ -16081,7 +16654,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-43">Detailed descriptions</h4>
<h4 id="detailed-descriptions-45">Detailed descriptions</h4>
<p><strong>board</strong>: the board ID</p>
<p><strong>user</strong>: the user ID</p>
<blockquote>
@@ -16316,7 +16889,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-44">Detailed descriptions</h4>
<h4 id="detailed-descriptions-46">Detailed descriptions</h4>
<p><strong>user</strong>: the ID of the user to create token for.</p>
<blockquote>
<p>Example responses</p>
@@ -17536,7 +18109,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-45">Detailed descriptions</h4>
<h4 id="detailed-descriptions-47">Detailed descriptions</h4>
<p><strong>user</strong>: the user ID or username</p>
<blockquote>
<p>Example responses</p>
@@ -17851,7 +18424,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-46">Detailed descriptions</h4>
<h4 id="detailed-descriptions-48">Detailed descriptions</h4>
<p><strong>user</strong>: the user ID</p>
<blockquote>
<p>Example responses</p>
@@ -18085,7 +18658,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-47">Detailed descriptions</h4>
<h4 id="detailed-descriptions-49">Detailed descriptions</h4>
<p><strong>user</strong>: the ID of the user to delete</p>
<blockquote>
<p>Example responses</p>
@@ -18311,7 +18884,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-48">Detailed descriptions</h4>
<h4 id="detailed-descriptions-50">Detailed descriptions</h4>
<p><strong>board</strong>: the ID of the board</p>
<blockquote>
<p>Example responses</p>
@@ -18578,7 +19151,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-49">Detailed descriptions</h4>
<h4 id="detailed-descriptions-51">Detailed descriptions</h4>
<p><strong>board</strong>: the ID of the board</p>
<blockquote>
<p>Example responses</p>
@@ -18810,7 +19383,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-50">Detailed descriptions</h4>
<h4 id="detailed-descriptions-52">Detailed descriptions</h4>
<p><strong>board</strong>: the ID of the board</p>
<p><strong>swimlane</strong>: the ID of the swimlane</p>
<blockquote>
@@ -19031,7 +19604,7 @@ System.out.println(response.toString());
</tr>
</tbody>
</table>
<h4 id="detailed-descriptions-51">Detailed descriptions</h4>
<h4 id="detailed-descriptions-53">Detailed descriptions</h4>
<p><strong>board</strong>: the ID of the board</p>
<p><strong>swimlane</strong>: the ID of the swimlane</p>
<blockquote>
+105 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v6.85
version: v6.89
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -534,6 +534,53 @@ paths:
properties:
_id:
type: string
/api/boards/{board}/cards/{card}/checklists/{checklist}/items:
post:
operationId: new_checklist_item
summary: add a new item to a checklist
tags:
- Checklists
consumes:
- multipart/form-data
- application/json
parameters:
- name: title
in: formData
description: |
the title of the new item
type: string
required: true
- name: board
in: path
description: |
the board ID
type: string
required: true
- name: card
in: path
description: |
the card ID
type: string
required: true
- name: checklist
in: path
description: |
the ID of the checklist
type: string
required: true
produces:
- application/json
security:
- UserSecurity: []
responses:
'200':
description: |-
200 response
schema:
type: object
properties:
_id:
type: string
/api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}:
get:
operationId: get_checklist_item
@@ -2080,6 +2127,63 @@ paths:
properties:
_id:
type: string
/api/boards/{board}/lists/{list}/cards/{card}/customFields/{customField}:
post:
operationId: edit_card_custom_field
summary: Edit Custom Field in a Card
description: |
Edit a custom field value in a card
tags:
- Cards
consumes:
- multipart/form-data
- application/json
parameters:
- name: value
in: formData
description: |
the new custom field value
type: string
required: true
- name: board
in: path
description: |
the board ID of the card
type: string
required: true
- name: list
in: path
description: |
the list ID of the card
type: string
required: true
- name: card
in: path
description: |
the ID of the card
type: string
required: true
- name: customField
in: path
description: |
the ID of the custom field
type: string
required: true
produces:
- application/json
security:
- UserSecurity: []
responses:
'200':
description: |-
200 response
schema:
type: object
properties:
_id:
type: string
customFields:
type: object
/api/boards/{board}/lists/{list}/cards_count:
get:
operationId: get_list_cards_count
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 687,
appVersion = 689,
# Increment this for every release.
appMarketingVersion = (defaultText = "6.87.0~2023-05-08"),
appMarketingVersion = (defaultText = "6.89.0~2023-05-12"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+1 -1
View File
@@ -1287,7 +1287,7 @@ Migrations.add('migrate-attachments-collectionFS-to-ostrioFiles', () => {
listId: fileObj.listId,
swimlaneId: fileObj.swimlaneId,
uploadedBeforeMigration: fileObj.uploadedAt,
migrationTime: this.now(),
migrationTime: new Date(),
copies: fileObj.copies,
source: 'import'
},
+4 -4
View File
@@ -1,5 +1,5 @@
name: wekan
version: '6.87'
version: '6.89'
base: core20
summary: Open Source kanban
description: |
@@ -169,9 +169,9 @@ parts:
# Cleanup
mkdir .build
cd .build
wget https://github.com/wekan/wekan/releases/download/v6.87/wekan-6.87-amd64.zip
unzip wekan-6.87-amd64.zip
rm wekan-6.87-amd64.zip
wget https://github.com/wekan/wekan/releases/download/v6.89/wekan-6.89-amd64.zip
unzip wekan-6.89-amd64.zip
rm wekan-6.89-amd64.zip
cd ..
##cd .build/bundle
##find . -type d -name '*-garbage*' | xargs rm -rf