Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7e13d09c3c | ||
|
|
71c0c62ee8 | ||
|
|
c599e60e75 | ||
|
|
f2241ba3de | ||
|
|
85fb240b69 | ||
|
|
71725f1b26 | ||
|
|
64d4c3f971 | ||
|
|
4c24b042d0 | ||
|
|
a43736b5c6 |
No files matched your search
+1
-1
@@ -1 +1 @@
|
||||
METEOR@2.0
|
||||
METEOR@2.1
|
||||
@@ -1,3 +1,21 @@
|
||||
# v4.99 2021-02-25 Wekan release
|
||||
|
||||
This release fixes the following CRITICAL SECURITY ISSUES:
|
||||
|
||||
- [Fixed SMTP password visible to Admin at Admin Panel by using browser inspect
|
||||
to see behind asterisks](https://github.com/wekan/wekan/commit/71725f1b262b385162b2544f10658a0bc22f6b41).
|
||||
Thanks to Georg Krause and xet7.
|
||||
|
||||
and adds the following updates:
|
||||
|
||||
- [Update wekan/releases/up.sh script: Can not build ppc64le version because OpenPower Minicloud
|
||||
is having emergency maintenance](https://github.com/wekan/wekan/commit/a43736b5c6196c65770d8ae17af927406dce2c43).
|
||||
Thanks to xet7.
|
||||
- [Updated to Meteor 2.1](https://github.com/wekan/wekan/commit/f2241ba3de82e393161ee1c456e1a947c6bdb5fc).
|
||||
Thanks to Meteor developers.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.98 2021-02-24 Wekan release
|
||||
|
||||
This release adds the following CRITICAL SECURITY FIXES:
|
||||
@@ -9,6 +27,8 @@ and adds the following new features:
|
||||
|
||||
- [Added sort feature for viewing of cards](https://github.com/wekan/wekan/pull/3586).
|
||||
Thanks to ednamaeG.
|
||||
- [Made sort cards feature translatable](https://github.com/wekan/wekan/commit/09a13ef75f478b0fc02ae3cdbfe918367664aa0c).
|
||||
Thanks to xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v4.98.0"
|
||||
appVersion: "v4.99.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -97,7 +97,7 @@ template(name='email')
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-password'}}
|
||||
.form-group
|
||||
input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="{{currentSetting.mailServer.password}}")
|
||||
input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="")
|
||||
li.smtp-form
|
||||
.title {{_ 'smtp-tls'}}
|
||||
.form-group
|
||||
|
||||
+5
-5
@@ -920,8 +920,8 @@
|
||||
"predicate-attachment": "attachment",
|
||||
"predicate-description": "description",
|
||||
"predicate-checklist": "チェックリスト",
|
||||
"predicate-public": "public",
|
||||
"predicate-private": "private",
|
||||
"predicate-public": "公開",
|
||||
"predicate-private": "非公開",
|
||||
"operator-unknown-error": "%sは演算子ではありません",
|
||||
"operator-number-expected": "演算子 __operator__ には数値の指定が必要ですが、「__value__」が入力されました",
|
||||
"operator-sort-invalid": "sort of '%s' is invalid",
|
||||
@@ -949,15 +949,15 @@
|
||||
"globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - アーカイブ済みのカード",
|
||||
"globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - アーカイブされていないカード",
|
||||
"globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - 終了したカード",
|
||||
"globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
|
||||
"globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
|
||||
"globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - 公開されたボードのカード",
|
||||
"globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - 非公開のボードのカード",
|
||||
"globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
|
||||
"globalSearch-instructions-notes-1": "複数の演算子を指定できます。",
|
||||
"globalSearch-instructions-notes-2": "同じ演算子はOR条件になります。複数の条件のいずれかに一致したカードが検索されます。`__operator_list__:有効 __operator_list__:対応不要` の場合、リスト名が *有効* または *対応不要* のカードが検索されます。",
|
||||
"globalSearch-instructions-notes-3": "異なる演算子はAND条件になります。異なる演算子すべてに一致したカードのみが検索されます。`__operator_list__:有効 __operator_label__:赤` は、*有効* のリストの中の *赤* のラベルのカードのみが検索されます。",
|
||||
"globalSearch-instructions-notes-3-2": "日数指定は数値、または`__predicate_week__`、`__predicate_month__`、`__predicate_quarter__`、`__predicate_year__`を使用します。",
|
||||
"globalSearch-instructions-notes-4": "テキスト検索では大文字と小文字は区別されません。",
|
||||
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
|
||||
"globalSearch-instructions-notes-5": "デフォルトではアーカイブされたカードは検索されません。 ",
|
||||
"link-to-search": "この検索へのリンク",
|
||||
"excel-font": "Arial",
|
||||
"number": "数値",
|
||||
|
||||
+42
-42
@@ -322,8 +322,8 @@
|
||||
"error-user-notAllowSelf": "不允許對自己執行此操作",
|
||||
"error-user-notCreated": "該使用者未能成功新增",
|
||||
"error-username-taken": "這個使用者名稱已被使用",
|
||||
"error-orgname-taken": "This organization name is already taken",
|
||||
"error-teamname-taken": "This team name is already taken",
|
||||
"error-orgname-taken": "這個組織名稱已被使用\n ",
|
||||
"error-teamname-taken": "這個團隊名稱已被使用\n ",
|
||||
"error-email-taken": "Email 已被使用",
|
||||
"export-board": "匯出看板",
|
||||
"export-board-json": "匯出看板為JSON格式",
|
||||
@@ -386,7 +386,7 @@
|
||||
"import-csv-placeholder": "貼上您有效的 CSV/TSV 資料至此",
|
||||
"import-map-members": "複製成員",
|
||||
"import-members-map": "您匯入的看板有一些成員,請複製這些成員到您匯入的用戶。",
|
||||
"import-members-map-note": "Note: Unmapped members will be assigned to the current user.",
|
||||
"import-members-map-note": "備註: 未對應的成員將分配給目前使用者。",
|
||||
"import-show-user-mapping": "核對複製的成員",
|
||||
"import-user-select": "選擇現有使用者作為成員",
|
||||
"importMapMembersAddPopup-title": "選擇成員",
|
||||
@@ -533,7 +533,7 @@
|
||||
"custom-login-logo-link-url": "自訂登入商標連結網址",
|
||||
"text-below-custom-login-logo": "登入商標下方文字",
|
||||
"username": "使用者名稱",
|
||||
"import-usernames": "Import Usernames",
|
||||
"import-usernames": "匯入使用者名稱",
|
||||
"view-it": "檢視",
|
||||
"warn-list-archived": "警告: 卡片位在封存的清單中",
|
||||
"watch": "追蹤",
|
||||
@@ -905,41 +905,41 @@
|
||||
"operator-modified": "已修改",
|
||||
"operator-sort": "排序",
|
||||
"operator-comment": "評論",
|
||||
"operator-has": "has",
|
||||
"operator-has": "擁有",
|
||||
"predicate-archived": "已封存",
|
||||
"predicate-ended": "ended",
|
||||
"predicate-all": "all",
|
||||
"predicate-overdue": "overdue",
|
||||
"predicate-week": "week",
|
||||
"predicate-month": "month",
|
||||
"predicate-quarter": "quarter",
|
||||
"predicate-year": "year",
|
||||
"predicate-ended": "已結束",
|
||||
"predicate-all": "全部",
|
||||
"predicate-overdue": "逾期",
|
||||
"predicate-week": "周",
|
||||
"predicate-month": "月",
|
||||
"predicate-quarter": "季",
|
||||
"predicate-year": "年",
|
||||
"predicate-due": "至",
|
||||
"predicate-modified": "已修改",
|
||||
"predicate-created": "已建立",
|
||||
"predicate-attachment": "attachment",
|
||||
"predicate-description": "description",
|
||||
"predicate-checklist": "清單",
|
||||
"predicate-public": "public",
|
||||
"predicate-private": "private",
|
||||
"operator-unknown-error": "%s不是執行者",
|
||||
"operator-number-expected": "operator __operator__ expected a number, got '__value__'",
|
||||
"operator-sort-invalid": "sort of '%s' is invalid",
|
||||
"operator-status-invalid": "'%s' is not a valid status",
|
||||
"operator-has-invalid": "%s is not a valid existence check",
|
||||
"next-page": "Next Page",
|
||||
"previous-page": "Previous Page",
|
||||
"predicate-attachment": "附件",
|
||||
"predicate-description": "描述",
|
||||
"predicate-checklist": "待辦清單",
|
||||
"predicate-public": "公開",
|
||||
"predicate-private": "私有",
|
||||
"operator-unknown-error": "%s不是運算子",
|
||||
"operator-number-expected": "運算子__operator__預期是數字,但得到 '__value__'",
|
||||
"operator-sort-invalid": "某種\"%s\"無效",
|
||||
"operator-status-invalid": "\"%s\"是無效狀態",
|
||||
"operator-has-invalid": "%s是無效的存在檢查",
|
||||
"next-page": "下一頁",
|
||||
"previous-page": "上一頁",
|
||||
"heading-notes": "筆記",
|
||||
"globalSearch-instructions-heading": "搜尋指引",
|
||||
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
|
||||
"globalSearch-instructions-description": "搜索可以包括運算子以優化搜索結果。通過冒號分隔的運算子名稱和值來指定運算子。例如,運算子指定 `list:Blocked` 則會將搜索範圍限制在名為 *Blocked* 的清單中。如果值包含空格或特殊字符,則必須將其用引號標記(例如,`__operator_list__:\"To Review\"`)。",
|
||||
"globalSearch-instructions-operators": "可用的執行者:",
|
||||
"globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
|
||||
"globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
|
||||
"globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
|
||||
"globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
|
||||
"globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
|
||||
"globalSearch-instructions-operator-board": "`__operator_board__:title` - 看板上符合指定標題的卡片",
|
||||
"globalSearch-instructions-operator-list": "`__operator_list__:title` - 清單中符合指定標題的卡片",
|
||||
"globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - 泳道流程圖內符合指定標題的卡片",
|
||||
"globalSearch-instructions-operator-comment": "`__operator_comment__:text` - 註解包含 *text* 的卡片",
|
||||
"globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - 符合特定標籤顏色或標籤名稱的卡片",
|
||||
"globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - `__operator_label__:label` 的簡寫",
|
||||
"globalSearch-instructions-operator-user": "`__operator_user__:username` - 成員或代理人是指定使用者的卡片",
|
||||
"globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
|
||||
"globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
|
||||
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
|
||||
@@ -955,19 +955,19 @@
|
||||
"globalSearch-instructions-notes-1": "將會指定給多位執行者",
|
||||
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
|
||||
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
|
||||
"globalSearch-instructions-notes-3-2": "Days can be specified as an integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__`",
|
||||
"globalSearch-instructions-notes-3-2": "天數可以用整數指定或使用 `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` , `__predicate_year__`",
|
||||
"globalSearch-instructions-notes-4": "英文搜尋忽略大小寫",
|
||||
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
|
||||
"link-to-search": "連結到此搜尋",
|
||||
"excel-font": "Arial",
|
||||
"number": "數字",
|
||||
"label-colors": "Label Colors",
|
||||
"label-names": "Label Names",
|
||||
"archived-at": "archived at",
|
||||
"sort-cards": "Sort Cards",
|
||||
"cardsSortPopup-title": "Sort Cards",
|
||||
"due-date": "Due Date",
|
||||
"title-alphabetically": "Title (Alphabetically)",
|
||||
"created-at-newest-first": "Created At (Newest First)",
|
||||
"created-at-oldest-first": "Created At (Oldest First)"
|
||||
"label-colors": "標籤顏色",
|
||||
"label-names": "標籤名稱",
|
||||
"archived-at": "封存於",
|
||||
"sort-cards": "排序卡片",
|
||||
"cardsSortPopup-title": "排序卡片",
|
||||
"due-date": "到期日",
|
||||
"title-alphabetically": "標題 (按字母順序)",
|
||||
"created-at-newest-first": "創建於(最新優先)",
|
||||
"created-at-oldest-first": "創建於(最早優先)"
|
||||
}
|
||||
Generated
+138
-8805
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v4.98.0",
|
||||
"version": "v4.99.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
|
||||
@@ -1524,7 +1524,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 v4.98">Wekan REST API v4.98</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.99">Wekan REST API v4.99</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -2047,7 +2047,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 v4.98</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v4.99</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>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v4.98
|
||||
version: v4.99
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
|
||||
+5
-1
@@ -2,8 +2,12 @@
|
||||
|
||||
sudo apt-get -y install parallel
|
||||
|
||||
# Can not build ppc64le version because
|
||||
# OpenPower Minicloud is having
|
||||
# emergency maintenance.
|
||||
# ~/repos/wekan/releases/up-o.sh $1
|
||||
|
||||
{
|
||||
~/repos/wekan/releases/up-a.sh $1
|
||||
~/repos/wekan/releases/up-s.sh $1
|
||||
~/repos/wekan/releases/up-o.sh $1
|
||||
} | parallel -k
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 498,
|
||||
appVersion = 499,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "4.98.0~2021-02-24"),
|
||||
appMarketingVersion = (defaultText = "4.99.0~2021-02-25"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
@@ -31,7 +31,18 @@ Meteor.publish('mailServer', function() {
|
||||
if (!Match.test(this.userId, String)) return [];
|
||||
const user = Users.findOne(this.userId);
|
||||
if (user && user.isAdmin) {
|
||||
return Settings.find({}, { fields: { mailServer: 1 } });
|
||||
return Settings.find(
|
||||
{},
|
||||
{
|
||||
fields: {
|
||||
'mailServer.host': 1,
|
||||
'mailServer.port': 1,
|
||||
'mailServer.username': 1,
|
||||
'mailServer.enableTLS': 1,
|
||||
'mailServer.from': 1,
|
||||
},
|
||||
},
|
||||
);
|
||||
}
|
||||
return [];
|
||||
});
|
||||
Reference in new issue
Block a user