diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 89310b447..1f96abb57 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -10,7 +10,7 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV \
DEBUG=false \
- NODE_VERSION=v12.20.0 \
+ NODE_VERSION=v12.20.1 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
diff --git a/.future-snap/broken-snapcraft.yaml b/.future-snap/broken-snapcraft.yaml
index a43d78550..34bbdcab8 100644
--- a/.future-snap/broken-snapcraft.yaml
+++ b/.future-snap/broken-snapcraft.yaml
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 12.20.0
+ node-engine: 12.20.1
node-packages:
- node-gyp
- node-pre-gyp
diff --git a/.future-snap/snapcraft.yaml b/.future-snap/snapcraft.yaml
index b1cb1c933..b6ccdd682 100644
--- a/.future-snap/snapcraft.yaml
+++ b/.future-snap/snapcraft.yaml
@@ -83,7 +83,7 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 12.20.0
+ node-engine: 12.20.1
node-packages:
- node-gyp
- node-pre-gyp
diff --git a/.travis.yml b/.travis.yml
index f3752edb2..0384c48f1 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,7 +3,7 @@ sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
- TRAVIS_NODE_VERSION: 12.20.0
+ TRAVIS_NODE_VERSION: 12.20.1
TRAVIS_NPM_VERSION: latest
before_install:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 712a9ed35..254212f0b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,10 +1,19 @@
-# Upcoming Wekan release
+# v4.70 2021-01-04 Wekan release
-This release adds the following new features:
+This release adds the following CRITICAL SECURITY FIXES:
+
+- [Upgrade to Node.js 12.20.1](https://github.com/wekan/wekan/commit/4bfe017b08f573991fd1f9229ae53573798f475e).
+ Thanks to Node developers.
+
+and adds the following new features:
- [Added many new translations to Wekan, now there is total 60 translations in Wekan. Updated translations. Organized pull-translations.sh alphabetically by
language name](https://github.com/wekan/wekan/commit/d171f4088f40512d321969df3f0c280a620c0c5f).
Thanks to translators and xet7.
+- [Added markdown and emoji to My Cards board, swimlane and list names](https://github.com/wekan/wekan/commit/763dc9c8e0122990c5f496392f2cce980c535dce).
+ Thanks to xet7.
+- [Show Admin Panel / People and Version also on mobile MiniScreen](https://github.com/wekan/wekan/commit/754a91dbdc3d7111c367cb5dd0a02250a837e42a).
+ Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
diff --git a/Dockerfile b/Dockerfile
index 44786093d..eb978f49e 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -12,7 +12,7 @@ ARG DEBIAN_FRONTEND=noninteractive
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
- NODE_VERSION=v12.20.0 \
+ NODE_VERSION=v12.20.1 \
METEOR_RELEASE=1.10.2 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
diff --git a/Dockerfile.arm64v8 b/Dockerfile.arm64v8
index 634b8961e..80cdc642c 100644
--- a/Dockerfile.arm64v8
+++ b/Dockerfile.arm64v8
@@ -4,7 +4,7 @@ FROM amd64/alpine:3.7 AS builder
ENV QEMU_VERSION=v4.2.0-6 \
QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
- NODE_VERSION=v12.20.0 \
+ NODE_VERSION=v12.20.1 \
WEKAN_VERSION=3.96 \
WEKAN_ARCHITECTURE=arm64
@@ -40,7 +40,7 @@ LABEL maintainer="wekan"
# Set the environment variables (defaults where required)
ENV QEMU_ARCHITECTURE=aarch64 \
NODE_ARCHITECTURE=linux-arm64 \
- NODE_VERSION=v12.20.0 \
+ NODE_VERSION=v12.20.1 \
NODE_ENV=production \
NPM_VERSION=latest \
WITH_API=true \
diff --git a/Stackerfile.yml b/Stackerfile.yml
index 5840c47d7..52acce00e 100644
--- a/Stackerfile.yml
+++ b/Stackerfile.yml
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v4.69.0"
+appVersion: "v4.70.0"
files:
userUploads:
- README.md
diff --git a/client/components/settings/peopleBody.jade b/client/components/settings/peopleBody.jade
index bc88e3dc0..3330b343c 100644
--- a/client/components/settings/peopleBody.jade
+++ b/client/components/settings/peopleBody.jade
@@ -10,33 +10,36 @@ template(name="people")
else if orgSetting.get
span
i.fa.fa-sitemap
- | {{_ 'organizations'}}
+ unless isMiniScreen
+ | {{_ 'organizations'}}
input#searchOrgInput(placeholder="{{_ 'search'}}")
button#searchOrgButton
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
- span {{_ 'org-number'}} #{orgNumber}
+ span {{#unless isMiniScreen}}{{_ 'org-number'}}{{/unless}} #{orgNumber}
else if teamSetting.get
span
i.fa.fa-users
- | {{_ 'teams'}}
+ unless isMiniScreen
+ | {{_ 'teams'}}
input#searchTeamInput(placeholder="{{_ 'search'}}")
button#searchTeamButton
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
- span {{_ 'team-number'}} #{teamNumber}
+ span {{#unless isMiniScreen}}{{_ 'team-number'}}{{/unless}} #{teamNumber}
else if peopleSetting.get
span
i.fa.fa-user
- | {{_ 'people'}}
+ unless isMiniScreen
+ | {{_ 'people'}}
input#searchInput(placeholder="{{_ 'search'}}")
button#searchButton
i.fa.fa-search
| {{_ 'search'}}
.ext-box-right
- span {{_ 'people-number'}} #{peopleNumber}
+ span {{#unless isMiniScreen}}{{_ 'people-number'}}{{/unless}} #{peopleNumber}
.content-body
.side-menu
ul
diff --git a/client/components/settings/settingHeader.jade b/client/components/settings/settingHeader.jade
index 221c1b793..d7ab8ca23 100644
--- a/client/components/settings/settingHeader.jade
+++ b/client/components/settings/settingHeader.jade
@@ -3,22 +3,21 @@ template(name="settingHeaderBar")
span {{_ 'admin-panel'}}
.setting-header-btns.left
- unless isMiniScreen
- if currentUser
- a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
- i.fa(class="fa-cog")
- span {{_ 'settings'}}
+ if currentUser
+ a.setting-header-btn.settings(href="{{pathFor 'setting'}}")
+ i.fa(class="fa-cog")
+ span {{_ 'settings'}}
- a.setting-header-btn.people(href="{{pathFor 'people'}}")
- i.fa(class="fa-users")
- span {{_ 'people'}}
+ a.setting-header-btn.people(href="{{pathFor 'people'}}")
+ i.fa(class="fa-users")
+ span {{_ 'people'}}
- a.setting-header-btn.informations(href="{{pathFor 'information'}}")
- i.fa(class="fa-info-circle")
- span {{_ 'info'}}
+ a.setting-header-btn.informations(href="{{pathFor 'information'}}")
+ i.fa(class="fa-info-circle")
+ span {{_ 'info'}}
- else
- a.setting-header-btn.js-log-in(
- title="{{_ 'log-in'}}")
- i.fa.fa-sign-in
- span {{_ 'log-in'}}
+ else
+ a.setting-header-btn.js-log-in(
+ title="{{_ 'log-in'}}")
+ i.fa.fa-sign-in
+ span {{_ 'log-in'}}
diff --git a/i18n/hi.i18n.json b/i18n/hi.i18n.json
index 973f16876..93c285221 100644
--- a/i18n/hi.i18n.json
+++ b/i18n/hi.i18n.json
@@ -43,7 +43,7 @@
"act-withBoardTitle": "__board__",
"act-withCardTitle": "[__board__] __card__",
"actions": "कार्रवाई",
- "activities": "गतिविधि",
+ "activities": "गतिविधियां",
"activity": "क्रियाएँ",
"activity-added": "जोड़ा गया %s से %s",
"activity-archived": "%sसंग्रह में ले जाया गया",
@@ -124,7 +124,7 @@
"attachmentDeletePopup-title": "मिटाएँ संलग्नक?",
"attachments": "संलग्नक",
"auto-watch": "स्वचालित रूप से देखो बोर्डों जब वे बनाए जाते हैं",
- "avatar-too-big": "The avatar is too large (520KB max)",
+ "avatar-too-big": "अवतार बहुत बड़ा है (अधिकतम 520KB)",
"back": "वापस",
"board-change-color": "रंग बदलना",
"board-nb-stars": "%s पसंद होना",
@@ -342,11 +342,11 @@
"filter-cards": "निस्पंदन पत्ते या सूची",
"list-filter-label": "शीर्षक द्वारा निस्पंदन सूची",
"filter-clear": "Clear filter",
- "filter-labels-label": "Filter by label",
+ "filter-labels-label": "लेबल द्वारा फ़िल्टर करें",
"filter-no-label": "No label",
- "filter-member-label": "Filter by member",
+ "filter-member-label": "सदस्य द्वारा फ़िल्टर करें",
"filter-no-member": "No सदस्य",
- "filter-assignee-label": "Filter by assignee",
+ "filter-assignee-label": "संपत्ति-भागी द्वारा फ़िल्टर करें",
"filter-no-assignee": "कोई अभिहस्तांकिती नहीं",
"filter-custom-fields-label": "Filter by Custom Fields",
"filter-no-custom-fields": "No प्रचलन क्षेत्र",
@@ -355,7 +355,7 @@
"filter-on": "Filter is on",
"filter-on-desc": "You are filtering कार्ड इस पर बोर्ड. Click here तक संपादित करें filter.",
"filter-to-selection": "Filter तक selection",
- "other-filters-label": "Other Filters",
+ "other-filters-label": "अन्य फिल्टर",
"advanced-filter-label": "Advanced Filter",
"advanced-filter-description": "Advanced Filter allows तक write एक string containing following operators: == != <= >= && || ( ) एक space is used as एक separator between the Operators. You can filter for संपूर्ण प्रचलन क्षेत्र by typing their names और values. For Example: Field1 == Value1. Note: If fields or values contains spaces, you need तक encapsulate them के अंदर single quotes. For Example: 'Field 1' == 'Value 1'. For single control characters (' \\/) तक be skipped, you can use \\. For example: Field1 == I\\'m. Also you can combine multiple conditions. For Example: F1 == V1 || F1 == V2. Normally संपूर्ण operators are interpreted से left तक right. You can change the order by placing brackets. For Example: F1 == V1 && ( F2 == V2 || F2 == V3 ). Also you can search text fields using regex: F1 == /Tes.*/i",
"fullname": "Full Name",
@@ -409,7 +409,7 @@
"list-select-cards": "Select संपूर्ण कार्ड अंदर में यह list",
"set-color-list": "Set Color",
"listActionPopup-title": "सूची Actions",
- "settingsUserPopup-title": "User Settings",
+ "settingsUserPopup-title": "उपयोगकर्ता सेटिंग",
"swimlaneActionPopup-title": "तैरन Actions",
"swimlaneAddPopup-title": "Add a Swimlane below",
"listImportCardPopup-title": "Import एक Trello कार्ड",
diff --git a/package-lock.json b/package-lock.json
index c30da2cf2..8f9472294 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "v4.69.0",
+ "version": "v4.70.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/package.json b/package.json
index 655b3a9c1..e13cd8b48 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "wekan",
- "version": "v4.69.0",
+ "version": "v4.70.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
diff --git a/public/api/wekan.html b/public/api/wekan.html
index 0cbf8192c..da7930707 100644
--- a/public/api/wekan.html
+++ b/public/api/wekan.html
@@ -1524,7 +1524,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
-
- Wekan REST API v4.69
+ Wekan REST API v4.70
@@ -2032,7 +2032,7 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
-
Wekan REST API v4.69
+
Wekan REST API v4.70
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
diff --git a/public/api/wekan.yml b/public/api/wekan.yml
index db97768da..738568152 100644
--- a/public/api/wekan.yml
+++ b/public/api/wekan.yml
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
- version: v4.69
+ version: v4.70
description: |
The REST API allows you to control and extend Wekan with ease.
diff --git a/releases/release-sandstorm.sh b/releases/release-sandstorm.sh
index e9513db3f..1f11bf243 100755
--- a/releases/release-sandstorm.sh
+++ b/releases/release-sandstorm.sh
@@ -18,7 +18,7 @@ cd $REPODIR
rm -rf $WEKANDIR
git clone git@github.com:wekan/wekan.git
cd $WEKANDIR
-sudo n 12.20.0
+sudo n 12.20.1
sudo mkdir -p /usr/local/lib/node_modules/fibers/.node-gyp
# Build Wekan
./releases/rebuild-release.sh
diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp
index d50409cb4..4b424b784 100644
--- a/sandstorm-pkgdef.capnp
+++ b/sandstorm-pkgdef.capnp
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
- appVersion = 469,
+ appVersion = 470,
# Increment this for every release.
- appMarketingVersion = (defaultText = "4.69.0~2021-01-02"),
+ appMarketingVersion = (defaultText = "4.70.0~2021-01-04"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
diff --git a/snapcraft.yaml b/snapcraft.yaml
index e42021af7..dc5bcc212 100644
--- a/snapcraft.yaml
+++ b/snapcraft.yaml
@@ -81,7 +81,7 @@ parts:
wekan:
source: .
plugin: nodejs
- node-engine: 12.20.0
+ node-engine: 12.20.1
node-packages:
- node-gyp
- node-pre-gyp