Compare commits

..
21 Commits
Author SHA1 Message Date
Lauri Ojansivu 3fcde252f7 v3.78 2020-02-12 02:23:26 +02:00
Lauri Ojansivu e89965f642 Remove card element grouping to create compact card layout.
Card Settings / Show on Card: Description Title and Description Text.

Thanks to e-stoniauk, 2020product and xet7 !

Fixes https://github.com/wekan/wekan/pull/2922
2020-02-12 02:08:29 +02:00
Lauri Ojansivu b4e5583065 Update translations. 2020-02-12 02:06:26 +02:00
Lauri Ojansivu 65b11ce3bd v3.77 2020-02-10 20:45:02 +02:00
Lauri Ojansivu ea74e6ad23 Update ChangeLog. 2020-02-10 19:39:30 +02:00
Lauri Ojansivu 4467a68b97 Part 2: Fix Copy Card Link to Clipboard button at card title did not work.
Thanks to 2020product and xet7 !

Related https://github.com/wekan/wekan/pull/2922
2020-02-10 19:37:25 +02:00
Lauri Ojansivu 799bf5735b Update translations. 2020-02-10 19:14:25 +02:00
Lauri Ojansivu 92d0385911 Update ChangeLog. 2020-02-10 19:04:03 +02:00
Lauri Ojansivu 9a21b0a1c9 Fix Copy Card Link to Clipboard button at card title did not work.
Thanks to 2020product and xet7 !

Related https://github.com/wekan/wekan/pull/2922
2020-02-10 18:47:03 +02:00
Lauri Ojansivu 6eb21faca2 Update ChangeLog. 2020-02-10 17:27:18 +02:00
Lauri Ojansivu 2a54218f3f Remove hiding comments and activities. 2020-02-10 17:25:27 +02:00
Lauri Ojansivu 6eac38bde5 Update translations. 2020-02-07 14:05:39 +02:00
Lauri Ojansivu 947c1f81ee Update ChangeLog. 2020-02-07 14:03:57 +02:00
Lauri Ojansivu 2fce02afbc Add Feature: Card Settings/Show on card/Activities.
Fix: When in Card Settings hiding Comments, only adding new comment is hidden, not old comments.

Thanks to xet7 !

Closes #2925
2020-02-07 13:58:43 +02:00
Lauri Ojansivu a58e6be78d v3.76 2020-02-07 03:29:21 +02:00
Lauri Ojansivu 77b43e75a2 Update translations. 2020-02-07 03:28:33 +02:00
Lauri Ojansivu 228e5389cf Update ChangeLog. 2020-02-07 03:20:46 +02:00
Lauri Ojansivu bf78b093ba Try to disable dragging Swimlanes/Lists/Cards/Checklists/Subtasks on small mobile smartphones webbrowsers, and hide drag handles on mobile web.
Thanks to xet7 !
2020-02-07 03:16:16 +02:00
Lauri Ojansivu 8384d68a06 Use Meteor 1.9 and Node.js 12.15.0 on Snap and Docker.
Thanks to xet7 !
2020-02-07 03:12:27 +02:00
Lauri Ojansivu 120a430deb Fix Bug enable/disable Comments in Card Settings.
Thanks to warnt, mdurokov and xet7 !

Closes #2923
2020-02-07 02:34:57 +02:00
Lauri Ojansivu 8e7b9b73b5 Update translations. 2020-02-07 00:08:36 +02:00
38 changed files with 451 additions and 142 deletions

No files matched your search

