Compare commits

...
28 Commits
Author SHA1 Message Date
Lauri Ojansivu dfc736b064 v5.97 2022-01-23 11:39:10 +02:00
Lauri Ojansivu af53afb9f8 Updated ChangeLog. 2022-01-23 11:30:56 +02:00
Lauri Ojansivu df61e471a1 Merge pull request #4319 from Ben0it-T/fix-comments-for-cards-that-link-to-a-board-are-not-shown-2538
Fix comments for cards that link to a board are not shown
2022-01-23 11:26:56 +02:00
Ben0it-T 3e364c4f35 fix comments on cardType-linkedBoard 2022-01-23 10:21:29 +01:00
Lauri Ojansivu 3fb63b518f Updated ChangeLog. 2022-01-23 11:20:02 +02:00
Lauri Ojansivu 4bf6b457ae Fix Snap OAUTH2_REQUEST_PERMISSIONS of Google/OAuth2/OIDC login.
Thanks to xet7 !

Fixes #4316
2022-01-23 11:16:47 +02:00
Lauri Ojansivu 71c575d4b5 Updated ChangeLog. 2022-01-23 11:10:14 +02:00
Lauri Ojansivu 8b2c9cc74f Merge pull request #4318 from Ben0it-T/fix-cant-add-checklist-to-cardType-linkedBoard
fix can't add Checklist on cardType-linkedBoard
2022-01-23 10:53:32 +02:00
Ben0it-T fc7c70bdc0 add checklist to cardType-linkedBoard 2022-01-23 09:44:19 +01:00
Lauri Ojansivu dd18fd2477 v5.96 2022-01-23 00:07:30 +02:00
Lauri Ojansivu 2512ea1715 Updated ChangeLog. 2022-01-22 23:30:35 +02:00
Lauri Ojansivu d63fa4aa89 Merge pull request #4315 from Ben0it-T/fix-cardType-linkedBoard-comments-not-loading
Fix comments not loading on cardType-linkedBoard
2022-01-22 23:27:34 +02:00
Ben0it-T ec51f7cced update Cards.helpers - comments() 2022-01-22 22:20:36 +01:00
Ben0it-T 3eb834c920 add LinkedBoard card comments to cursor 2022-01-22 21:01:49 +01:00
Lauri Ojansivu ba24e4a775 Updated ChangeLog. 2022-01-21 18:42:57 +02:00
Lauri Ojansivu bec25720da Fix notification drawer always on top.
Thanks to Azorimor !

Related https://github.com/wekan/wekan/pull/4301
2022-01-21 18:40:23 +02:00
Lauri Ojansivu 0db7ba5107 Updated ChangeLog. 2022-01-21 18:21:41 +02:00
Lauri Ojansivu 5e65dfc272 Try to fix OAUTH2_REQUEST_PERMISSIONS by removing quotes.
Thanks to pcurie and xet7 !

Related https://github.com/wekan/wekan/commit/892ee605270d583d800ec5ff9e1e4844eae92b38
2022-01-21 18:19:20 +02:00
Lauri Ojansivu 9b56f149e1 Updated ChangeLog. 2022-01-21 00:45:04 +02:00
Lauri Ojansivu a15ed97ab3 Merge pull request #4308 from mfilser/fix_layout_modern_dark
Fix Layout "Modern Dark", Card Color, List Header and mouse hover
2022-01-21 00:41:34 +02:00
Martin Filser d34918b08b Fix Layout "Modern Dark", Card Color, List Header and mouse hover
Fixes: #4254
2022-01-20 23:03:01 +01:00
Lauri Ojansivu e16cc34f6d Updated translations. 2022-01-20 23:38:26 +02:00
Lauri Ojansivu 87fd4880c9 Updated ChangeLog. 2022-01-20 23:28:56 +02:00
Lauri Ojansivu f325fe8436 Merge pull request #4307 from mfilser/move_checklist_and_card_popup_restore_last_selected_board_value
Move checklist and card popup restore last selected board value
2022-01-20 23:27:13 +02:00
Martin Filser 70558d00a7 Move checklist popup restores now the last selected board value in dropdown menu 2022-01-20 22:02:23 +01:00
Martin Filser d86eb74eb0 Move card popup restores now the last selected board value in dropdown menu 2022-01-20 22:02:23 +01:00
Lauri Ojansivu 6adedfd77f Updated translations. 2022-01-19 17:32:22 +02:00
Lauri Ojansivu e1a7c8abb7 Updated translations. 2022-01-18 15:48:16 +02:00
30 changed files with 239 additions and 153 deletions

No files matched your search

