Compare commits

...
53 Commits
Author SHA1 Message Date
Lauri Ojansivu 8c8fba3c6c v5.95 2022-01-18 03:05:12 +02:00
Lauri Ojansivu a176a58a72 Use different OS for WeKan releases. 2022-01-18 03:00:28 +02:00
Lauri Ojansivu 1db3d9a081 Updated translations. 2022-01-18 02:53:32 +02:00
Lauri Ojansivu 8020aa4b81 Updated ChangeLog. 2022-01-18 01:28:18 +02:00
Lauri Ojansivu bbef2aff8c Merge pull request #4300 from mfilser/custom_field_stringtemplates_fix_ctrl_enter_desktop_view
Custom Field StringTemplates didn't save the last input value on desktop view after pressing Ctrl+Enter
2022-01-18 01:26:45 +02:00
Martin Filser 7e1755c89f Custom Field StringTemplates didn't save the last input value on desktop view after pressing Ctrl+Enter 2022-01-18 00:21:57 +01:00
Lauri Ojansivu 66a4562c91 Updated translations. 2022-01-18 01:21:35 +02:00
Lauri Ojansivu 6ad4e78fa8 Updated ChangeLog. 2022-01-18 01:21:12 +02:00
Lauri Ojansivu 6a92a95414 Merge pull request #4299 from mfilser/checklist_add_progress_bar
Add progress bar to checklist
2022-01-18 01:20:00 +02:00
Martin Filser 1fcc0d2ec2 Only show progress bar percent if there is any checklist item done 2022-01-18 00:16:19 +01:00
Martin Filser e7051c8ecd Smaller progress bar 2022-01-18 00:16:19 +01:00
Martin Filser 1670ba31e8 Changed progress bar layout 2022-01-18 00:16:19 +01:00
Martin Filser ac1f540763 Added progress bar to checklist
- Relates #1847
2022-01-18 00:16:19 +01:00
Lauri Ojansivu 61dd3180a4 Updated ChangeLog. 2022-01-18 01:15:39 +02:00
Lauri Ojansivu 930333d546 Merge branch 'master' of github.com:wekan/wekan 2022-01-18 01:14:45 +02:00
Lauri Ojansivu 2967d13968 Updated translations. 2022-01-18 01:14:33 +02:00
Lauri Ojansivu 56be68fcb7 Merge pull request #4298 from mfilser/add_checklist_item-each_line_becomes_new_item
Add checklist item - each line becomes new item
2022-01-18 01:14:19 +02:00
Martin Filser dbb9ddd7d3 Show "newlineBecomesNewChecklistItem" element only at new checklist items
- before it was shown at new checklists too
2022-01-18 00:09:19 +01:00
Martin Filser 879ab282e1 Adding some space between save button and the next div element 2022-01-18 00:09:19 +01:00
Martin Filser d9a7950fa4 Center all elements of checklist-item form
- before the save button, X and slider element had a strange layout. The
  save button was at the bottom, the X and slider at the top of the flex
  layout
2022-01-18 00:09:19 +01:00
Martin Filser 18e34b7f79 Add checklist item, added newline becomes new checklist item
- Related to #1846
2022-01-18 00:09:19 +01:00
Lauri Ojansivu 4abb26f8bc Updated ChangeLog. 2022-01-18 01:03:52 +02:00
Lauri Ojansivu cd6b4529be Merge pull request #4297 from mfilser/checklist_action_menu_and_move_checklist
Added "move checklist" and created a "Checklist Action Menu"
2022-01-18 01:02:08 +02:00
Lauri Ojansivu 6234fdff18 Updated ChangeLog. 2022-01-18 01:00:40 +02:00
Lauri Ojansivu d4c3f32383 Updated WeKan s390x bundle build script.
Thanks to xet7 !
2022-01-18 00:59:12 +02:00
Martin Filser a72d51d901 Checklist Action-Menu easier clickable
- especially useful at mobile devices
2022-01-17 23:38:21 +01:00
Martin Filser a66257ec21 Added "Move Checklist" to checklist menu action 2022-01-17 23:38:21 +01:00
Martin Filser 395452b54f Added spaces to delete checklist menu action 2022-01-17 23:38:21 +01:00
Martin Filser e40e42103e Delete checklist moved to checklist menu action 2022-01-17 23:38:21 +01:00
Martin Filser 7651c00d57 Add actions menu to checklist 2022-01-17 23:38:21 +01:00
Lauri Ojansivu 764dbb71f0 Updated ChangeLog. 2022-01-18 00:35:56 +02:00
Lauri Ojansivu 83ce43ac52 Merge pull request #4296 from mfilser/move_copy_card_remembers_the_last_confirmed_field_values
Move copy card remembers the last confirmed field values
2022-01-18 00:33:33 +02:00
Martin Filser e528474fc5 Move and Copy Card Popup remembers the last confirmed field values 2022-01-17 23:20:44 +01:00
Martin Filser 73ff4c7966 Use card id from component instead of global state
- was a TODO in the comments
2022-01-17 23:20:44 +01:00
Lauri Ojansivu 01d8058a3f Updated translations. 2022-01-17 18:02:08 +02:00
Lauri Ojansivu b69f08889a Updated ChangeLog. 2022-01-17 17:54:25 +02:00
Lauri Ojansivu edf3573760 Merge pull request #4295 from xeruf/patch-1
Update ISSUE_TEMPLATE.md
2022-01-17 17:51:49 +02:00
Janek 021def818f Update ISSUE_TEMPLATE.md
Use comments and rephrase
2022-01-17 15:45:19 +01:00
Lauri Ojansivu f519d277a5 v5.94 2022-01-16 21:49:48 +02:00
Lauri Ojansivu 218ddf03bc Fix Card, List and Comment colors not visible at some themes.
Thanks to Meeques, Go-rom and xet7 !

Fixes #4254,
fixes #4293
2022-01-16 21:41:49 +02:00
Lauri Ojansivu 31c7539eb9 Updated translations. 2022-01-16 20:27:26 +02:00
Lauri Ojansivu eb8d9955d5 Updated translations. 2022-01-16 19:17:15 +02:00
Lauri Ojansivu 7bcaf71bf0 Updated translations. 2022-01-16 19:13:23 +02:00
Lauri Ojansivu 7afc4638d2 Updated ChangeLog. 2022-01-16 14:27:55 +02:00
Lauri Ojansivu c9b7542a9b Merge branch 'mfilser-card_title_copy_button' 2022-01-16 14:26:15 +02:00
Martin Filser c59c7bd63d Removed unnecessary CSS code of copied tooltip 2022-01-15 18:52:07 +01:00
Martin Filser 574116b058 Reduced height of Copied! tooltip at title copy button 2022-01-15 18:52:06 +01:00
Martin Filser dbcc919768 Added copy button to card title 2022-01-15 18:18:11 +01:00
Lauri Ojansivu bf37737f44 Updated changelog. 2022-01-14 03:56:08 +02:00
Lauri Ojansivu 187b31caa5 v5.93 2022-01-14 02:47:09 +02:00
Lauri Ojansivu f75ab964be Part 2: Try to fix Sandstorm WeKan package.
Thanks to xet7 !

