mirror of
https://github.com/wekan/wekan.git
synced 2026-11-05 21:44:59 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a1a6dae5c6 | ||
|
|
c5f40f1be9 | ||
|
|
4358cb5e57 | ||
|
|
a591bf05e0 | ||
|
|
568b7538ad | ||
|
|
bbd7765432 | ||
|
|
558024785f | ||
|
|
76043cc5b6 | ||
|
|
583fca1814 | ||
|
|
806201b8cb | ||
|
|
24c89aeb64 | ||
|
|
8f0d88d9e0 | ||
|
|
e92d8dc127 | ||
|
|
8a99e8f796 | ||
|
|
c0246c6834 | ||
|
|
42ed92f346 | ||
|
|
df0bd90fae | ||
|
|
3453f94b43 | ||
|
|
ca537e266d | ||
|
|
8f3c948614 | ||
|
|
059743ad34 | ||
|
|
33ccf68e17 | ||
|
|
b6f22712f9 | ||
|
|
9e413b3961 | ||
|
|
5dd318a481 |
No files matched your search
@@ -55,7 +55,7 @@ jobs:
|
||||
# Build and push Docker image with Buildx (don't push on PR)
|
||||
# https://github.com/docker/build-push-action
|
||||
- name: Build and push Docker image
|
||||
uses: docker/build-push-action@4a13e500e55cf31b7a5d59a38ab2040ab0f42f56
|
||||
uses: docker/build-push-action@af5a7ed5ba88268d5278f7203fb52cd833f66d6e
|
||||
with:
|
||||
context: .
|
||||
push: ${{ github.event_name != 'pull_request' }}
|
||||
|
||||
@@ -157,7 +157,7 @@ jobs:
|
||||
|
||||
|
||||
- name: Coverage Report
|
||||
uses: VeryGoodOpenSource/very_good_coverage@v2.2.0
|
||||
uses: VeryGoodOpenSource/very_good_coverage@v3.0.0
|
||||
with:
|
||||
path: ".coverage/lcov.info"
|
||||
min_coverage: 1 # TODO add tests and increase to 95!
|
||||
@@ -15,6 +15,47 @@ Fixing other platforms In Progress.
|
||||
|
||||
[How to upgrade WeKan](https://github.com/wekan/wekan/issues/4585)
|
||||
|
||||
# v7.41 2024-03-18 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- Fixes for mongosh to allow snap packages to update to the edge/candidate version.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5349),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5350).
|
||||
Thanks to lorodoes.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.40 2024-03-17 WeKan ® release
|
||||
|
||||
This release fixes the following bugs:
|
||||
|
||||
- [Fixed centering of text below custom login logo](https://github.com/wekan/wekan/commit/24c89aeb64cf6266d95f42124419d4f070864631).
|
||||
Thanks to xet7.
|
||||
- [Fixed In RTL, hamburger margin is too much in mobile](https://github.com/wekan/wekan/commit/583fca1814d916490b04947ba8d97dd85168fb22).
|
||||
Thanks to mohammadZahedian and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.39 2024-03-16 WeKan ® release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- Clarify usage of api.py.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5341).
|
||||
[Part 2](https://github.com/wekan/wekan/commit/8f3c948614df0641b0971d1882cc241587d9d3b4).
|
||||
Thanks to e-gaulue and xet7.
|
||||
- Updated dependencies.
|
||||
[Part 1](https://github.com/wekan/wekan/pull/5343),
|
||||
[Part 2](https://github.com/wekan/wekan/pull/5344).
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Make the contents of the cards grow to the list width](https://github.com/wekan/wekan/pull/5346).
|
||||
Thanks to kuba-orlik.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v7.38 2024-03-10 WeKan ® release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v7.38.0"
|
||||
appVersion: "v7.41.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -44,6 +44,7 @@ If *nix: chmod +x api.py => ./api.py users
|
||||
python3 api.py addlabel BOARDID LISTID CARDID LABELID # Add label to a card
|
||||
python3 api.py addcardwithlabel AUTHORID BOARDID SWIMLANEID LISTID CARDTITLE CARDDESCRIPTION LABELIDS # Add a card and a label
|
||||
python3 api.py editboardtitle BOARDID NEWBOARDTITLE # Edit board title
|
||||
python3 api.py copyboard BOARDID NEWBOARDTITLE # Copy a board
|
||||
python3 api.py createlabel BOARDID LABELCOLOR LABELNAME (Color available: `white`, `green`, `yellow`, `orange`, `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`) # Create a new label
|
||||
python3 api.py editcardcolor BOARDID LISTID CARDID COLOR (Color available: `white`, `green`, `yellow`, `orange`, `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`, `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`) # Edit card color
|
||||
python3 api.py addchecklist BOARDID CARDID TITLE ITEM1 ITEM2 ITEM3 ITEM4 (You can add multiple items or just one, or also without any item, just TITLE works as well. * If items or Title contains spaces, you should add ' between them.) # Add checklist + item on a card
|
||||
@@ -481,7 +482,31 @@ if arguments == 3:
|
||||
print(body.text)
|
||||
|
||||
# ------- EDIT BOARD TITLE END -----------
|
||||
|
||||
|
||||
if sys.argv[1] == 'copyboard':
|
||||
|
||||
# ------- COPY BOARD START -----------
|
||||
boardid = sys.argv[2]
|
||||
boardtitle = sys.argv[3]
|
||||
edboardcopy = wekanurl + apiboards + boardid + s + 'copy'
|
||||
print(edboardcopy)
|
||||
headers = {'Accept': 'application/json', 'Authorization': 'Bearer {}'.format(apikey)}
|
||||
|
||||
post_data = {'title': boardtitle}
|
||||
|
||||
body = requests.post(edboardcopy, json=post_data, headers=headers)
|
||||
print("=== COPY BOARD ===\n")
|
||||
#body = requests.get(edboardcopy, headers=headers)
|
||||
data2 = body.text.replace('}',"}\n")
|
||||
print(data2)
|
||||
if body.status_code == 200:
|
||||
print("Succesfull!")
|
||||
else:
|
||||
print(f"Error: {body.status_code}")
|
||||
print(body.text)
|
||||
|
||||
# ------- COPY BOARD END -----------
|
||||
|
||||
if sys.argv[1] == 'createlist':
|
||||
|
||||
# ------- CREATE LIST START -----------
|
||||
|
||||
@@ -56,12 +56,12 @@
|
||||
float: right;
|
||||
font-size: 18px;
|
||||
padding-right: 30px;
|
||||
padding-left: 10px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
.minicard-details-menu {
|
||||
float: right;
|
||||
font-size: 18px;
|
||||
padding-left: 10px;
|
||||
padding-left: 5px;
|
||||
}
|
||||
@media print {
|
||||
.minicard-details-menu,
|
||||
@@ -175,7 +175,6 @@
|
||||
.minicard .minicard-title .viewer {
|
||||
display: block;
|
||||
word-wrap: break-word;
|
||||
max-width: 230px;
|
||||
}
|
||||
}
|
||||
.minicard .dates {
|
||||
|
||||
@@ -470,6 +470,7 @@ a:not(.disabled).is-active i.fa {
|
||||
.select-authentication {
|
||||
width: 100%;
|
||||
}
|
||||
.textBelowCustomLoginLogo,
|
||||
.auth-layout {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
Also see:
|
||||
Wekan provides a python script to ease the call of the REST API from command line interface.
|
||||
|
||||
# Context
|
||||
|
||||
- [API Login to get Bearer token](REST-API#example-call---as-form-data)
|
||||
- [API docs and examples for various programming languages](https://wekan.github.io/api/), there is Boards / Export for exporting board with API
|
||||
- In the right menu, scroll down REST API Docs etc links =====>
|
||||
@@ -6,6 +9,8 @@ Also see:
|
||||
|
||||
# Install
|
||||
|
||||
You need python3.
|
||||
|
||||
Windows
|
||||
```
|
||||
choco install python3
|
||||
@@ -22,13 +27,15 @@ chmod +x wekan.py
|
||||
./wekan.py
|
||||
```
|
||||
|
||||
# api.py creating new card with Python3 and REST API
|
||||
# Usage
|
||||
|
||||
Below code works now, fixed at 2020-10-29.
|
||||
Copy the api.py script to you machine. [Newest Wekan Python CLI api.py here](https://raw.githubusercontent.com/wekan/wekan/master/api.py).
|
||||
|
||||
Change these:
|
||||
Then, in this script, look for and change:
|
||||
- wekanurl: https://boards.example.com => Your Wekan URL
|
||||
- username (could be username or username@example.com)
|
||||
- Only works with password login admin user. Does not work with LDAP, OAuth2 etc.
|
||||
|
||||
[Newest Wekan Python CLI api.py here](https://raw.githubusercontent.com/wekan/wekan/master/api.py)
|
||||
Keep in mind your Wekan credentials are potentially accessible in this file.
|
||||
|
||||
Then call it without any argument to see if everything is all right. You should just get usage examples.
|
||||
@@ -2239,6 +2239,37 @@ if (Meteor.isServer) {
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation copy_board
|
||||
* @summary Copy a board to a new one
|
||||
*
|
||||
* @description If your are board admin or wekan admin, this copies the
|
||||
* given board to a new one.
|
||||
*
|
||||
* @param {string} boardId the board
|
||||
* @param {string} title the title of the new board (default to old one)
|
||||
*
|
||||
* @return_type string
|
||||
*/
|
||||
JsonRoutes.add('POST', '/api/boards/:boardId/copy', function(req, res) {
|
||||
const id = req.params.boardId;
|
||||
const board = ReactiveCache.getBoard(id);
|
||||
const adminAccess = board.members.some(e => e.userId === req.userId && e.isAdmin);
|
||||
Authentication.checkAdminOrCondition(req.userId, adminAccess);
|
||||
try {
|
||||
board['title'] = req.body.title || Boards.uniqueTitle(board.title);
|
||||
ret = board.copy();
|
||||
JsonRoutes.sendResult(res, {
|
||||
code: 200,
|
||||
data: ret,
|
||||
});
|
||||
} catch (error) {
|
||||
JsonRoutes.sendResult(res, {
|
||||
data: error,
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
/**
|
||||
* @operation set_board_member_permission
|
||||
* @tag Users
|
||||
|
||||
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.38.0",
|
||||
"version": "v7.41.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v7.38.0",
|
||||
"version": "v7.41.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"repository": {
|
||||
|
||||
+287
-47
@@ -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 v7.38</title>
|
||||
<title>Wekan REST API v7.41</title>
|
||||
|
||||
<style>
|
||||
</style>
|
||||
@@ -1548,7 +1548,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 v7.38">Wekan REST API v7.38</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v7.41">Wekan REST API v7.41</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -1616,6 +1616,11 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#copy_board" class="toc-h2 toc-link" data-title="">copy_board</a>
|
||||
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#add_board_label" class="toc-h2 toc-link" data-title="">add_board_label</a>
|
||||
|
||||
@@ -2062,7 +2067,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 v7.38</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v7.41</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>
|
||||
@@ -4207,6 +4212,241 @@ for detailed explanations</p>
|
||||
To perform this operation, you must be authenticated by means of one of the following methods:
|
||||
UserSecurity
|
||||
</aside>
|
||||
<h2 id="copy_board">copy_board</h2>
|
||||
<p><a id="opIdcopy_board"></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}/copy \
|
||||
-H <span class="hljs-string">'Content-Type: multipart/form-data'</span> \
|
||||
-H <span class="hljs-string">'Accept: application/json'</span> \
|
||||
-H <span class="hljs-string">'Authorization: API_KEY'</span>
|
||||
|
||||
</code></pre>
|
||||
<pre class="highlight tab tab-http"><code><span class="hljs-keyword">POST</span> <span class="hljs-string">/api/boards/{board}/copy</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">'{
|
||||
"title": "string"
|
||||
}'</span>;
|
||||
<span class="hljs-keyword">const</span> headers = {
|
||||
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
|
||||
<span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
|
||||
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
|
||||
};
|
||||
|
||||
fetch(<span class="hljs-string">'/api/boards/{board}/copy'</span>,
|
||||
{
|
||||
<span class="hljs-attr">method</span>: <span class="hljs-string">'POST'</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">'node-fetch'</span>);
|
||||
<span class="hljs-keyword">const</span> inputBody = {
|
||||
<span class="hljs-string">"title"</span>: <span class="hljs-string">"string"</span>
|
||||
};
|
||||
<span class="hljs-keyword">const</span> headers = {
|
||||
<span class="hljs-string">'Content-Type'</span>:<span class="hljs-string">'multipart/form-data'</span>,
|
||||
<span class="hljs-string">'Accept'</span>:<span class="hljs-string">'application/json'</span>,
|
||||
<span class="hljs-string">'Authorization'</span>:<span class="hljs-string">'API_KEY'</span>
|
||||
};
|
||||
|
||||
fetch(<span class="hljs-string">'/api/boards/{board}/copy'</span>,
|
||||
{
|
||||
<span class="hljs-attr">method</span>: <span class="hljs-string">'POST'</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">'rest-client'</span>
|
||||
<span class="hljs-keyword">require</span> <span class="hljs-string">'json'</span>
|
||||
|
||||
headers = {
|
||||
<span class="hljs-string">'Content-Type'</span> => <span class="hljs-string">'multipart/form-data'</span>,
|
||||
<span class="hljs-string">'Accept'</span> => <span class="hljs-string">'application/json'</span>,
|
||||
<span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</span>
|
||||
}
|
||||
|
||||
result = RestClient.post <span class="hljs-string">'/api/boards/{board}/copy'</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">'Content-Type'</span>: <span class="hljs-string">'multipart/form-data'</span>,
|
||||
<span class="hljs-string">'Accept'</span>: <span class="hljs-string">'application/json'</span>,
|
||||
<span class="hljs-string">'Authorization'</span>: <span class="hljs-string">'API_KEY'</span>
|
||||
}
|
||||
|
||||
r = requests.post(<span class="hljs-string">'/api/boards/{board}/copy'</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">"/api/boards/{board}/copy"</span>);
|
||||
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
|
||||
con.setRequestMethod(<span class="hljs-string">"POST"</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">"bytes"</span>
|
||||
<span class="hljs-string">"net/http"</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">"Content-Type"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"multipart/form-data"</span>},
|
||||
<span class="hljs-string">"Accept"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"application/json"</span>},
|
||||
<span class="hljs-string">"Authorization"</span>: []<span class="hljs-keyword">string</span>{<span class="hljs-string">"API_KEY"</span>},
|
||||
}
|
||||
|
||||
data := bytes.NewBuffer([]<span class="hljs-keyword">byte</span>{jsonReq})
|
||||
req, err := http.NewRequest(<span class="hljs-string">"POST"</span>, <span class="hljs-string">"/api/boards/{board}/copy"</span>, data)
|
||||
req.Header = headers
|
||||
|
||||
client := &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">'multipart/form-data'</span>,
|
||||
<span class="hljs-string">'Accept'</span> => <span class="hljs-string">'application/json'</span>,
|
||||
<span class="hljs-string">'Authorization'</span> => <span class="hljs-string">'API_KEY'</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>->request(<span class="hljs-string">'POST'</span>,<span class="hljs-string">'/api/boards/{board}/copy'</span>, <span class="hljs-keyword">array</span>(
|
||||
<span class="hljs-string">'headers'</span> => <span class="hljs-variable">$headers</span>,
|
||||
<span class="hljs-string">'json'</span> => <span class="hljs-variable">$request_body</span>,
|
||||
)
|
||||
);
|
||||
print_r(<span class="hljs-variable">$response</span>->getBody()->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>->getMessage());
|
||||
}
|
||||
|
||||
<span class="hljs-comment">// ...</span>
|
||||
|
||||
</code></pre>
|
||||
<p><code>POST /api/boards/{board}/copy</code></p>
|
||||
<p><em>Copy a board to a new one</em></p>
|
||||
<p>If your are board admin or wekan admin, this copies the
|
||||
given board to a new one.</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="copy_board-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</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 board (default to old one)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-6">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
</blockquote>
|
||||
<blockquote>
|
||||
<p>200 Response</p>
|
||||
</blockquote>
|
||||
<pre class="highlight tab tab-json"><code><span class="hljs-string">"string"</span>
|
||||
</code></pre>
|
||||
<h3 id="copy_board-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>string</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="add_board_label">add_board_label</h2>
|
||||
<p><a id="opIdadd_board_label"></a></p>
|
||||
<blockquote>
|
||||
@@ -4409,7 +4649,7 @@ adds the label to the board.</p>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-6">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-7">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -4671,7 +4911,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-7">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-8">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board that we are changing</p>
|
||||
<p><strong>member</strong>: the ID of the user to change permissions</p>
|
||||
<h3 id="set_board_member_permission-responses">Responses</h3>
|
||||
@@ -4889,7 +5129,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-8">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-9">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board to update</p>
|
||||
<h3 id="update_board_title-responses">Responses</h3>
|
||||
<table>
|
||||
@@ -5292,7 +5532,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-9">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-10">Detailed descriptions</h4>
|
||||
<p><strong>user</strong>: the ID of the user to retrieve the data</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -5535,7 +5775,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-10">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-11">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>card</strong>: the card ID</p>
|
||||
<blockquote>
|
||||
@@ -5820,7 +6060,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-11">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-12">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>card</strong>: the card ID</p>
|
||||
<blockquote>
|
||||
@@ -6060,7 +6300,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-12">Detailed descriptions</h4>
|
||||
<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>
|
||||
@@ -6369,7 +6609,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 ID of the checklist to remove</p>
|
||||
@@ -6643,7 +6883,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 ID of the checklist</p>
|
||||
@@ -6891,7 +7131,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>
|
||||
@@ -7166,7 +7406,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</p>
|
||||
<p><strong>card</strong>: the card ID</p>
|
||||
<p><strong>checklist</strong>: the checklist ID</p>
|
||||
@@ -7416,7 +7656,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</p>
|
||||
<p><strong>card</strong>: the card ID</p>
|
||||
<p><strong>checklist</strong>: the checklist ID</p>
|
||||
@@ -7652,7 +7892,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>
|
||||
<blockquote>
|
||||
@@ -7945,7 +8185,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>
|
||||
<blockquote>
|
||||
@@ -8185,7 +8425,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 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>
|
||||
@@ -8409,7 +8649,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 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>
|
||||
@@ -8651,7 +8891,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>customField</strong>: the list ID</p>
|
||||
<p><strong>customFieldValue</strong>: the value to look for</p>
|
||||
@@ -8912,7 +9152,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</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -9144,7 +9384,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</p>
|
||||
<blockquote>
|
||||
@@ -9477,7 +9717,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 new card</p>
|
||||
<p><strong>list</strong>: the list ID of the new card</p>
|
||||
<blockquote>
|
||||
@@ -9717,7 +9957,7 @@ System.out.println(response.toString());
|
||||
</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</p>
|
||||
<p><strong>list</strong>: the list ID of the card</p>
|
||||
<p><strong>card</strong>: the card ID</p>
|
||||
@@ -10321,7 +10561,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-27">Detailed descriptions</h4>
|
||||
<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>
|
||||
@@ -10564,7 +10804,7 @@ is not put in the recycle bin.</p>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-28">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-29">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>
|
||||
@@ -10845,7 +11085,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-29">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-30">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>
|
||||
@@ -11088,7 +11328,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-30">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-31">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>list</strong>: the List ID</p>
|
||||
<blockquote>
|
||||
@@ -11321,7 +11561,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-31">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-32">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>swimlane</strong>: the swimlane ID</p>
|
||||
<blockquote>
|
||||
@@ -12147,7 +12387,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-32">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-33">Detailed descriptions</h4>
|
||||
<p><strong>customField</strong>: the ID of the custom field</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -12722,7 +12962,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-33">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-34">Detailed descriptions</h4>
|
||||
<p><strong>customField</strong>: the ID of the custom field</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -13716,7 +13956,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-34">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-35">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -14056,7 +14296,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-35">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-36">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -14288,7 +14528,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-36">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>
|
||||
@@ -14582,7 +14822,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-37">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>
|
||||
@@ -14815,7 +15055,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-38">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>
|
||||
@@ -15048,7 +15288,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-39">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-40">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>int</strong>: the integration ID</p>
|
||||
<blockquote>
|
||||
@@ -15302,7 +15542,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-40">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-41">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>int</strong>: the integration ID</p>
|
||||
<blockquote>
|
||||
@@ -15518,7 +15758,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-41">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-42">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -15785,7 +16025,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-42">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-43">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -16017,7 +16257,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-43">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-44">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>list</strong>: the List ID</p>
|
||||
<blockquote>
|
||||
@@ -16246,7 +16486,7 @@ The list is not put in the recycle bin.</p>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-44">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-45">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the board ID</p>
|
||||
<p><strong>list</strong>: the ID of the list to remove</p>
|
||||
<blockquote>
|
||||
@@ -16473,7 +16713,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-45">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-46">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -16740,7 +16980,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-46">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-47">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board</p>
|
||||
<blockquote>
|
||||
<p>Example responses</p>
|
||||
@@ -16972,7 +17212,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-47">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-48">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board</p>
|
||||
<p><strong>swimlane</strong>: the ID of the swimlane</p>
|
||||
<blockquote>
|
||||
@@ -17224,7 +17464,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-48">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-49">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board</p>
|
||||
<p><strong>swimlane</strong>: the ID of the swimlane to edit</p>
|
||||
<blockquote>
|
||||
@@ -17458,7 +17698,7 @@ System.out.println(response.toString());
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<h4 id="detailed-descriptions-49">Detailed descriptions</h4>
|
||||
<h4 id="detailed-descriptions-50">Detailed descriptions</h4>
|
||||
<p><strong>board</strong>: the ID of the board</p>
|
||||
<p><strong>swimlane</strong>: the ID of the swimlane</p>
|
||||
<blockquote>
|
||||
|
||||
+36
-1
@@ -1,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v7.38
|
||||
version: v7.41
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
@@ -963,6 +963,41 @@ paths:
|
||||
properties:
|
||||
board_cards_count:
|
||||
type: integer
|
||||
/api/boards/{board}/copy:
|
||||
post:
|
||||
operationId: copy_board
|
||||
summary: Copy a board to a new one
|
||||
description: |
|
||||
If your are board admin or wekan admin, this copies the
|
||||
given board to a new one.
|
||||
tags:
|
||||
- Boards
|
||||
consumes:
|
||||
- multipart/form-data
|
||||
- application/json
|
||||
parameters:
|
||||
- name: title
|
||||
in: formData
|
||||
description: |
|
||||
the title of the new board (default to old one)
|
||||
type: string
|
||||
required: true
|
||||
- name: board
|
||||
in: path
|
||||
description: |
|
||||
the board
|
||||
type: string
|
||||
required: true
|
||||
produces:
|
||||
- application/json
|
||||
security:
|
||||
- UserSecurity: []
|
||||
responses:
|
||||
'200':
|
||||
description: |-
|
||||
200 response
|
||||
schema:
|
||||
type: string
|
||||
/api/boards/{board}/custom-fields:
|
||||
get:
|
||||
operationId: get_all_custom_fields
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 738,
|
||||
appVersion = 741,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "7.38.0~2024-03-10"),
|
||||
appMarketingVersion = (defaultText = "7.41.0~2024-03-18"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
@@ -80,14 +80,17 @@ if [ -z "$MONGO_URL" ]; then
|
||||
|
||||
# start mongo deamon
|
||||
BIND_OPTIONS=""
|
||||
SH_BIND_OPTIONS=""
|
||||
if [ "nill" != "$MONGODB_BIND_UNIX_SOCKET" ] && [ "x" != "x${MONGODB_BIND_UNIX_SOCKET}" ]; then
|
||||
BIND_OPTIONS+=" --unixSocketPrefix $MONGODB_BIND_UNIX_SOCKET"
|
||||
fi
|
||||
if [ "x" != "x${MONGODB_BIND_IP}" ]; then
|
||||
BIND_OPTIONS+=" --bind_ip $MONGODB_BIND_IP"
|
||||
SH_BIND_OPTIONS+=" --host $MONGODB_BIND_IP"
|
||||
fi
|
||||
if [ "x" != "x${MONGODB_PORT}" ]; then
|
||||
BIND_OPTIONS+=" --port $MONGODB_PORT"
|
||||
SH_BIND_OPTIONS+=" --port $MONGODB_PORT"
|
||||
fi
|
||||
echo "mongodb bind options: $BIND_OPTIONS"
|
||||
|
||||
@@ -109,16 +112,16 @@ if [ -z "$MONGO_URL" ]; then
|
||||
|
||||
|
||||
# Disable MongoDB telemetry and free monitoring
|
||||
mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS
|
||||
# Snap: Disable apparmor="DENIED" at syslog
|
||||
# https://github.com/wekan/wekan/issues/4855
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS
|
||||
# Drop indexes on database upgrade, when starting MongoDB
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $BIND_OPTIONS
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.4" });' $SH_BIND_OPTIONS
|
||||
# Delete incomplete uploads so that they would not prevent starting WeKan
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS
|
||||
|
||||
else
|
||||
|
||||
@@ -138,15 +141,15 @@ else
|
||||
fi
|
||||
|
||||
# Disable MongoDB telemetry and free monitoring
|
||||
mongosh wekan --eval 'disableTelemetry();' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'disableTelemetry();' $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.disableFreeMonitoring();' $SH_BIND_OPTIONS
|
||||
# Snap: Disable apparmor="DENIED" at syslog
|
||||
# https://github.com/wekan/wekan/issues/4855
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setParameter: 1, diagnosticDataCollectionEnabled: false});' $SH_BIND_OPTIONS
|
||||
# Drop indexes on database upgrade, when starting MongoDB
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $BIND_OPTIONS
|
||||
#mongosh wekan --eval "db.getCollectionNames().forEach(function(col_name) { var coll = db.getCollection(col_name); coll.dropIndexes(); });" $SH_BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.adminCommand({ setFeatureCompatibilityVersion: "4.2" });' $SH_BIND_OPTIONS
|
||||
# Delete incomplete uploads so that they would not prevent starting WeKan
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $BIND_OPTIONS
|
||||
mongosh wekan --eval 'db.getCollection("cfs.attachments.filerecord").find( { "uploadedAt": { "$exists": true }, "copies.attachments" : null,"failures.copies.attachments.doneTrying" : {"$ne" : true}});' $SH_BIND_OPTIONS
|
||||
|
||||
fi
|
||||
+4
-4
@@ -1,5 +1,5 @@
|
||||
name: wekan
|
||||
version: '7.38'
|
||||
version: '7.41'
|
||||
base: core20
|
||||
summary: Open Source kanban
|
||||
description: |
|
||||
@@ -170,9 +170,9 @@ parts:
|
||||
# Cleanup
|
||||
mkdir .build
|
||||
cd .build
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.38/wekan-7.38-amd64.zip
|
||||
unzip wekan-7.38-amd64.zip
|
||||
rm wekan-7.38-amd64.zip
|
||||
wget https://github.com/wekan/wekan/releases/download/v7.41/wekan-7.41-amd64.zip
|
||||
unzip wekan-7.41-amd64.zip
|
||||
rm wekan-7.41-amd64.zip
|
||||
cd ..
|
||||
##cd .build/bundle
|
||||
##find . -type d -name '*-garbage*' | xargs rm -rf
|
||||
|
||||
Reference in new issue
Block a user