Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
01fea212ec | ||
|
|
81ff3ec5b1 | ||
|
|
393464f2d8 | ||
|
|
17867159ea | ||
|
|
7b064ce448 | ||
|
|
bf403cacf8 | ||
|
|
a08bc8bb81 | ||
|
|
554e01a172 | ||
|
|
ed4260dd38 | ||
|
|
9e56cd5ea3 | ||
|
|
8db8766a48 | ||
|
|
222fca3ad7 | ||
|
|
efc50aec07 | ||
|
|
21aebe845f | ||
|
|
345e2357c8 | ||
|
|
8250cbcf6e | ||
|
|
d0040754ea | ||
|
|
22501749da | ||
|
|
c30bc77eea | ||
|
|
f74bac4f6b | ||
|
|
f54036225d | ||
|
|
f1b680119f | ||
|
|
9ffdb83004 | ||
|
|
7080a0ce7d | ||
|
|
de4f1aa8c4 | ||
|
|
fa6182b979 | ||
|
|
a457e337ac | ||
|
|
ba2c280d56 | ||
|
|
c8ed4947e1 | ||
|
|
5b700a30d9 | ||
|
|
d62f9a716e | ||
|
|
949f22acf0 | ||
|
|
358c411255 | ||
|
|
cfec612704 | ||
|
|
1741808e53 | ||
|
|
fd41e8ba45 | ||
|
|
01285ba10d | ||
|
|
0180196d7e | ||
|
|
167d9d34eb | ||
|
|
ab288f1593 | ||
|
|
5813ad95cf | ||
|
|
6801c960b1 | ||
|
|
76d1148a98 | ||
|
|
f63ed78f5b | ||
|
|
0ef248574c | ||
|
|
415fac8a25 |
No files matched your search
@@ -144,3 +144,4 @@ rajit:bootstrap3-datepicker-vi
|
||||
rajit:bootstrap3-datepicker-zh-cn
|
||||
rajit:bootstrap3-datepicker-zh-tw
|
||||
staringatlights:fast-render
|
||||
spacebars
|
||||
@@ -1,3 +1,71 @@
|
||||
# v4.53 2020-11-15 Wekan release
|
||||
|
||||
This release adds the following updates:
|
||||
|
||||
- [Use Quay for Docker builds, because Docker Hub builds show ENOMEM error](https://github.com/wekan/wekan/commit/22501749da708a51b89ef9ff0aee4ac6ba529ed9).
|
||||
Thanks to xet7.
|
||||
- [Update Docker upgrade info](https://github.com/wekan/wekan/commit/d0040754ea75a26926a187ce47dbe529a15e0926).
|
||||
Thanks to xet7.
|
||||
- [Use latest MongoDB on Docker](https://github.com/wekan/wekan/commit/8250cbcf6e417d21ffdc4f14495792768b0bc9ef).
|
||||
Thanks to xet7.
|
||||
- [In rebuild-wekan.sh install dependencies, Install npm](https://github.com/wekan/wekan/commit/345e2357c8fd030e943f9729f790db980d3a727c).
|
||||
Thanks to xet7.
|
||||
- [In rebuild-wekan.sh install dependencies, uncomment chown](https://github.com/wekan/wekan/commit/21aebe845f3f4911d9bb824f0f33bdb19a3a9af6).
|
||||
Thanks to xet7.
|
||||
- [Update markdown-it and markdown-it-emoji dependencies](https://github.com/wekan/wekan/commit/222fca3ad7aa2b67329dca64e84eb72899fd8137).
|
||||
Thanks to developers of markdown-it and markdown-it-emoji.
|
||||
|
||||
and adds the following improvements:
|
||||
|
||||
- [Minor improvements to Modern Dark theme](https://github.com/wekan/wekan/pull/3348).
|
||||
Thanks to jghaanstra.
|
||||
- [Added missing bottom padding to lists](https://github.com/wekan/wekan/pull/3351).
|
||||
Thanks to danger89.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.52 2020-11-12 Wekan release
|
||||
|
||||
This release adds the following improvements:
|
||||
|
||||
- [Some more small improvements to Modern Dark theme](https://github.com/wekan/wekan/pull/3346).
|
||||
Thanks to jghaanstra.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.51 2020-11-11 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- [Board admin can edit and delete comments as well](https://github.com/wekan/wekan/pull/3340).
|
||||
Thanks to mfilser.
|
||||
- [Drag handles for checklist](https://github.com/wekan/wekan/pull/3341).
|
||||
Thanks to mfilser.
|
||||
- [Custom URL Schemes autolinked](https://github.com/wekan/wekan/pull/3339).
|
||||
Thanks to brian-j.
|
||||
|
||||
and adds the following improvements:
|
||||
|
||||
- [Improvements to Modern Dark Theme](https://github.com/wekan/wekan/pull/3344).
|
||||
Thanks to jghaanstra.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.50 2020-11-10 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
- Add 'Modern Dark' theme [Part1](https://github.com/wekan/wekan/pulls/3335)
|
||||
and [Part2](https://github.com/wekan/wekan/commit/6801c960b115be4265bf18ba05c444ac79aef887).
|
||||
Thanks to jghaanstra, helioguardabaxo and xet7.
|
||||
|
||||
and fixes the following bugs:
|
||||
|
||||
- [Fix edit description to require only one click](https://github.com/wekan/wekan/commit/0ef248574c2751be1245c5748a9cbbe5ba2969b5).
|
||||
Thanks to uusijani and xet7.
|
||||
|
||||
Thanks to above GitHub users for their contributions and translators for their translations.
|
||||
|
||||
# v4.49 2020-11-04 Wekan release
|
||||
|
||||
This release adds the following new features:
|
||||
|
||||
@@ -4,8 +4,6 @@
|
||||
|
||||
[](https://github.com/wekan/wekan/graphs/contributors)
|
||||
[](https://quay.io/repository/wekan/wekan)
|
||||
[](https://hub.docker.com/r/wekanteam/wekan)
|
||||
[](https://hub.docker.com/r/wekanteam/wekan)
|
||||
[![Wekan Build Status][travis_badge]][travis_status]
|
||||
[](https://www.codacy.com/app/xet7/wekan?utm_source=github.com&utm_medium=referral&utm_content=wekan/wekan&utm_campaign=Badge_Grade)
|
||||
[](https://codeclimate.com/github/wekan/wekan)
|
||||
@@ -13,6 +11,12 @@
|
||||
[](https://www.openhub.net/p/wekan)
|
||||
[](https://app.fossa.io/projects/git%2Bgithub.com%2Fwekan%2Fwekan?ref=badge_shield)
|
||||
|
||||
NOTE: Docker Hub builds are broken with error ENOMEM. Only Quay works, see docker-compose.yml .
|
||||
<!--
|
||||
[](https://hub.doc>
|
||||
-->
|
||||
|
||||
## [Translate Wekan at Transifex](https://transifex.com/wekan/wekan)
|
||||
|
||||
Translations to non-English languages are accepted only at [Transifex](https://transifex.com/wekan/wekan) using webbrowser.
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
|
||||
appVersion: "v4.49.0"
|
||||
appVersion: "v4.53.0"
|
||||
files:
|
||||
userUploads:
|
||||
- README.md
|
||||
|
||||
@@ -15,6 +15,12 @@ template(name="cardActivities")
|
||||
each activityData in currentCard.activities
|
||||
+activity(activity=activityData card=card mode=mode)
|
||||
|
||||
template(name="editOrDeleteComment")
|
||||
= ' - '
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
|
||||
template(name="activity")
|
||||
.activity
|
||||
+userAvatar(userId=activity.user._id)
|
||||
@@ -118,11 +124,10 @@ template(name="activity")
|
||||
+viewer
|
||||
= activity.comment.text
|
||||
span(title=activity.createdAt).activity-meta {{ moment activity.createdAt }}
|
||||
if ($eq currentUser._id activity.comment.userId)
|
||||
= ' - '
|
||||
a.js-open-inlined-form {{_ "edit"}}
|
||||
= ' - '
|
||||
a.js-delete-comment {{_ "delete"}}
|
||||
if($eq currentUser._id activity.comment.userId)
|
||||
+editOrDeleteComment
|
||||
else if currentUser.isBoardAdmin
|
||||
+editOrDeleteComment
|
||||
|
||||
if($eq activity.activityType 'deleteComment')
|
||||
| {{{_ 'activity-deleteComment' currentData.commentId}}}.
|
||||
|
||||
@@ -589,15 +589,15 @@ setBoardClear(color1,color2)
|
||||
position relative
|
||||
|
||||
&#header-quick-access #header-user-bar .header-user-bar-name
|
||||
margin: 5px 3px 0 0;
|
||||
margin: 5px 3px 0 0
|
||||
|
||||
section#notifications-drawer
|
||||
top: 46px;
|
||||
top: 46px
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,.1)
|
||||
max-width: 100%
|
||||
|
||||
section#notifications-drawer .header
|
||||
top: 46px;
|
||||
top: 46px
|
||||
border-radius: 0 3px
|
||||
height: 21px
|
||||
background: #f7f7f7
|
||||
@@ -742,3 +742,274 @@ setBoardClear(color1,color2)
|
||||
|
||||
section#notifications-drawer .header .toggle-read
|
||||
top: 18px
|
||||
|
||||
/*
|
||||
Alternate "Modern Dark" Styling
|
||||
*/
|
||||
.board-color-moderndark
|
||||
setBoardColor(#2a2a2a)
|
||||
|
||||
/* General */
|
||||
body
|
||||
background: #2a2a2a
|
||||
|
||||
/* Forms */
|
||||
button[type=submit].primary, .board-color-modern input[type=submit].primary
|
||||
background-color: #819C5D
|
||||
|
||||
.toggle-switch:checked~.toggle-label
|
||||
background-color: #D2E9B4
|
||||
|
||||
.toggle-label:after, .board-color-modern .toggle-switch:checked~.toggle-label:after
|
||||
background-color: #819C5D !important
|
||||
|
||||
/* Headers */
|
||||
&#header-quick-access, .background-box, #header
|
||||
background-color: #333333
|
||||
|
||||
&#header-quick-access
|
||||
padding: 4px
|
||||
font-size: 14px
|
||||
|
||||
&#header #header-main-bar
|
||||
height: 30px
|
||||
padding-top: 3px
|
||||
padding-bottom: 3px
|
||||
|
||||
&#header
|
||||
box-shadow: 0 6px 6px -6px rgba(0,0,0,0.8)
|
||||
|
||||
&#header-quick-access ul
|
||||
overflow: visible
|
||||
|
||||
&#header-quick-access ul li.current
|
||||
border: 0 !important
|
||||
font-weight: bold
|
||||
|
||||
&#header-quick-access ul li.separator
|
||||
display: none
|
||||
|
||||
&#header-quick-access ul li:nth-child(3)
|
||||
margin-right: 10px
|
||||
|
||||
&#header-quick-access ul li a
|
||||
padding: 5px 10px
|
||||
border-radius: 2px
|
||||
|
||||
&#header-quick-access ul li.current a
|
||||
border-radius: 2px
|
||||
background: rgba(255,255,255,.2)
|
||||
|
||||
&#header #header-main-bar h1
|
||||
font-family: Poppins
|
||||
font-weight: bold
|
||||
line-height: 0.8em
|
||||
padding-top: 10px
|
||||
|
||||
/* Content */
|
||||
.board-canvas
|
||||
background: #2a2a2a
|
||||
padding: 10px 10px 0
|
||||
|
||||
/* Swimlanes */
|
||||
.swimlane .swimlane-header-wrap
|
||||
background-color: #666666
|
||||
color: #cccccc
|
||||
padding: 4px 0
|
||||
margin-bottom: 10px
|
||||
|
||||
.swimlane .swimlane-header-wrap .swimlane-header
|
||||
font-family: Poppins
|
||||
|
||||
.swimlane
|
||||
background: #2a2a2a
|
||||
line-height: 15px
|
||||
max-height: 100%
|
||||
|
||||
/* Lists */
|
||||
.swimlane .list
|
||||
background: #666666
|
||||
border-radius: 0
|
||||
border: 0px solid #666666
|
||||
flex: 0 0 265px;
|
||||
|
||||
.swimlane .list:nth-child(even)
|
||||
background: #5f5f5f
|
||||
|
||||
.list-header
|
||||
background: #333333
|
||||
padding-top: 10px
|
||||
border-bottom: 6px solid #333333
|
||||
|
||||
.list-header .viewer
|
||||
padding-left: 10px
|
||||
|
||||
.list-header .list-header-name
|
||||
line-height: 14px
|
||||
color: #eeeeee
|
||||
|
||||
.list-header .list-header-menu
|
||||
padding-top: 17px
|
||||
|
||||
.list-body
|
||||
scrollbar-width: thin
|
||||
scrollbar-color: #343434 #999999
|
||||
|
||||
.list-body::-webkit-scrollbar
|
||||
width: 10px
|
||||
|
||||
.list-body::-webkit-scrollbar-track
|
||||
background: #343434
|
||||
border-radius: 3px
|
||||
margin: 4px 0
|
||||
|
||||
.list-body::-webkit-scrollbar-thumb
|
||||
background-color: #999999
|
||||
border-radius: 6px
|
||||
border: 3px solid #343434
|
||||
|
||||
.list-body .open-minicard-composer:hover
|
||||
background: none
|
||||
box-shadow: none
|
||||
border-bottom: 0
|
||||
|
||||
.list-body a.open-minicard-composer, .list-body a.open-minicard-composer i, .list .list-composer .open-list-composer i
|
||||
color: #bbbbbb
|
||||
|
||||
.list-body a.open-minicard-composer:hover, .list-body a.open-minicard-composer:hover i, .list .list-composer .open-list-composer:hover i
|
||||
color: #ffffff
|
||||
|
||||
/* Mini Card */
|
||||
.minicard
|
||||
background-color: #444444
|
||||
color: #cccccc
|
||||
border-radius: 2px
|
||||
font-size: 0.9em
|
||||
padding: 10px
|
||||
box-shadow: 0 4px 3px -3px rgba(0,0,0,0.8)
|
||||
border-bottom: 1px solid #666666
|
||||
|
||||
.minicard:hover
|
||||
background-color: #555555 !important
|
||||
|
||||
.minicard .card-label
|
||||
font-size: 11px
|
||||
font-weight: 400
|
||||
padding: 2px 6px 0
|
||||
|
||||
.minicard .badges
|
||||
color: #bbbbbb
|
||||
|
||||
.minicard .date
|
||||
margin-top: 7px
|
||||
font-size: 11px
|
||||
|
||||
.card-date
|
||||
color: #555555
|
||||
|
||||
.card-date.almost-due
|
||||
color: #666666
|
||||
|
||||
.minicard.minicard-composer textarea.minicard-composer-textarea:focus
|
||||
background-color: #eeeeee
|
||||
color: #333333
|
||||
padding: 6px
|
||||
|
||||
.is-selected .minicard
|
||||
background-color: #666666
|
||||
|
||||
/* Card Details */
|
||||
.card-details
|
||||
background-color: #454545
|
||||
color: #cccccc
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
|
||||
border: 1px solid #111111
|
||||
|
||||
.card-details
|
||||
scrollbar-width: thin
|
||||
scrollbar-color: #343434 #999999
|
||||
|
||||
.card-details::-webkit-scrollbar
|
||||
width: 16px
|
||||
|
||||
.card-details::-webkit-scrollbar-track
|
||||
background: #343434
|
||||
|
||||
.card-details::-webkit-scrollbar-thumb
|
||||
background-color: #999999
|
||||
border-radius: 6px
|
||||
border: 4px solid #343434
|
||||
|
||||
.card-details .card-details-header
|
||||
background: #333333
|
||||
color: #cccccc
|
||||
border-bottom: 2px solid #2d2d2d
|
||||
|
||||
.card-details hr
|
||||
background: #2d2d2d
|
||||
|
||||
.card-details .card-details-item-title
|
||||
color: #ffffff
|
||||
|
||||
.card-details .new-description textarea, .card-details .new-comment textarea
|
||||
background-color: #dddddd
|
||||
color: #111111
|
||||
|
||||
.card-details .checklist
|
||||
background-color: transparent
|
||||
margin-bottom: 10px
|
||||
|
||||
.card-details .checklist-item
|
||||
background-color: rgba(255,255,255,0.1)
|
||||
padding: 2px 8px
|
||||
border-radius: 3px
|
||||
font-size: 13px
|
||||
margin-top: 5px
|
||||
|
||||
.card-details .check-box.materialCheckBox
|
||||
border-color: #ffffff
|
||||
|
||||
.card-details .check-box.materialCheckBox.is-checked
|
||||
border-bottom: 2px solid #819C5D
|
||||
border-right: 2px solid #819C5D
|
||||
border-top: 0
|
||||
border-left: 0
|
||||
|
||||
.card-details .js-add-checklist-item
|
||||
margin-top: 4px
|
||||
|
||||
.checklist-items .add-checklist-item
|
||||
margin-top: .7em
|
||||
|
||||
.card-details .activities .activity .activity-desc .activity-comment
|
||||
background-color: #cccccc
|
||||
color: #222222
|
||||
|
||||
/* Sidebar */
|
||||
.sidebar .sidebar-shadow
|
||||
background-color: #222222
|
||||
box-shadow: -10px 0 5px -10px #444444
|
||||
border-left: 1px solid #333333
|
||||
color: #cccccc
|
||||
|
||||
.activities .activity .activity-desc .activity-comment
|
||||
background-color: #cccccc
|
||||
color: #222222
|
||||
|
||||
/* Pop-Ups for "Modern Dark" */
|
||||
.pop-over.board-color-moderndark
|
||||
background-color: #454545
|
||||
color: #cccccc
|
||||
border: 1px solid #111111
|
||||
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19)
|
||||
|
||||
.pop-over.board-color-moderndark .header
|
||||
background-color: #333333
|
||||
|
||||
.pop-over.board-color-moderndark .header-title
|
||||
font-family: Poppins
|
||||
font-size: 16px
|
||||
color: #cccccc
|
||||
|
||||
.pop-over.board-color-moderndark .pop-over-list li:hover > a
|
||||
background-color: #819C5D !important
|
||||
@@ -3,5 +3,5 @@ template(name="descriptionForm")
|
||||
.new-description.js-new-description(
|
||||
class="{{#if descriptionFormIsOpen}}is-open{{/if}}")
|
||||
form.js-new-description-form
|
||||
+editor(class="js-new-description-input" data-meteor-emoji-large="true")
|
||||
+editor(class="js-new-description-input" data-meteor-emoji-large="true" autofocus="autofocus")
|
||||
| {{getUnsavedValue 'cardDescription' _id getDescription}}
|
||||
@@ -250,12 +250,15 @@ BlazeComponent.extendComponent({
|
||||
|
||||
// Disable sorting if the current user is not a board member
|
||||
this.autorun(() => {
|
||||
const disabled = !userIsMember() || Utils.isMiniScreen();
|
||||
const disabled = !userIsMember();
|
||||
if (
|
||||
$checklistsDom.data('uiSortable') ||
|
||||
$checklistsDom.data('sortable')
|
||||
) {
|
||||
$checklistsDom.sortable('option', 'disabled', disabled);
|
||||
if (Utils.isMiniScreenOrShowDesktopDragHandles()) {
|
||||
$checklistsDom.sortable({ handle: '.checklist-handle'});
|
||||
}
|
||||
}
|
||||
if ($subtasksDom.data('uiSortable') || $subtasksDom.data('sortable')) {
|
||||
$subtasksDom.sortable('option', 'disabled', disabled);
|
||||
|
||||
@@ -41,6 +41,8 @@ template(name="checklistDetail")
|
||||
|
||||
if canModifyCard
|
||||
h2.title.js-open-inlined-form.is-editable
|
||||
if isMiniScreenOrShowDesktopDragHandles
|
||||
span.fa.checklist-handle(class="fa-arrows" title="{{_ 'dragChecklist'}}")
|
||||
+viewer
|
||||
= checklist.title
|
||||
else
|
||||
|
||||
@@ -42,6 +42,11 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
|
||||
.js-delete-checklist
|
||||
@extends .delete-text
|
||||
|
||||
span.fa.checklist-handle
|
||||
padding-right: 20px
|
||||
padding-top: 6px
|
||||
float: right
|
||||
|
||||
|
||||
.js-confirm-checklist-delete
|
||||
background-color: darken(white, 3%)
|
||||
|
||||
@@ -3,6 +3,7 @@ template(name="editor")
|
||||
dir="auto"
|
||||
class="{{class}}"
|
||||
id=id
|
||||
autofocus=autofocus
|
||||
placeholder="{{_ 'comment-placeholder'}}")
|
||||
+Template.contentBlock
|
||||
|
||||
|
||||
@@ -265,6 +265,26 @@ Template.editor.onRendered(() => {
|
||||
|
||||
import sanitizeXss from 'xss';
|
||||
|
||||
// Additional safeAttrValue function to allow for other specific protocols
|
||||
// See https://github.com/leizongmin/js-xss/issues/52#issuecomment-241354114
|
||||
function mySafeAttrValue(tag, name, value, cssFilter) {
|
||||
// only when the tag is 'a' and attribute is 'href'
|
||||
// then use your custom function
|
||||
if (tag === 'a' && name === 'href') {
|
||||
// only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
|
||||
if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) {
|
||||
return value;
|
||||
}
|
||||
else {
|
||||
// use the default safeAttrValue function to process all non cbthunderlinks
|
||||
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
|
||||
}
|
||||
} else {
|
||||
// use the default safeAttrValue function to process it
|
||||
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
|
||||
}
|
||||
};
|
||||
|
||||
// XXX I believe we should compute a HTML rendered field on the server that
|
||||
// would handle markdown and user mentions. We can simply have two
|
||||
// fields, one source, and one compiled version (in HTML) and send only the
|
||||
@@ -278,7 +298,7 @@ Blaze.Template.registerHelper(
|
||||
const view = this;
|
||||
let content = Blaze.toHTML(view.templateContentBlock);
|
||||
const currentBoard = Boards.findOne(Session.get('currentBoard'));
|
||||
if (!currentBoard) return HTML.Raw(sanitizeXss(content));
|
||||
if (!currentBoard) return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
|
||||
const knowedUsers = currentBoard.members.map(member => {
|
||||
const u = Users.findOne(member.userId);
|
||||
if (u) {
|
||||
@@ -322,7 +342,7 @@ Blaze.Template.registerHelper(
|
||||
content = content.replace(fullMention, Blaze.toHTML(link));
|
||||
}
|
||||
|
||||
return HTML.Raw(sanitizeXss(content));
|
||||
return HTML.Raw(sanitizeXss(content, { safeAttrValue: mySafeAttrValue }));
|
||||
}),
|
||||
);
|
||||
|
||||
|
||||
@@ -388,10 +388,12 @@ a
|
||||
ol
|
||||
list-style-type: decimal
|
||||
padding-left: 20px
|
||||
padding-bottom: 10px
|
||||
|
||||
ul
|
||||
list-style-type: initial
|
||||
padding-left: 20px
|
||||
padding-bottom: 10px
|
||||
|
||||
em
|
||||
font-style : italic
|
||||
|
||||
@@ -30,3 +30,7 @@ Blaze.registerHelper('getUser', userId => Users.findOne(userId));
|
||||
Blaze.registerHelper('concat', (...args) => args.slice(0, -1).join(''));
|
||||
|
||||
Blaze.registerHelper('isMiniScreen', () => Utils.isMiniScreen());
|
||||
|
||||
Blaze.registerHelper('isShowDesktopDragHandles', () => Utils.isShowDesktopDragHandles());
|
||||
|
||||
Blaze.registerHelper('isMiniScreenOrShowDesktopDragHandles', () => Utils.isMiniScreenOrShowDesktopDragHandles());
|
||||
@@ -190,6 +190,23 @@ Utils = {
|
||||
//return false;
|
||||
},
|
||||
|
||||
// returns if desktop drag handles are enabled
|
||||
isShowDesktopDragHandles() {
|
||||
let currentUser = Meteor.user();
|
||||
if (currentUser) {
|
||||
return (currentUser.profile || {}).showDesktopDragHandles;
|
||||
} else if (cookies.has('showDesktopDragHandles')) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
},
|
||||
|
||||
// returns if mini screen or desktop drag handles
|
||||
isMiniScreenOrShowDesktopDragHandles() {
|
||||
return this.isMiniScreen() || this.isShowDesktopDragHandles()
|
||||
},
|
||||
|
||||
calculateIndexData(prevData, nextData, nItems = 1) {
|
||||
let base, increment;
|
||||
// If we drop the card to an empty column
|
||||
|
||||
+13
-22
@@ -13,13 +13,12 @@ version: '2'
|
||||
# see https://github.com/wekan/wekan/wiki/Backup
|
||||
# 1) Stop Wekan:
|
||||
# docker-compose stop
|
||||
# 2) Download new version:
|
||||
# docker-compose pull wekan
|
||||
# 3) If you have more networks for VPN etc as described at bottom of
|
||||
# this config, download for them too:
|
||||
# docker-compose pull wekan2
|
||||
# 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data)
|
||||
# docker rm wekan-app
|
||||
# 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image,
|
||||
# for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52"
|
||||
# 4) Start Wekan:
|
||||
# docker-compose start
|
||||
# docker-compose up -d
|
||||
#----------------------------------------------------------------------------------
|
||||
# ==== OPTIONAL: DEDICATED DOCKER USER ====
|
||||
# 1) Optionally create a dedicated user for Wekan, for example:
|
||||
@@ -92,13 +91,8 @@ services:
|
||||
wekandb:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# a) For Wekan Meteor 1.8.x version at master branch, use mongo 4.x
|
||||
# DOES NOT WORK: mongo 4.4, see https://github.com/wekan/wekan/issues/3247
|
||||
# WORKS: mongo 3.x and 4.2
|
||||
image: mongo:4.2
|
||||
# b) For Wekan Meteor 1.6.x version at devel branch.
|
||||
# Only for Snap and Sandstorm while they are not upgraded yet to Meteor 1.8.x
|
||||
#image: mongo:3.2.21
|
||||
# a) mongodb latest, like 3.2 - 4.4 or newer https://hub.docker.com/_/mongo?tab=description
|
||||
image: mongo:latest
|
||||
#-------------------------------------------------------------------------------------
|
||||
container_name: wekan-db
|
||||
restart: always
|
||||
@@ -114,15 +108,12 @@ services:
|
||||
wekan:
|
||||
#-------------------------------------------------------------------------------------
|
||||
# ==== MONGODB AND METEOR VERSION ====
|
||||
# NOTE: Quay is currently not updated, use Docker Hub image below c)
|
||||
# a) For Wekan Meteor 1.8.x version at master branch,
|
||||
# using https://quay.io/wekan/wekan automatic builds
|
||||
#image: quay.io/wekan/wekan
|
||||
# b) Using specific Meteor 1.6.x version tag:
|
||||
# image: quay.io/wekan/wekan:v1.95
|
||||
# c) Using Docker Hub automatic builds https://hub.docker.com/r/wekanteam/wekan
|
||||
image: wekanteam/wekan
|
||||
# image: wekanteam/wekan:v2.99
|
||||
# a) Quay automatic builds do work, https://quay.io/wekan7wekan
|
||||
image: quay.io/wekan/wekan
|
||||
# b) Using specific version tag:
|
||||
# image: quay.io/wekan/wekan:v4.52
|
||||
# c) Docker Hub builds are broken with error ENOMEM https://hub.docker.com/r/wekanteam/wekan
|
||||
# image: wekanteam/wekan
|
||||
#-------------------------------------------------------------------------------------
|
||||
container_name: wekan-app
|
||||
restart: always
|
||||
|
||||
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+1
-1
@@ -518,7 +518,7 @@
|
||||
"uploaded-avatar": "アップロードされたアバター",
|
||||
"custom-top-left-corner-logo-image-url": "カスタムの左上ロゴイメージのURL",
|
||||
"custom-top-left-corner-logo-link-url": "カスタムの左上ロゴイメージのリンクURL",
|
||||
"custom-top-left-corner-logo-height": "Custom Top Left Corner Logo Height. Default: 27",
|
||||
"custom-top-left-corner-logo-height": "カスタムの左上ロゴイメージの高さ。デフォルト:27",
|
||||
"custom-login-logo-image-url": "カスタムのログインロゴイメージのURL",
|
||||
"custom-login-logo-link-url": "カスタムのログインロゴイメージのリンクURL",
|
||||
"text-below-custom-login-logo": "カスタムログインロゴイメージの下のテキスト",
|
||||
|
||||
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+5
-5
@@ -80,7 +80,7 @@
|
||||
"add-card": "Kaart Toevoegen",
|
||||
"add-swimlane": "Swimlane Toevoegen",
|
||||
"add-subtask": "Subtaak Toevoegen",
|
||||
"add-checklist": "Checkcklist Toevoegen",
|
||||
"add-checklist": "Checklist toevoegen",
|
||||
"add-checklist-item": "Voeg item toe aan checklist",
|
||||
"add-cover": "Cover Toevoegen",
|
||||
"add-label": "Label Toevoegen",
|
||||
@@ -477,7 +477,7 @@
|
||||
"search-cards": "Zoek in kaart/lijst, titels, beschrijvingen en maatwerkvelden op dit bord",
|
||||
"search-example": "Schijf je zoektekst en toets Enter",
|
||||
"select-color": "Selecteer kleur",
|
||||
"select-board": "Select Board",
|
||||
"select-board": "Selecteer Bord",
|
||||
"set-wip-limit-value": "Zet een limiet voor het maximaal aantal taken in deze lijst",
|
||||
"setWipLimitPopup-title": "Zet een WIP limiet",
|
||||
"shortcut-assign-self": "Voeg jezelf toe aan huidige kaart",
|
||||
@@ -573,7 +573,7 @@
|
||||
"boardCardTitlePopup-title": "Kaarttitel Filter",
|
||||
"disable-webhook": "Schakel deze Webhook uit",
|
||||
"global-webhook": "Globale Webhooks",
|
||||
"new-outgoing-webhook": "Nieuwe webhook",
|
||||
"new-outgoing-webhook": "Nieuwe uitgaande webhook",
|
||||
"no-name": "(Onbekend)",
|
||||
"Node_version": "Node versie",
|
||||
"Meteor_version": "Meteor versie",
|
||||
@@ -829,7 +829,7 @@
|
||||
"delete-linked-card-before-this-card": "Je kunt deze kaart niet verwijderen voordat de gekoppelde kaart is verwijderd ",
|
||||
"delete-linked-cards-before-this-list": "Je kunt deze lijst niet verwijderen voordat de gekoppelde kaarten verwijderd zijn die verwijzen naar kaarten in deze lijst",
|
||||
"hide-checked-items": "Verberg aangevinkte items",
|
||||
"task": "Task",
|
||||
"create-task": "Create Task",
|
||||
"task": "Taak",
|
||||
"create-task": "Taak aanmaken",
|
||||
"ok": "OK"
|
||||
}
|
||||
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
+834
-834
File diff suppressed because it is too large.
Load diff
@@ -254,6 +254,7 @@ Boards.attachSchema(
|
||||
'clearblue',
|
||||
'natural',
|
||||
'modern',
|
||||
'moderndark',
|
||||
],
|
||||
// eslint-disable-next-line consistent-return
|
||||
autoValue() {
|
||||
|
||||
+1
-1
@@ -349,6 +349,6 @@ parameters:
|
||||
required: true
|
||||
- name: WEKAN_IMAGE
|
||||
displayName: Wekan Docker Image
|
||||
value: wekanteam/wekan:latest
|
||||
value: quay.io/wekan/wekan
|
||||
description: The metabase docker image to use
|
||||
required: true
|
||||
Generated
+18
-9
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v4.49.0",
|
||||
"version": "v4.53.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
@@ -836,6 +836,7 @@
|
||||
"version": "1.0.10",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"sprintf-js": "~1.0.2"
|
||||
}
|
||||
@@ -3209,21 +3210,28 @@
|
||||
}
|
||||
},
|
||||
"markdown-it": {
|
||||
"version": "11.0.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-11.0.0.tgz",
|
||||
"integrity": "sha512-+CvOnmbSubmQFSA9dKz1BRiaSMV7rhexl3sngKqFyXSagoA3fBdJQ8oZWtRy2knXdpDXaBw44euz37DeJQ9asg==",
|
||||
"version": "12.0.2",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.0.2.tgz",
|
||||
"integrity": "sha512-4Lkvjbv2kK+moL9TbeV+6/NHx+1Q+R/NIdUlFlkqkkzUcTod4uiyTJRiBidKR9qXSdkNFkgv+AELY8KN9vSgVA==",
|
||||
"requires": {
|
||||
"argparse": "^1.0.7",
|
||||
"argparse": "^2.0.1",
|
||||
"entities": "~2.0.0",
|
||||
"linkify-it": "^3.0.1",
|
||||
"mdurl": "^1.0.1",
|
||||
"uc.micro": "^1.0.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"argparse": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
|
||||
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"markdown-it-emoji": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz",
|
||||
"integrity": "sha1-m+4OmpkKljupbfaYDE/dsF37Tcw="
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-2.0.0.tgz",
|
||||
"integrity": "sha512-39j7/9vP/CPCKbEI44oV8yoPJTpvfeReTn/COgRhSpNrjWF3PfP/JUxxB0hxV6ynOY8KH8Y8aX9NMDdo6z+6YQ=="
|
||||
},
|
||||
"mdurl": {
|
||||
"version": "1.0.1",
|
||||
@@ -5081,7 +5089,8 @@
|
||||
"sprintf-js": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
|
||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
|
||||
"dev": true
|
||||
},
|
||||
"staged-git-files": {
|
||||
"version": "1.1.1",
|
||||
|
||||
+3
-3
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "wekan",
|
||||
"version": "v4.49.0",
|
||||
"version": "v4.53.0",
|
||||
"description": "Open-Source kanban",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -68,8 +68,8 @@
|
||||
"gridfs-stream": "https://github.com/wekan/gridfs-stream/tarball/master",
|
||||
"jszip": "^3.4.0",
|
||||
"ldapjs": "^2.1.1",
|
||||
"markdown-it": "^11.0.0",
|
||||
"markdown-it-emoji": "^1.4.0",
|
||||
"markdown-it": "^12.0.2",
|
||||
"markdown-it-emoji": "^2.0.0",
|
||||
"meteor-node-stubs": "^1.0.1",
|
||||
"mongodb": "^3.6.2",
|
||||
"os": "^0.1.1",
|
||||
|
||||
@@ -6,6 +6,26 @@ var Markdown = require('markdown-it')({
|
||||
breaks: true,
|
||||
});
|
||||
|
||||
// Additional safeAttrValue function to allow for other specific protocols
|
||||
// See https://github.com/leizongmin/js-xss/issues/52#issuecomment-241354114
|
||||
function mySafeAttrValue(tag, name, value, cssFilter) {
|
||||
// only when the tag is 'a' and attribute is 'href'
|
||||
// then use your custom function
|
||||
if (tag === 'a' && name === 'href') {
|
||||
// only filter the value if starts with 'cbthunderlink:' or 'aodroplink'
|
||||
if (/^thunderlink:/ig.test(value) || /^cbthunderlink:/ig.test(value) || /^aodroplink:/ig.test(value)) {
|
||||
return value;
|
||||
}
|
||||
else {
|
||||
// use the default safeAttrValue function to process all non cbthunderlinks
|
||||
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
|
||||
}
|
||||
} else {
|
||||
// use the default safeAttrValue function to process it
|
||||
return sanitizeXss.safeAttrValue(tag, name, value, cssFilter);
|
||||
}
|
||||
};
|
||||
|
||||
var emoji = require('markdown-it-emoji');
|
||||
Markdown.use(emoji);
|
||||
|
||||
@@ -22,6 +42,6 @@ if (Package.ui) {
|
||||
text = Blaze._toText(self.templateContentBlock, HTML.TEXTMODE.STRING);
|
||||
}
|
||||
|
||||
return HTML.Raw(sanitizeXss(Markdown.render(text)));
|
||||
return HTML.Raw(sanitizeXss(Markdown.render(text), { safeAttrValue: mySafeAttrValue }));
|
||||
}));
|
||||
}
|
||||
@@ -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.49">Wekan REST API v4.49</a>
|
||||
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v4.53">Wekan REST API v4.53</a>
|
||||
|
||||
</li>
|
||||
|
||||
@@ -2027,7 +2027,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.49</h1>
|
||||
<h1 id="wekan-rest-api">Wekan REST API v4.53</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>
|
||||
@@ -15299,6 +15299,10 @@ UserSecurity
|
||||
<td>modern</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>color</td>
|
||||
<td>moderndark</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>presentParentTask</td>
|
||||
<td>prefix-with-full-path</td>
|
||||
</tr>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
swagger: '2.0'
|
||||
info:
|
||||
title: Wekan REST API
|
||||
version: v4.49
|
||||
version: v4.53
|
||||
description: |
|
||||
The REST API allows you to control and extend Wekan with ease.
|
||||
|
||||
@@ -2375,6 +2375,7 @@ definitions:
|
||||
- clearblue
|
||||
- natural
|
||||
- modern
|
||||
- moderndark
|
||||
description:
|
||||
description: |
|
||||
The description of the board
|
||||
|
||||
+6
-6
@@ -22,11 +22,11 @@ do
|
||||
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
||||
echo "Linux";
|
||||
# Debian, Ubuntu, Mint
|
||||
sudo apt-get install -y build-essential gcc g++ make git curl wget
|
||||
sudo apt-get install -y build-essential gcc g++ make git curl wget npm
|
||||
# npm nodejs
|
||||
#sudo npm -g install npm
|
||||
curl -0 -L https://npmjs.org/install.sh | sudo sh
|
||||
sudo chown -R $(id -u):$(id -g) $HOME/.npm
|
||||
#curl -0 -L https://npmjs.org/install.sh | sudo sh
|
||||
#sudo chown -R $(id -u):$(id -g) $HOME/.npm
|
||||
sudo npm -g install n
|
||||
sudo n 12.19.0
|
||||
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
|
||||
@@ -63,7 +63,7 @@ do
|
||||
sudo npm -g install fibers
|
||||
# Install Meteor, if it's not yet installed
|
||||
curl https://install.meteor.com | bash
|
||||
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||
#sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||
break
|
||||
;;
|
||||
|
||||
@@ -77,12 +77,12 @@ do
|
||||
# sed -i 's/api\.versionsFrom/\/\/api.versionsFrom/' ~/repos/wekan/packages/meteor-useraccounts-core/package.js
|
||||
#fi
|
||||
#cd ..
|
||||
sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||
#sudo chown -R $(id -u):$(id -g) $HOME/.npm $HOME/.meteor
|
||||
rm -rf node_modules .meteor/local
|
||||
npm install
|
||||
rm -rf .build
|
||||
meteor build .build --directory
|
||||
cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||||
#cp -f fix-download-unicode/cfs_access-point.txt .build/bundle/programs/server/packages/cfs_access-point.js
|
||||
# Remove legacy webbroser bundle, so that Wekan works also at Android Firefox, iOS Safari, etc.
|
||||
rm -rf .build/bundle/programs/web.browser.legacy
|
||||
#Removed binary version of bcrypt because of security vulnerability that is not fixed yet.
|
||||
|
||||
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
|
||||
appTitle = (defaultText = "Wekan"),
|
||||
# The name of the app as it is displayed to the user.
|
||||
|
||||
appVersion = 449,
|
||||
appVersion = 453,
|
||||
# Increment this for every release.
|
||||
|
||||
appMarketingVersion = (defaultText = "4.49.0~2020-11-04"),
|
||||
appMarketingVersion = (defaultText = "4.53.0~2020-11-15"),
|
||||
# Human-readable presentation of the app version.
|
||||
|
||||
minUpgradableAppVersion = 0,
|
||||
|
||||
@@ -122,6 +122,7 @@ Migrations.add('use-css-class-for-boards-colors', () => {
|
||||
'#499BEA': 'clearblue',
|
||||
'#596557': 'natural',
|
||||
'#2A80B8': 'modern',
|
||||
'#2a2a2a': 'moderndark',
|
||||
};
|
||||
Boards.find().forEach(board => {
|
||||
const oldBoardColor = board.background.color;
|
||||
|
||||
@@ -9,15 +9,16 @@ version: '2'
|
||||
# https://github.com/wekan/wekan/wiki/Forgot-Password
|
||||
#---------------------------------------------------------------------------------------------------------
|
||||
# ==== Upgrading Wekan to new version =====
|
||||
# NOTE: MongoDB has changed from 3.x to 4.x, in that case you need backup/restore with --noIndexRestore
|
||||
# see https://github.com/wekan/wekan/wiki/Backup
|
||||
# 1) Stop Wekan:
|
||||
# docker-compose stop
|
||||
# 2) Download new version:
|
||||
# docker-compose pull wekan
|
||||
# 3) If you have more networks for VPN etc as described at bottom of
|
||||
# this config, download for them too:
|
||||
# docker-compose pull wekan2
|
||||
# 2) Remove old Wekan app (wekan-app only, not that wekan-db container that has all your data)
|
||||
# docker rm wekan-app
|
||||
# 3) Get newest docker-compose.yml from https://github.com/wekan/wekan to have correct image,
|
||||
# for example: "image: quay.io/wekan/wekan" or version tag "image: quay.io/wekan/wekan:v4.52"
|
||||
# 4) Start Wekan:
|
||||
# docker-compose start
|
||||
# docker-compose up -d
|
||||
#----------------------------------------------------------------------------------
|
||||
# ==== OPTIONAL: DEDICATED DOCKER USER ====
|
||||
# 1) Optionally create a dedicated user for Wekan, for example:
|
||||
@@ -132,7 +133,7 @@ services:
|
||||
' 1>/dev/null 2>&1 &
|
||||
mongod --replSet rs1
|
||||
wekan:
|
||||
image: wekanteam/wekan
|
||||
image: quay.io/wekan/wekan
|
||||
container_name: wekan-app
|
||||
restart: always
|
||||
networks:
|
||||
|
||||
Reference in new issue
Block a user