Related https://github.com/wekan/wekan/issues/4280,
related https://github.com/sandstorm-io/sandstorm/issues/3600
2022-01-14 02:42:49 +02:00
Lauri Ojansivu bff43c3f92 Try to fix Sandstorm WeKan package.
Thanks to xet7 !

Related https://github.com/wekan/wekan/issues/4280,
related https://github.com/sandstorm-io/sandstorm/issues/3600
2022-01-14 02:35:39 +02:00
Lauri Ojansivu fb3099eba9 Updated ChangeLog. 2022-01-13 23:58:09 +02:00
98 changed files with 2288 additions and 1248 deletions

No files matched your search

+23 -25
View File
@@ -1,37 +1,35 @@
## Issue
<!--
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to the newest WeKan ® before reporting an issue.
Please search existing Open and Closed issues, most questions have already been answered.
**[PLEASE UPGRADE](https://github.com/wekan/wekan/wiki/Backup)** to newest WeKan ® before adding new issue !!
- We get too many duplicate reports of already fixed bugs. Newest WeKan ® has newest bugfixes and security fixes.
- Please search existing Open and Closed issues, most questions have already been answered many times.
If you can not login for any reason: https://github.com/wekan/wekan/wiki/Forgot-Password
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use: https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
If you can not login for any reason:
- https://github.com/wekan/wekan/wiki/Forgot-Password
Email settings, only SMTP MAIL_URL and MAIL_FROM are in use:
- https://github.com/wekan/wekan/wiki/Troubleshooting-Mail
Add these issues to elsewhere:
The following types of issues should be reported separately:
- SECURITY ISSUES: https://github.com/wekan/wekan/blob/master/SECURITY.md
- UCS: https://github.com/wekan/univention/issues
-->
Other Wekan issues can be added here.
**Server Setup Information**:
* Note: Please anonymize info, and do not add to this public issue any of your Wekan board URLs, passwords, API tokens etc, do you understand?:
### Server Setup Information
<!-- Please anonymize info, and do not any of your Wekan board URLs, passwords, API tokens etc to this public issue. -->
* Did you test in newest Wekan?:
* For new Wekan install, did you configure root-url correctly so Wekan cards open correctly https://github.com/wekan/wekan/wiki/Settings ?
* Did you configure root-url correctly so Wekan cards open correctly (see https://github.com/wekan/wekan/wiki/Settings)?
* Operating System:
* Deployment Method(Snap/Docker/Sandstorm/bundle/source):
* Deployment Method (Snap/Docker/Sandstorm/bundle/source):
* Http frontend if any (Caddy, Nginx, Apache, see config examples from Wekan GitHub wiki first):
* Node.js Version:
* MongoDB Version:
* Wekan works on newest desktop and mobile webbrowsers that support Javascript. What webbrowser version are you using?
* What webbrowser version are you using (Wekan should work on all modern browsers that support Javascript)?
**Problem description**:
- *REQUIRED: Add recorded animated gif about how it works currently, and screenshot mockups how it should work. Use peek to record animgif in Linux https://github.com/phw/peek*
- *Explain steps how to reproduce*
- *In webbrowser, what does show Right Click / Inspect / Console ? Chrome shows more detailed info than Firefox.*
- *If using Snap, what does show command `sudo snap logs wekan.wekan` ? Please anonymize logs.*
- *If using Docker, what does show command `sudo docker logs wekan-app` ? Please anonymize logs.*
- *If logs are very long, attach them in .zip file*
### Problem description
<!-- Add a recorded animated gif (e.g. with https://github.com/phw/peek) about how it works currently, and screenshot mockups how it should work. -->
#### Reproduction Steps
#### Logs
<!-- Check Right Click>Inspect>Console in you browser - generally Chrome shows more detailed info than Firefox. -->
<!-- Please anonymize logs.
Snap: sudo snap logs wekan.wekan
Docker: sudo docker logs wekan-app
If logs are very long, attach them in .zip file -->
+55 -1
View File
@@ -1,5 +1,59 @@
[Mac ChangeLog](https://github.com/wekan/wekan/wiki/Mac)
# v5.95 2022-01-18 WeKan ® release
This release adds the following new features:
- [Move copy card remembers the last confirmed field values](https://github.com/wekan/wekan/pull/4296).
Thanks to mfilser.
- [Added "move checklist" and created a "Checklist Action Menu"](https://github.com/wekan/wekan/pull/4297).
Thanks to mfilser.
- [Add checklist item - each line becomes new item](https://github.com/wekan/wekan/pull/4298).
Thanks to mfilser.
- [Add progress bar to checklist](https://github.com/wekan/wekan/pull/4299).
Thanks to mfilser.
and adds the following updates:
- [Update ISSUE_TEMPLATE.md: Use comments and rephrase](https://github.com/wekan/wekan/pull/4295).
Thanks to xeruf.
- [Updated WeKan s390x bundle build script](https://github.com/wekan/wekan/commit/d4c3f323830e4692aac0f1d0faa413302087303b).
Thanks to xet7.
- [Use different distro for building WeKan releases](https://github.com/wekan/wekan/commit/a176a58a728ffc2bb410b3e8a0036fee25f0b0bd).
Thanks to xet7.
and fixes the following bugs:
- [Custom Field StringTemplates didn't save the last input value on desktop view after pressing Ctrl+Enter](https://github.com/wekan/wekan/pull/4300).
Thanks to mfilser.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.94 2022-01-16 WeKan ® release
This release adds the following new features:
- [Added copy button to card title](https://github.com/wekan/wekan/pull/4291).
Thanks to mfilser.
and fixes the following bugs:
- [Fix Card, List and Comment colors not visible at some themes](https://github.com/wekan/wekan/commit/218ddf03bc109b954d1fe741d1aa533467b51a4d).
Thanks to Meeques, Go-rom and xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.93 2022-01-14 WeKan ® release
This release tries to fix the following bugs:
- Try to fix Sandstorm WeKan package. This did not fix it. Do not try broken experimental Sandstorm WeKan versions yet.
[Part 1](https://github.com/wekan/wekan/commit/bff43c3f9252e3133acedb9ccf4fb4f91d1c908d),
[Part 2](https://github.com/wekan/wekan/commit/f75ab964be784bf7f6accb3ab0085f623196d811).
Thanks to xet7.
Thanks to above GitHub users for their contributions and translators for their translations.
# v5.92 2022-01-13 WeKan ® release
This release adds the following CRITICAL SECURITY UPDATES:
@@ -11,7 +65,7 @@ and adds the following new translations:
- Added translations: Estonian (Estonia) et_EE, Russian (Ukraine) ru_UA, Ukrainian (Ukraine) uk_UA.
[Part 1](https://github.com/wekan/wekan/commit/ac85e00e0a99574499786ddf97823dcf2802a47f),
[Part 1](https://github.com/wekan/wekan/commit/30131ffc20173d222cb02b283f38a8c0d6a28ccc).
[Part 2](https://github.com/wekan/wekan/commit/30131ffc20173d222cb02b283f38a8c0d6a28ccc).
Thanks to translators.
and fixes the following bugs:
+1 -1
View File
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
appVersion: "v5.92.0"
appVersion: "v5.95.0"
files:
userUploads:
- README.md
+16 -9
View File
@@ -186,9 +186,10 @@ setBoardColor(color)
.list >.list-header, .swimlane-header
color:rgba(255,255,255,.7)
/* minicards */
/* minicards
.minicard
background-color:rgba(255,255,255,.4)
*/
.minicard-wrapper.is-selected .minicard,
.minicard:hover,
@@ -197,8 +198,10 @@ setBoardColor(color)
background-color:rgba(255,255,255,.8) !important
color:#000
/*
.minicard, .minicard .badge
color:#fff
*/
.minicard:hover .badge, .minicard-wrapper.is-selected .badge
color:#000
@@ -214,6 +217,10 @@ setBoardColor(color)
.sidebar-content h3, .sidebar-content h2, .sidebar-content
color:rgba(255,255,255,.7) !important
.card-details .activities .activity .activity-desc .activity-comment
background-color: #cccccc
color: #222222
.board-color-relax
setBoardColor(#27AE61)
@@ -225,7 +232,7 @@ setBoardColor(color)
.list-header
background-color:#a7e366
border-bottom: 6px solid #a7e366
// border-bottom: 6px solid #a7e366
.list-body
background-color:#a7e366
@@ -541,8 +548,8 @@ setBoardClear(color1,color2)
background-color:#dedede
.list-header
background-color: #c9cfc3
border-bottom: 6px solid #c9cfc3
// background-color: #c9cfc3
// border-bottom: 6px solid #c9cfc3
.swimlane .swimlane-header-wrap
background-color: #c2c0ab
@@ -645,7 +652,7 @@ setBoardClear(color1,color2)
.list-header
background: none
border-bottom-width: 0px
// border-bottom-width: 0px
.list-header .list-header-name
font-family: Poppins
@@ -861,9 +868,9 @@ setBoardClear(color1,color2)
background: #3b3b3b
.list-header
background: #333333
// background: #333333
padding: 10px
border-bottom: 0
// border-bottom: 0
.list-header .viewer
padding-left: 10px
@@ -912,8 +919,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
+4 -3
View File
@@ -279,9 +279,7 @@ CardCustomField.register('cardCustomField');
if (event.keyCode === 13) {
event.preventDefault();
if (event.metaKey || event.ctrlKey) {
this.find('button[type=submit]').click();
} else if (event.target.value.trim()) {
if (event.target.value.trim() || event.metaKey || event.ctrlKey) {
const inputLast = this.find('input.last');
let items = this.getItems();
@@ -307,6 +305,9 @@ CardCustomField.register('cardCustomField');
this.stringtemplateItems.set(items);
}
if (event.metaKey || event.ctrlKey) {
this.find('button[type=submit]').click();
}
}
},
+5 -3
View File
@@ -576,6 +576,8 @@ template(name="cardDetails")
+activities(card=this mode="card")
template(name="editCardTitleForm")
a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
span.copied-tooltip {{_ 'copied'}}
textarea.js-edit-card-title(rows='1' autofocus dir="auto")
= getTitle
.edit-controls.clearfix
@@ -723,17 +725,17 @@ template(name="boardsAndLists")
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}") {{title}}
option(value="{{_id}}" selected="{{#if isMoveAndCopyDialogOptionBoardId _id}}selected{{/if}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
each swimlanes
option(value="{{_id}}") {{title}}
option(value="{{_id}}" selected="{{#if isMoveAndCopyDialogOptionSwimlaneId _id}}selected{{/if}}") {{title}}
label {{_ 'lists'}}:
select.js-select-lists
each aBoardLists
option(value="{{_id}}") {{title}}
option(value="{{_id}}" selected="{{#if isMoveAndCopyDialogOptionListId _id}}selected{{/if}}") {{title}}
.edit-controls.clearfix
button.primary.confirm.js-done {{_ 'done'}}
+98 -21
View File
@@ -689,9 +689,31 @@ Template.cardDetailsActionsPopup.events({
},
});
Template.editCardTitleForm.onRendered(function () {
autosize(this.$('.js-edit-card-title'));
});
BlazeComponent.extendComponent({
onRendered() {
autosize(this.$('textarea.js-edit-card-title'));
},
events() {
return [
{
'click a.fa.fa-copy'(event) {
const $editor = this.$('textarea');
const promise = Utils.copyTextToClipboard($editor[0].value);
const $tooltip = this.$('.copied-tooltip');
Utils.showCopied(promise, $tooltip);
},
'keydown .js-edit-card-title'(event) {
// If enter key was pressed, submit the data
// Unless the shift key is also being pressed
if (event.keyCode === 13 && !event.shiftKey) {
$('.js-submit-edit-card-title-form').click();
}
},
}
];
}
}).register('editCardTitleForm');
Template.cardMembersPopup.onCreated(function () {
let currBoard = Boards.findOne(Session.get('currentBoard'));
@@ -751,16 +773,6 @@ const filterMembers = (filterTerm) => {
return members;
}
Template.editCardTitleForm.events({
'keydown .js-edit-card-title'(event) {
// If enter key was pressed, submit the data
// Unless the shift key is also being pressed
if (event.keyCode === 13 && !event.shiftKey) {
$('.js-submit-edit-card-title-form').click();
}
},
});
Template.editCardRequesterForm.onRendered(function () {
autosize(this.$('.js-edit-card-requester'));
});
@@ -789,15 +801,16 @@ Template.editCardAssignerForm.events({
Template.moveCardPopup.events({
'click .js-done'() {
// XXX We should *not* get the currentCard from the global state, but
// instead from a “component” state.
const card = Utils.getCurrentCard();
const card = Cards.findOne(this._id);
const bSelect = $('.js-select-boards')[0];
let boardId;
// if we are a worker, we won't have a board select so we just use the
// current boardId of the card.
if (bSelect) boardId = bSelect.options[bSelect.selectedIndex].value;
else boardId = card.boardId;
if (bSelect) {
boardId = bSelect.options[bSelect.selectedIndex].value;
} else {
boardId = card.boardId;
}
const lSelect = $('.js-select-lists')[0];
const listId = lSelect.options[lSelect.selectedIndex].value;
const slSelect = $('.js-select-swimlanes')[0];
@@ -814,8 +827,53 @@ Template.moveCardPopup.events({
});
BlazeComponent.extendComponent({
onCreated() {
subManager.subscribe('board', Session.get('currentBoard'), false);
this.selectedBoardId = new ReactiveVar(Session.get('currentBoard'));
const boardId = Utils.getCurrentBoardId();
subManager.subscribe('board', boardId, false);
this.selectedBoardId = new ReactiveVar(boardId);
this.setMoveAndCopyDialogOption(boardId);
},
/** set the last confirmed dialog field values
* @param boardId the current board id
*/
setMoveAndCopyDialogOption(boardId) {
this.moveAndCopyDialogOption = {
'boardId' : "",
'swimlaneId' : "",
'listId' : "",
}
let currentOptions = Meteor.user().getMoveAndCopyDialogOptions();
if (currentOptions && boardId && currentOptions[boardId]) {
this.moveAndCopyDialogOption = currentOptions[boardId];
}
},
/** returns if the board id was the last confirmed one
* @param boardId check this board id
* @return if the board id was the last confirmed one
*/
isMoveAndCopyDialogOptionBoardId(boardId) {
let ret = this.moveAndCopyDialogOption.boardId == boardId;
return ret;
},
/** returns if the swimlane id was the last confirmed one
* @param swimlaneId check this swimlane id
* @return if the swimlane id was the last confirmed one
*/
isMoveAndCopyDialogOptionSwimlaneId(swimlaneId) {
let ret = this.moveAndCopyDialogOption.swimlaneId == swimlaneId;
return ret;
},
/** returns if the list id was the last confirmed one
* @param listId check this list id
* @return if the list id was the last confirmed one
*/
isMoveAndCopyDialogOptionListId(listId) {
let ret = this.moveAndCopyDialogOption.listId == listId;
return ret;
},
boards() {
@@ -844,8 +902,27 @@ BlazeComponent.extendComponent({
events() {
return [
{
'click .js-done'() {
const bSelect = this.$('.js-select-boards')[0];
const boardId = bSelect.options[bSelect.selectedIndex].value;
const lSelect = this.$('.js-select-lists')[0];
const listId = lSelect.options[lSelect.selectedIndex].value;
const slSelect = this.$('.js-select-swimlanes')[0];
const swimlaneId = slSelect.options[slSelect.selectedIndex].value;
const options = {
'boardId' : boardId,
'swimlaneId' : swimlaneId,
'listId' : listId,
}
Meteor.user().setMoveAndCopyDialogOption(boardId, options);
},
'change .js-select-boards'(event) {
this.selectedBoardId.set($(event.currentTarget).val());
const boardId = $(event.currentTarget).val();
this.selectedBoardId.set(boardId);
this.setMoveAndCopyDialogOption(boardId);
subManager.subscribe('board', this.selectedBoardId.get(), false);
},
},
+3 -4
View File
@@ -181,6 +181,9 @@ avatar-radius = 50%
margin-top: 5px
margin-bottom: 10px
.copied-tooltip
padding: 0px 10px
.card-details-list
font-size: 0.85em
margin-bottom: 3px
@@ -195,12 +198,8 @@ avatar-radius = 50%
padding: 0px 5px
.copied-tooltip
display: none
margin-right: 10px
padding: 10px;
background-color: #000000df;
color: #fff;
border-radius: 5px;
.card-description textarea
min-height: 100px
+50 -3
View File
@@ -18,7 +18,7 @@ template(name="checklists")
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist" cardId = cardId)
+addChecklistItemForm
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=false)
else
a.add-checklist.js-open-inlined-form(title="{{_ 'add-checklist'}}")
i.fa.fa-plus
@@ -31,7 +31,7 @@ template(name="checklistDetail")
.checklist-title
span
if canModifyCard
a.js-delete-checklist.toggle-delete-checklist-dialog {{_ "delete"}}...
a.fa.fa-navicon.checklist-details-menu.js-open-checklist-details-menu(title="{{_ 'checklistActionsPopup-title'}}")
if canModifyCard
h2.title.js-open-inlined-form.is-editable
@@ -43,6 +43,11 @@ template(name="checklistDetail")
h2.title
+viewer
= checklist.title
.checklist-progress-bar-container
.checklist-progress-text {{#if $gt finishedPercent 0}}{{finishedPercent}}%{{/if}}
.checklist-progress-bar
.checklist-progress(style="width:{{finishedPercent}}%;{{#if $eq finishedPercent 0}}display:none{{/if}}")
+checklistItems(checklist = checklist)
template(name="checklistDeletePopup")
@@ -56,6 +61,10 @@ template(name="addChecklistItemForm")
.edit-controls.clearfix
button.primary.confirm.js-submit-add-checklist-item-form(type="submit") {{_ 'save'}}
a.fa.fa-times-thin.js-close-inlined-form
if showNewlineBecomesNewChecklistItem
.material-toggle-switch(title="{{_ 'newlineBecomesNewChecklistItem'}}")
input.toggle-switch(type="checkbox" id="toggleNewlineBecomesNewChecklistItem")
label.toggle-label(for="toggleNewlineBecomesNewChecklistItem")
template(name="editChecklistItemForm")
a.fa.fa-copy(title="{{_ 'copy-text-to-clipboard'}}")
@@ -84,7 +93,7 @@ template(name="checklistItems")
+checklistItemDetail(item = item checklist = checklist)
if canModifyCard
+inlinedForm(autoclose=false classNames="js-add-checklist-item" checklist = checklist)
+addChecklistItemForm
+addChecklistItemForm(checklist=checklist showNewlineBecomesNewChecklistItem=true)
else
a.add-checklist-item.js-open-inlined-form(title="{{_ 'add-checklist-item'}}")
i.fa.fa-plus
@@ -133,3 +142,41 @@ template(name="boardsSwimlanesAndLists")
.edit-controls.clearfix
button.primary.confirm.js-done {{_ 'done'}}
template(name="checklistActionsPopup")
ul.pop-over-list
li
a.js-delete-checklist.delete-checklist
i.fa.fa-trash
| {{_ "delete"}} ...
a.js-move-checklist.move-checklist
i.fa.fa-arrow-right
| {{_ "moveChecklist"}} ...
template(name="moveChecklistPopup")
unless currentUser.isWorker
label {{_ 'boards'}}:
select.js-select-boards(autofocus)
each boards
if $eq _id currentBoard._id
option(value="{{_id}}" selected) {{_ 'current'}}
else
option(value="{{_id}}" selected="{{#if isMoveChecklistDialogOptionBoardId _id}}selected{{/if}}") {{title}}
label {{_ 'swimlanes'}}:
select.js-select-swimlanes
each swimlanes
option(value="{{_id}}" selected="{{#if isMoveChecklistDialogOptionSwimlaneId _id}}selected{{/if}}") {{title}}
label {{_ 'lists'}}:
select.js-select-lists
each lists
option(value="{{_id}}" selected="{{#if isMoveChecklistDialogOptionListId _id}}selected{{/if}}") {{title}}
label {{_ 'cards'}}:
select.js-select-cards
each cards
option(value="{{_id}}" selected="{{#if isMoveChecklistDialogOptionCardId _id}}selected{{/if}}") {{title}}
.edit-controls.clearfix
button.primary.confirm.js-done {{_ 'done'}}
+189 -13
View File
@@ -77,6 +77,12 @@ BlazeComponent.extendComponent({
!Meteor.user().isWorker()
);
},
/** returns the finished percent of the checklist */
finishedPercent() {
const ret = this.data().checklist.finishedPercent();
return ret;
},
}).register('checklistDetail');
BlazeComponent.extendComponent({
@@ -105,16 +111,23 @@ BlazeComponent.extendComponent({
addChecklistItem(event) {
event.preventDefault();
const textarea = this.find('textarea.js-add-checklist-item');
const newlineBecomesNewChecklistItem = this.find('input#toggleNewlineBecomesNewChecklistItem');
const title = textarea.value.trim();
const checklist = this.currentData().checklist;
if (title) {
ChecklistItems.insert({
title,
checklistId: checklist._id,
cardId: checklist.cardId,
sort: Utils.calculateIndexData(checklist.lastItem()).base,
});
let checklistItems = [title];
if (newlineBecomesNewChecklistItem.checked) {
checklistItems = title.split('\n').map(_value => _value.trim());
}
for (let checklistItem of checklistItems) {
ChecklistItems.insert({
title: checklistItem,
checklistId: checklist._id,
cardId: checklist.cardId,
sort: Utils.calculateIndexData(checklist.lastItem()).base,
});
}
}
// We keep the form opened, empty it.
textarea.value = '';
@@ -190,13 +203,7 @@ BlazeComponent.extendComponent({
return [
{
...events,
'click .toggle-delete-checklist-dialog' : Popup.afterConfirm('checklistDelete', function () {
Popup.close();
const checklist = this.checklist;
if (checklist && checklist._id) {
Checklists.remove(checklist._id);
}
}),
'click .js-open-checklist-details-menu': Popup.open('checklistActions'),
'submit .js-add-checklist': this.addChecklist,
'submit .js-edit-checklist-title': this.editChecklist,
'submit .js-add-checklist-item': this.addChecklistItem,
@@ -293,6 +300,23 @@ BlazeComponent.extendComponent({
}
}).register('addChecklistItemForm');
BlazeComponent.extendComponent({
events() {
return [
{
'click .js-delete-checklist' : Popup.afterConfirm('checklistDelete', function () {
Popup.back(2);
const checklist = this.checklist;
if (checklist && checklist._id) {
Checklists.remove(checklist._id);
}
}),
'click .js-move-checklist' : Popup.open('moveChecklist'),
}
]
}
}).register('checklistActionsPopup');
BlazeComponent.extendComponent({
onRendered() {
autosize(this.$('textarea.js-edit-checklist-item'));
@@ -352,3 +376,155 @@ BlazeComponent.extendComponent({
];
},
}).register('checklistItemDetail');
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.selectedSwimlaneId = new ReactiveVar('');
this.selectedListId = new ReactiveVar('');
this.selectedCardId = new ReactiveVar('');
this.setMoveChecklistDialogOption(boardId);
},
/** set the last confirmed dialog field values
* @param boardId the current board id
*/
setMoveChecklistDialogOption(boardId) {
this.moveChecklistDialogOption = {
'boardId' : "",
'swimlaneId' : "",
'listId' : "",
'cardId': "",
}
let currentOptions = Meteor.user().getMoveChecklistDialogOptions();
if (currentOptions && boardId && currentOptions[boardId]) {
this.moveChecklistDialogOption = currentOptions[boardId];
}
const board = Boards.findOne(boardId);
try {
const swimlaneId = board.swimlanes().fetch()[0]._id;
this.selectedSwimlaneId.set(swimlaneId);
} catch (e) {}
try {
const listId = board.lists().fetch()[0];
this.selectedListId.set(listId);
} catch (e) {}
const cardId = Utils.getCurrentCardId();
this.selectedCardId.set(cardId);
},
/** returns if the board id was the last confirmed one
* @param boardId check this board id
* @return if the board id was the last confirmed one
*/
isMoveChecklistDialogOptionBoardId(boardId) {
let ret = this.moveChecklistDialogOption.boardId == boardId;
return ret;
},
/** returns if the swimlane id was the last confirmed one
* @param swimlaneId check this swimlane id
* @return if the swimlane id was the last confirmed one
*/
isMoveChecklistDialogOptionSwimlaneId(swimlaneId) {
let ret = this.moveChecklistDialogOption.swimlaneId == swimlaneId;
return ret;
},
/** returns if the list id was the last confirmed one
* @param listId check this list id
* @return if the list id was the last confirmed one
*/
isMoveChecklistDialogOptionListId(listId) {
let ret = this.moveChecklistDialogOption.listId == listId;
return ret;
},
/** returns if the card id was the last confirmed one
* @param cardId check this card id
* @return if the card id was the last confirmed one
*/
isMoveChecklistDialogOptionCardId(cardId) {
let ret = this.moveChecklistDialogOption.cardId == cardId;
return ret;
},
boards() {
return Boards.find(
{
archived: false,
'members.userId': Meteor.userId(),
_id: { $ne: Meteor.user().getTemplatesBoardId() },
},
{
sort: { sort: 1 },
},
);
},
swimlanes() {
const board = Boards.findOne(this.selectedBoardId.get());
return board.swimlanes();
},
lists() {
const board = Boards.findOne(this.selectedBoardId.get());
return board.lists();
},
cards() {
const list = Lists.findOne(this.selectedListId.get());
const ret = list.cards(this.selectedSwimlaneId.get());
return ret;
},
events() {
return [
{
'click .js-done'() {
const boardSelect = this.$('.js-select-boards')[0];
const boardId = boardSelect.options[boardSelect.selectedIndex].value;
const listSelect = this.$('.js-select-lists')[0];
const listId = listSelect.options[listSelect.selectedIndex].value;
const swimlaneSelect = this.$('.js-select-swimlanes')[0];
const swimlaneId = swimlaneSelect.options[swimlaneSelect.selectedIndex].value;
const cardSelect = this.$('.js-select-cards')[0];
const cardId = cardSelect.options[cardSelect.selectedIndex].value;
const options = {
'boardId' : boardId,
'swimlaneId' : swimlaneId,
'listId' : listId,
'cardId': cardId,
}
Meteor.user().setMoveChecklistDialogOption(boardId, 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);
},
'change .js-select-swimlanes'(event) {
this.selectedSwimlaneId.set($(event.currentTarget).val());
},
'change .js-select-lists'(event) {
this.selectedListId.set($(event.currentTarget).val());
},
},
];
},
}).register('moveChecklistPopup');
+27 -3
View File
@@ -20,6 +20,25 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
display: flex
justify-content: space-between
.checklist-progress-bar-container
display: flex
flex-direction: row
align-items: center
.checklist-progress-text
margin-right: 10px
.checklist-progress-bar
width: 80%
height: 10px
.checklist-progress
color: #fff !important
background-color: #2196F3 !important
padding: 0.01em 16px
border-radius: 16px
height: 100%
.checklist-title
.checkbox
float: left
@@ -39,9 +58,6 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
&.is-finished
color: #3cb500
.js-delete-checklist
@extends .delete-text
span.fa.checklist-handle
padding-right: 20px
padding-top: 3px
@@ -142,3 +158,11 @@ textarea.js-add-checklist-item, textarea.js-edit-checklist-item
background: #dbdbdb
color: #222
box-shadow: 0 1px 2px rgba(0,0,0,.2)
.checklist-details-menu
float: right
padding: 6px 10px 6px 10px
.edit-controls
label.toggle-label
margin-left: 2px
+5 -7
View File
@@ -117,7 +117,6 @@ button
display: inline-block
font-weight: 700
line-height: 22px
margin: 8px 4px 0 0
padding: 7px 20px
text-align: center
@@ -226,20 +225,19 @@ textarea
.edit-controls,
.add-controls
display: flex
align-items: baseline
margin-top: 0
align-items: center
margin-top: 0px
margin-bottom: 12px
button[type=submit]
input[type=button]
float: left
height: 32px
margin-top: -2px
padding-top: 5px
padding-bottom: 5px
margin-bottom: 0px
.fa-times-thin
font-size: 26px
margin: 3px 4px
margin: 3px 10px
// Material Design checkboxes
[type="checkbox"]:not(:checked),
+1 -1
View File
@@ -1,5 +1,5 @@
apiVersion: v2
appVersion: "5.92"
appVersion: "5.95"
dependencies:
- condition: mongodb.enabled
name: mongodb
+1 -1
View File
@@ -14,7 +14,7 @@ serviceAccounts:
##
image:
repository: quay.io/wekan/wekan
tag: v5.92
tag: v5.95
pullPolicy: IfNotPresent
## Configuration for wekan component
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "URL zu benutzerdefiniertem Impressum",
"acceptance_of_our_legalNotice": "Wenn Sie fortfahren, akzeptieren Sie unsere",
"legalNotice": "Impressum/Datenschutzerklärung",
"copied": "Kopiert!"
"copied": "Kopiert!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "URL zu eigenem Impressum",
"acceptance_of_our_legalNotice": "Durch das Einloggen akzeptieren Sie unser",
"legalNotice": "Impressum/Datenschutzerklärung",
"copied": "Kopiert!"
"copied": "Kopiert!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1138,5 +1138,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+1056 -1052
View File
File diff suppressed because it is too large. Load diff
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Muokatun oikeudellisen huomautuksen sivun URL",
"acceptance_of_our_legalNotice": "Jatkamalla hyväksyt meidän",
"legalNotice": "oikeudellisen huomautuksen",
"copied": "Kopioitu!"
"copied": "Kopioitu!",
"checklistActionsPopup-title": "Tarkistuslista toimet",
"moveChecklist": "Siirrä tarkistuslista",
"moveChecklistPopup-title": "Siirrä tarkistuslista",
"newlineBecomesNewChecklistItem": "Uusi rivi muuttuu uudeksi tarkistuslistakohdaksi"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "URL de la page des mentions légales personnalisées",
"acceptance_of_our_legalNotice": "En continuant, vous acceptez nos",
"legalNotice": "mentions légales",
"copied": "Copié !"
"copied": "Copié !",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "כתובת עמוד הצהרה משפטית משלך",
"acceptance_of_our_legalNotice": "בחירה להמשיך היא למעשה הסכמה ל",
"legalNotice": "הצהרה המשפטית שלנו",
"copied": "הועתק!"
"copied": "הועתק!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Egyedi szerzői jogok oldalának URL-je",
"acceptance_of_our_legalNotice": "Folytatáshoz elfogadod a ",
"legalNotice": "szerzői jogokat",
"copied": "Másolva!"
"copied": "Másolva!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"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"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "URL voor maatwerk juridische disclaimer tekst pagina",
"acceptance_of_our_legalNotice": "Als u doorgaat accepteert u onze ",
"legalNotice": "juridische disclaimer tekst",
"copied": "Gekopieerd!"
"copied": "Gekopieerd!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Skopiowano!"
"copied": "Skopiowano!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "URL da página de aviso legal customizada",
"acceptance_of_our_legalNotice": "Para continuar, você precisa aceitar nosso",
"legalNotice": "aviso legal",
"copied": "Copiado!"
"copied": "Copiado!",
"checklistActionsPopup-title": "Ações da Lista de verificação ",
"moveChecklist": "Mover Lista de verificação",
"moveChecklistPopup-title": "Mover Lista de verificação",
"newlineBecomesNewChecklistItem": "Uma nova linha se torna um novo item da lista de verificação"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copiado!"
"copied": "Copiado!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+14 -10
View File
@@ -81,22 +81,22 @@
"activity-endDate": "edited end date to %s of %s",
"add-attachment": "Додати вкладення",
"add-board": "Додати дошку",
"add-template": "Add Template",
"add-template": "Додати шаблон",
"add-card": "Додати картку",
"add-card-to-top-of-list": "Add Card to Top of List",
"add-card-to-bottom-of-list": "Add Card to Bottom of List",
"add-card-to-top-of-list": "Додати картку на початок списку",
"add-card-to-bottom-of-list": "Додати картку у кінець списку",
"add-swimlane": "Add Swimlane",
"add-subtask": "Додати підзадачу",
"add-checklist": "Add Checklist",
"add-checklist": "Додати контрольній список",
"add-checklist-item": "Додати елемент в список",
"convertChecklistItemToCardPopup-title": "Convert to Card",
"convertChecklistItemToCardPopup-title": "Перетворити у картку",
"add-cover": "Додати обкладинку",
"add-label": "Додати мітку",
"add-list": "Додати список",
"add-members": "Додати користувача",
"added": "Доданно",
"addMemberPopup-title": "Користувачі",
"memberPopup-title": "Member Settings",
"memberPopup-title": "Налаштування користувачів",
"admin": "Адмін",
"admin-desc": "Може переглядати і редагувати картки, відаляти учасників та змінювати налаштування для дошки.",
"admin-announcement": "Оголошення",
@@ -107,7 +107,7 @@
"and-n-other-card_plural": "та __count__ інших карток",
"apply": "Прийняти",
"app-is-offline": "Завантаження, будь ласка, зачекайте. Оновлення сторінки призведе до втрати даних. Якщо завантаження не працює, перевірте, чи не зупинився сервер.",
"app-try-reconnect": "Try to reconnect.",
"app-try-reconnect": "Повторити зєднання.",
"archive": "Перенести до Архіву",
"archive-all": "Перенести Все до Архіву",
"archive-board": "Перенести Дошку до Архіву",
@@ -1094,7 +1094,7 @@
"ticket": "Ticket",
"tickets": "Tickets",
"ticket-number": "Ticket Number",
"open": "Open",
"open": "Відкрити",
"pending": "Pending",
"closed": "Closed",
"resolved": "Resolved",
@@ -1130,12 +1130,16 @@
"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": "Додати організацію",
"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!"
"copied": "Копійовано!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+11 -7
View File
@@ -59,7 +59,7 @@
"activity-removed": "从 %s 中移除 %s",
"activity-sent": "发送 %s 至 %s",
"activity-unjoined": "已解除 %s 关联",
"activity-subtask-added": "添加子任务到%s",
"activity-subtask-added": "已添加子任务到%s",
"activity-checked-item": "勾选%s于清单%s 共 %s",
"activity-unchecked-item": "未勾选 %s 于清单 %s 共 %s",
"activity-checklist-added": "已经将清单添加到 %s",
@@ -1115,12 +1115,12 @@
"invite-people-error": "发送注册邀请时出错",
"can-invite-if-same-mailDomainName": "电子邮件域名",
"to-create-teams-contact-admin": "请联系管理员创建团队。",
"Node_heap_total_heap_size": "Node heap: total heap size",
"Node_heap_total_heap_size": "节点堆:堆的总大小",
"Node_heap_total_heap_size_executable": "Node heap: total heap size executable",
"Node_heap_total_physical_size": "Node heap: total physical size",
"Node_heap_total_available_size": "Node heap: total available size",
"Node_heap_used_heap_size": "Node heap: used heap size",
"Node_heap_heap_size_limit": "Node heap: heap size limit",
"Node_heap_total_available_size": "节点堆:可用总大小",
"Node_heap_used_heap_size": "节点堆:已使用堆大小",
"Node_heap_heap_size_limit": "节点堆:堆大小限制",
"Node_heap_malloced_memory": "Node heap: malloced memory",
"Node_heap_peak_malloced_memory": "Node heap: peak malloced memory",
"Node_heap_does_zap_garbage": "Node heap: does zap garbage",
@@ -1128,7 +1128,7 @@
"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_heap_used": "节点内存使用情况:实际已使用的内存",
"Node_memory_usage_external": "Node memory usage: external",
"add-organizations": "新建组织",
"add-organizations-label": "已添加组织如下面列表所示:",
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "自定义设置法律声明地址",
"acceptance_of_our_legalNotice": "继续,即意味着您已同意接受相关声明条款约束",
"legalNotice": "法律声明",
"copied": "已复制!"
"copied": "已复制!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+5 -1
View File
@@ -1137,5 +1137,9 @@
"custom-legal-notice-link-url": "Custom legal notice page URL",
"acceptance_of_our_legalNotice": "By continuing, you accept our",
"legalNotice": "legal notice",
"copied": "Copied!"
"copied": "Copied!",
"checklistActionsPopup-title": "Checklist Actions",
"moveChecklist": "Move Checklist",
"moveChecklistPopup-title": "Move Checklist",
"newlineBecomesNewChecklistItem": "Newline becomes new checklist item"
}
+44
View File
@@ -102,6 +102,19 @@ Checklists.helpers({
isFinished: true,
}).count();
},
/** returns the finished percent of the checklist */
finishedPercent() {
const checklistItems = ChecklistItems.find({ checklistId: this._id });
const count = checklistItems.count();
const checklistItemsFinished = checklistItems.fetch().filter(checklistItem => checklistItem.isFinished);
let ret = 0;
if (count > 0) {
ret = Math.round(checklistItemsFinished.length / count * 100);
}
return ret;
},
isFinished() {
return 0 !== this.itemCount() && this.itemCount() === this.finishedCount();
},
@@ -147,6 +160,37 @@ Checklists.mutations({
setTitle(title) {
return { $set: { title } };
},
/** move the checklist to another card
* @param newCardId move the checklist to this cardId
*/
move(newCardId) {
// update every activity
Activities.find(
{checklistId: this._id}
).forEach(activity => {
Activities.update(activity._id, {
$set: {
cardId: newCardId,
},
});
});
// update every checklist-item
ChecklistItems.find(
{checklistId: this._id}
).forEach(checklistItem => {
ChecklistItems.update(checklistItem._id, {
$set: {
cardId: newCardId,
},
});
});
// update the checklist itself
return {
$set: {
cardId: newCardId,
},
};
},
});
if (Meteor.isServer) {
+106
View File
@@ -226,6 +226,64 @@ Users.attachSchema(
type: String,
optional: true,
},
'profile.moveAndCopyDialog' : {
/**
* move and copy card dialog
*/
type: Object,
optional: true,
blackbox: true,
},
'profile.moveAndCopyDialog.$.boardId': {
/**
* last selected board id
*/
type: String,
},
'profile.moveAndCopyDialog.$.swimlaneId': {
/**
* last selected swimlane id
*/
type: String,
},
'profile.moveAndCopyDialog.$.listId': {
/**
* last selected list id
*/
type: String,
},
'profile.moveChecklistDialog' : {
/**
* move and copy card dialog
*/
type: Object,
optional: true,
blackbox: true,
},
'profile.moveChecklistDialog.$.boardId': {
/**
* last selected board id
*/
type: String,
},
'profile.moveChecklistDialog.$.swimlaneId': {
/**
* last selected swimlane id
*/
type: String,
},
'profile.moveChecklistDialog.$.listId': {
/**
* last selected list id
*/
type: String,
},
'profile.moveChecklistDialog.$.cardId': {
/**
* last selected card id
*/
type: String,
},
'profile.notifications': {
/**
* enabled notifications for the user
@@ -616,6 +674,28 @@ Users.helpers({
return this._getListSortBy()[1];
},
/** returns all confirmed move and copy dialog field values
* <li> the board, swimlane and list id is stored for each board
*/
getMoveAndCopyDialogOptions() {
let _ret = {}
if (this.profile && this.profile.moveAndCopyDialog) {
_ret = this.profile.moveAndCopyDialog;
}
return _ret;
},
/** returns all confirmed move checklist dialog field values
* <li> the board, swimlane, list and card id is stored for each board
*/
getMoveChecklistDialogOptions() {
let _ret = {}
if (this.profile && this.profile.moveChecklistDialog) {
_ret = this.profile.moveChecklistDialog;
}
return _ret;
},
hasTag(tag) {
const { tags = [] } = this.profile || {};
return _.contains(tags, tag);
@@ -731,6 +811,32 @@ Users.helpers({
});
Users.mutations({
/** set the confirmed board id/swimlane id/list id of a board
* @param boardId the current board id
* @param options an object with the confirmed field values
*/
setMoveAndCopyDialogOption(boardId, options) {
let currentOptions = this.getMoveAndCopyDialogOptions();
currentOptions[boardId] = options;
return {
$set: {
'profile.moveAndCopyDialog': currentOptions,
},
};
},
/** set the confirmed board id/swimlane id/list id/card id of a board
* @param boardId the current board id
* @param options an object with the confirmed field values
*/
setMoveChecklistDialogOption(boardId, options) {
let currentOptions = this.getMoveChecklistDialogOptions();
currentOptions[boardId] = options;
return {
$set: {
'profile.moveChecklistDialog': currentOptions,
},
};
},
toggleBoardStar(boardId) {
const queryKind = this.hasStarred(boardId) ? '$pull' : '$addToSet';
return {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.92.0",
"version": "v5.95.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "wekan",
"version": "v5.92.0",
"version": "v5.95.0",
"description": "Open-Source kanban",
"private": true,
"repository": {
+142 -4
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.92</title>
<title>Wekan REST API v5.95</title>
<style>
</style>
@@ -1492,6 +1492,8 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
</head>
@@ -1555,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.92">Wekan REST API v5.92</a>
<a href="#wekan-rest-api" class="toc-h1 toc-link" data-title="Wekan REST API v5.95">Wekan REST API v5.95</a>
</li>
@@ -2108,6 +2110,16 @@ var n=this.pipeline.run(e.tokenizer(t)),r=new e.Vector,i=[],o=this._fields.reduc
</li>
<li>
<a href="#tocs_usersprofilemoveandcopydialog" class="toc-h2 toc-link" data-title="">UsersProfileMoveandcopydialog</a>
</li>
<li>
<a href="#tocs_usersprofilemovechecklistdialog" class="toc-h2 toc-link" data-title="">UsersProfileMovechecklistdialog</a>
</li>
<li>
<a href="#tocs_usersprofilenotifications" class="toc-h2 toc-link" data-title="">UsersProfileNotifications</a>
@@ -2128,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.92</h1>
<h1 id="wekan-rest-api">Wekan REST API v5.95</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>
@@ -16058,6 +16070,8 @@ System.out.println(response.toString());
<span class="hljs-string">&quot;string&quot;</span>
],
<span class="hljs-attr">&quot;language&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;moveAndCopyDialog&quot;</span>: {},
<span class="hljs-attr">&quot;moveChecklistDialog&quot;</span>: {},
<span class="hljs-attr">&quot;notifications&quot;</span>: [
{
<span class="hljs-attr">&quot;activity&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
@@ -16812,6 +16826,8 @@ System.out.println(response.toString());
<span class="hljs-string">&quot;string&quot;</span>
],
<span class="hljs-attr">&quot;language&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;moveAndCopyDialog&quot;</span>: {},
<span class="hljs-attr">&quot;moveChecklistDialog&quot;</span>: {},
<span class="hljs-attr">&quot;notifications&quot;</span>: [
{
<span class="hljs-attr">&quot;activity&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
@@ -20999,6 +21015,8 @@ UserSecurity
<span class="hljs-string">&quot;string&quot;</span>
],
<span class="hljs-attr">&quot;language&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;moveAndCopyDialog&quot;</span>: {},
<span class="hljs-attr">&quot;moveChecklistDialog&quot;</span>: {},
<span class="hljs-attr">&quot;notifications&quot;</span>: [
{
<span class="hljs-attr">&quot;activity&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
@@ -21175,6 +21193,8 @@ UserSecurity
<span class="hljs-string">&quot;string&quot;</span>
],
<span class="hljs-attr">&quot;language&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;moveAndCopyDialog&quot;</span>: {},
<span class="hljs-attr">&quot;moveChecklistDialog&quot;</span>: {},
<span class="hljs-attr">&quot;notifications&quot;</span>: [
{
<span class="hljs-attr">&quot;activity&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
@@ -21293,6 +21313,20 @@ UserSecurity
<td>language of the user</td>
</tr>
<tr>
<td>moveAndCopyDialog</td>
<td>object</td>
<td>false</td>
<td>none</td>
<td>move and copy card dialog</td>
</tr>
<tr>
<td>moveChecklistDialog</td>
<td>object</td>
<td>false</td>
<td>none</td>
<td>move and copy card dialog</td>
</tr>
<tr>
<td>notifications</td>
<td>[<a href="#schemausersprofilenotifications">UsersProfileNotifications</a>]</td>
<td>false</td>
@@ -21566,6 +21600,108 @@ UserSecurity
</tr>
</tbody>
</table>
<h2 id="tocs_usersprofilemoveandcopydialog">UsersProfileMoveandcopydialog</h2>
<p><a id="schemausersprofilemoveandcopydialog"></a>
<a id="schema_UsersProfileMoveandcopydialog"></a>
<a id="tocSusersprofilemoveandcopydialog"></a>
<a id="tocsusersprofilemoveandcopydialog"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">&quot;boardId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;swimlaneId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;listId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
}
</code></pre>
<h3 id="properties-26">Properties</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Required</th>
<th>Restrictions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>boardId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected board id</td>
</tr>
<tr>
<td>swimlaneId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected swimlane id</td>
</tr>
<tr>
<td>listId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected list id</td>
</tr>
</tbody>
</table>
<h2 id="tocs_usersprofilemovechecklistdialog">UsersProfileMovechecklistdialog</h2>
<p><a id="schemausersprofilemovechecklistdialog"></a>
<a id="schema_UsersProfileMovechecklistdialog"></a>
<a id="tocSusersprofilemovechecklistdialog"></a>
<a id="tocsusersprofilemovechecklistdialog"></a></p>
<pre class="highlight tab tab-json"><code>{
<span class="hljs-attr">&quot;boardId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;swimlaneId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;listId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>,
<span class="hljs-attr">&quot;cardId&quot;</span>: <span class="hljs-string">&quot;string&quot;</span>
}
</code></pre>
<h3 id="properties-27">Properties</h3>
<table>
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Required</th>
<th>Restrictions</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>boardId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected board id</td>
</tr>
<tr>
<td>swimlaneId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected swimlane id</td>
</tr>
<tr>
<td>listId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected list id</td>
</tr>
<tr>
<td>cardId</td>
<td>string</td>
<td>true</td>
<td>none</td>
<td>last selected card id</td>
</tr>
</tbody>
</table>
<h2 id="tocs_usersprofilenotifications">UsersProfileNotifications</h2>
<p><a id="schemausersprofilenotifications"></a>
<a id="schema_UsersProfileNotifications"></a>
@@ -21577,7 +21713,7 @@ UserSecurity
}
</code></pre>
<h3 id="properties-26">Properties</h3>
<h3 id="properties-28">Properties</h3>
<table>
<thead>
<tr>
@@ -21632,6 +21768,8 @@ UserSecurity
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
<!-- backwards compatibility -->
</div>
<div class="dark-box">
+52 -1
View File
@@ -1,7 +1,7 @@
swagger: '2.0'
info:
title: Wekan REST API
version: v5.92
version: v5.95
description: |
The REST API allows you to control and extend Wekan with ease.
@@ -3963,6 +3963,14 @@ definitions:
description: |
language of the user
type: string
moveAndCopyDialog:
description: |
move and copy card dialog
type: object
moveChecklistDialog:
description: |
move and copy card dialog
type: object
notifications:
description: |
enabled notifications for the user
@@ -4078,6 +4086,49 @@ definitions:
required:
- address
- verified
UsersProfileMoveandcopydialog:
type: object
properties:
boardId:
description: |
last selected board id
type: string
swimlaneId:
description: |
last selected swimlane id
type: string
listId:
description: |
last selected list id
type: string
required:
- boardId
- swimlaneId
- listId
UsersProfileMovechecklistdialog:
type: object
properties:
boardId:
description: |
last selected board id
type: string
swimlaneId:
description: |
last selected swimlane id
type: string
listId:
description: |
last selected list id
type: string
cardId:
description: |
last selected card id
type: string
required:
- boardId
- swimlaneId
- listId
- cardId
UsersProfileNotifications:
type: object
properties:
+15 -1
View File
@@ -10,7 +10,21 @@ if [ $# -ne 1 ]
exit 1
fi
sudo npm -g install node-gyp
##sudo npm -g install node-gyp
#
## NEW:
#sudo dnf install gcc python3 npm
#sudo dnf groupinstall "Development Tools"
#npm -g install n
#
# .bashrc:
# # User specific environment
# PATH="$HOME/.local/bin/bin:$HOME/bin:/usr/local/bin:$PATH"
# export PATH
#
# N_PREFIX="$HOME/.local/bin"
# export N_PREFIX
#
rm -rf bundle
#rm wekan-$1.zip
#wget https://releases.wekan.team/wekan-$1.zip
+10 -2
View File
@@ -15,13 +15,21 @@ fi
if [ ! -d ~/python/esprima-python ]; then
sudo apt-get -y install python3-pip
sudo pip3 install -U setuptools wheel
sudo npm install -g api2html
pip3 install -U setuptools wheel
npm install -g api2html
mkdir -p ~/python
cd ~/python
git clone --depth 1 -b master https://github.com/Kronuz/esprima-python
cd ~/python/esprima-python
# a) Generating docs works on Kubuntu 21.10 with this,
# but generating Sandstorm WeKan package does not work
# https://github.com/wekan/wekan/issues/4280
# https://github.com/sandstorm-io/sandstorm/issues/3600
# sudo pip3 install .
sudo pip3 install .
# b) Generating docs Works on Linux Mint with this,
# and also generating Sandstorm WeKan package works:
# sudo python3 setup.py install --record files.txt
fi
# 2) Go to Wekan repo directory
+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 = 592,
appVersion = 595,
# Increment this for every release.
appMarketingVersion = (defaultText = "5.92.0~2022-01-13"),
appMarketingVersion = (defaultText = "5.95.0~2022-01-18"),
# Human-readable presentation of the app version.
minUpgradableAppVersion = 0,
+1 -1
View File
@@ -1,5 +1,5 @@
name: wekan
version: '5.92'
version: '5.95'
summary: Open Source kanban
description: |
WeKan ® is an Open Source and collaborative kanban board application.