+33
View File
@@ -1,5 +1,38 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
# v5.97 2022-01-23 WeKan ® release
This release fixes the following bugs:
- [Fix can't add Checklist on cardType-linkedBoard](https://github.com/wekan/wekan/pull/4318).
Thanks to Ben0it-T.
- [Fix comments for cards that link to a board are not shown](https://github.com/wekan/wekan/pull/4319).
Thanks to Ben0it-T.
- [Fix Snap OAUTH2_REQUEST_PERMISSIONS of Google/OAuth2/OIDC login](https://github.com/wekan/wekan/commit/4bf6b457ae6bfb6d28127f696344019765d0467d).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.96 2022-01-23 WeKan ® release
This release adds the following new features:
- [Move checklist and card popup restore last selected board value](https://github.com/wekan/wekan/pull/4307).
Thanks to mfilser.
and fixes the following bugs:
- [Fix Layout "Modern Dark", Card Color, List Header and mouse hover](https://github.com/wekan/wekan/pull/4308).
Thanks to mfilser.
- [Try to fix OAUTH2_REQUEST_PERMISSIONS by removing quotes](https://github.com/wekan/wekan/commit/5e65dfc272925490b4ad20c49d8d3fd74597beac).
Thanks to pcurie and xet7.
- [Fix notification drawer always on top](https://github.com/wekan/wekan/commit/bec25720da947e048a63541b4e421bd9bd846c58).
Thanks to Azorimor.
- [Fix comments not loading on cardType-linkedBoard](https://github.com/wekan/wekan/pull/4315).
Thanks to Ben0it-T.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.95 2022-01-18 WeKan ® release
This release adds the following new features:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v5.95.0"
appVersion: "v5.97.0"
files:
userUploads:
- README.md
+2
View File
@@ -26,6 +26,8 @@ BlazeComponent.extendComponent({
if (card.isLinkedCard()) {
boardId = Cards.findOne(card.linkedId).boardId;
cardId = card.linkedId;
} else if (card.isLinkedBoard()) {
boardId = card.linkedId;
}
if (text) {
CardComments.insert({
+17 -15
View File
@@ -765,13 +765,13 @@ setBoardClear(color1,color2)
/* Forms */
button[type=submit].primary, .board-color-modern input[type=submit].primary
background-color: #819C5D
background-color: #777777
.toggle-switch:checked~.toggle-label
background-color: #D2E9B4
background-color: #f7f7f7
.toggle-label:after, .board-color-modern .toggle-switch:checked~.toggle-label:after
background-color: #819C5D !important
background-color: #777777 !important
button, input:not([type=file]), select, textarea
border-radius: 2px
@@ -861,21 +861,22 @@ setBoardClear(color1,color2)
.swimlane .list:first-child
margin-left: 0
.swimlane .list:nth-child(even)
.swimlane .list:nth-child(even) .list-header,
.swimlane .list:nth-child(even) .list-body
background: #5f5f5f
.swimlane .list:nth-child(odd) .list-header
.swimlane .list:nth-child(odd) .list-header,
.swimlane .list:nth-child(odd) .list-body
background: #3b3b3b
.list-header
// background: #333333
padding: 10px
// border-bottom: 0
.list-header .viewer
padding-left: 10px
.list-header .list-header-name
.list-header .list-header-name,
.minicard
line-height: 14px
color: #eeeeee
@@ -919,8 +920,8 @@ setBoardClear(color1,color2)
margin-bottom: 12px
.minicard
/* background-color: #444444 */
/* color: #cccccc */
background-color: #444444
color: #cccccc
border-radius: 2px
font-size: 0.95em
padding: 10px
@@ -928,7 +929,8 @@ setBoardClear(color1,color2)
border-bottom: 1px solid #666666
.minicard:hover
background-color: #494949 !important
color: #f7f7f7
background-color: #797979 !important
.minicard .minicard-labels
margin-bottom: 4px
@@ -1032,8 +1034,8 @@ setBoardClear(color1,color2)
border-color: #ffffff
.card-details .check-box.materialCheckBox.is-checked
border-bottom: 2px solid #819C5D
border-right: 2px solid #819C5D
border-bottom: 2px solid #ffffff
border-right: 2px solid #ffffff
border-top: 0
border-left: 0
@@ -1073,5 +1075,5 @@ setBoardClear(color1,color2)
font-size: 16px
color: #cccccc
.pop-over.board-color-moderndark .pop-over-list li:hover > a
background-color: #819C5D !important
.pop-over.board-color-moderndark .pop-over-list li > a:hover
background-color: rgba(255,255,255,0.2)
+15 -13
View File
@@ -827,10 +827,9 @@ Template.moveCardPopup.events({
});
BlazeComponent.extendComponent({
onCreated() {
const boardId = Utils.getCurrentBoardId();
subManager.subscribe('board', boardId, false);
this.selectedBoardId = new ReactiveVar(boardId);
this.setMoveAndCopyDialogOption(boardId);
this.currentBoardId = Utils.getCurrentBoardId();
this.selectedBoardId = new ReactiveVar(this.currentBoardId);
this.setMoveAndCopyDialogOption(this.currentBoardId);
},
/** set the last confirmed dialog field values
@@ -846,7 +845,11 @@ BlazeComponent.extendComponent({
let currentOptions = Meteor.user().getMoveAndCopyDialogOptions();
if (currentOptions && boardId && currentOptions[boardId]) {
this.moveAndCopyDialogOption = currentOptions[boardId];
if (this.moveAndCopyDialogOption.boardId) {
this.selectedBoardId.set(this.moveAndCopyDialogOption.boardId)
}
}
subManager.subscribe('board', this.selectedBoardId.get(), false);
},
/** returns if the board id was the last confirmed one
@@ -903,27 +906,26 @@ BlazeComponent.extendComponent({
return [
{
'click .js-done'() {
const bSelect = this.$('.js-select-boards')[0];
const boardId = bSelect.options[bSelect.selectedIndex].value;
const boardSelect = this.$('.js-select-boards')[0];
const boardId = boardSelect.options[boardSelect.selectedIndex].value;
const lSelect = this.$('.js-select-lists')[0];
const listId = lSelect.options[lSelect.selectedIndex].value;
const listSelect = this.$('.js-select-lists')[0];
const listId = listSelect.options[listSelect.selectedIndex].value;
const slSelect = this.$('.js-select-swimlanes')[0];
const swimlaneId = slSelect.options[slSelect.selectedIndex].value;
const swimlaneSelect = this.$('.js-select-swimlanes')[0];
const swimlaneId = swimlaneSelect.options[swimlaneSelect.selectedIndex].value;
const options = {
'boardId' : boardId,
'swimlaneId' : swimlaneId,
'listId' : listId,
}
Meteor.user().setMoveAndCopyDialogOption(boardId, options);
Meteor.user().setMoveAndCopyDialogOption(this.currentBoardId, options);
},
'change .js-select-boards'(event) {
const boardId = $(event.currentTarget).val();
this.selectedBoardId.set(boardId);
this.setMoveAndCopyDialogOption(boardId);
subManager.subscribe('board', this.selectedBoardId.get(), false);
subManager.subscribe('board', boardId, false);
},
},
];
+2 -2
View File
@@ -92,7 +92,7 @@ avatar-radius = 50%
overflow-x: hidden
background: darken(white, 3%)
border-radius: bottom 3px
z-index: 20 !important
z-index: 20
animation: flexGrowIn 0.1s
box-shadow: 0 0 7px 0 darken(white, 30%)
transition: flex-basis 0.1s
@@ -257,7 +257,7 @@ avatar-radius = 50%
overflow-x: scroll
background: darken(white, 3%)
border-radius: bottom 3px
z-index: 1000 !important
z-index: 100
animation: flexGrowIn 0.1s
box-shadow: 0 0 7px 0 darken(white, 30%)
transition: flex-basis 0.1s
+56 -22
View File
@@ -92,7 +92,8 @@ BlazeComponent.extendComponent({
const title = textarea.value.trim();
let cardId = this.currentData().cardId;
const card = Cards.findOne(cardId);
if (card.isLinked()) cardId = card.linkedId;
//if (card.isLinked()) cardId = card.linkedId;
if (card.isLinkedCard()) cardId = card.linkedId;
if (title) {
Checklists.insert({
@@ -379,16 +380,11 @@ BlazeComponent.extendComponent({
BlazeComponent.extendComponent({
onCreated() {
const boardId = Utils.getCurrentBoardId();
subManager.subscribe('board', boardId, false);
// subManager.subscribe('swimlane', swimlaneId, false);
// subManager.subscribe('list', listId, false);
// subManager.subscribe('card', cardId, false);
this.selectedBoardId = new ReactiveVar(boardId);
this.currentBoardId = Utils.getCurrentBoardId();
this.selectedBoardId = new ReactiveVar(this.currentBoardId);
this.selectedSwimlaneId = new ReactiveVar('');
this.selectedListId = new ReactiveVar('');
this.selectedCardId = new ReactiveVar('');
this.setMoveChecklistDialogOption(boardId);
this.setMoveChecklistDialogOption(this.currentBoardId);
},
/** set the last confirmed dialog field values
@@ -405,20 +401,39 @@ BlazeComponent.extendComponent({
let currentOptions = Meteor.user().getMoveChecklistDialogOptions();
if (currentOptions && boardId && currentOptions[boardId]) {
this.moveChecklistDialogOption = currentOptions[boardId];
if (this.moveChecklistDialogOption.boardId &&
this.moveChecklistDialogOption.swimlaneId &&
this.moveChecklistDialogOption.listId
)
{
this.selectedBoardId.set(this.moveChecklistDialogOption.boardId)
this.selectedSwimlaneId.set(this.moveChecklistDialogOption.swimlaneId);
this.selectedListId.set(this.moveChecklistDialogOption.listId);
}
}
const board = Boards.findOne(boardId);
this.getBoardData(boardId);
if (!this.selectedSwimlaneId.get() || !Swimlanes.findOne({_id: this.selectedSwimlaneId.get(), boardId: this.selectedBoardId.get()})) {
this.setFirstSwimlaneId();
}
if (!this.selectedListId.get() || !Lists.findOne({_id: this.selectedListId.get(), boardId: this.selectedBoardId.get()})) {
this.setFirstListId();
}
},
/** sets the first swimlane id */
setFirstSwimlaneId() {
try {
const board = Boards.findOne(this.selectedBoardId.get());
const swimlaneId = board.swimlanes().fetch()[0]._id;
this.selectedSwimlaneId.set(swimlaneId);
} catch (e) {}
},
/** sets the first list id */
setFirstListId() {
try {
const listId = board.lists().fetch()[0];
const board = Boards.findOne(this.selectedBoardId.get());
const listId = board.lists().fetch()[0]._id;
this.selectedListId.set(listId);
} catch (e) {}
const cardId = Utils.getCurrentCardId();
this.selectedCardId.set(cardId);
},
/** returns if the board id was the last confirmed one
@@ -458,7 +473,7 @@ BlazeComponent.extendComponent({
},
boards() {
return Boards.find(
const ret = Boards.find(
{
archived: false,
'members.userId': Meteor.userId(),
@@ -468,16 +483,19 @@ BlazeComponent.extendComponent({
sort: { sort: 1 },
},
);
return ret;
},
swimlanes() {
const board = Boards.findOne(this.selectedBoardId.get());
return board.swimlanes();
const ret = board.swimlanes();
return ret;
},
lists() {
const board = Boards.findOne(this.selectedBoardId.get());
return board.lists();
const ret = board.lists();
return ret;
},
cards() {
@@ -486,6 +504,24 @@ BlazeComponent.extendComponent({
return ret;
},
/** get the board data from the server
* @param boardId get the board data of this board id
*/
getBoardData(boardId) {
const self = this;
Meteor.subscribe('board', boardId, false, {
onReady() {
self.selectedBoardId.set(boardId);
// reset swimlane id (for selection in cards())
self.setFirstSwimlaneId();
// reset list id (for selection in cards())
self.setFirstListId();
},
});
},
events() {
return [
{
@@ -508,15 +544,13 @@ BlazeComponent.extendComponent({
'listId' : listId,
'cardId': cardId,
}
Meteor.user().setMoveChecklistDialogOption(boardId, options);
Meteor.user().setMoveChecklistDialogOption(this.currentBoardId, options);
this.data().checklist.move(cardId);
Popup.back(2);
},
'change .js-select-boards'(event) {
const boardId = $(event.currentTarget).val();
subManager.subscribe('board', boardId, false);
this.setMoveChecklistDialogOption(boardId);
this.selectedBoardId.set(boardId);
this.getBoardData(boardId);
},
'change .js-select-swimlanes'(event) {
this.selectedSwimlaneId.set($(event.currentTarget).val());
+1 -1
View File
@@ -99,7 +99,7 @@
height: 28px
font-size: 12px
display: flex
z-index: 21
z-index: 1000
padding: 10px 0px
.allBoards
+1 -1
View File
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: "5.95"
appVersion: "5.97"
dependencies:
- condition: mongodb.enabled
name: mongodb
+1 -1
View File
@@ -14,7 +14,7 @@ serviceAccounts:
##
image:
repository: quay.io/wekan/wekan
tag: v5.95
tag: v5.97
pullPolicy: IfNotPresent
## Configuration for wekan component
+23 -23
View File
@@ -281,10 +281,10 @@
"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-popup": "Are you sure you want to delete the checklist?",
"checklistDeletePopup-title": "Delete Checklist?",
"confirm-checklist-delete-popup": "Wollen Sie diese Checkliste wirklich löschen?",
"checklistDeletePopup-title": "Checkliste löschen?",
"copy-card-link-to-clipboard": "Kopiere Link zur Karte in die Zwischenablage",
"copy-text-to-clipboard": "Copy text to clipboard",
"copy-text-to-clipboard": "Text in die Zwischenablage kopieren",
"linkCardPopup-title": "Karte verknüpfen",
"searchElementPopup-title": "Suche",
"copyCardPopup-title": "Karte kopieren",
@@ -942,8 +942,8 @@
"label-color-not-found": "Label-Farbe „%s“ nicht gefunden.",
"user-username-not-found": "Nutzername „%s“ nicht gefunden.",
"comment-not-found": "Keine Karte gefunden, die „%s“ in einem Kommentar enthält.",
"org-name-not-found": "Organization '%s' not found.",
"team-name-not-found": "Team '%s' not found.",
"org-name-not-found": "Organisation '%s' nicht gefunden",
"team-name-not-found": "Team '%s' nicht gefunden",
"globalSearch-title": "Alle Boards durchsuchen",
"no-cards-found": "Keine Karten gefunden",
"one-card-found": "Eine Karte gefunden",
@@ -972,9 +972,9 @@
"operator-comment": "Kommentar",
"operator-has": "hat",
"operator-limit": "Begrenzung",
"operator-debug": "debug",
"operator-org": "org",
"operator-team": "team",
"operator-debug": "Debug",
"operator-org": "Organisation",
"operator-team": "Team",
"predicate-archived": "archiviert",
"predicate-open": "offen",
"predicate-ended": "beendet",
@@ -996,15 +996,15 @@
"predicate-member": "Mitglied",
"predicate-public": "öffentlich",
"predicate-private": "privat",
"predicate-selector": "selector",
"predicate-projection": "projection",
"predicate-selector": "Auswahl",
"predicate-projection": "Projektion",
"operator-unknown-error": "„%s“ ist kein Operator",
"operator-number-expected": "Operator „__operator__“ erwartete eine Zahl, bekam aber „__value__“",
"operator-sort-invalid": "Sortierung „%s“ ist ungültig",
"operator-status-invalid": "„%s“ ist kein gültiger Status",
"operator-has-invalid": "%s ist keine gültige Prüfung auf Existenz",
"operator-limit-invalid": "%s ist keine gültige Begrenzung. Die Begrenzung sollte eine positive Ganzzahl sein.",
"operator-debug-invalid": "%s is not a valid debug predicate",
"operator-debug-invalid": "%sist kein gültiger Debug-Ausdruck",
"next-page": "Nächste Seite",
"previous-page": "Vorherige Seite",
"heading-notes": "Bemerkungen",
@@ -1022,8 +1022,8 @@
"globalSearch-instructions-operator-member": "`__operator_member__:<username>` – Karten, von denen *<username>* *Mitglied* ist",
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` – Karten, denen *<username>* *zugewiesen* ist",
"globalSearch-instructions-operator-creator": "`__operator_creator__:<username>` – Karten, die von *<username>* angelegt wurden",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - Karten gehören zu einem Board, dass der Organisation *<name>* zugewiesen ist",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - Karten gehören zu einem Board, dass Team *<name>* zugewiesen ist",
"globalSearch-instructions-operator-due": "`__operator_due__:<n>` – Karten, die spätestens in *<n>* Tagen fällig sind. `__operator_due__:__predicate_overdue__` zeigt alle Karten, für die die Fälligkeit überschritten ist.",
"globalSearch-instructions-operator-created": "`__operator_created__:<n>` – Karten, die vor maximal *<n>* Tagen angelegt wurden",
"globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` – Karten, die vor maximal *<n>* Tagen geändert wurden",
@@ -1070,8 +1070,8 @@
"orphanedFilesReportTitle": "Verwaister Datei-Bericht",
"reports": "Berichte",
"rulesReportTitle": "Regeln-Bericht",
"boardsReportTitle": "Boards Report",
"cardsReportTitle": "Cards Report",
"boardsReportTitle": "Board-Bericht",
"cardsReportTitle": "Karten-Bericht",
"copy-swimlane": "Kopiere Swimlane",
"copySwimlanePopup-title": "Swimlane kopieren",
"display-card-creator": "Karten-Ersteller anzeigen",
@@ -1134,12 +1134,12 @@
"add-organizations-label": "Added organizations are displayed below:",
"remove-organization-from-board": "Are you sure you want to remove this organization from this board ?",
"to-create-organizations-contact-admin": "To create organizations, please contact administrator.",
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"custom-legal-notice-link-url": "URL zu eigenem Impressum",
"acceptance_of_our_legalNotice": "Wenn Sie fortfahren, akzeptieren Sie unsere",
"legalNotice": "Impressum/Datenschutzerklärung",
"copied": "Kopiert!",
"checklistActionsPopup-title": "Checklistenaktionen",
"moveChecklist": "Checkliste verschieben",
"moveChecklistPopup-title": "Checkliste verschieben",
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag"
}
+4 -4
View File
@@ -1138,8 +1138,8 @@
"acceptance_of_our_legalNotice": "Wenn Sie fortfahren, akzeptieren Sie unsere",
"legalNotice": "Impressum/Datenschutzerklärung",
"copied": "Kopiert!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"checklistActionsPopup-title": "Listenaktionen",
"moveChecklist": "Checkliste bewegen",
"moveChecklistPopup-title": "Checkliste bewegen",
"newlineBecomesNewChecklistItem": "Neue Zeile wird neuer Checklisteneintrag"
}
+5 -5
View File
@@ -9,7 +9,7 @@
"act-removeLabel": "hat Label __label__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
"act-removedLabel": "hat Label __label__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
"act-addChecklist": "hat Checkliste __checklist__ zur Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
"act-addChecklistItem": "hat Checklistenposition __checklistItem__ zu Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
"act-addChecklistItem": "hat Checklistenelement __checklistItem__ zu Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ hinzugefügt",
"act-removeChecklist": "hat Checkliste __checklist__ von Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
"act-removeChecklistItem": "hat Checklistenposition __checklistItem__ von Checkliste __checkList__ auf der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ entfernt",
"act-checkedItem": "hat __checklistItem__ der Checkliste __checklist__ der Karte __card__ auf der Liste __list__ in Swimlane __swimlane__ in Board __board__ abgehakt",
@@ -1138,8 +1138,8 @@
"acceptance_of_our_legalNotice": "Durch das Einloggen akzeptieren Sie unser",
"legalNotice": "Impressum/Datenschutzerklärung",
"copied": "Kopiert!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"checklistActionsPopup-title": "Checklistenaktionen",
"moveChecklist": "Checkliste verschieben",
"moveChecklistPopup-title": "Checkliste verschieben",
"newlineBecomesNewChecklistItem": "Neue Zeile wird ein neues Checklistenelement"
}
+2 -2
View File
@@ -766,7 +766,7 @@
"r-unarchive": "Biltegitik berreskuratu",
"r-card": "txartela",
"r-add": "Gehitu",
"r-remove": "Remove",
"r-remove": "Kendu",
"r-label": "label",
"r-member": "member",
"r-remove-all": "Kendu txarteleko kide guztiak",
@@ -1109,7 +1109,7 @@
"add-teams-label": "Added teams are displayed below:",
"remove-team-from-table": "Are you sure you want to remove this team from the board ?",
"confirm-btn": "Confirm",
"remove-btn": "Remove",
"remove-btn": "Kendu",
"filter-card-title-label": "Iragazi txartelaren tituluaren arabera",
"invite-people-success": "Invitation to register sent with success",
"invite-people-error": "Error while sending invitation to register",
+6 -6
View File
@@ -1022,8 +1022,8 @@
"globalSearch-instructions-operator-member": "`__operator_member__:<nom>` - cartes pour lesquelles l'utilisateur *<nom>* est *participant*",
"globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *assignées* à l'utilisateur *<nom>*",
"globalSearch-instructions-operator-creator": "`__operator_creator__:<utilisateur>` - cartes dont le créateur est *<utilisateur>*",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cards belonging to a board assigned to organization *<name>*",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cards belonging to a board assigned to team *<name>*",
"globalSearch-instructions-operator-org": "`__operator_org__:<display name|short name>` - cartes appartenant à un tableau assigné à l'organisation *<name>*",
"globalSearch-instructions-operator-team": "`__operator_team__:<display name|short name>` - cartes appartenant à un tableau assigné à l'équipe *<name>*",
"globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cartes qui arrive à échéance dans moins de *<n>* jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.",
"globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cartes qui ont été créées il y a *<n>* jours ou moins",
"globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cartes qui ont été modifiées il y a *<n>* jours ou moins",
@@ -1138,8 +1138,8 @@
"acceptance_of_our_legalNotice": "En continuant, vous acceptez nos",
"legalNotice": "mentions légales",
"copied": "Copié !",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"checklistActionsPopup-title": "Actions sur la checklist",
"moveChecklist": "Déplacer la checklist",
"moveChecklistPopup-title": "Déplacer la checklist",
"newlineBecomesNewChecklistItem": "Chaque retour à la ligne produit un nouvel élément de checklist"
}
+4 -4
View File
@@ -1138,8 +1138,8 @@
"acceptance_of_our_legalNotice": "בחירה להמשיך היא למעשה הסכמה ל",
"legalNotice": "הצהרה המשפטית שלנו",
"copied": "הועתק!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"checklistActionsPopup-title": "פעולות על רשימת מטלות",
"moveChecklist": "העברת רשימת מטלות",
"moveChecklistPopup-title": "העברת רשימת מטלות",
"newlineBecomesNewChecklistItem": "שורה חדשה הופכת לפריט חדש ברשימת המטלות"
}
+33 -33
View File
@@ -89,7 +89,7 @@
"add-subtask": "Aggiungi sotto-compito",
"add-checklist": "Aggiungi Checklist",
"add-checklist-item": "Aggiungi un elemento alla checklist",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"convertChecklistItemToCardPopup-title": "Trasforma in Scheda",
"add-cover": "Aggiungi copertina",
"add-label": "Aggiungi etichetta",
"add-list": "Aggiungi lista",
@@ -107,7 +107,7 @@
"and-n-other-card_plural": "E __count__ altre schede",
"apply": "Applica",
"app-is-offline": "Caricamento, attendere prego. Aggiornare la pagina porterà ad una perdita dei dati. Se il caricamento non dovesse funzionare, per favore controlla che il server non sia stato fermato.",
"app-try-reconnect": "Try to reconnect.",
"app-try-reconnect": "Prova a ricollegarti",
"archive": "Sposta nell'archivio",
"archive-all": "Sposta tutto nell'archivio",
"archive-board": "Sposta la bacheca nell'archivio",
@@ -273,18 +273,18 @@
"comment-placeholder": "Scrivi un commento...",
"comment-only": "Solo commenti",
"comment-only-desc": "Puoi commentare solo le schede.",
"comment-delete": "Are you sure you want to delete the comment?",
"deleteCommentPopup-title": "Delete comment?",
"comment-delete": "Sei sicuro di voler cancellare il commento?",
"deleteCommentPopup-title": "Cancello il commento?",
"no-comments": "Non ci sono commenti.",
"no-comments-desc": "Impossibile visualizzare commenti o attività.",
"worker": "Lavoratore",
"worker-desc": "Può solo spostare schede, assegnarsi una scheda e commentare.",
"computer": "Computer",
"confirm-subtask-delete-dialog": "Sei sicuro di voler eliminare il sotto-compito?",
"confirm-checklist-delete-popup": "Are you sure you want to delete the checklist?",
"checklistDeletePopup-title": "Delete Checklist?",
"confirm-checklist-delete-popup": "Sicuro di voler cancellare la checklist?",
"checklistDeletePopup-title": "Cancello la checklist?",
"copy-card-link-to-clipboard": "Copia link della scheda negli appunti",
"copy-text-to-clipboard": "Copy text to clipboard",
"copy-text-to-clipboard": "Copia il testo negli appunti",
"linkCardPopup-title": "Collega scheda",
"searchElementPopup-title": "Cerca",
"copyCardPopup-title": "Copia scheda",
@@ -372,14 +372,14 @@
"export-board-excel": "Esporta bacheca in Excel",
"user-can-not-export-excel": "L'utente non può effettuare l'esportazione in Excel",
"export-board-html": "Esporta bacheca in HTML",
"export-card": "Export card",
"export-card-pdf": "Export card to PDF",
"user-can-not-export-card-to-pdf": "User can not export card to PDF",
"export-card": "Esporta la scheda",
"export-card-pdf": "Esporta la scheda in PDF",
"user-can-not-export-card-to-pdf": "L'utente non può esportare la scheda in PDF",
"exportBoardPopup-title": "Esporta bacheca",
"exportCardPopup-title": "Export card",
"exportCardPopup-title": "Esporta la scheda",
"sort": "Ordina",
"sorted": "Sorted",
"remove-sort": "Remove sort",
"sorted": "Ordinate",
"remove-sort": "Rimuovi l'ordinamento",
"sort-desc": "Clicca per ordinare la lista",
"list-sort-by": "Ordina lista per:",
"list-label-modifiedAt": "Orario ultimo accesso",
@@ -669,8 +669,8 @@
"accounts": "Profili",
"accounts-allowEmailChange": "Permetti modifica dell'email",
"accounts-allowUserNameChange": "Consenti la modifica del nome utente",
"tableVisibilityMode-allowPrivateOnly": "Boards visibility: Allow private boards only",
"tableVisibilityMode": "Boards visibility",
"tableVisibilityMode-allowPrivateOnly": "Visibilità bacheche: Consenti solo le bacheche private",
"tableVisibilityMode": "Visibilità bacheche",
"createdAt": "Creato alle",
"modifiedAt": "Modificato il",
"verified": "Verificato",
@@ -687,7 +687,7 @@
"setListColorPopup-title": "Scegli un colore",
"assigned-by": "Assegnato da",
"requested-by": "Richiesto da",
"card-sorting-by-number": "Card sorting by number",
"card-sorting-by-number": "Ordinamento scheda per numero",
"board-delete-notice": "L'eliminazione è permanente. Tutte le azioni, liste e schede associate a questa bacheca andranno perse.",
"delete-board-confirm-popup": "Tutte le liste, schede, etichette e azioni saranno rimosse e non sarai più in grado di recuperare il contenuto della bacheca. L'azione non è annullabile.",
"boardDeletePopup-title": "Eliminare la bacheca?",
@@ -942,7 +942,7 @@
"label-color-not-found": "Colore etichetta %s non trovato.",
"user-username-not-found": "Username '%s' non trovato.",
"comment-not-found": "Schede con commenti contenenti il testo '%s' non trovate.",
"org-name-not-found": "Organization '%s' not found.",
"org-name-not-found": "Organizzazione '%s' non trovata",
"team-name-not-found": "Team '%s' not found.",
"globalSearch-title": "Cerca in tutte le bacheche",
"no-cards-found": "Nessuna scheda trovata",
@@ -997,7 +997,7 @@
"predicate-public": "pubblico",
"predicate-private": "privato",
"predicate-selector": "selector",
"predicate-projection": "projection",
"predicate-projection": "proiezione",
"operator-unknown-error": "%s non è un operatore",
"operator-number-expected": "l'operatore __operator__ prevede un numero, invece è stato fornito '__value__'",
"operator-sort-invalid": "L'ordinamento di '%s' non è valido",
@@ -1086,11 +1086,11 @@
"Wave": "Wave Wait Spinner",
"maximize-card": "Maximize Card",
"minimize-card": "Minimize Card",
"delete-org-warning-message": "Can not delete this organization, there is at least one user that belongs to it",
"delete-org-warning-message": "Non posso cancellare questa organizzazione: c'è almeno un utente che gli appartiene",
"delete-team-warning-message": "Can not delete this team, there is at least one user that belongs to it",
"subject": "Subject",
"subject": "Soggetto",
"details": "Details",
"carbon-copy": "Carbon Copy (Cc:)",
"carbon-copy": "Copia Conoscenza (Cc:)",
"ticket": "Ticket",
"tickets": "Tickets",
"ticket-number": "Ticket Number",
@@ -1128,18 +1128,18 @@
"Node_heap_number_of_detached_contexts": "Node heap: number of detached contexts",
"Node_memory_usage_rss": "Node memory usage: resident set size",
"Node_memory_usage_heap_total": "Node memory usage: total size of the allocated heap",
"Node_memory_usage_heap_used": "Node memory usage: actual memory used",
"Node_memory_usage_external": "Node memory usage: external",
"add-organizations": "Add organizations",
"add-organizations-label": "Added organizations are displayed below:",
"Node_memory_usage_heap_used": "Utilizzo memoria del nodo: memoria effettivamente usata",
"Node_memory_usage_external": "Uttilizzo memoria del nodo: esterna",
"add-organizations": "Aggiunta organizzazioni",
"add-organizations-label": "Le organizzazioni aggiunte sono mostrate sotto:",
"remove-organization-from-board": "Are you sure you want to remove this organization from this board ?",
"to-create-organizations-contact-admin": "To create organizations, please contact administrator.",
"to-create-organizations-contact-admin": "Per creare organizzazioni, cortesemente contattare l'amministratore.",
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"acceptance_of_our_legalNotice": "Continuando, accetti il nostro",
"legalNotice": "Informazioni legali",
"copied": "Copiato!",
"checklistActionsPopup-title": "Azioni Checklist",
"moveChecklist": "Sposta Checklist",
"moveChecklistPopup-title": "Sposta Checklist",
"newlineBecomesNewChecklistItem": "Nuove linee diventano elementi della checklist"
}
+4 -4
View File
@@ -1138,8 +1138,8 @@
"acceptance_of_our_legalNotice": "Als u doorgaat accepteert u onze ",
"legalNotice": "juridische disclaimer tekst",
"copied": "Gekopieerd!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"checklistActionsPopup-title": "Checklist Acties",
"moveChecklist": "Verplaats Checklist",
"moveChecklistPopup-title": "Verplaats Checklist",
"newlineBecomesNewChecklistItem": "Nieuwe regel wordt nieuw checklist item"
}
+4 -4
View File
@@ -1138,8 +1138,8 @@
"acceptance_of_our_legalNotice": "继续,即意味着您已同意接受相关声明条款约束",
"legalNotice": "法律声明",
"copied": "已复制!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
"checklistActionsPopup-title": "清单操作",
"moveChecklist": "移动待办清单",
"moveChecklistPopup-title": "移动待办清单",
"newlineBecomesNewChecklistItem": "可换行来新增一个待办清单项"
}
+5
View File
@@ -721,6 +721,11 @@ Cards.helpers({
{ cardId: this.linkedId },
{ sort: { createdAt: -1 } },
);
} else if (this.isLinkedBoard()) {
return CardComments.find(
{ boardId: this.linkedId },
{ sort: { createdAt: -1 } },
);
} else {
return CardComments.find(
{ cardId: this._id },
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.95.0",
"version": "v5.97.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.95.0",
"version": "v5.97.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
+3 -3
View File
@@ -7,7 +7,7 @@
<meta charset="utf-8">
<meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>Wekan REST API v5.95</title>
<title>Wekan REST API v5.97</title>
<style>
</style>
@@ -1557,7 +1557,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 v5.95">Wekan REST API v5.95</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.97">Wekan REST API v5.97</a>
</li>
@@ -2140,7 +2140,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 v5.95</h1>
<h1 id="wekan-rest-api">Wekan REST API v5.97</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 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v5.95
version: v5.97
description: |
The REST API allows you to control and extend Wekan with ease.
+1 -1
View File
@@ -195,7 +195,7 @@
# OAUTH2 ID Token Whitelist Fields.
#export OAUTH2_ID_TOKEN_WHITELIST_FIELDS=[]
# OAUTH2 Request Permissions.
#export OAUTH2_REQUEST_PERMISSIONS='openid profile email'
#export OAUTH2_REQUEST_PERMISSIONS=openid profile email
# OAuth2 ID Mapping
#export OAUTH2_ID_MAP=
# OAuth2 Username Mapping
+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 = 595,
appVersion = 597,
# Increment this for every release.
appMarketingVersion = (defaultText = "5.95.0~2022-01-18"),
appMarketingVersion = (defaultText = "5.97.0~2022-01-23"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+8
View File
@@ -229,6 +229,8 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
// Gather queries and send in bulk
const cardComments = this.join(CardComments);
cardComments.selector = _ids => ({ cardId: _ids });
const cardCommentsLinkedBoard = this.join(CardComments);
cardCommentsLinkedBoard.selector = _ids => ({ boardId: _ids });
const cardCommentReactions = this.join(CardCommentReactions);
cardCommentReactions.selector = _ids => ({ cardId: _ids });
const attachments = this.join(Attachments);
@@ -242,6 +244,8 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
const boards = this.join(Boards);
const subCards = this.join(Cards);
subCards.selector = _ids => ({ _id: _ids, archived: isArchived });
const linkedBoardCards = this.join(Cards);
linkedBoardCards.selector = _ids => ({ boardId: _ids });
this.cursor(
Cards.find({
@@ -258,6 +262,8 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
checklistItems.push(impCardId);
} else if (card.type === 'cardType-linkedBoard') {
boards.push(card.linkedId);
linkedBoardCards.push(card.linkedId);
cardCommentsLinkedBoard.push(card.linkedId);
}
cardComments.push(cardId);
attachments.push(cardId);
@@ -277,6 +283,8 @@ Meteor.publishRelations('board', function(boardId, isArchived) {
checklistItems.send();
boards.send();
parentCards.send();
linkedBoardCards.send();
cardCommentsLinkedBoard.send();
if (board.members) {
// Board members. This publication also includes former board members that
+1 -1
View File
@@ -1,5 +1,5 @@
name: wekan
version: '5.95'
version: '5.97'
summary: Open Source kanban
description: |
WeKan ® is an Open Source and collaborative kanban board application.
+1 -1
View File
@@ -170,7 +170,7 @@ REM # OAUTH2 ID Token Whitelist Fields.
REM SET OAUTH2_ID_TOKEN_WHITELIST_FIELDS=[]
REM # OAUTH2 Request Permissions.
REM SET OAUTH2_REQUEST_PERMISSIONS='openid profile email'
REM SET OAUTH2_REQUEST_PERMISSIONS=openid profile email
REM # OAuth2 ID Mapping
REM SET OAUTH2_ID_MAP=
+1 -1
View File
@@ -221,7 +221,7 @@
#export OAUTH2_ID_TOKEN_WHITELIST_FIELDS=[]
#
# OAUTH2 Request Permissions.
#export OAUTH2_REQUEST_PERMISSIONS='openid profile email'
#export OAUTH2_REQUEST_PERMISSIONS=openid profile email
#
# OAuth2 ID Mapping
#export OAUTH2_ID_MAP=