Merge branch 'master' of https://github.com/wekan/wekan into new-search

This commit is contained in:
John R. Supplee 2021-01-23 01:35:28 +02:00
commit 591a8cd807
5 changed files with 53 additions and 22 deletions

View file

@ -1,3 +1,21 @@
# Upcoming Wekan release
This release adds the following new features:
- [Option to add custom field to all cards](https://github.com/wekan/wekan/pulls/3466).
Thanks to jrsupplee.
and fixes the following bugs:
- [WIP Limit: Limited number of cards highlighting to true overbooking](https://github.com/wekan/wekan/pull/3468).
Thanks to bronger.
- [Revert table-cell back to inline-block at my-cards-list-wrapper](https://github.com/wekan/wekan/commit/da12c84609674bdf5121ad6b74c97c65b9fc0164).
Thanks to jrsupplee and xet7.
- [Fix for search operators with uppercase letters](https://github.com/wekan/wekan/pull/3470).
Thanks to jrsupplee.
Thanks to above GitHub users for their contributions and translators for their translations.
# v4.84 2021-01-22 Wekan release
This release adds the following new features:

View file

@ -15,7 +15,7 @@ template(name="listHeader")
= title
if wipLimit.enabled
| (
span(class="{{#if reachedWipLimit}}highlight{{/if}}") {{cards.count}}
span(class="{{#if exceededWipLimit}}highlight{{/if}}") {{cards.count}}
|/#{wipLimit.value})
if showCardsCountForList cards.count

View file

@ -72,6 +72,14 @@ BlazeComponent.extendComponent({
);
},
exceededWipLimit() {
const list = Template.currentData();
return (
list.getWipLimit('enabled') &&
list.getWipLimit('value') < list.cards().count()
);
},
showCardsCountForList(count) {
const limit = this.limitToShowCardsCount();
return limit > 0 && count > limit;

View file

@ -193,26 +193,31 @@ BlazeComponent.extendComponent({
const reText = /^(?<text>\S+)(\s+|$)/;
const reQuotedText = /^(?<quote>["'])(?<text>\w+)\k<quote>(\s+|$)/;
const operators = {
'operator-board': 'boards',
'operator-board-abbrev': 'boards',
'operator-swimlane': 'swimlanes',
'operator-swimlane-abbrev': 'swimlanes',
'operator-list': 'lists',
'operator-list-abbrev': 'lists',
'operator-label': 'labels',
'operator-label-abbrev': 'labels',
'operator-user': 'users',
'operator-user-abbrev': 'users',
'operator-member': 'members',
'operator-member-abbrev': 'members',
'operator-assignee': 'assignees',
'operator-assignee-abbrev': 'assignees',
'operator-is': 'is',
'operator-due': 'dueAt',
'operator-created': 'createdAt',
'operator-modified': 'modifiedAt',
};
const operatorMap = {};
operatorMap[TAPi18n.__('operator-board')] = 'boards';
operatorMap[TAPi18n.__('operator-board-abbrev')] = 'boards';
operatorMap[TAPi18n.__('operator-swimlane')] = 'swimlanes';
operatorMap[TAPi18n.__('operator-swimlane-abbrev')] = 'swimlanes';
operatorMap[TAPi18n.__('operator-list')] = 'lists';
operatorMap[TAPi18n.__('operator-list-abbrev')] = 'lists';
operatorMap[TAPi18n.__('operator-label')] = 'labels';
operatorMap[TAPi18n.__('operator-label-abbrev')] = 'labels';
operatorMap[TAPi18n.__('operator-user')] = 'users';
operatorMap[TAPi18n.__('operator-user-abbrev')] = 'users';
operatorMap[TAPi18n.__('operator-member')] = 'members';
operatorMap[TAPi18n.__('operator-member-abbrev')] = 'members';
operatorMap[TAPi18n.__('operator-assignee')] = 'assignees';
operatorMap[TAPi18n.__('operator-assignee-abbrev')] = 'assignees';
operatorMap[TAPi18n.__('operator-is')] = 'is';
operatorMap[TAPi18n.__('operator-due')] = 'dueAt';
operatorMap[TAPi18n.__('operator-created')] = 'createdAt';
operatorMap[TAPi18n.__('operator-modified')] = 'modifiedAt';
operatorMap[TAPi18n.__('operator-sort')] = 'sort';
Object.entries(operators).forEach(([key, value]) => {
operatorMap[TAPi18n.__(key).toLowerCase()] = value;
});
// eslint-disable-next-line no-console
console.log('operatorMap:', operatorMap);
@ -248,7 +253,7 @@ BlazeComponent.extendComponent({
} else {
op = m.groups.abbrev;
}
if (op in operatorMap) {
if (operatorMap.hasOwnProperty(op)) {
let value = m.groups.value;
if (operatorMap[op] === 'labels') {
if (value in this.colorMap) {

View file

@ -43,7 +43,7 @@
border-radius: 5px
padding: 1.5rem
padding-top: 0.75rem
display: table-cell
display: inline-block
min-width: 250px
max-width: 350px