2
0
Эх сурвалжийг харах

Merge branch 'edge' into meteor-1.8

Lauri Ojansivu 6 жил өмнө
parent
commit
11ad8c7b30
60 өөрчлөгдсөн 741 нэмэгдсэн , 102 устгасан
  1. 16 0
      CHANGELOG.md
  2. 1 1
      Stackerfile.yml
  3. 2 2
      client/components/cards/cardDetails.js
  4. 37 4
      client/components/rules/actions/cardActions.jade
  5. 48 0
      client/components/rules/actions/cardActions.js
  6. 1 1
      client/components/rules/triggers/cardTriggers.jade
  7. 10 1
      i18n/ar.i18n.json
  8. 10 1
      i18n/bg.i18n.json
  9. 10 1
      i18n/br.i18n.json
  10. 10 1
      i18n/ca.i18n.json
  11. 11 2
      i18n/cs.i18n.json
  12. 10 1
      i18n/da.i18n.json
  13. 10 1
      i18n/de.i18n.json
  14. 10 1
      i18n/el.i18n.json
  15. 10 1
      i18n/en-GB.i18n.json
  16. 10 1
      i18n/en.i18n.json
  17. 10 1
      i18n/eo.i18n.json
  18. 10 1
      i18n/es-AR.i18n.json
  19. 14 5
      i18n/es.i18n.json
  20. 10 1
      i18n/eu.i18n.json
  21. 11 2
      i18n/fa.i18n.json
  22. 10 1
      i18n/fi.i18n.json
  23. 10 1
      i18n/fr.i18n.json
  24. 10 1
      i18n/gl.i18n.json
  25. 14 5
      i18n/he.i18n.json
  26. 10 1
      i18n/hi.i18n.json
  27. 10 1
      i18n/hu.i18n.json
  28. 10 1
      i18n/hy.i18n.json
  29. 10 1
      i18n/id.i18n.json
  30. 10 1
      i18n/ig.i18n.json
  31. 22 13
      i18n/it.i18n.json
  32. 10 1
      i18n/ja.i18n.json
  33. 10 1
      i18n/ka.i18n.json
  34. 10 1
      i18n/km.i18n.json
  35. 10 1
      i18n/ko.i18n.json
  36. 10 1
      i18n/lv.i18n.json
  37. 10 1
      i18n/mk.i18n.json
  38. 10 1
      i18n/mn.i18n.json
  39. 10 1
      i18n/nb.i18n.json
  40. 10 1
      i18n/nl.i18n.json
  41. 10 1
      i18n/oc.i18n.json
  42. 12 3
      i18n/pl.i18n.json
  43. 13 4
      i18n/pt-BR.i18n.json
  44. 10 1
      i18n/pt.i18n.json
  45. 10 1
      i18n/ro.i18n.json
  46. 14 5
      i18n/ru.i18n.json
  47. 10 1
      i18n/sr.i18n.json
  48. 13 4
      i18n/sv.i18n.json
  49. 10 1
      i18n/sw.i18n.json
  50. 10 1
      i18n/ta.i18n.json
  51. 10 1
      i18n/th.i18n.json
  52. 10 1
      i18n/tr.i18n.json
  53. 10 1
      i18n/uk.i18n.json
  54. 10 1
      i18n/vi.i18n.json
  55. 16 7
      i18n/zh-CN.i18n.json
  56. 10 1
      i18n/zh-HK.i18n.json
  57. 10 1
      i18n/zh-TW.i18n.json
  58. 1 1
      package.json
  59. 2 2
      sandstorm-pkgdef.capnp
  60. 83 0
      server/rulesHelper.js

+ 16 - 0
CHANGELOG.md

@@ -1,3 +1,19 @@
+# v2.87 2019-06-21 Wekan release
+
+This release adds the following new features:
+
+- [Rule cardAction - SetDate](https://github.com/wekan/wekan/pull/2506).
+  Thanks to road42.
+
+and fixes the following bugs:
+
+- [Fix Move card to top/bottom of list](https://github.com/wekan/wekan/pull/2508).
+  Thanks to road42.
+- [Translation fixes](https://github.com/wekan/wekan/pull/2507).
+  Thanks to road42.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
 # v2.86 2019-06-19 Wekan release
 
 This release fixes the following bugs:

+ 1 - 1
Stackerfile.yml

@@ -1,5 +1,5 @@
 appId: wekan-public/apps/77b94f60-dec9-0136-304e-16ff53095928
-appVersion: "v2.86.0"
+appVersion: "v2.87.0"
 files:
   userUploads:
     - README.md

+ 2 - 2
client/components/cards/cardDetails.js

@@ -345,12 +345,12 @@ Template.cardDetailsActionsPopup.events({
   'click .js-move-card-to-top' (evt) {
     evt.preventDefault();
     const minOrder = _.min(this.list().cards(this.swimlaneId).map((c) => c.sort));
-    this.move(this.swimlaneId, this.listId, minOrder - 1);
+    this.move(this.boardId, this.swimlaneId, this.listId, minOrder - 1);
   },
   'click .js-move-card-to-bottom' (evt) {
     evt.preventDefault();
     const maxOrder = _.max(this.list().cards(this.swimlaneId).map((c) => c.sort));
-    this.move(this.swimlaneId, this.listId, maxOrder + 1);
+    this.move(this.boardId, this.swimlaneId, this.listId, maxOrder + 1);
   },
   'click .js-archive' (evt) {
     evt.preventDefault();

+ 37 - 4
client/components/rules/actions/cardActions.jade

@@ -1,11 +1,44 @@
 template(name="cardActions")
+  div.trigger-item
+    div.trigger-content
+      div.trigger-dropdown
+        select(id="setdate-action")
+          option(value="setDate") {{{_'r-set'}}}
+          option(value="updateDate") {{{_'r-update'}}}
+      div.trigger-text
+        | {{{_'r-datefield'}}}
+      div.trigger-dropdown
+        select(id="setdate-datefield")
+          option(value="startAt") {{{_'r-df-start-at'}}}
+          option(value="dueAt") {{{_'r-df-due-at'}}}
+          option(value="endAt") {{{_'r-df-end-at'}}}
+          option(value="receivedAt") {{{_'r-df-received-at'}}}
+      div.trigger-text
+        | {{{_'r-to-current-datetime'}}}
+    div.trigger-button.js-set-date-action.js-goto-rules
+      i.fa.fa-plus
+
+  div.trigger-item
+    div.trigger-content
+      div.trigger-text
+        | {{{_'r-remove-value-from'}}}
+        | {{{_'r-datefield'}}}
+      div.trigger-dropdown
+        select(id="setdate-removedatefieldvalue")
+          option(value="startAt") {{{_'r-df-start-at'}}}
+          option(value="dueAt") {{{_'r-df-due-at'}}}
+          option(value="endAt") {{{_'r-df-end-at'}}}
+          option(value="receivedAt") {{{_'r-df-received-at'}}}
+    div.trigger-button.js-remove-datevalue-action.js-goto-rules
+      i.fa.fa-plus
+
   div.trigger-item
     div.trigger-content
       div.trigger-dropdown
         select(id="label-action")
           option(value="add") {{{_'r-add'}}}
           option(value="remove") {{{_'r-remove'}}}
-      div.trigger-text 
+      div.trigger-text
         | {{{_'r-label'}}}
       div.trigger-dropdown
         select(id="label-id")
@@ -21,16 +54,16 @@ template(name="cardActions")
         select(id="member-action")
           option(value="add") {{{_'r-add'}}}
           option(value="remove") {{{_'r-remove'}}}
-      div.trigger-text 
+      div.trigger-text
         | {{{_'r-member'}}}
       div.trigger-dropdown
-        input(id="member-name",type=text,placeholder="{{{_'r-name'}}}")  
+        input(id="member-name",type=text,placeholder="{{{_'r-name'}}}")
     div.trigger-button.js-add-member-action.js-goto-rules
       i.fa.fa-plus
 
   div.trigger-item
     div.trigger-content
-      div.trigger-text 
+      div.trigger-text
         | {{{_'r-remove-all'}}}
     div.trigger-button.js-add-removeall-action.js-goto-rules
       i.fa.fa-plus

+ 48 - 0
client/components/rules/actions/cardActions.js

@@ -29,6 +29,54 @@ BlazeComponent.extendComponent({
 
   events() {
     return [{
+      'click .js-set-date-action' (event) {
+        const ruleName = this.data().ruleName.get();
+        const trigger = this.data().triggerVar.get();
+        const triggerId = Triggers.insert(trigger);
+        const actionSelected = this.find('#setdate-action').value;
+        const dateFieldSelected = this.find('#setdate-datefield').value;
+        const boardId = Session.get('currentBoard');
+        const desc = Utils.getTriggerActionDesc(event, this);
+
+        const actionId = Actions.insert({
+          actionType: actionSelected,
+          dateField: dateFieldSelected,
+          boardId,
+          desc,
+        });
+
+        Rules.insert({
+          title: ruleName,
+          triggerId,
+          actionId,
+          boardId,
+          desc,
+        });
+      },
+
+      'click .js-remove-datevalue-action' (event) {
+        const ruleName = this.data().ruleName.get();
+        const trigger = this.data().triggerVar.get();
+        const triggerId = Triggers.insert(trigger);
+        const dateFieldSelected = this.find('#setdate-removedatefieldvalue').value;
+        const boardId = Session.get('currentBoard');
+        const desc = Utils.getTriggerActionDesc(event, this);
+
+        const actionId = Actions.insert({
+          actionType: 'removeDate',
+          dateField: dateFieldSelected,
+          boardId,
+          desc,
+        });
+
+        Rules.insert({
+          title: ruleName,
+          triggerId,
+          actionId,
+          boardId,
+          desc,
+        });
+      },
       'click .js-add-label-action' (event) {
         const ruleName = this.data().ruleName.get();
         const trigger = this.data().triggerVar.get();

+ 1 - 1
client/components/rules/triggers/cardTriggers.jade

@@ -22,7 +22,7 @@ template(name="cardTriggers")
   div.trigger-item
     div.trigger-content
       div.trigger-text
-        | {{_'r-when-the-label-is'}}
+        | {{_'r-when-the-label'}}
       div.trigger-dropdown
         select(id="spec-label")
           each labels

+ 10 - 1
i18n/ar.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/bg.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Възстановено от Архива",
     "r-a-card": "карта",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/br.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/ca.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 11 - 2
i18n/cs.i18n.json

@@ -432,7 +432,7 @@
     "shortcut-show-shortcuts": "Otevřít tento seznam odkazů",
     "shortcut-toggle-filterbar": "Přepnout lištu filtrování",
     "shortcut-toggle-sidebar": "Přepnout lištu tabla",
-    "show-cards-minimum-count": "Zobrazit počet karet pokud sloupec obsahuje více než ",
+    "show-cards-minimum-count": "Zobrazit počet karet pokud sloupec obsahuje více než",
     "sidebar-open": "Otevřít boční panel",
     "sidebar-close": "Zavřít boční panel",
     "signupPopup-title": "Vytvořit účet",
@@ -596,7 +596,7 @@
     "r-unarchived": "Obnoveno z archivu",
     "r-a-card": "karta",
     "r-when-a-label-is": "Pokud nějaký štítek je",
-    "r-when-the-label-is": "Pokud tento štítek je",
+    "r-when-the-label": "Pokud tento štítek je",
     "r-list-name": "název seznamu",
     "r-when-a-member": "Pokud nějaký člen je",
     "r-when-the-member": "Pokud tento člen je",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "Když je karta přesunuta do jiného sloupce",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/da.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/de.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "aus dem Archiv wiederhergestellt",
     "r-a-card": "einer Karte",
     "r-when-a-label-is": "Wenn ein Label",
-    "r-when-the-label-is": " Wenn das Label",
+    "r-when-the-label": "Wenn das Label",
     "r-list-name": "Listenname",
     "r-when-a-member": "Wenn ein Mitglied",
     "r-when-the-member": "Wenn das Mitglied",
@@ -669,6 +669,15 @@
     "r-board-note": "Hinweis: Lassen Sie ein Feld leer, um alle möglichen Werte zu finden.",
     "r-checklist-note": "Hinweis: Die Elemente der Checkliste müssen als kommagetrennte Werte geschrieben werden.",
     "r-when-a-card-is-moved": "Wenn eine Karte in eine andere Liste verschoben wird",
+    "r-set": "Setze",
+    "r-update": "Aktualisiere",
+    "r-datefield": "Datumsfeld",
+    "r-df-start-at": "Start",
+    "r-df-due-at": "Fällig",
+    "r-df-end-at": "Ende",
+    "r-df-received-at": "Empfangen",
+    "r-to-current-datetime": "auf das aktuelle Datum/Zeit",
+    "r-remove-value-from": "Entferne Wert von",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/el.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/en-GB.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/en.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -672,6 +672,15 @@
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-added-to": "added to",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/eo.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/es-AR.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 14 - 5
i18n/es.i18n.json

@@ -59,7 +59,7 @@
     "activity-checked-item": "marcado %s en la lista de verificación %s de %s",
     "activity-unchecked-item": "desmarcado %s en lista  %s de %s",
     "activity-checklist-added": "ha añadido una lista de verificación a %s",
-    "activity-checklist-removed": "eliminada una lista de verificación desde %s ",
+    "activity-checklist-removed": "eliminada una lista de verificación desde %s",
     "activity-checklist-completed": "completada la lista de verificación __checklist__ de la tarjeta __card__ de la lista __list__ del carril __swimlane__ del tablero __board__",
     "activity-checklist-uncompleted": "no completado la lista %s de %s",
     "activity-checklist-item-added": "ha añadido el elemento de la lista de verificación a '%s' en %s",
@@ -504,7 +504,7 @@
     "error-notAuthorized": "No estás autorizado a ver esta página.",
     "outgoing-webhooks": "Webhooks salientes",
     "outgoingWebhooksPopup-title": "Webhooks salientes",
-    "boardCardTitlePopup-title": "Filtro de títulos de tarjeta ",
+    "boardCardTitlePopup-title": "Filtro de títulos de tarjeta",
     "new-outgoing-webhook": "Nuevo webhook saliente",
     "no-name": "(Desconocido)",
     "Node_version": "Versión de Node",
@@ -596,7 +596,7 @@
     "r-unarchived": "Restaurado del archivo",
     "r-a-card": "una tarjeta",
     "r-when-a-label-is": "Cuando una etiqueta es",
-    "r-when-the-label-is": "Cuando la etiqueta es",
+    "r-when-the-label": "Cuando la etiqueta es",
     "r-list-name": "Nombre de lista",
     "r-when-a-member": "Cuando un miembro es",
     "r-when-the-member": "Cuando el miembro",
@@ -649,7 +649,7 @@
     "r-d-remove-label": "Eliminar etiqueta",
     "r-create-card": "Crear nueva tarjeta",
     "r-in-list": "en la lista",
-    "r-in-swimlane": "en carril ",
+    "r-in-swimlane": "en carril",
     "r-d-add-member": "Añadir miembro",
     "r-d-remove-member": "Eliminar miembro",
     "r-d-remove-all-member": "Eliminar todos los miembros",
@@ -669,6 +669,15 @@
     "r-board-note": "Nota: deje un campo vacío para que coincida con todos los valores posibles",
     "r-checklist-note": "Nota: los ítems de la lista tienen que escribirse como valores separados por coma.",
     "r-when-a-card-is-moved": "Cuando una tarjeta es movida a otra lista",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",
@@ -677,7 +686,7 @@
     "custom-product-name": "Nombre de producto personalizado",
     "layout": "Diseño",
     "hide-logo": "Ocultar logo",
-    "add-custom-html-after-body-start": "Añade HTML personalizado después de <body> ",
+    "add-custom-html-after-body-start": "Añade HTML personalizado después de <body>",
     "add-custom-html-before-body-end": "Añade HTML personalizado después de </body>",
     "error-undefined": "Algo no está bien",
     "error-ldap-login": "Ocurrió un error al intentar acceder",

+ 10 - 1
i18n/eu.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 11 - 2
i18n/fa.i18n.json

@@ -507,7 +507,7 @@
     "boardCardTitlePopup-title": "فیلتر موضوع کارت",
     "new-outgoing-webhook": "New Outgoing Webhook",
     "no-name": "(ناشناخته)",
-    "Node_version": "نسخه Node ",
+    "Node_version": "نسخه Node",
     "OS_Arch": "OS Arch",
     "OS_Cpus": "OS CPU Count",
     "OS_Freemem": "OS Free Memory",
@@ -596,7 +596,7 @@
     "r-unarchived": "بازگردانی از آرشیو",
     "r-a-card": "کارت",
     "r-when-a-label-is": "زمانی که لیبل هست",
-    "r-when-the-label-is": "زمانی که لیبل هست",
+    "r-when-the-label": "زمانی که لیبل هست",
     "r-list-name": "نام لیست",
     "r-when-a-member": "زمانی که کاربر هست",
     "r-when-the-member": "زمانی که کاربر",
@@ -669,6 +669,15 @@
     "r-board-note": "نکته: برای نمایش موارد ممکن کادر را خالی بگذارید.",
     "r-checklist-note": "نکته: چک‌لیست‌ها باید توسط کاما از یک‌دیگر جدا شوند.",
     "r-when-a-card-is-moved": "دمانی که یک کارت به لیست دیگری منتقل شد",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/fi.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Palautettu Arkistosta",
     "r-a-card": "kortti",
     "r-when-a-label-is": "Kun tunniste on",
-    "r-when-the-label-is": "Kun tunniste on",
+    "r-when-the-label": "Kun tunniste on",
     "r-list-name": "listan nimi",
     "r-when-a-member": "Kun jäsen on",
     "r-when-the-member": "Kun käyttäjä",
@@ -669,6 +669,15 @@
     "r-board-note": "Huom: jätä kenttä tyhjäksi täsmätäksesi jokaiseen mahdolliseen arvoon.",
     "r-checklist-note": "Huom: tarkistuslistan kohteet täytyy kirjoittaa pilkulla eroteltuina.",
     "r-when-a-card-is-moved": "Kun kortti on siirretty toiseen listaan",
+    "r-set": "Aseta",
+    "r-update": "Päivitä",
+    "r-datefield": "päivämäärä kenttä",
+    "r-df-start-at": "alkaa",
+    "r-df-due-at": "erääntyy",
+    "r-df-end-at": "loppuu",
+    "r-df-received-at": "vastaanotettu",
+    "r-to-current-datetime": "nykyiseen päivään/aikaan",
+    "r-remove-value-from": "Poista arvo kohteesta",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/fr.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restauré depuis l'Archive",
     "r-a-card": "carte",
     "r-when-a-label-is": "Quand une étiquette est",
-    "r-when-the-label-is": "Quand l'étiquette est",
+    "r-when-the-label": "Quand l'étiquette est",
     "r-list-name": "Nom de la liste",
     "r-when-a-member": "Quand un participant est",
     "r-when-the-member": "Quand le participant",
@@ -669,6 +669,15 @@
     "r-board-note": "Note : laisser le champ vide pour faire correspondre avec toutes les valeurs possibles.",
     "r-checklist-note": "Note : les items de la checklist doivent être séparés par des virgules.",
     "r-when-a-card-is-moved": "Quand une carte est déplacée vers une autre liste",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/gl.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 14 - 5
i18n/he.i18n.json

@@ -213,7 +213,7 @@
     "comment-placeholder": "כתיבת הערה",
     "comment-only": "הערה בלבד",
     "comment-only-desc": "ניתן להגיב על כרטיסים בלבד.",
-    "no-comments": " אין הערות",
+    "no-comments": "אין הערות",
     "no-comments-desc": "לא ניתן לצפות בתגובות ובפעילויות.",
     "computer": "מחשב",
     "confirm-subtask-delete-dialog": "למחוק את תת המשימה?",
@@ -371,7 +371,7 @@
     "move-selection": "העברת הבחירה",
     "moveCardPopup-title": "העברת כרטיס",
     "moveCardToBottom-title": "העברה לתחתית הרשימה",
-    "moveCardToTop-title": "העברה לראש הרשימה ",
+    "moveCardToTop-title": "העברה לראש הרשימה",
     "moveSelectionPopup-title": "העברת בחירה",
     "multi-selection": "בחירה מרובה",
     "multi-selection-on": "בחירה מרובה פועלת",
@@ -497,7 +497,7 @@
     "send-smtp-test": "שליחת דוא״ל בדיקה לעצמך",
     "invitation-code": "קוד הזמנה",
     "email-invite-register-subject": "נשלחה אליך הזמנה מאת __inviter__",
-    "email-invite-register-text": " __user__, יקר/ה\n\n__inviter__ מזמין/ה אתכם לשיתוף פעולה בלוח הקנבן.\n\nאנא לחצו על הקישור הבא:\n__url__\n\nקוד ההזמנה הוא: __icode__\n\nתודה.",
+    "email-invite-register-text": "__user__, יקר/ה\n\n__inviter__ מזמין/ה אתכם לשיתוף פעולה בלוח הקנבן.\n\nאנא לחצו על הקישור הבא:\n__url__\n\nקוד ההזמנה הוא: __icode__\n\nתודה.",
     "email-smtp-test-subject": "דוא״ל לבדיקת SMTP",
     "email-smtp-test-text": "שלחת הודעת דוא״ל בהצלחה",
     "error-invitation-code-not-exist": "קוד ההזמנה אינו קיים",
@@ -511,7 +511,7 @@
     "OS_Arch": "ארכיטקטורת מערכת הפעלה",
     "OS_Cpus": "מספר מעבדים",
     "OS_Freemem": "זיכרון (RAM) פנוי",
-    "OS_Loadavg": "עומס ממוצע ",
+    "OS_Loadavg": "עומס ממוצע",
     "OS_Platform": "מערכת הפעלה",
     "OS_Release": "גרסת מערכת הפעלה",
     "OS_Totalmem": "סך כל הזיכרון (RAM)",
@@ -596,7 +596,7 @@
     "r-unarchived": "הוחזר מהארכיון",
     "r-a-card": "כרטיס",
     "r-when-a-label-is": "כאשר תווית",
-    "r-when-the-label-is": "כאשר התווית היא",
+    "r-when-the-label": "כאשר התווית היא",
     "r-list-name": "שם הרשימה",
     "r-when-a-member": "כאשר חבר הוא",
     "r-when-the-member": "כאשר חבר",
@@ -669,6 +669,15 @@
     "r-board-note": "לתשומת לבך: ניתן להשאיר את השדה ריק כדי ללכוד כל ערך אפשרי.",
     "r-checklist-note": "לתשומת לבך: את פריטי רשימת הביצוע יש לכתוב בתצורת רשימה של ערכים המופרדים בפסיקים.",
     "r-when-a-card-is-moved": "כאשר כרטיס מועבר לרשימה אחרת",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/hi.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a कार्ड",
     "r-when-a-label-is": "जब एक नामपत्र है",
-    "r-when-the-label-is": "जब नामपत्र है",
+    "r-when-the-label": "जब नामपत्र है",
     "r-list-name": "list name",
     "r-when-a-member": "जब एक सदस्य is",
     "r-when-the-member": "जब the सदस्य",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "जब एक कार्ड is स्थानांतरित तक another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/hu.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Helyreállítva az archívumból",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "Amikor egy kártya másik listába kerül",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/hy.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/id.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/ig.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 22 - 13
i18n/it.i18n.json

@@ -56,7 +56,7 @@
     "activity-sent": "inviato %s a %s",
     "activity-unjoined": "ha abbandonato %s",
     "activity-subtask-added": "aggiunto il sottocompito a 1%s",
-    "activity-checked-item": " selezionata %s nella checklist %s di %s",
+    "activity-checked-item": "selezionata %s nella checklist %s di %s",
     "activity-unchecked-item": "disattivato %s nella checklist %s di %s",
     "activity-checklist-added": "aggiunta checklist a %s",
     "activity-checklist-removed": "È stata rimossa una checklist da%s",
@@ -348,7 +348,7 @@
     "leaveBoardPopup-title": "Abbandona Bacheca?",
     "link-card": "Link a questa scheda",
     "list-archive-cards": "Sposta tutte le schede in questo elenco nell'Archivio",
-    "list-archive-cards-pop": "Questo rimuoverà tutte le schede nell'elenco dalla bacheca. Per vedere le schede nell'archivio e portarle dov'erano  nella bacheca, clicca su \"Menu\"  > \"Archivio\". ",
+    "list-archive-cards-pop": "Questo rimuoverà tutte le schede nell'elenco dalla bacheca. Per vedere le schede nell'archivio e portarle dov'erano  nella bacheca, clicca su \"Menu\"  > \"Archivio\".",
     "list-move-cards": "Sposta tutte le schede in questa lista",
     "list-select-cards": "Selezione tutte le schede in questa lista",
     "set-color-list": "Imposta un colore",
@@ -473,9 +473,9 @@
     "list-templates-swimlane": "Elenca i template",
     "board-templates-swimlane": "Bacheca dei template",
     "what-to-do": "Cosa vuoi fare?",
-    "wipLimitErrorPopup-title": "Limite work in progress non valido. ",
-    "wipLimitErrorPopup-dialog-pt1": "Il numero di compiti in questa lista è maggiore del limite di work in progress che hai definito in precedenza. ",
-    "wipLimitErrorPopup-dialog-pt2": "Per favore, sposta alcuni dei compiti fuori da questa lista, oppure imposta un limite di work in progress più alto. ",
+    "wipLimitErrorPopup-title": "Limite work in progress non valido.",
+    "wipLimitErrorPopup-dialog-pt1": "Il numero di compiti in questa lista è maggiore del limite di work in progress che hai definito in precedenza.",
+    "wipLimitErrorPopup-dialog-pt2": "Per favore, sposta alcuni dei compiti fuori da questa lista, oppure imposta un limite di work in progress più alto.",
     "admin-panel": "Pannello dell'Amministratore",
     "settings": "Impostazioni",
     "people": "Persone",
@@ -510,13 +510,13 @@
     "Node_version": "Versione di Node",
     "OS_Arch": "Architettura del sistema operativo",
     "OS_Cpus": "Conteggio della CPU del sistema operativo",
-    "OS_Freemem": "Memoria libera del sistema operativo ",
-    "OS_Loadavg": "Carico medio del sistema operativo ",
+    "OS_Freemem": "Memoria libera del sistema operativo",
+    "OS_Loadavg": "Carico medio del sistema operativo",
     "OS_Platform": "Piattaforma del sistema operativo",
     "OS_Release": "Versione di rilascio del sistema operativo",
-    "OS_Totalmem": "Memoria totale del sistema operativo ",
-    "OS_Type": "Tipo di sistema operativo ",
-    "OS_Uptime": "Tempo di attività del sistema operativo. ",
+    "OS_Totalmem": "Memoria totale del sistema operativo",
+    "OS_Type": "Tipo di sistema operativo",
+    "OS_Uptime": "Tempo di attività del sistema operativo.",
     "days": "giorni",
     "hours": "ore",
     "minutes": "minuti",
@@ -585,18 +585,18 @@
     "r-when-a-card": "Quando una scheda",
     "r-is": "è",
     "r-is-moved": "viene spostata",
-    "r-added-to": "Aggiunto/a a ",
+    "r-added-to": "Aggiunto/a a",
     "r-removed-from": "Rimosso da",
     "r-the-board": "La bacheca",
     "r-list": "lista",
     "set-filter": "Imposta un filtro",
-    "r-moved-to": "Spostato/a a ",
+    "r-moved-to": "Spostato/a a",
     "r-moved-from": "Spostato/a da",
     "r-archived": "Spostato/a nell'archivio",
     "r-unarchived": "Ripristinato/a dall'archivio",
     "r-a-card": "una scheda",
     "r-when-a-label-is": "Quando un'etichetta viene",
-    "r-when-the-label-is": "Quando l'etichetta viene",
+    "r-when-the-label": "Quando l'etichetta viene",
     "r-list-name": "Nome dell'elenco",
     "r-when-a-member": "Quando un membro viene",
     "r-when-the-member": "Quando un membro viene",
@@ -669,6 +669,15 @@
     "r-board-note": "Nota: Lascia un campo vuoto per abbinare ogni possibile valore",
     "r-checklist-note": "Nota: Gli elementi della checklist devono essere scritti come valori separati dalla virgola",
     "r-when-a-card-is-moved": "Quando una scheda viene spostata su un'altra lista",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "Oauth2",
     "cas": "CAS",

+ 10 - 1
i18n/ja.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "カードが別のリストに移動したとき",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/ka.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/km.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/ko.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/lv.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/mk.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Възстановено от Архива",
     "r-a-card": "карта",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/mn.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/nb.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/nl.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/oc.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 12 - 3
i18n/pl.i18n.json

@@ -42,7 +42,7 @@
     "activities": "Ostatnia aktywność",
     "activity": "Aktywność",
     "activity-added": "dodał(a) %s z %s",
-    "activity-archived": "%s została przeniesiona do Archiwum ",
+    "activity-archived": "%s została przeniesiona do Archiwum",
     "activity-attached": "załączono %s z %s",
     "activity-created": "utworzono %s",
     "activity-customfield-created": "utworzono niestandardowe pole %s",
@@ -139,7 +139,7 @@
     "card-delete-notice": "Usunięcie jest trwałe. Stracisz wszystkie akcje powiązane z tą kartą.",
     "card-delete-pop": "Wszystkie akcje będą usunięte z widoku aktywności, nie można będzie ponownie otworzyć karty.  Usunięcie jest nieodwracalne.",
     "card-delete-suggest-archive": "Możesz przenieść kartę do Archiwum, a następnie usunąć ją z tablicy i zachować ją w Aktywności.",
-    "card-due": "Ukończenie\n",
+    "card-due": "Ukończenie",
     "card-due-on": "Ukończenie w",
     "card-spent": "Spędzony czas",
     "card-edit-attachments": "Edytuj załączniki",
@@ -596,7 +596,7 @@
     "r-unarchived": "Przywrócone z Archiwum",
     "r-a-card": "karta",
     "r-when-a-label-is": "Gdy etykieta jest",
-    "r-when-the-label-is": "Gdy etykieta jest",
+    "r-when-the-label": "Gdy etykieta jest",
     "r-list-name": "nazwa listy",
     "r-when-a-member": "Gdy członek jest",
     "r-when-the-member": "Gdy członek jest",
@@ -669,6 +669,15 @@
     "r-board-note": "Uwaga: pozostaw pole puste, aby każda wartość była brana pod uwagę.",
     "r-checklist-note": "Uwaga: wartości elementów listy muszą być oddzielone przecinkami.",
     "r-when-a-card-is-moved": "Gdy karta jest przeniesiona do innej listy",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 13 - 4
i18n/pt-BR.i18n.json

@@ -31,7 +31,7 @@
     "act-importCard": "importado cartão  __card__ para lista __list__ em raia __swimlane__ no quadro __board__",
     "act-importList": "importada lista __list__ para raia __swimlane__ no quadro __board__",
     "act-joinMember": "adicionado membro __member__ ao cartão __card__ na lista __list__ em raia __swimlane__ no quadro __board__",
-    "act-moveCard": "movido cartão __card__ do quadro __board__ da raia  __oldSwimlane__ da lista __oldList__ para a raia __swimlane__ na lista __list__ ",
+    "act-moveCard": "movido cartão __card__ do quadro __board__ da raia  __oldSwimlane__ da lista __oldList__ para a raia __swimlane__ na lista __list__",
     "act-moveCardToOtherBoard": "movido cartão __card__ da lista __oldList__ em raia __oldSwimlane__ no quadro __oldBoard__ para lista __list__ em raia __swimlane__ no quadro __board__",
     "act-removeBoardMember": "removido membro __member__ do quadro __board__",
     "act-restoredCard": "restaurado cartão __card__ a lista __list__ em raia __swimlane__ no quadro __board__",
@@ -354,7 +354,7 @@
     "set-color-list": "Definir Cor",
     "listActionPopup-title": "Listar Ações",
     "swimlaneActionPopup-title": "Ações de Raia",
-    "swimlaneAddPopup-title": "Adicionar uma Raia abaixo ",
+    "swimlaneAddPopup-title": "Adicionar uma Raia abaixo",
     "listImportCardPopup-title": "Importe um cartão do Trello",
     "listMorePopup-title": "Mais",
     "link-list": "Vincular a esta lista",
@@ -585,7 +585,7 @@
     "r-when-a-card": "Quando um cartão",
     "r-is": "é",
     "r-is-moved": "é movido",
-    "r-added-to": "adicionado à ",
+    "r-added-to": "adicionado à",
     "r-removed-from": "Removido de",
     "r-the-board": "o quadro",
     "r-list": "lista",
@@ -596,7 +596,7 @@
     "r-unarchived": "Restaurado do Arquivo-morto",
     "r-a-card": "um cartão",
     "r-when-a-label-is": "Quando uma etiqueta é",
-    "r-when-the-label-is": "Quando a etiqueta é",
+    "r-when-the-label": "Quando a etiqueta é",
     "r-list-name": "listar nome",
     "r-when-a-member": "Quando um membro é",
     "r-when-the-member": "Quando o membro",
@@ -669,6 +669,15 @@
     "r-board-note": "Nota: deixe o campo vazio para corresponder à todos os valores possíveis",
     "r-checklist-note": "Nota: itens de Checklists devem ser escritos separados por vírgulas",
     "r-when-a-card-is-moved": "Quando um cartão é movido de outra lista",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/pt.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restaurado do Arquivo",
     "r-a-card": "um cartão",
     "r-when-a-label-is": "Quando uma etiqueta é",
-    "r-when-the-label-is": "Quando a etiqueta é",
+    "r-when-the-label": "Quando a etiqueta é",
     "r-list-name": "listar o nome",
     "r-when-a-member": "Quando um membro é",
     "r-when-the-member": "Quando o membro",
@@ -669,6 +669,15 @@
     "r-board-note": "Nota: deixe o campo vazio para corresponder a todos os valores possíveis.",
     "r-checklist-note": "Nota: itens de listas de verificação devem ser escritos separados por vírgulas.",
     "r-when-a-card-is-moved": "Quando um cartão é movido de outra lista",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/ro.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 14 - 5
i18n/ru.i18n.json

@@ -20,7 +20,7 @@
     "act-createBoard": "создал доску __board__",
     "act-createSwimlane": "создал дорожку __swimlane__ на доске __board__",
     "act-createCard": "создал карточку __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
-    "act-createCustomField": "создал поле __customField__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__\n",
+    "act-createCustomField": "создал поле __customField__ в карточке __card__ в списке __list__ на дорожке __swimlane__ доски __board__",
     "act-createList": "добавил список __list__ на доску __board__",
     "act-addBoardMember": "добавил участника __member__ на доску __board__",
     "act-archivedBoard": "Доска __board__ перемещена в Архив",
@@ -258,7 +258,7 @@
     "edit": "Редактировать",
     "edit-avatar": "Изменить аватар",
     "edit-profile": "Изменить профиль",
-    "edit-wip-limit": " Изменить лимит на кол-во задач",
+    "edit-wip-limit": "Изменить лимит на кол-во задач",
     "soft-wip-limit": "Мягкий лимит",
     "editCardStartDatePopup-title": "Изменить дату начала",
     "editCardDueDatePopup-title": "Изменить дату выполнения",
@@ -548,7 +548,7 @@
     "delete-board-confirm-popup": "Все списки, карточки, метки и действия будут удалены, и вы не сможете восстановить содержимое доски. Отменить нельзя.",
     "boardDeletePopup-title": "Удалить доску?",
     "delete-board": "Удалить доску",
-    "default-subtasks-board": "Подзадача для доски __board__ ",
+    "default-subtasks-board": "Подзадача для доски __board__",
     "default": "По умолчанию",
     "queue": "Очередь",
     "subtask-settings": "Настройки подзадач",
@@ -596,7 +596,7 @@
     "r-unarchived": "Восстановлена из архива",
     "r-a-card": "карточку",
     "r-when-a-label-is": "Когда метка",
-    "r-when-the-label-is": "Когда метка",
+    "r-when-the-label": "Когда метка",
     "r-list-name": "имя",
     "r-when-a-member": "Когда участник",
     "r-when-the-member": "Когда участник",
@@ -669,6 +669,15 @@
     "r-board-note": "Примечание: пустое поле соответствует любым возможным значениям.",
     "r-checklist-note": "Примечание: пункты контрольных списков при перечислении разделяются запятыми.",
     "r-when-a-card-is-moved": "Когда карточка перемещена в другой список",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",
@@ -677,7 +686,7 @@
     "custom-product-name": "Собственное наименование",
     "layout": "Внешний вид",
     "hide-logo": "Скрыть логотип",
-    "add-custom-html-after-body-start": "Добавить HTML после начала <body> ",
+    "add-custom-html-after-body-start": "Добавить HTML после начала <body>",
     "add-custom-html-before-body-end": "Добавить HTML до завершения </body>",
     "error-undefined": "Что-то пошло не так",
     "error-ldap-login": "Ошибка при попытке авторизации",

+ 10 - 1
i18n/sr.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 13 - 4
i18n/sv.i18n.json

@@ -330,7 +330,7 @@
     "import-user-select": "Välj din befintliga användare du vill använda som den här medlemmen",
     "importMapMembersAddPopup-title": "Välj medlem",
     "info": "Version",
-    "initials": "Initialer ",
+    "initials": "Initialer",
     "invalid-date": "Ogiltigt datum",
     "invalid-time": "Ogiltig tid",
     "invalid-user": "Ogiltig användare",
@@ -361,7 +361,7 @@
     "list-delete-pop": "Alla åtgärder kommer att tas bort från aktivitetsmatningen och du kommer inte att kunna återställa listan. Det går inte att ångra.",
     "list-delete-suggest-archive": "Du kan flytta en lista till Arkiv för att ta bort den från anslagstavlan och bevara aktiviteten.",
     "lists": "Listor",
-    "swimlanes": "Simbanor ",
+    "swimlanes": "Simbanor",
     "log-out": "Logga ut",
     "log-in": "Logga in",
     "loginPopup-title": "Logga in",
@@ -476,7 +476,7 @@
     "wipLimitErrorPopup-title": "Ogiltig WIP-gräns",
     "wipLimitErrorPopup-dialog-pt1": "Antalet uppgifter i den här listan är högre än WIP-gränsen du har definierat.",
     "wipLimitErrorPopup-dialog-pt2": "Flytta några uppgifter ur listan, eller ställ in en högre WIP-gräns.",
-    "admin-panel": "Administratörspanel ",
+    "admin-panel": "Administratörspanel",
     "settings": "Inställningar",
     "people": "Personer",
     "registration": "Registrering",
@@ -596,7 +596,7 @@
     "r-unarchived": "Återställd från Arkiv",
     "r-a-card": "ett kort",
     "r-when-a-label-is": "När en etikett är",
-    "r-when-the-label-is": "När etiketten är",
+    "r-when-the-label": "När etiketten är",
     "r-list-name": "listnamn",
     "r-when-a-member": "När en medlem är",
     "r-when-the-member": "När medlemmen",
@@ -669,6 +669,15 @@
     "r-board-note": "Notera: lämna ett fält tomt för att matcha alla möjliga värden.",
     "r-checklist-note": "Notera: Objekt i en checklista måste skrivas som kommaseparerade objekt",
     "r-when-a-card-is-moved": "När ett kort flyttas till en annan lista",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/sw.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/ta.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/th.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/tr.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Arşivden geri çıkarıldı",
     "r-a-card": "Kart",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "liste adı",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Not: Her olası değere uyması için bir alanı boş bırakın.",
     "r-checklist-note": "Not: kontrol listesindeki öğelerin virgülle ayrılmış değerler olarak yazılması gerekir.",
     "r-when-a-card-is-moved": "Bir kart başka bir listeye taşındığında",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "Oauth2",
     "cas": "CAS",

+ 10 - 1
i18n/uk.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Відновлено з Архіву",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/vi.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 16 - 7
i18n/zh-CN.i18n.json

@@ -6,8 +6,8 @@
     "act-addSubtask": "添加子任务 __subtask__  到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中",
     "act-addLabel": "添加标签 __label__  到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中",
     "act-addedLabel": "添加标签 __label__  到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中",
-    "act-removeLabel": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的标签 __label__ ",
-    "act-removedLabel": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的标签 __label__ ",
+    "act-removeLabel": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的标签 __label__",
+    "act-removedLabel": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的标签 __label__",
     "act-addChecklist": "添加清单 __checklist__  到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中",
     "act-addChecklistItem": "添加清单项 __checklistItem__ 到看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__",
     "act-removeChecklist": "移除看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__",
@@ -16,7 +16,7 @@
     "act-uncheckedItem": "反选看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__ 的清单项 __checklistItem__",
     "act-completeChecklist": "完成检查列表__checklist__ 卡片 __card__ 列表 __list__ 泳道  __swimlane__ 看板 __board__",
     "act-uncompleteChecklist": "看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 中的清单 __checklist__ 未完成",
-    "act-addComment": "对看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 发表了评论: __comment__ ",
+    "act-addComment": "对看板 __board__ 中的泳道 __swimlane__ 中的列表 __list__ 中的卡片 __card__ 发表了评论: __comment__",
     "act-createBoard": "创建看板 __board__",
     "act-createSwimlane": "创建泳道 __swimlane__ 到看板 __board__",
     "act-createCard": "在看板 __board__ 的泳道 __swimlane__ 的列表 __list__ 中添加卡片 __card__",
@@ -33,7 +33,7 @@
     "act-joinMember": "已将成员 __member__  添加到 __board__ 看板中的 __swimlane__ 泳道中的 __list__  列表中的 __card__ 卡片中",
     "act-moveCard": "移动卡片 __card__ 到看板 __board__ 从列表 __oldList__ 泳道 __oldSwimlane__ 至列表 __list__ 泳道 __swimlane__",
     "act-moveCardToOtherBoard": "移动卡片 __card__ 从列表  __oldList__ 泳道 __oldSwimlane__ 看板  __oldBoard__ 至列表 __list__ 泳道 __swimlane__ 看板 __board__",
-    "act-removeBoardMember": "从看板 __board__ 移除成员 __member__ ",
+    "act-removeBoardMember": "从看板 __board__ 移除成员 __member__",
     "act-restoredCard": "恢复卡片 __card__ 至列表 __list__ 泳道 __swimlane__  看板 __board__",
     "act-unjoinMember": "移除成员  __member__  从卡片 __card__ 列表 __list__ a泳道 __swimlane__ 看板 __board__",
     "act-withBoardTitle": "看板__board__",
@@ -317,7 +317,7 @@
     "import-board-title-trello": "从Trello导入看板",
     "import-board-title-wekan": "从以前的导出数据导入看板",
     "import-sandstorm-backup-warning": "在检查此颗粒是否关闭和再次打开之前,不要删除从原始导出的看板或Trello导入的数据,否则看板会发生未知的错误,这将意味着数据丢失。",
-    "import-sandstorm-warning": "导入的面板将删除所有已存在于面板上的数据并替换他们为导入的面板。 ",
+    "import-sandstorm-warning": "导入的面板将删除所有已存在于面板上的数据并替换他们为导入的面板。",
     "from-trello": "自 Trello",
     "from-wekan": "自以前的导出",
     "import-board-instruction-trello": "在你的Trello看板中,点击“菜单”,然后选择“更多”,“打印与导出”,“导出为 JSON” 并拷贝结果文本",
@@ -358,7 +358,7 @@
     "listImportCardPopup-title": "导入 Trello 卡片",
     "listMorePopup-title": "更多",
     "link-list": "关联到这个列表",
-    "list-delete-pop": "所有活动将被从活动动态中删除并且你无法恢复他们,此操作无法撤销。 ",
+    "list-delete-pop": "所有活动将被从活动动态中删除并且你无法恢复他们,此操作无法撤销。",
     "list-delete-suggest-archive": "您可以移动列表到归档以将其从看板中移除并保留活动。",
     "lists": "列表",
     "swimlanes": "泳道图",
@@ -596,7 +596,7 @@
     "r-unarchived": "已从归档中恢复",
     "r-a-card": "一个卡片",
     "r-when-a-label-is": "当一个标签是",
-    "r-when-the-label-is": "当该标签是",
+    "r-when-the-label": "当该标签是",
     "r-list-name": "列表名称",
     "r-when-a-member": "当一个成员是",
     "r-when-the-member": "当该成员",
@@ -669,6 +669,15 @@
     "r-board-note": "注意:保留一个空字段去匹配所有可能的值。",
     "r-checklist-note": "注意:清单中的项目必须用都好分割。",
     "r-when-a-card-is-moved": "当移动卡片到另一个列表时",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/zh-HK.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 10 - 1
i18n/zh-TW.i18n.json

@@ -596,7 +596,7 @@
     "r-unarchived": "Restored from Archive",
     "r-a-card": "a card",
     "r-when-a-label-is": "When a label is",
-    "r-when-the-label-is": "When the label is",
+    "r-when-the-label": "When the label",
     "r-list-name": "list name",
     "r-when-a-member": "When a member is",
     "r-when-the-member": "When the member",
@@ -669,6 +669,15 @@
     "r-board-note": "Note: leave a field empty to match every possible value.",
     "r-checklist-note": "Note: checklist's items have to be written as comma separated values.",
     "r-when-a-card-is-moved": "When a card is moved to another list",
+    "r-set": "Set",
+    "r-update": "Update",
+    "r-datefield": "date field",
+    "r-df-start-at": "start",
+    "r-df-due-at": "due",
+    "r-df-end-at": "end",
+    "r-df-received-at": "received",
+    "r-to-current-datetime": "to current date/time",
+    "r-remove-value-from": "Remove value from",
     "ldap": "LDAP",
     "oauth2": "OAuth2",
     "cas": "CAS",

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v2.86.0",
+  "version": "v2.87.0",
   "description": "Open-Source kanban",
   "private": true,
   "scripts": {

+ 2 - 2
sandstorm-pkgdef.capnp

@@ -22,10 +22,10 @@ const pkgdef :Spk.PackageDefinition = (
     appTitle = (defaultText = "Wekan"),
     # The name of the app as it is displayed to the user.
 
-    appVersion = 288,
+    appVersion = 289,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "2.86.0~2019-06-19"),
+    appMarketingVersion = (defaultText = "2.87.0~2019-06-21"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

+ 83 - 0
server/rulesHelper.js

@@ -83,6 +83,89 @@ RulesHelper = {
         return;
       }
     }
+
+    if(action.actionType === 'setDate') {
+      try {
+        const currentDateTime = new Date();
+        switch (action.dateField){
+        case 'startAt': {
+          const resStart = card.getStart();
+          if (typeof resStart === 'undefined') {
+            card.setStart(currentDateTime);
+          }
+          break;
+        }
+        case 'endAt': {
+          const resEnd = card.getEnd();
+          if (typeof resEnd === 'undefined') {
+            card.setEnd(currentDateTime);
+          }
+          break;
+        }
+        case 'dueAt': {
+          const resDue = card.getDue();
+          if (typeof resDue === 'undefined') {
+            card.setDue(currentDateTime);
+          }
+          break;
+        }
+        case 'receivedAt': {
+          const resReceived = card.getReceived();
+          if (typeof resReceived === 'undefined') {
+            card.setReceived(currentDateTime);
+          }
+          break;
+        }
+        }
+      } catch (e) {
+        // eslint-disable-next-line no-console
+        console.error(e);
+        return;
+      }
+    }
+
+    if(action.actionType === 'updateDate'){
+      const currentDateTimeUpdate = new Date();
+      switch (action.dateField){
+      case 'startAt': {
+        card.setStart(currentDateTimeUpdate);
+        break;
+      }
+      case 'endAt': {
+        card.setEnd(currentDateTimeUpdate);
+        break;
+      }
+      case 'dueAt': {
+        card.setDue(currentDateTimeUpdate);
+        break;
+      }
+      case 'receivedAt': {
+        card.setReceived(currentDateTimeUpdate);
+        break;
+      }
+      }
+    }
+
+    if(action.actionType === 'removeDate'){
+      switch (action.dateField){
+      case 'startAt': {
+        card.unsetStart();
+        break;
+      }
+      case 'endAt': {
+        card.unsetEnd();
+        break;
+      }
+      case 'dueAt': {
+        card.unsetDue();
+        break;
+      }
+      case 'receivedAt': {
+        card.unsetReceived();
+        break;
+      }
+      }
+    }
     if(action.actionType === 'archive'){
       card.archive();
     }