diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6704dea20..57e90a46f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,31 @@
+# Upcoming Wekan release
+
+This release adds the following changes:
+
+- [Hide email settings from Sandstorm Wekan Admin Panel](https://github.com/wekan/wekan/commit/626f435edf75fac68448ba2e14c62acb749f9c9b).
+ Thanks to ocdtrekkie and xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v5.02 2021-03-02 Wekan release
+
+This release adds the following improvements:
+
+- [Added sort to edit card REST API](https://github.com/wekan/wekan/pull/3618).
+ Thanks to ChrisMagnuson.
+- [Add attachmentId to the Webhook data](https://github.com/wekan/wekan/pull/3620).
+ Thanks to n8ores.
+
+and fixes the following bugs:
+
+- [Fix SMTP port lost after upgrade. STMP settings are made only with environment variables on non-Sandstorm platforms.
+ Note: Sending email on Sandstorm Wekan does not work yet](https://github.com/wekan/wekan/commit/65b8220fe53349695a335bdb8b9692f82d4b3329).
+ Thanks to jrsupplee and xet7.
+- [Removed extra imports of Meteor](https://github.com/wekan/wekan/commit/de13b8b9bafbfb186a037ae20e845846b296ac69).
+ Thanks to xet7.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
# v5.01 2021-02-26 Wekan release
This release fixes the following bugs:
diff --git a/Stackerfile.yml b/Stackerfile.yml
index e165ee8f0..e2637aced 100644
--- a/Stackerfile.yml
+++ b/Stackerfile.yml
@@ -1,5 +1,5 @@
appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v5.01.0"
+appVersion: "v5.02.0"
files:
userUploads:
- README.md
diff --git a/client/components/settings/settingBody.jade b/client/components/settings/settingBody.jade
index 45c128cd1..80677f0f6 100644
--- a/client/components/settings/settingBody.jade
+++ b/client/components/settings/settingBody.jade
@@ -13,10 +13,11 @@ template(name="setting")
a.js-setting-menu(data-id="registration-setting")
i.fa.fa-sign-in
| {{_ 'registration'}}
- li
- a.js-setting-menu(data-id="email-setting")
- i.fa.fa-envelope
- | {{_ 'email'}}
+ unless isSandstorm
+ li
+ a.js-setting-menu(data-id="email-setting")
+ i.fa.fa-envelope
+ | {{_ 'email'}}
li
a.js-setting-menu(data-id="account-setting")
i.fa.fa-users
@@ -39,7 +40,8 @@ template(name="setting")
else if generalSetting.get
+general
else if emailSetting.get
- +email
+ unless isSandstorm
+ +email
else if accountSetting.get
+accountSettings
else if announcementSetting.get
@@ -80,39 +82,40 @@ template(name="general")
template(name='email')
ul#email-setting.setting-detail
- li.smtp-form
- .title {{_ 'smtp-host'}}
- .description {{_ 'smtp-host-description'}}
- .form-group
- input.wekan-form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
- li.smtp-form
- .title {{_ 'smtp-port'}}
- .description {{_ 'smtp-port-description'}}
- .form-group
- input.wekan-form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
- li.smtp-form
- .title {{_ 'smtp-username'}}
- .form-group
- input.wekan-form-control#mail-server-username(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
- li.smtp-form
- .title {{_ 'smtp-password'}}
- .form-group
- input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="")
- li.smtp-form
- .title {{_ 'smtp-tls'}}
- .form-group
- a.flex.js-toggle-tls
- .materialCheckBox#mail-server-tls(class="{{#if currentSetting.mailServer.enableTLS}}is-checked{{/if}}")
-
- span {{_ 'smtp-tls-description'}}
-
- li.smtp-form
- .title {{_ 'send-from'}}
- .form-group
- input.wekan-form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
-
- li
- button.js-save.primary {{_ 'save'}}
+ //if isSandstorm
+ // li.smtp-form
+ // .title {{_ 'smtp-host'}}
+ // .description {{_ 'smtp-host-description'}}
+ // .form-group
+ // input.wekan-form-control#mail-server-host(type="text", placeholder="smtp.domain.com" value="{{currentSetting.mailServer.host}}")
+ // li.smtp-form
+ // .title {{_ 'smtp-port'}}
+ // .description {{_ 'smtp-port-description'}}
+ // .form-group
+ // input.wekan-form-control#mail-server-port(type="text", placeholder="25" value="{{currentSetting.mailServer.port}}")
+ // li.smtp-form
+ // .title {{_ 'smtp-username'}}
+ // .form-group
+ // input.wekan-form-control#mail-server-username(type="text", placeholder="{{_ 'username'}}" value="{{currentSetting.mailServer.username}}")
+ // li.smtp-form
+ // .title {{_ 'smtp-password'}}
+ // .form-group
+ // input.wekan-form-control#mail-server-password(type="password", placeholder="{{_ 'password'}}" value="")
+ // li.smtp-form
+ // .title {{_ 'smtp-tls'}}
+ // .form-group
+ // a.flex.js-toggle-tls
+ // .materialCheckBox#mail-server-tls(class="{{#if currentSetting.mailServer.enableTLS}}is-checked{{/if}}")
+ //
+ // span {{_ 'smtp-tls-description'}}
+ //
+ // li.smtp-form
+ // .title {{_ 'send-from'}}
+ // .form-group
+ // input.wekan-form-control#mail-server-from(type="email", placeholder="no-reply@domain.com" value="{{currentSetting.mailServer.from}}")
+ //
+ // li
+ // button.js-save.primary {{_ 'save'}}
li
button.js-send-smtp-test-email.primary {{_ 'send-smtp-test'}}
diff --git a/i18n/ar-EG.i18n.json b/i18n/ar-EG.i18n.json
index 98e0e425a..f412cdeda 100644
--- a/i18n/ar-EG.i18n.json
+++ b/i18n/ar-EG.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "sort",
"operator-comment": "comment",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archived",
+ "predicate-open": "open",
"predicate-ended": "ended",
"predicate-all": "all",
"predicate-overdue": "overdue",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "checklist",
+ "predicate-start": "start",
+ "predicate-end": "end",
+ "predicate-assignee": "assignee",
+ "predicate-member": "member",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s is not an operator",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "sort of '%s' is invalid",
"operator-status-invalid": "'%s' is not a valid status",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Next Page",
"previous-page": "Previous Page",
"heading-notes": "Notes",
"globalSearch-instructions-heading": "Search Instructions",
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Available operators:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - cards which are due *n* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - cards which were created *n* days ago",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - cards which were modified *n* days ago",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - cards that are archived.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - all archived and unarchived cards.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - cards with an end date.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:
` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
"globalSearch-instructions-notes-1": "Multiple operators may be specified.",
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
- "globalSearch-instructions-notes-3-2": "Days can be specified as an integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__`",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
"globalSearch-instructions-notes-4": "Text searches are case insensitive.",
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
"link-to-search": "Link to this search",
diff --git a/i18n/ar.i18n.json b/i18n/ar.i18n.json
index fa41d2666..d98fde55d 100644
--- a/i18n/ar.i18n.json
+++ b/i18n/ar.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "sort",
"operator-comment": "comment",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archived",
+ "predicate-open": "open",
"predicate-ended": "ended",
"predicate-all": "all",
"predicate-overdue": "overdue",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "checklist",
+ "predicate-start": "start",
+ "predicate-end": "end",
+ "predicate-assignee": "assignee",
+ "predicate-member": "member",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s is not an operator",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "sort of '%s' is invalid",
"operator-status-invalid": "'%s' is not a valid status",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Next Page",
"previous-page": "Previous Page",
"heading-notes": "Notes",
"globalSearch-instructions-heading": "Search Instructions",
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Available operators:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - cards which are due *n* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - cards which were created *n* days ago",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - cards which were modified *n* days ago",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - cards that are archived.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - all archived and unarchived cards.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - cards with an end date.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
"globalSearch-instructions-notes-1": "Multiple operators may be specified.",
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
- "globalSearch-instructions-notes-3-2": "Days can be specified as an integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__`",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
"globalSearch-instructions-notes-4": "Text searches are case insensitive.",
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
"link-to-search": "Link to this search",
diff --git a/i18n/bg.i18n.json b/i18n/bg.i18n.json
index f1a74e723..d5272ae7b 100644
--- a/i18n/bg.i18n.json
+++ b/i18n/bg.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "подреди",
"operator-comment": "коментар",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archived",
+ "predicate-open": "open",
"predicate-ended": "ended",
"predicate-all": "all",
"predicate-overdue": "overdue",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "списък със задачи",
+ "predicate-start": "начало",
+ "predicate-end": "край",
+ "predicate-assignee": "assignee",
+ "predicate-member": "член",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s is not an operator",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "sort of '%s' is invalid",
"operator-status-invalid": "'%s' is not a valid status",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Next Page",
"previous-page": "Previous Page",
"heading-notes": "Notes",
"globalSearch-instructions-heading": "Search Instructions",
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Available operators:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - cards which are due *n* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - cards which were created *n* days ago",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - cards which were modified *n* days ago",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - cards that are archived.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - all archived and unarchived cards.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - cards with an end date.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
"globalSearch-instructions-notes-1": "Multiple operators may be specified.",
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
- "globalSearch-instructions-notes-3-2": "Days can be specified as an integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__`",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
"globalSearch-instructions-notes-4": "Text searches are case insensitive.",
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
"link-to-search": "Link to this search",
diff --git a/i18n/br.i18n.json b/i18n/br.i18n.json
index 8abb1a146..2f90c9f48 100644
--- a/i18n/br.i18n.json
+++ b/i18n/br.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "sort",
"operator-comment": "comment",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archived",
+ "predicate-open": "open",
"predicate-ended": "ended",
"predicate-all": "all",
"predicate-overdue": "overdue",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "checklist",
+ "predicate-start": "start",
+ "predicate-end": "end",
+ "predicate-assignee": "assignee",
+ "predicate-member": "member",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s is not an operator",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "sort of '%s' is invalid",
"operator-status-invalid": "'%s' is not a valid status",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Next Page",
"previous-page": "Previous Page",
"heading-notes": "Notes",
"globalSearch-instructions-heading": "Search Instructions",
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Available operators:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - cards which are due *n* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - cards which were created *n* days ago",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - cards which were modified *n* days ago",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - cards that are archived.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - all archived and unarchived cards.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - cards with an end date.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
"globalSearch-instructions-notes-1": "Multiple operators may be specified.",
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
- "globalSearch-instructions-notes-3-2": "Days can be specified as an integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__`",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
"globalSearch-instructions-notes-4": "Text searches are case insensitive.",
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
"link-to-search": "Link to this search",
diff --git a/i18n/ca.i18n.json b/i18n/ca.i18n.json
index 9f1bbe9f3..3773f85b1 100644
--- a/i18n/ca.i18n.json
+++ b/i18n/ca.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "sort",
"operator-comment": "comment",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archived",
+ "predicate-open": "open",
"predicate-ended": "ended",
"predicate-all": "all",
"predicate-overdue": "overdue",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "checklist",
+ "predicate-start": "start",
+ "predicate-end": "end",
+ "predicate-assignee": "assignee",
+ "predicate-member": "member",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s is not an operator",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "sort of '%s' is invalid",
"operator-status-invalid": "'%s' is not a valid status",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Next Page",
"previous-page": "Previous Page",
"heading-notes": "Notes",
"globalSearch-instructions-heading": "Search Instructions",
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Available operators:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - cards which are due *n* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - cards which were created *n* days ago",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - cards which were modified *n* days ago",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - cards that are archived.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - all archived and unarchived cards.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - cards with an end date.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
"globalSearch-instructions-notes-1": "Multiple operators may be specified.",
"globalSearch-instructions-notes-2": "Similar operators are *OR*ed together. Cards that match any of the conditions will be returned.\n`__operator_list__:Available __operator_list__:Blocked` would return cards contained in any list named *Blocked* or *Available*.",
"globalSearch-instructions-notes-3": "Differing operators are *AND*ed together. Only cards that match all of the differing operators are returned. `__operator_list__:Available __operator_label__:red` returns only cards in the list *Available* with a *red* label.",
- "globalSearch-instructions-notes-3-2": "Days can be specified as an integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__`",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
"globalSearch-instructions-notes-4": "Text searches are case insensitive.",
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
"link-to-search": "Link to this search",
diff --git a/i18n/cs.i18n.json b/i18n/cs.i18n.json
index 75d8f1428..b5662acf4 100644
--- a/i18n/cs.i18n.json
+++ b/i18n/cs.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "třídění",
"operator-comment": "komentář",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archivováno",
+ "predicate-open": "open",
"predicate-ended": "ukončeno",
"predicate-all": "vše",
"predicate-overdue": "po termínu",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "zaškrtávací seznam",
+ "predicate-start": "začátek",
+ "predicate-end": "konec",
+ "predicate-assignee": "řešitel",
+ "predicate-member": "člen",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s není operátor",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "pořadí '%s' není platné",
"operator-status-invalid": "'%s' není platný stav",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Následující stránka",
"previous-page": "Předchozí stránka",
"heading-notes": "Poznámky",
"globalSearch-instructions-heading": "Vyhledat instrukce",
"globalSearch-instructions-description": "Vyhledávání lze za účelem zacílení doplnit o operátory. Operátory jsou zadávány napsáním názvu operátoru a hodnoty, které jsou odděleny dvojtečkou. Například specifikace operátoru `list:Blocked` omezí vyhledávání na karty obsažené ve sloupci *Blocked*. Pokud hodnota obsahuje mezerynebo speciální znaky, musí se nacházet v uvozovkách (např. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Dostupné operátory:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - karty v tablech odpovídají zadanému názvu",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - karty ve sloupcích odpovídají zadanému názvu",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - karty ve swimlanech odpovídají zadanému názvu",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - karty s komentářem obsahujícím *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - karty, které mají štítek odpovídající zadané barvě nebo názvu",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - zkratka pro `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - karty, kde je zadaný uživatel *member* nebo *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - zkratka pro `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - karty, kde je zadaný uživatel *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - karty, kde je zadaný uživatel *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - karty, které jsou *n* dní před termínem. `__operator_due__:__predicate_overdue__ zobrazí všechny karty po termínu.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - karty, které byly vytvořeny před *n* dny",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - karty modifikované před *n* dny",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - archivované karty.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - všechny archivované a nearchivované karty.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - karty s datem dokončení.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where ** is one of `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` or `__predicate_member__`. Placing a `-` in front of ** searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+ "globalSearch-instructions-operator-sort": "`__operator_sort__:` - where ** is one of `__predicate_due__`, `__predicate_created__` or `__predicate_modified__`. For a descending sort, place a `-` in front of the sort name.",
+ "globalSearch-instructions-operator-limit": "`__operator_limit__:` - where ** is a positive integer expressing the number of cards to be displayed per page.",
"globalSearch-instructions-notes-1": "Lze zadat více operátorů současně.",
"globalSearch-instructions-notes-2": "Podobné operátory jsou spojeny pomocí *OR*. Jsou zobrazeny karty odpovídající kterékoli v podmínek.\n`__operator_list__:Available __operator_list__:Blocked` zobrazí karty obsažené v jakémkoli sloupci s názvem *Blocked* nebo *Available*.",
"globalSearch-instructions-notes-3": "Odlišné operátory jsou spojeny pomocí *AND*. Jsou zobrazeny pouze karty, které odpovídají všem definovaným operátorům. `__operator_list__:Available __operator_label__:red` zobrazí pouze karty ve sloupci *Available* with a štítkem *red*.",
- "globalSearch-instructions-notes-3-2": "Dyn mohou být zadávány jako celé číslo nebo s použitím `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` nebo `__predicate_year__`",
+ "globalSearch-instructions-notes-3-2": "Days can be specified as a positive or negative integer or using `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` or `__predicate_year__` for the current period.",
"globalSearch-instructions-notes-4": "Vyhledávání rozlišuje velikost písmen.",
"globalSearch-instructions-notes-5": "By default archived cards are not searched.",
"link-to-search": "Odkaz na toto vyhledávání",
diff --git a/i18n/da.i18n.json b/i18n/da.i18n.json
index ab3b7186a..94faedf96 100644
--- a/i18n/da.i18n.json
+++ b/i18n/da.i18n.json
@@ -906,7 +906,9 @@
"operator-sort": "sort",
"operator-comment": "comment",
"operator-has": "has",
+ "operator-limit": "limit",
"predicate-archived": "archived",
+ "predicate-open": "open",
"predicate-ended": "ended",
"predicate-all": "all",
"predicate-overdue": "overdue",
@@ -920,6 +922,10 @@
"predicate-attachment": "attachment",
"predicate-description": "description",
"predicate-checklist": "tjekliste",
+ "predicate-start": "start",
+ "predicate-end": "slutter",
+ "predicate-assignee": "assignee",
+ "predicate-member": "medlem",
"predicate-public": "public",
"predicate-private": "private",
"operator-unknown-error": "%s is not an operator",
@@ -927,35 +933,39 @@
"operator-sort-invalid": "sort of '%s' is invalid",
"operator-status-invalid": "'%s' is not a valid status",
"operator-has-invalid": "%s is not a valid existence check",
+ "operator-limit-invalid": "%s is not a valid limit. Limit should be a positive integer.",
"next-page": "Next Page",
"previous-page": "Previous Page",
"heading-notes": "Notes",
"globalSearch-instructions-heading": "Search Instructions",
"globalSearch-instructions-description": "Searches can include operators to refine the search. Operators are specified by writing the operator name and value separated by a colon. For example, an operator specification of `list:Blocked` would limit the search to cards that are contained in a list named *Blocked*. If the value contains spaces or special characters it must be enclosed in quotation marks (e.g. `__operator_list__:\"To Review\"`).",
"globalSearch-instructions-operators": "Available operators:",
- "globalSearch-instructions-operator-board": "`__operator_board__:title` - cards in boards matching the specified title",
- "globalSearch-instructions-operator-list": "`__operator_list__:title` - cards in lists matching the specified title",
- "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:title` - cards in swimlanes matching the specified title",
- "globalSearch-instructions-operator-comment": "`__operator_comment__:text` - cards with a comment containing *text*.",
- "globalSearch-instructions-operator-label": "`__operator_label__:color` `__operator_label__:name` - cards that have a label matching the given color or name",
- "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__label` - shorthand for `__operator_label__:label`",
- "globalSearch-instructions-operator-user": "`__operator_user__:username` - cards where the specified user is a *member* or *assignee*",
- "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:username`",
- "globalSearch-instructions-operator-member": "`__operator_member__:username` - cards where the specified user is a *member*",
- "globalSearch-instructions-operator-assignee": "`__operator_assignee__:username` - cards where the specified user is an *assignee*",
- "globalSearch-instructions-operator-due": "`__operator_due__:n` - cards which are due *n* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
- "globalSearch-instructions-operator-created": "`__operator_created__:n` - cards which were created *n* days ago",
- "globalSearch-instructions-operator-modified": "`__operator_modified__:n` - cards which were modified *n* days ago",
- "globalSearch-instructions-status-archived": "`__operator_status__:__predicate_archived__` - cards that are archived.",
- "globalSearch-instructions-status-all": "`__operator_status__:__predicate_all__` - all archived and unarchived cards.",
- "globalSearch-instructions-status-ended": "`__operator_status__:__predicate_ended__` - cards with an end date.",
- "globalSearch-instructions-status-public": "`__operator_status__:__predicate_public__` - cards only in public boards.",
- "globalSearch-instructions-status-private": "`__operator_status__:__predicate_private__` - cards only in private boards.",
- "globalSearch-instructions-operator-has": "`__operator_has__:field` - where *field* is one of `__predicate_attachment__`, `__predicate_checklist__` or `__predicate_description__`",
+ "globalSearch-instructions-operator-board": "`__operator_board__:` - cards in boards matching the specified **",
+ "globalSearch-instructions-operator-list": "`__operator_list__:` - cards in lists matching the specified **",
+ "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:` - cards in swimlanes matching the specified **",
+ "globalSearch-instructions-operator-comment": "`__operator_comment__:` - cards with a comment containing **.",
+ "globalSearch-instructions-operator-label": "`__operator_label__:` `__operator_label__:` - cards that have a label matching ** or *",
+ "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__` - shorthand for `__operator_label__:` or `__operator_label__:`",
+ "globalSearch-instructions-operator-user": "`__operator_user__:` - cards where ** is a *member* or *assignee*",
+ "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - shorthand for `user:`",
+ "globalSearch-instructions-operator-member": "`__operator_member__:` - cards where ** is a *member*",
+ "globalSearch-instructions-operator-assignee": "`__operator_assignee__:` - cards where ** is an *assignee*",
+ "globalSearch-instructions-operator-due": "`__operator_due__:` - cards which are due up to ** days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+ "globalSearch-instructions-operator-created": "`__operator_created__:` - cards which were created ** days ago or less",
+ "globalSearch-instructions-operator-modified": "`__operator_modified__:` - cards which were modified ** days ago or less",
+ "globalSearch-instructions-operator-status": "`__operator_status__:` - where ** is one of the following:",
+ "globalSearch-instructions-status-archived": "`__predicate_archived__` - archived cards",
+ "globalSearch-instructions-status-all": "`__predicate_all__` - all archived and unarchived cards",
+ "globalSearch-instructions-status-ended": "`__predicate_ended__` - cards with an end date",
+ "globalSearch-instructions-status-public": "`__predicate_public__` - cards only in public boards",
+ "globalSearch-instructions-status-private": "`__predicate_private__` - cards only in private boards",
+ "globalSearch-instructions-operator-has": "`__operator_has__:` - where *