+2 -2
View File
@@ -110,7 +110,7 @@ modern-browsers@0.1.5
modules@0.15.0
modules-runtime@0.12.0
momentjs:moment@2.24.0
mongo@1.8.0
mongo@1.8.1
mongo-decimal@0.1.1
mongo-dev-server@1.1.0
mongo-id@1.0.7
@@ -162,7 +162,7 @@ simple:json-routes@2.1.0
simple:rest-accounts-password@1.1.2
simple:rest-bearer-token-parser@1.0.1
simple:rest-json-error-handler@1.0.1
socket-stream-client@0.2.2
socket-stream-client@0.2.3
softwarerero:accounts-t9n@1.3.11
spacebars@1.0.15
spacebars-compiler@1.1.3
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.75.0",
"version": "v3.78.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.75.0",
"version": "v3.78.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+2 -2
View File
@@ -1,9 +1,9 @@
dist: disco
dist: eoan
sudo: required
env:
TRAVIS_DOCKER_COMPOSE_VERSION: 1.24.0
TRAVIS_NODE_VERSION: 12.14.1
TRAVIS_NODE_VERSION: 12.15.0
TRAVIS_NPM_VERSION: latest
before_install:
+48
View File
@@ -1,3 +1,51 @@
# v3.78 2020-02-12 Wekan release
This release adds the following features:
- [Card Settings / Show on Card: Description Title and Description Text](https://github.com/wekan/wekan/commit/e89965f6422fd95b4ad2112ae407b1dde4853510).
Thanks to e-stoniauk, 2020product and xet7.
and fixes the following bugs:
- [Remove card element grouping to create compact card layout](https://github.com/wekan/wekan/commit/e89965f6422fd95b4ad2112ae407b1dde4853510).
Thanks to e-stoniauk, 2020product and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.77 2020-02-10 Wekan release
This release removes the following features:
- [Remove hiding comments and activities](https://github.com/wekan/wekan/commit/2a54218f3f68547032bd53a04a968b233be21e15).
Thanks to xet7.
and fixes the following bugs:
- Fix Copy Card Link to Clipboard button at card title did not
work [Part 1](https://github.com/wekan/wekan/commit/9a21b0a1c933e7f778e4e57a8258e150ccea1620)
and [Part2](https://github.com/wekan/wekan/commit/4467a68b97a3fbf0fbae7f05177d978f2aa80287).
Thanks to 2020product and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.76 2020-02-07 Wekan release
This release adds the following updates:
- [Use Meteor 1.9 and Node.js 12.15.0 on Snap and Docker](https://github.com/wekan/wekan/commit/8384d68a060ef8f2c202ce2fa6064c5c823d28dc).
This also fixes bug that exporting some boards was not possible, downloading export file failed.
Thanks to xet7.
and fixes the following bugs:
- [Fix Bug enable/disable Comments in Card Settings](https://github.com/wekan/wekan/issues/2923).
Thanks to warnt, mdurokov and xet7.
- [Try to disable dragging Swimlanes/Lists/Cards/Checklists/Subtasks on small mobile smartphones webbrowsers,
and hide drag handles on mobile web](https://github.com/wekan/wekan/commit/bf78b093bad7d463ee325ad96e8b485264d4a3be).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v3.75 2020-02-05 Wekan release
This release adds the following new features:
+1 -1
View File
@@ -6,7 +6,7 @@ LABEL maintainer="wekan"
# ENV BUILD_DEPS="paxctl"
ENV BUILD_DEPS="apt-utils libarchive-tools gnupg gosu wget curl bzip2 g++ build-essential git ca-certificates python3" \
DEBUG=false \
NODE_VERSION=v12.14.1 \
NODE_VERSION=v12.15.0 \
METEOR_RELEASE=1.9.0 \
USE_EDGE=false \
METEOR_EDGE=1.5-beta.17 \
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v3.75.0"
appVersion: "v3.78.0"
files:
userUploads:
- README.md
+3 -3
View File
@@ -201,20 +201,20 @@ template(name="cardActivities")
.activity-checklist(href="{{ card.absoluteUrl }}")
+viewer
= checklistItem.title
if(currentData.timeKey)
| {{{_ activityType }}}
= ' '
i(title=currentData.timeValue).activity-meta {{ moment currentData.timeValue 'LLL' }}
if (currentData.timeOldValue)
= ' '
= ' '
| {{{_ "previous_as" }}}
= ' '
i(title=currentData.timeOldValue).activity-meta {{ moment currentData.timeOldValue 'LLL' }}
= ' @'
else if(currentData.timeValue)
| {{{_ activityType currentData.timeValue}}}
if($eq activityType 'deleteComment')
| {{{_ 'activity-deleteComment' currentData.commentId}}}.
+4 -6
View File
@@ -205,21 +205,19 @@ BlazeComponent.extendComponent({
} else {
showDesktopDragHandles = false;
}
if (
Utils.isMiniScreen() ||
(!Utils.isMiniScreen() && showDesktopDragHandles)
) {
if (!Utils.isMiniScreen() && showDesktopDragHandles) {
$swimlanesDom.sortable({
handle: '.js-swimlane-header-handle',
});
} else {
} else if (!Utils.isMiniScreen() && !showDesktopDragHandles) {
$swimlanesDom.sortable({
handle: '.swimlane-header',
});
}
// Disable drag-dropping if the current user is not a board member or is comment only
// Disable drag-dropping if the current user is not a board member or is miniscreen
$swimlanesDom.sortable('option', 'disabled', !userIsMember());
$swimlanesDom.sortable('option', 'disabled', Utils.isMiniScreen());
});
function userIsMember() {
+4 -2
View File
@@ -53,5 +53,7 @@ template(name="attachmentsGalery")
if currentUser.isBoardMember
unless currentUser.isCommentOnly
unless currentUser.isWorker
li.attachment-item.add-attachment
a.js-add-attachment {{_ 'add-attachment' }}
//li.attachment-item.add-attachment
a.js-add-attachment
i.fa.fa-paperclip
| {{_ 'add-attachment' }}
+42 -36
View File
@@ -8,10 +8,11 @@ template(name="cardDetails")
a.fa.fa-times-thin.close-card-details.js-close-card-details
if currentUser.isBoardMember
a.fa.fa-navicon.card-details-menu.js-open-card-details-menu
input.inline-input(type="hidden" id="cardURL_copy" value="{{ absoluteUrl }}")
a.fa.card-copy-button.js-copy-link(
input.inline-input(type="text" id="cardURL_copy" value="{{ absoluteUrl }}")
a.fa.fa-link.card-copy-button.js-copy-link(
class="fa-link"
title="{{_ 'copy-card-link-to-clipboard'}}"
value="{{ absoluteUrl }}"
)
if isMiniScreen
a.fa.fa-times-thin.close-card-details-mobile-web.js-close-card-details
@@ -94,7 +95,7 @@ template(name="cardDetails")
a.card-label.add-label.js-end-date
i.fa.fa-plus
.card-details-items
//.card-details-items
if currentBoard.allowsMembers
.card-details-item.card-details-item-members
h3
@@ -140,7 +141,7 @@ template(name="cardDetails")
a.card-label.add-label.js-add-labels(title="{{_ 'card-labels-title'}}")
i.fa.fa-plus
.card-details-items
//.card-details-items
each customFieldsWD
.card-details-item.card-details-item-customfield
h3.card-details-item-title
@@ -148,7 +149,7 @@ template(name="cardDetails")
= definition.name
+cardCustomField
.card-details-items
//.card-details-items
if getSpentTime
.card-details-item.card-details-item-spent
if getIsOvertime
@@ -157,37 +158,7 @@ template(name="cardDetails")
h3.card-details-item-title {{_ 'spent-time-hours'}}
+cardSpentTime
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
unless currentUser.isWorker
h3
i.fa.fa-align-left
card-details-item-title {{_ 'description'}}
+inlinedCardDescription(classNames="card-description js-card-description")
+editor(autofocus=true)
| {{getUnsavedValue 'cardDescription' _id getDescription}}
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
a.js-open-inlined-form
if getDescription
+viewer
= getDescription
else
| {{_ 'edit'}}
if (hasUnsavedValue 'cardDescription' _id)
p.quiet
| {{_ 'unsaved-description'}}
a.js-open-inlined-form {{_ 'view-it'}}
= ' - '
a.js-close-inlined-form {{_ 'discard'}}
else if getDescription
h3.card-details-item-title {{_ 'description'}}
+viewer
= getDescription
.card-details-items
//.card-details-items
if currentBoard.allowsRequestedBy
.card-details-item.card-details-item-name
h3
@@ -228,6 +199,41 @@ template(name="cardDetails")
+viewer
= getAssignedBy
//- XXX We should use "editable" to avoid repetiting ourselves
if canModifyCard
unless currentUser.isWorker
if currentBoard.allowsDescriptionTitle
h3
i.fa.fa-align-left
card-details-item-title {{_ 'description'}}
if currentBoard.allowsDescriptionText
+inlinedCardDescription(classNames="card-description js-card-description")
+editor(autofocus=true)
| {{getUnsavedValue 'cardDescription' _id getDescription}}
.edit-controls.clearfix
button.primary(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
else
if currentBoard.allowsDescriptionText
a.js-open-inlined-form
if getDescription
+viewer
= getDescription
else
| {{_ 'edit'}}
if (hasUnsavedValue 'cardDescription' _id)
p.quiet
| {{_ 'unsaved-description'}}
a.js-open-inlined-form {{_ 'view-it'}}
= ' - '
a.js-close-inlined-form {{_ 'discard'}}
else if getDescription
if currentBoard.allowsDescriptionTitle
h3.card-details-item-title {{_ 'description'}}
if currentBoard.allowsDescriptionText
+viewer
= getDescription
.card-checklist-attachmentGalerys
.card-checklist-attachmentGalery.card-checklists
if currentBoard.allowsChecklists
+6
View File
@@ -253,6 +253,12 @@ BlazeComponent.extendComponent({
if ($subtasksDom.data('sortable')) {
$subtasksDom.sortable('option', 'disabled', !userIsMember());
}
if ($checklistsDom.data('sortable')) {
$checklistsDom.sortable('option', 'disabled', Utils.isMiniScreen());
}
if ($subtasksDom.data('sortable')) {
$subtasksDom.sortable('option', 'disabled', Utils.isMiniScreen());
}
});
},
+6
View File
@@ -4,6 +4,12 @@
avatar-radius = 50%
#cardURL_copy
// Have clipboard text not visible by moving it to far left
position: absolute
left: -2000px
top: 0px
.assignee
border-radius: 3px
display: block
+3
View File
@@ -60,6 +60,9 @@ BlazeComponent.extendComponent({
if ($itemsDom.data('sortable')) {
$(self.itemsDom).sortable('option', 'disabled', !userIsMember());
}
if ($itemsDom.data('sortable')) {
$(self.itemsDom).sortable('option', 'disabled', Utils.isMiniScreen());
}
});
},
+2 -2
View File
@@ -4,8 +4,8 @@ template(name="minicard")
class="{{#if isLinkedBoard}}linked-board{{/if}}"
class="minicard-{{colorClass}}")
if isMiniScreen
.handle
.fa.fa-arrows
//.handle
// .fa.fa-arrows
unless isMiniScreen
if showDesktopDragHandles
.handle
+22 -3
View File
@@ -133,14 +133,33 @@ BlazeComponent.extendComponent({
$cards.sortable({
handle: '.handle',
});
} else {
} else if (!Utils.isMiniScreen() && !showDesktopDragHandles) {
$cards.sortable({
handle: '.minicard',
});
}
// Disable drag-dropping if the current user is not a board member or is comment only
$cards.sortable('option', 'disabled', !userIsMember());
if ($cards.data('sortable')) {
$cards.sortable(
'option',
'disabled',
// Disable drag-dropping when user is not member/is miniscreen
!userIsMember(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
}
if ($cards.data('sortable')) {
$cards.sortable(
'option',
'disabled',
// Disable drag-dropping when user is not member/is miniscreen
Utils.isMiniScreen(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
}
});
// We want to re-run this function any time a card is added.
+2 -2
View File
@@ -30,10 +30,10 @@ template(name="listHeader")
if canSeeAddCard
a.js-add-card.fa.fa-plus.list-header-plus-icon
a.fa.fa-navicon.js-open-list-menu
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
//a.list-header-handle.handle.fa.fa-arrows.js-list-handle
else
a.list-header-menu-icon.fa.fa-angle-right.js-select-list
a.list-header-handle.handle.fa.fa-arrows.js-list-handle
//a.list-header-handle.handle.fa.fa-arrows.js-list-handle
else if currentUser.isBoardMember
if isWatching
i.list-header-watch-icon.fa.fa-eye
+26 -6
View File
@@ -129,6 +129,20 @@ template(name="boardCardSettingsPopup")
span
i.fa.fa-tags
| {{_ 'labels'}}
div.check-div
a.flex.js-field-has-description-title(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
.materialCheckBox(class="{{#if allowsDescriptionTitle}}is-checked{{/if}}")
span
i.fa.fa-align-left
| {{_ 'description'}}
| {{_ 'title'}}
div.check-div
a.flex.js-field-has-description-text(class="{{#if allowsDescriptionText}}is-checked{{/if}}")
.materialCheckBox(class="{{#if allowsDescriptionText}}is-checked{{/if}}")
span
i.fa.fa-align-left
| {{_ 'description'}}
| {{_ 'custom-field-text'}}
div.check-div
a.flex.js-field-has-checklists(class="{{#if allowsChecklists}}is-checked{{/if}}")
.materialCheckBox(class="{{#if allowsChecklists}}is-checked{{/if}}")
@@ -147,12 +161,18 @@ template(name="boardCardSettingsPopup")
span
i.fa.fa-paperclip
| {{_ 'attachments'}}
div.check-div
a.flex.js-field-has-comments(class="{{#if allowsComments}}is-checked{{/if}}")
.materialCheckBox(class="{{#if allowsComments}}is-checked{{/if}}")
span
i.fa.fa-comment-o
| {{_ 'comment'}}
//div.check-div
// a.flex.js-field-has-comments(class="{{#if allowsComments}}is-checked{{/if}}")
// .materialCheckBox(class="{{#if allowsComments}}is-checked{{/if}}")
// span
// i.fa.fa-comment-o
// | {{_ 'comment'}}
//div.check-div
// a.flex.js-field-has-activities(class="{{#if allowsActivities}}is-checked{{/if}}")
// .materialCheckBox(class="{{#if allowsActivities}}is-checked{{/if}}")
// span
// i.fa.fa-history
// | {{_ 'activities'}}
template(name="boardSubtaskSettingsPopup")
form.board-subtask-settings
+56
View File
@@ -647,6 +647,14 @@ BlazeComponent.extendComponent({
return this.currentBoard.allowsComments;
},
allowsDescriptionTitle() {
return this.currentBoard.allowsDescriptionTitle;
},
allowsDescriptionText() {
return this.currentBoard.allowsDescriptionText;
},
isBoardSelected() {
return this.currentBoard.dateSettingsDefaultBoardID;
},
@@ -837,6 +845,38 @@ BlazeComponent.extendComponent({
this.currentBoard.allowsLabels,
);
},
'click .js-field-has-description-title'(evt) {
evt.preventDefault();
this.currentBoard.allowsDescriptionTitle = !this.currentBoard
.allowsDescriptionTitle;
this.currentBoard.setAllowsDescriptionTitle(
this.currentBoard.allowsDescriptionTitle,
);
$(`.js-field-has-description-title ${MCB}`).toggleClass(
CKCLS,
this.currentBoard.allowsDescriptionTitle,
);
$('.js-field-has-description-title').toggleClass(
CKCLS,
this.currentBoard.allowsDescriptionTitle,
);
},
'click .js-field-has-description-text'(evt) {
evt.preventDefault();
this.currentBoard.allowsDescriptionText = !this.currentBoard
.allowsDescriptionText;
this.currentBoard.setAllowsDescriptionText(
this.currentBoard.allowsDescriptionText,
);
$(`.js-field-has-description-text ${MCB}`).toggleClass(
CKCLS,
this.currentBoard.allowsDescriptionText,
);
$('.js-field-has-description-text').toggleClass(
CKCLS,
this.currentBoard.allowsDescriptionText,
);
},
'click .js-field-has-checklists'(evt) {
evt.preventDefault();
this.currentBoard.allowsChecklists = !this.currentBoard
@@ -882,6 +922,22 @@ BlazeComponent.extendComponent({
this.currentBoard.allowsComments,
);
},
'click .js-field-has-activities'(evt) {
evt.preventDefault();
this.currentBoard.allowsActivities = !this.currentBoard
.allowsActivities;
this.currentBoard.setAllowsActivities(
this.currentBoard.allowsActivities,
);
$(`.js-field-has-activities ${MCB}`).toggleClass(
CKCLS,
this.currentBoard.allowsActivities,
);
$('.js-field-has-activities').toggleClass(
CKCLS,
this.currentBoard.allowsActivities,
);
},
},
];
},
+23 -10
View File
@@ -115,7 +115,7 @@ function initSortable(boardComponent, $listsDom) {
$listsDom.sortable({
handle: '.js-list-handle',
});
} else {
} else if (!Utils.isMiniScreen() && !showDesktopDragHandles) {
$listsDom.sortable({
handle: '.js-list-header',
});
@@ -126,21 +126,34 @@ function initSortable(boardComponent, $listsDom) {
$listsDom.sortable(
'option',
'disabled',
// Disable drag-dropping when user is not member
// Disable drag-dropping when user is not member/is worker/is miniscreen
!userIsMember(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
}
$listsDom.sortable(
'option',
'disabled',
// Disable drag-dropping when user is not member
Meteor.user().isWorker(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
if ($listDom.data('sortable')) {
$listsDom.sortable(
'option',
'disabled',
// Disable drag-dropping when user is not member/is worker/is miniscreen
Meteor.user().isWorker(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
}
if ($listDom.data('sortable')) {
$listsDom.sortable(
'option',
'disabled',
// Disable drag-dropping when user is not member/is worker/is miniscreen
Utils.isMiniScreen(),
// Not disable drag-dropping while in multi-selection mode
// MultiSelection.isActive() || !userIsMember(),
);
}
});
}
+30
View File
@@ -147,8 +147,38 @@ Utils = {
// in a small window (even on desktop), Wekan run in compact mode.
// we can easily debug with a small window of desktop browser. :-)
isMiniScreen() {
// OLD WINDOW WIDTH DETECTION:
this.windowResizeDep.depend();
return $(window).width() <= 800;
// NEW TOUCH DEVICE DETECTION:
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent
/*
var hasTouchScreen = false;
if ("maxTouchPoints" in navigator) {
hasTouchScreen = navigator.maxTouchPoints > 0;
} else if ("msMaxTouchPoints" in navigator) {
hasTouchScreen = navigator.msMaxTouchPoints > 0;
} else {
var mQ = window.matchMedia && matchMedia("(pointer:coarse)");
if (mQ && mQ.media === "(pointer:coarse)") {
hasTouchScreen = !!mQ.matches;
} else if ('orientation' in window) {
hasTouchScreen = true; // deprecated, but good fallback
} else {
// Only as a last resort, fall back to user agent sniffing
var UA = navigator.userAgent;
hasTouchScreen = (
/\b(BlackBerry|webOS|iPhone|IEMobile)\b/i.test(UA) ||
/\b(Android|Windows Phone|iPad|iPod)\b/i.test(UA)
);
}
}
*/
//if (hasTouchScreen)
// document.getElementById("exampleButton").style.padding="1em";
//return false;
},
calculateIndexData(prevData, nextData, nItems = 1) {
+5 -5
View File
@@ -224,7 +224,7 @@
"no-comments": "Keine Kommentare",
"no-comments-desc": "Kann keine Kommentare und Aktivitäten sehen.",
"worker": "Arbeiter",
"worker-desc": "Kann nur Karten verschieben, sich selbst zuweisen und kommentieren.",
"worker-desc": "Kann Karten nur verschieben, sich selbst zuweisen und kommentieren.",
"computer": "Computer",
"confirm-subtask-delete-dialog": "Wollen Sie die Teilaufgabe wirklich löschen?",
"confirm-checklist-delete-dialog": "Wollen Sie die Checkliste wirklich löschen?",
@@ -583,9 +583,9 @@
"default": "Standard",
"queue": "Warteschlange",
"subtask-settings": "Einstellungen für Teilaufgaben",
"card-settings": "Card Settings",
"card-settings": "Karten-Einstellungen",
"boardSubtaskSettingsPopup-title": "Boardeinstellungen für Teilaufgaben",
"boardCardSettingsPopup-title": "Card Settings",
"boardCardSettingsPopup-title": "Karten-Einstellungen",
"deposit-subtasks-board": "Teilaufgaben in diesem Board ablegen:",
"deposit-subtasks-list": "Zielliste für hier abgelegte Teilaufgaben:",
"show-parent-in-minicard": "Übergeordnetes Element auf Minikarte anzeigen:",
@@ -755,6 +755,6 @@
"show-desktop-drag-handles": "Desktop-Ziehpunkte anzeigen",
"assignee": "Zugewiesen",
"cardAssigneesPopup-title": "Zugewiesen",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card"
"addmore-detail": "Eine detailliertere Beschreibung hinzufügen",
"show-on-card": "Zeige auf Karte"
}
+4 -4
View File
@@ -583,9 +583,9 @@
"default": "בררת מחדל",
"queue": "תור",
"subtask-settings": "הגדרות תתי משימות",
"card-settings": "Card Settings",
"card-settings": "הגדרות כרטיס",
"boardSubtaskSettingsPopup-title": "הגדרות תת־משימות בלוח",
"boardCardSettingsPopup-title": "Card Settings",
"boardCardSettingsPopup-title": "הגדרות כרטיס",
"deposit-subtasks-board": "הפקדת תת־משימות ללוח הזה:",
"deposit-subtasks-list": "רשימות נחיתה עבור תת־משימות שהופקדו כאן:",
"show-parent-in-minicard": "הצגת ההורה במיני כרטיס:",
@@ -755,6 +755,6 @@
"show-desktop-drag-handles": "הצגת ידיות גרירה של שולחן העבודה",
"assignee": "גורם אחראי",
"cardAssigneesPopup-title": "גורם אחראי",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card"
"addmore-detail": "הוספת תיאור מפורט",
"show-on-card": "הצגה על הכרטיס"
}
+19 -19
View File
@@ -137,7 +137,7 @@
"board-view": "ボード表示",
"board-view-cal": "カレンダー",
"board-view-swimlanes": "スイムレーン",
"board-view-collapse": "Collapse",
"board-view-collapse": "折りたたむ",
"board-view-lists": "リスト",
"bucket-example": "例:バケットリスト",
"cancel": "キャンセル",
@@ -169,10 +169,10 @@
"cardTemplatePopup-title": "テンプレートの作成",
"cards": "カード",
"cards-count": "カード",
"casSignIn": "Sign In with CAS",
"casSignIn": "CASでサインインする",
"cardType-card": "カード",
"cardType-linkedCard": "Linked Card",
"cardType-linkedBoard": "Linked Board",
"cardType-linkedCard": "リンクされたカード",
"cardType-linkedBoard": "リンクされたボード",
"change": "変更",
"change-avatar": "アバターの変更",
"change-password": "パスワードの変更",
@@ -269,7 +269,7 @@
"edit-avatar": "アバターの変更",
"edit-profile": "プロフィールの編集",
"edit-wip-limit": "仕掛中制限編集",
"soft-wip-limit": "Soft WIP Limit",
"soft-wip-limit": "警告のみの仕掛中制限",
"editCardStartDatePopup-title": "開始日の変更",
"editCardDueDatePopup-title": "期限の変更",
"editCustomFieldPopup-title": "フィールドを編集",
@@ -305,7 +305,7 @@
"error-email-taken": "メールは既に受け取られています",
"export-board": "ボードのエクスポート",
"sort": "Sort",
"sort-desc": "Click to Sort List",
"sort-desc": "クリックでリストをソート",
"list-sort-by": "Sort the List By:",
"list-label-modifiedAt": "Last Access Time",
"list-label-title": "リストの名前",
@@ -466,8 +466,8 @@
"this-board": "このボード",
"this-card": "このカード",
"spent-time-hours": "作業時間(時)",
"overtime-hours": "Overtime (hours)",
"overtime": "Overtime",
"overtime-hours": "超過時間(時)",
"overtime": "超過時間",
"has-overtime-cards": "Has overtime cards",
"has-spenttime-cards": "Has spent time cards",
"time": "時間",
@@ -548,8 +548,8 @@
"OS_Totalmem": "OSトータルメモリ",
"OS_Type": "OS種類",
"OS_Uptime": "OSアップタイム",
"days": "days",
"hours": "時",
"days": "日",
"hours": "時間",
"minutes": "分",
"seconds": "秒",
"show-field-on-card": "このフィールドをカードに表示",
@@ -586,8 +586,8 @@
"card-settings": "カード設定",
"boardSubtaskSettingsPopup-title": "ボードのサブタスク設定",
"boardCardSettingsPopup-title": "カード設定",
"deposit-subtasks-board": "サブタスクの作成先されるボード:",
"deposit-subtasks-list": "サブタスクの作成先されるリスト:",
"deposit-subtasks-board": "サブタスクの作成先ボード:",
"deposit-subtasks-list": "サブタスクの作成先リスト:",
"show-parent-in-minicard": "ミニカード上の親表示",
"prefix-with-full-path": "タイトルの前に親をフル表示",
"prefix-with-parent": "タイトルの前に親を表示",
@@ -671,10 +671,10 @@
"r-d-move-to-top-spec": "カードをリストの先頭に移動",
"r-d-move-to-bottom-gen": "カードを自身のリストの最下部に移動",
"r-d-move-to-bottom-spec": "カードをリストの最下部に移動",
"r-d-send-email": "Send email",
"r-d-send-email": "メールを送信",
"r-d-send-email-to": "宛先",
"r-d-send-email-subject": "件名",
"r-d-send-email-message": "message",
"r-d-send-email-message": "メッセージ本文",
"r-d-archive": "カードをアーカイブする",
"r-d-unarchive": "アーカイブからカードを復元する",
"r-d-add-label": "ラベルを追加",
@@ -685,10 +685,10 @@
"r-d-add-member": "メンバーを追加",
"r-d-remove-member": "メンバーを削除",
"r-d-remove-all-member": "すべてのメンバーを削除",
"r-d-check-all": "Check all items of a list",
"r-d-uncheck-all": "Uncheck all items of a list",
"r-d-check-one": "Check item",
"r-d-uncheck-one": "Uncheck item",
"r-d-check-all": "リストのアイテムすべてをチェックする",
"r-d-uncheck-all": "リストのアイテムのすべてのチェックを外す",
"r-d-check-one": "アイテムをチェックする",
"r-d-uncheck-one": "アイテムのチェックを外す",
"r-d-check-of-list": "チェックリスト",
"r-d-add-checklist": "チェックリストを追加",
"r-d-remove-checklist": "チェックリストを削除",
@@ -752,7 +752,7 @@
"delete-user-confirm-popup": "本当にこのアカウントを削除しますか?この操作は取り消しできません。",
"accounts-allowUserDelete": "ユーザー自身のアカウント削除を許可",
"hide-minicard-label-text": "ミニカードのラベル名を隠す",
"show-desktop-drag-handles": "Show desktop drag handles",
"show-desktop-drag-handles": "デスクトップへのドラッグハンドルを表示",
"assignee": "担当者",
"cardAssigneesPopup-title": "担当者",
"addmore-detail": "詳細説明の追加",
+4 -4
View File
@@ -583,9 +583,9 @@
"default": "Domyślny",
"queue": "Kolejka",
"subtask-settings": "Ustawienia podzadań",
"card-settings": "Card Settings",
"card-settings": "Ustawienia karty",
"boardSubtaskSettingsPopup-title": "Ustawienia tablicy podzadań",
"boardCardSettingsPopup-title": "Card Settings",
"boardCardSettingsPopup-title": "Ustawienia kart",
"deposit-subtasks-board": "Przechowuj podzadania na tablicy:",
"deposit-subtasks-list": "Początkowa lista dla podzadań jest przechowywana w:",
"show-parent-in-minicard": "Pokaż rodzica w minikarcie:",
@@ -755,6 +755,6 @@
"show-desktop-drag-handles": "Pokaż przeciągnięcia na pulpit",
"assignee": "Przypisujący",
"cardAssigneesPopup-title": "Przypisujący",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card"
"addmore-detail": "Dodaj bardziej szczegółowy opis",
"show-on-card": "Pokaż na karcie"
}
+4 -4
View File
@@ -583,9 +583,9 @@
"default": "По умолчанию",
"queue": "Очередь",
"subtask-settings": "Настройки подзадач",
"card-settings": "Card Settings",
"card-settings": "Настройки карточки",
"boardSubtaskSettingsPopup-title": "Настройки подзадач для доски",
"boardCardSettingsPopup-title": "Card Settings",
"boardCardSettingsPopup-title": "Настройки карточки",
"deposit-subtasks-board": "Отправлять подзадачи на доску:",
"deposit-subtasks-list": "Размещать подзадачи, отправленные на эту доску, в списке:",
"show-parent-in-minicard": "Указывать исходную карточку:",
@@ -755,6 +755,6 @@
"show-desktop-drag-handles": "Show desktop drag handles",
"assignee": "Исполнитель",
"cardAssigneesPopup-title": "Исполнитель",
"addmore-detail": "Add a more detailed description",
"show-on-card": "Show on Card"
"addmore-detail": "Добавить более детальное описание",
"show-on-card": "Показать на карточке"
}
+42 -2
View File
@@ -332,6 +332,30 @@ Boards.attachSchema(
defaultValue: true,
},
allowsDescriptionTitle: {
/**
* Does the board allows description title?
*/
type: Boolean,
defaultValue: true,
},
allowsDescriptionText: {
/**
* Does the board allows description text?
*/
type: Boolean,
defaultValue: true,
},
allowsActivities: {
/**
* Does the board allows comments?
*/
type: Boolean,
defaultValue: true,
},
allowsLabels: {
/**
* Does the board allows labels?
@@ -1095,8 +1119,8 @@ Boards.mutations({
return { $set: { allowsChecklists } };
},
setAllowsAssignee(allowsComments) {
return { $set: { allowsComments } };
setAllowsAssignee(allowsAssignee) {
return { $set: { allowsAssignee } };
},
setAllowsAssignedBy(allowsAssignedBy) {
@@ -1115,6 +1139,22 @@ Boards.mutations({
return { $set: { allowsLabels } };
},
setAllowsComments(allowsComments) {
return { $set: { allowsComments } };
},
setAllowsDescriptionTitle(allowsDescriptionTitle) {
return { $set: { allowsDescriptionTitle } };
},
setAllowsDescriptionText(allowsDescriptionText) {
return { $set: { allowsDescriptionText } };
},
setAllowsActivities(allowsActivities) {
return { $set: { allowsActivities } };
},
setAllowsReceivedDate(allowsReceivedDate) {
return { $set: { allowsReceivedDate } };
},
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.75.0",
"version": "v3.78.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v3.75.0",
"version": "v3.78.0",
"description": "Open-Source kanban",
"private": true,
"scripts": {
+11 -2
View File
@@ -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 v3.75">Wekan REST API v3.75</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v3.77">Wekan REST API v3.77</a>
</li>
@@ -2017,7 +2017,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 v3.75</h1>
<h1 id="wekan-rest-api">Wekan REST API v3.77</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>
@@ -3293,6 +3293,7 @@ System.out.println(response.toString());
<span class="hljs-attr">"allowsAttachments"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsChecklists"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsComments"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsActivities"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsLabels"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsAssignee"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsMembers"</span>: <span class="hljs-literal">true</span>,
@@ -13656,6 +13657,7 @@ UserSecurity
<span class="hljs-attr">"allowsAttachments"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsChecklists"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsComments"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsActivities"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsLabels"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsAssignee"</span>: <span class="hljs-literal">true</span>,
<span class="hljs-attr">"allowsMembers"</span>: <span class="hljs-literal">true</span>,
@@ -13822,6 +13824,13 @@ UserSecurity
<td>Does the board allows comments?</td>
</tr>
<tr>
<td>allowsActivities</td>
<td>boolean</td>
<td>true</td>
<td>none</td>
<td>Does the board allows comments?</td>
</tr>
<tr>
<td>allowsLabels</td>
<td>boolean</td>
<td>true</td>
+6 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v3.75
version: v3.77
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -2115,6 +2115,10 @@ definitions:
description: |
Does the board allows comments?
type: boolean
allowsActivities:
description: |
Does the board allows comments?
type: boolean
allowsLabels:
description: |
Does the board allows labels?
@@ -2211,6 +2215,7 @@ definitions:
- allowsAttachments
- allowsChecklists
- allowsComments
- allowsActivities
- allowsLabels
- allowsAssignee
- allowsMembers
+2 -2
View File
@@ -18,8 +18,8 @@ REM Install chocolatey
choco install -y git curl python2 dotnet4.5.2 nano mongodb-3 mongoclient meteor
curl -O https://nodejs.org/dist/v8.17.0/node-v12.14.1-x64.msi
call node-v12.14.1-x64.msi
curl -O https://nodejs.org/dist/v8.17.0/node-v12.15.0-x64.msi
call node-v12.15.0-x64.msi
call npm config -g set msvs_version 2015
call meteor npm config -g set msvs_version 2015
+2 -2
View File
@@ -5,7 +5,7 @@ echo " with 'sudo dpkg-reconfigure locales' , so that MongoDB works correct
echo " You can still use any other locale as your main locale."
#Below script installs newest node 8.x for Debian/Ubuntu/Mint.
#NODE_VERSION=12.14.1
#NODE_VERSION=12.15.0
#X64NODE="https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-linux-x64.tar.gz"
function pause(){
@@ -79,7 +79,7 @@ do
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.14.1
sudo n 12.15.0
#curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
#sudo apt-get install -y nodejs
elif [[ "$OSTYPE" == "darwin"* ]]; then
+2 -2
View File
@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Wekan"),
# The name of the app as it is displayed to the user.
appVersion = 377,
appVersion = 378,
# Increment this for every release.
appMarketingVersion = (defaultText = "3.75.0~2020-02-05"),
appMarketingVersion = (defaultText = "3.78.0~2020-02-12"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+48
View File
@@ -985,3 +985,51 @@ Migrations.add('add-requested-by-allowed', () => {
noValidateMulti,
);
});
Migrations.add('add-activities-allowed', () => {
Boards.update(
{
allowsActivities: {
$exists: false,
},
},
{
$set: {
allowsActivities: true,
},
},
noValidateMulti,
);
});
Migrations.add('add-description-title-allowed', () => {
Boards.update(
{
allowsDescriptionTitle: {
$exists: false,
},
},
{
$set: {
allowsDescriptionTitle: true,
},
},
noValidateMulti,
);
});
Migrations.add('add-description-text-allowed', () => {
Boards.update(
{
allowsDescriptionText: {
$exists: false,
},
},
{
$set: {
allowsDescriptionText: true,
},
},
noValidateMulti,
);
});
+13 -13
View File
@@ -81,11 +81,11 @@ parts:
wekan:
source: .
plugin: nodejs
node-engine: 8.17.0
node-engine: 12.15.0
node-packages:
- node-gyp
- node-pre-gyp
- fibers@2.0.0
- fibers
build-packages:
- ca-certificates
- apt-utils
@@ -104,17 +104,17 @@ parts:
rm -rf ~/.meteor ~/.npm /usr/local/lib/node_modules
# Create the OpenAPI specification
rm -rf .build
# Use Meteor 1.8.x on Snap
rm -rf .meteor
mv .snap-meteor-1.8/.meteor .
mv .snap-meteor-1.8/package.json .
mv .snap-meteor-1.8/package-lock.json .
# Meteor 1.9.x has changes to Buffer() => Buffer.alloc(), so reverting those
mv .snap-meteor-1.8/cfs_access-point.txt fix-download-unicode/
mv .snap-meteor-1.8/export.js models/
mv .snap-meteor-1.8/wekanCreator.js models/
mv .snap-meteor-1.8/ldap.js packages/wekan-ldap/server/ldap.js
mv .snap-meteor-1.8/oidc_server.js packages/wekan-oidc/oidc_server.js
## Use Meteor 1.8.x on Snap
#rm -rf .meteor
#mv .snap-meteor-1.8/.meteor .
#mv .snap-meteor-1.8/package.json .
#mv .snap-meteor-1.8/package-lock.json .
## Meteor 1.9.x has changes to Buffer() => Buffer.alloc(), so reverting those
#mv .snap-meteor-1.8/cfs_access-point.txt fix-download-unicode/
#mv .snap-meteor-1.8/export.js models/
#mv .snap-meteor-1.8/wekanCreator.js models/
#mv .snap-meteor-1.8/ldap.js packages/wekan-ldap/server/ldap.js
#mv .snap-meteor-1.8/oidc_server.js packages/wekan-oidc/oidc_server.js
rm -rf .snap-meteor-1.8
#mkdir -p .build/python
#cd .build/python
+1 -1
View File
@@ -2,7 +2,7 @@
set -euxo pipefail
BUILD_DEPS="bsdtar gnupg wget curl bzip2 python git ca-certificates perl-Digest-SHA"
NODE_VERSION=v12.13.0
NODE_VERSION=v12.15.0
#METEOR_RELEASE=1.6.0.1 - for Stacksmith, meteor-1.8 branch that could have METEOR@1.8.1-beta.8 or newer
USE_EDGE=false
METEOR_EDGE=1.5-beta.17
+1 -1
View File
@@ -132,7 +132,7 @@ services:
' 1>/dev/null 2>&1 &
mongod --replSet rs1
wekan:
image: wekanteam/wekan:latestdevel
image: quay.io/wekan/wekan
container_name: wekan-app
restart: always
networks: