Browse Source

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

John R. Supplee 4 năm trước cách đây
mục cha
commit
06cae36199
75 tập tin đã thay đổi với 508 bổ sung3864 xóa
  1. 25 1
      CHANGELOG.md
  2. 1 1
      Stackerfile.yml
  3. 1 0
      i18n/ar-EG.i18n.json
  4. 1 0
      i18n/ar.i18n.json
  5. 1 0
      i18n/bg.i18n.json
  6. 1 0
      i18n/br.i18n.json
  7. 1 0
      i18n/ca.i18n.json
  8. 1 0
      i18n/cs.i18n.json
  9. 1 0
      i18n/da.i18n.json
  10. 1 0
      i18n/de.i18n.json
  11. 1 0
      i18n/el.i18n.json
  12. 1 0
      i18n/en-GB.i18n.json
  13. 1 0
      i18n/eo.i18n.json
  14. 1 0
      i18n/es-AR.i18n.json
  15. 1 0
      i18n/es-CL.i18n.json
  16. 1 0
      i18n/es-MX.i18n.json
  17. 1 0
      i18n/es-PE.i18n.json
  18. 1 0
      i18n/es-PY.i18n.json
  19. 1 0
      i18n/es.i18n.json
  20. 1 0
      i18n/eu.i18n.json
  21. 1 0
      i18n/fa-IR.i18n.json
  22. 1 0
      i18n/fa.i18n.json
  23. 1 0
      i18n/fi.i18n.json
  24. 11 10
      i18n/fr.i18n.json
  25. 1 0
      i18n/gl.i18n.json
  26. 13 12
      i18n/he.i18n.json
  27. 1 0
      i18n/hi.i18n.json
  28. 62 61
      i18n/hr.i18n.json
  29. 1 0
      i18n/hu.i18n.json
  30. 1 0
      i18n/hy.i18n.json
  31. 25 24
      i18n/id.i18n.json
  32. 1 0
      i18n/ig.i18n.json
  33. 115 114
      i18n/it.i18n.json
  34. 7 6
      i18n/ja.i18n.json
  35. 1 0
      i18n/ka.i18n.json
  36. 1 0
      i18n/km.i18n.json
  37. 1 0
      i18n/ko.i18n.json
  38. 1 0
      i18n/lt.i18n.json
  39. 1 0
      i18n/lv.i18n.json
  40. 1 0
      i18n/mk.i18n.json
  41. 1 0
      i18n/mn.i18n.json
  42. 1 0
      i18n/nl.i18n.json
  43. 1 0
      i18n/oc.i18n.json
  44. 1 0
      i18n/pa.i18n.json
  45. 1 0
      i18n/pl.i18n.json
  46. 1 0
      i18n/pt-BR.i18n.json
  47. 1 0
      i18n/pt.i18n.json
  48. 1 0
      i18n/ro.i18n.json
  49. 14 13
      i18n/ru.i18n.json
  50. 1 0
      i18n/sk.i18n.json
  51. 1 0
      i18n/sl.i18n.json
  52. 1 0
      i18n/sr.i18n.json
  53. 113 112
      i18n/sv.i18n.json
  54. 1 0
      i18n/sw.i18n.json
  55. 1 0
      i18n/ta.i18n.json
  56. 1 0
      i18n/th.i18n.json
  57. 1 0
      i18n/tr.i18n.json
  58. 1 0
      i18n/uk.i18n.json
  59. 1 0
      i18n/vi.i18n.json
  60. 1 0
      i18n/zh-CN.i18n.json
  61. 1 0
      i18n/zh-HK.i18n.json
  62. 1 0
      i18n/zh-TW.i18n.json
  63. 41 28
      models/customFields.js
  64. 12 0
      models/presences.js
  65. 0 1
      openapi/generate_openapi.py
  66. 1 1
      package-lock.json
  67. 1 1
      package.json
  68. 1 1
      packages/markdown/src/template-integration.js
  69. 1 1
      public/api/wekan.html
  70. 1 3450
      public/api/wekan.yml
  71. 5 11
      releases/rebuild-docs-install-deps.sh
  72. 2 7
      releases/release-bundle.sh
  73. 1 5
      releases/up.sh
  74. 2 2
      sandstorm-pkgdef.capnp
  75. 2 2
      server/notifications/outgoing.js

+ 25 - 1
CHANGELOG.md

@@ -1,11 +1,35 @@
 # Upcoming Wekan release
 
-This release adds the following new features:
+This release fixes the following bugs:
+
+- [Change URL scheme recognition for allowing abasurl to link](https://github.com/wekan/wekan/pull/3641).
+  Thanks to tod31 and chrisi51.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
+# v5.04 2021-03-07 Wekan release
+
+This release adds the following speed improvements:
+
+- [Speed improvement: Delete presences older than one week, and add database index to presences
+  serverId](https://github.com/wekan/wekan/commit/9db3c931161adfbeb6fc52d3e4cf621fb9a4955f).
+  Thanks to xet7.
+
+and adds the following new features:
 
 - [Added autolinking settings in Admin Panel](https://github.com/wekan/wekan/pull/3633).
   Thanks to chrisi51.
 - [Add custom field editing to the REST API](https://github.com/wekan/wekan/pull/3593).
   Thanks to dudeofawesome.
+- [Related to custom field editing, Fixed generating API docs and Wekan Custom Fields
+  REST API](https://github.com/wekan/wekan/commit/0bb3b670753c6ba20b0ad63f63d273036f609ee5).
+  Thanks to xet7.
+
+and adds back the following platforms:
+
+- [OpenPower Minicloud emergency maintenance has finished, so can now build Wekan for
+  ppc64le](https://github.com/wekan/wekan/commit/ac9b23f00f10b0170b8693e1e997bfb54f807adc).
+  Thanks to OpenPower Minicloud.
 
 and fixes the following bugs:
 

+ 1 - 1
Stackerfile.yml

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

+ 1 - 0
i18n/ar-EG.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/ar.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "اسم المستخدم",
   "import-usernames": "Import Usernames",
   "view-it": "شاهدها",

+ 1 - 0
i18n/bg.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Потребителско име",
   "import-usernames": "Import Usernames",
   "view-it": "Прегледайте",

+ 1 - 0
i18n/br.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/ca.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nom d'Usuari",
   "import-usernames": "Import Usernames",
   "view-it": "Vist",

+ 1 - 0
i18n/cs.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL vlastního loga přihlášení",
   "custom-login-logo-link-url": "URL odkazu vlastního loga přihlášení",
   "text-below-custom-login-logo": "Text pod vlastním logem přihlášení",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Uživatelské jméno",
   "import-usernames": "Importovat uživatelská jména",
   "view-it": "Zobrazit",

+ 1 - 0
i18n/da.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Brugernavn",
   "import-usernames": "Import Usernames",
   "view-it": "Vis den",

+ 1 - 0
i18n/de.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Benutzerdefiniertes Login Logo Bild URL",
   "custom-login-logo-link-url": "Benutzerdefiniertes Login Logo Link URL",
   "text-below-custom-login-logo": "Text unterhalb benutzerdefiniertem Login Logo",
+  "automatic-linked-url-schemes": "Spezielle URL-Schemas, die durch Klick automatisch öffenbar sein sollen. Ein URL-Schema pro Zeile",
   "username": "Benutzername",
   "import-usernames": "Nutzernamen importieren",
   "view-it": "Ansehen",

+ 1 - 0
i18n/el.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Όνομα Χρήστη",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

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

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/eo.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Uzantnomo",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

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

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nombre de usuario",
   "import-usernames": "Import Usernames",
   "view-it": "Verlo",

+ 1 - 0
i18n/es-CL.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nombre de usuario",
   "import-usernames": "Import Usernames",
   "view-it": "Verla",

+ 1 - 0
i18n/es-MX.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/es-PE.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL de imagen del logo personalizado de inicio de sesión",
   "custom-login-logo-link-url": "URL de enlace del logo personalizado de inicio de sesión",
   "text-below-custom-login-logo": "Texto debajo del logo personalizado de inicio de sesión",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nombre de usuario",
   "import-usernames": "Import Usernames",
   "view-it": "Verla",

+ 1 - 0
i18n/es-PY.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/es.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nombre de usuario",
   "import-usernames": "Import Usernames",
   "view-it": "Verla",

+ 1 - 0
i18n/eu.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Erabiltzaile-izena",
   "import-usernames": "Import Usernames",
   "view-it": "Ikusi",

+ 1 - 0
i18n/fa-IR.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/fa.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "آدرس تصویر لوگوی سفارشی در لاگین",
   "custom-login-logo-link-url": "آدرس لینک لوگوی سفارشی در لاگین",
   "text-below-custom-login-logo": "متن پایین لوگوی سفارشی در فرم لاگین",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "نام کاربری",
   "import-usernames": "درون ریزی کاربران",
   "view-it": "مشاهده",

+ 1 - 0
i18n/fi.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Mukautettu kirjautumis logo kuvan URL",
   "custom-login-logo-link-url": "Mukautettu kirjautumis logon linkki URL",
   "text-below-custom-login-logo": "Teksti mukautetun kirjautumis logon alla",
+  "automatic-linked-url-schemes": "Mukautetut URL-mallit, joiden pitäisi olla automaattisesti klikattavissa. Yksi URL-malli riviä kohden",
   "username": "Käyttäjätunnus",
   "import-usernames": "Tuo käyttäjänimet",
   "view-it": "Näytä se",

+ 11 - 10
i18n/fr.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL de l'image du logo de connexion personnalisé",
   "custom-login-logo-link-url": "Lien URL du logo de connexion personnalisé",
   "text-below-custom-login-logo": "Texte sous le logo de connexion personnalisé",
+  "automatic-linked-url-schemes": "Schémas d'URI personnalisés qui devraient être automatiquement cliquables. Un schéma d'URI par ligne",
   "username": "Nom d'utilisateur",
   "import-usernames": "Importer les noms d'utilisateurs",
   "view-it": "Le voir",
@@ -946,22 +947,22 @@
   "globalSearch-instructions-operator-comment": "`__operator_comment__:<texte>` - cartes dont le commentaire contient *<texte>*.",
   "globalSearch-instructions-operator-label": "`__operator_label__:<couleur>` `__operator_label__:<nom>` - cartes qui ont une étiquette correspondant à *<couleur>* ou à *<nom>*.",
   "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<nom|couleur>` - raccourci pour `__operator_label__:<couleur>` ou `__operator_label__:<nom>`",
-  "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* 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 *<username>* is a *member*",
-  "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*",
-  "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<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 or less",
-  "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less",
-  "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* is one of the following:",
+  "globalSearch-instructions-operator-user": "`__operator_user__:<nom>` - cartes où l'utilisateur <nom> est *assigné* ou est un *participant*.",
+  "globalSearch-instructions-operator-at": "`__operator_user_abbrev__nom` - raccourci pour `__operator_user__:<nom>`",
+  "globalSearch-instructions-operator-member": "`__operator_member__:<nom>` - cartes pour lesquelles l'utilisateur *<nom>* est *participant*",
+  "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<nom>` - cartes *assignées* à l'utilisateur *<nom>*",
+  "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cartes qui arrive à échéance dans moins de *<n>* jours à partir d'aujourd'hui.\n`__operator_due__:__predicate_overdue__` liste toutes les cartes ayant passé la date d'échéance.",
+  "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cartes qui ont été créées il y a *<n>* jours ou moins",
+  "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cartes qui ont été modifiées il y a *<n>* jours ou moins",
+  "globalSearch-instructions-operator-status": "`__operator_status__:<état>` - où *<état>* est l'un des choix suivants :",
   "globalSearch-instructions-status-archived": "`__predicate_archived__` - cartes qui ont été archivées.",
   "globalSearch-instructions-status-all": "`__predicate_all__` -  toutes les cartes : archivées et non archivées.",
   "globalSearch-instructions-status-ended": "`__predicate_ended__` - cartes ayant une date de fin.",
   "globalSearch-instructions-status-public": "`__predicate_public__` - uniquement les cartes qui sont dans un tableau public.",
   "globalSearch-instructions-status-private": "`__predicate_private__` - uniquement les cartes qui sont dans un tableau privé.",
   "globalSearch-instructions-operator-has": "`__operator_has__:<champ>` - où *<champ>* est un parmi `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` ou `__predicate_member__`.  Placer un `-` au début de *<champ>* recherche l'absence de valeur dans ce champ (par exemple. __operator_has:__predicate_due` recherche les carte sans date d'échéance).",
-  "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - where *<sort-name>* 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__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.",
+  "globalSearch-instructions-operator-sort": "`__operator_sort__:<tri>` - où *<tri>* est une méthode parmi `__predicate_due__`, `__predicate_created__` ou `__predicate_modified__`.  Pour un tri descendant, préfixez la méthode par `-`.",
+  "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - où *<n>* est un entier positif exprimant le nombre de cartes à afficher par page.",
   "globalSearch-instructions-notes-1": "Il est possible d'utiliser plusieurs opérateurs.",
   "globalSearch-instructions-notes-2": "Les opérateurs similaires deviennent *optionnels*. Les cartes correspondant à n'importe quelle condition sont retournées.\n`__operator_list__:Disponible __operator_list__:Bloquée` retournera les cartes contenues dans la liste *Disponible* ou dans la liste *Bloquée*.",
   "globalSearch-instructions-notes-3": "Les opérateurs différents sont *combinés*. Seules les cartes correspondant à tous les critères sont retournées.  `__operator_list__:Disponible __operator_label__:rouge` ne retourne que les cartes dans la liste *Disponible* avec une étiquette *rouge*.",

+ 1 - 0
i18n/gl.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nome de usuario",
   "import-usernames": "Import Usernames",
   "view-it": "Velo",

+ 13 - 12
i18n/he.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "כתובת תמונת לוגו משלך לכניסה",
   "custom-login-logo-link-url": "כתובת קישור לוגו משלך לכניסה",
   "text-below-custom-login-logo": "טקסט מתחת לשיטת כניסה מותאמת",
+  "automatic-linked-url-schemes": "סכמות כתובות בהתאמה אישית שיהפכו ללחיצות אוטומטית. סכמת כתובת אחת בשורה",
   "username": "שם משתמש",
   "import-usernames": "ייבוא שמות משתמשים",
   "view-it": "הצגה",
@@ -945,27 +946,27 @@
   "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - כרטיסים במסלולים שעונים על *<title>* שצוין",
   "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - כרטיסים עם הערה שמכילים *<text>*.",
   "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - כרטיסים שיש להם תווית שתואמת את *<color>* או את *<name>",
-  "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`",
-  "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* 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 *<username>* is a *member*",
-  "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*",
-  "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<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 or less",
-  "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less",
+  "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - קיצור של `__operator_label__:<color>` או `__operator_label__:<name>`",
+  "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - כרטיסים שהוקצו אל *<username>* או שהוא *חבר* בהם",
+  "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - קיצור של `user:<username>`",
+  "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - כרטיסים בהם *<username>* *חבר*",
+  "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - כרטיסים שהוקצו אל *<username>*",
+  "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - כרטיסים שהתוקף שלהם יפוג עד עוד *<n>* ימים מעכשיו.  `__operator_due__:__predicate_overdue__ מציג את כל הכרטיסים שתאריך התוקף שלהם עבר.",
+  "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - כרטיסים שנוצרו לפני *<n>* ימים או פחות",
+  "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - כרטיסים שנערכו לפני *<n>* ימים או פחות",
   "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - כאשר *<status>* יכול להיות אחד מהבאים:",
   "globalSearch-instructions-status-archived": "`__predicate_archived__` - כרטיסים בארכיון",
   "globalSearch-instructions-status-all": "`__predicate_all__` - כל הכרטיסים שבארכיון ומחוצה לו.",
   "globalSearch-instructions-status-ended": "`__predicate_ended__` - כרטיסים עם מועד סיום",
   "globalSearch-instructions-status-public": "`__predicate_public__` - כרטיסים בלוחות ציבוריים בלבד",
   "globalSearch-instructions-status-private": "`__predicate_private__` - כרטיסים בלוחות פרטיים בלבד.",
-  "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* 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 *<field>* 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__:<sort-name>` - where *<sort-name>* 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__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.",
+  "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - כאשר *<field>* הוא אחד מבין `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` או `__predicate_member__`.  הוספת `-` לפני חיפושי *<field>* מחפש שדות שאין בהם את הערך שצוין (למשל: `has:-due` יחפש כרטיסים בלי תאריך תפוגה).",
+  "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - כאשר *<sort-name>* הוא אחד מבין `__predicate_due__`, `__predicate_created__` או `__predicate_modified__`.  לסדר יורד יש להציב `-` לפני שם המיון.",
+  "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - כאשר *<n>* הוא מספר שלם וחיובי שמבטא את מספר הכרטיסים שיופיעו בכל עמוד.",
   "globalSearch-instructions-notes-1": "אפשר לציין מגוון סימוני פעולה.",
   "globalSearch-instructions-notes-2": "על פעולות דומות חל שער לוגי *או* (*OR*). כרטיסים שתואמים אי אילו מהכללים יוחזרו.\n`__operator_list__:זמינים __operator_list__:חסומים` תחזרנה כרטיסים שמופיעים ברשימות עם השמות *חסומים* או *זמינים*.",
   "globalSearch-instructions-notes-3": "על פעולות שונות חל שער לוגי *וגם* (*AND*). רק כרטיסים שתואמים את שתי הפעולות השונות יוחזרו. `__operator_list__:זמינים __operator_label__:אדום` תחזיר רק כרטיסים מהרשימה *זמינים* עם תווית בצבע *אדום*.",
-  "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-3-2": "ניתן לציין ימים כמספר שלם חיובי או שלילי או על ידי ציון `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` או `__predicate_year__` לתקופה הנוכחית.",
   "globalSearch-instructions-notes-4": "חיפושי טקסט הם תלויי רישיות.",
   "globalSearch-instructions-notes-5": "כבררת מחדל לא מתבצע חיפוש בכרטיסים שבארכיון.",
   "link-to-search": "קישור לחיפוש הזה",

+ 1 - 0
i18n/hi.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "आलोकन it",

+ 62 - 61
i18n/hr.i18n.json

@@ -51,30 +51,30 @@
   "activity-created": "kreirao/la je %s",
   "activity-customfield-created": "kreirao/la je prilagođeno polje %s",
   "activity-excluded": "izdvojio/la je %s iz %s",
-  "activity-imported": "imported %s into %s from %s",
-  "activity-imported-board": "imported %s from %s",
-  "activity-joined": "joined %s",
+  "activity-imported": "uvezeno %s u %s iz %s ",
+  "activity-imported-board": "uvezeno %s iz %s",
+  "activity-joined": "spojen",
   "activity-moved": "moved %s from %s to %s",
   "activity-on": "na %s",
-  "activity-removed": "removed %s from %s",
-  "activity-sent": "sent %s to %s",
-  "activity-unjoined": "unjoined %s",
-  "activity-subtask-added": "added subtask to %s",
-  "activity-checked-item": "checked %s in checklist %s of %s",
-  "activity-unchecked-item": "unchecked %s in checklist %s of %s",
-  "activity-checklist-added": "added checklist to %s",
-  "activity-checklist-removed": "removed a checklist from %s",
-  "activity-checklist-completed": "completed checklist %s of %s",
-  "activity-checklist-uncompleted": "uncompleted the checklist %s of %s",
-  "activity-checklist-item-added": "added checklist item to '%s' in %s",
-  "activity-checklist-item-removed": "removed a checklist item from '%s' in %s",
+  "activity-removed": "uklonjen %s iz %s",
+  "activity-sent": "poslano %s u %s",
+  "activity-unjoined": "odspojen %s",
+  "activity-subtask-added": "dodan podzadatak u %s",
+  "activity-checked-item": "označen %s u listi provjere %s od %s",
+  "activity-unchecked-item": "odznačen %s u listi provjere %s od %s",
+  "activity-checklist-added": "dodana lista provjere u %s",
+  "activity-checklist-removed": "uklonjena lista provjere iz %s",
+  "activity-checklist-completed": "dovršena lista provjere %s od %s",
+  "activity-checklist-uncompleted": "nedovršena lista provjere %s od %s",
+  "activity-checklist-item-added": "dodana stavka '%s' u %s",
+  "activity-checklist-item-removed": "uklonjena stavka iz '%s' u %s",
   "add": "Dodaj",
-  "activity-checked-item-card": "checked %s in checklist %s",
-  "activity-unchecked-item-card": "unchecked %s in checklist %s",
+  "activity-checked-item-card": "označeno %s u listi provjere %s",
+  "activity-unchecked-item-card": "odznačeno %s u listi provjere %s",
   "activity-checklist-completed-card": "lista provjere __checklist__ na kartici __card__ na listi __list__ u traci __swimlane__ na ploči __board__ je potpuno završena",
   "activity-checklist-uncompleted-card": "uncompleted the checklist %s",
-  "activity-editComment": "edited comment %s",
-  "activity-deleteComment": "deleted comment %s",
+  "activity-editComment": "uređen komentar %s",
+  "activity-deleteComment": "obrisan komentar %s",
   "activity-receivedDate": "edited received date to %s of %s",
   "activity-startDate": "edited start date to %s of %s",
   "activity-dueDate": "edited due date to %s of %s",
@@ -86,49 +86,49 @@
   "add-subtask": "Dodaj podzadatak",
   "add-checklist": "Dodaj listu provjere",
   "add-checklist-item": "Dodaj stavku listi provjere",
-  "add-cover": "Add Cover",
+  "add-cover": "Dodaj naslovnicu",
   "add-label": "Dodaj oznaku",
   "add-list": "Dodaj listu",
   "add-members": "Dodaj korisnika",
-  "added": "Added",
+  "added": "Dodano",
   "addMemberPopup-title": "Korisnici",
   "admin": "Administrator",
-  "admin-desc": "Can view and edit cards, remove members, and change settings for the board.",
+  "admin-desc": "Može pregledavati i uređivati ​​kartice, uklanjati članove i mijenjati postavke ploče.",
   "admin-announcement": "Obavijest",
-  "admin-announcement-active": "Active System-Wide Announcement",
+  "admin-announcement-active": "Aktivne sistemske obavijesti",
   "admin-announcement-title": "Administratorske obavijesti",
   "all-boards": "Sve ploče",
   "and-n-other-card": "And __count__ other card",
   "and-n-other-card_plural": "And __count__ other cards",
   "apply": "Primjeni",
   "app-is-offline": "Loading, please wait. Refreshing the page will cause data loss. If loading does not work, please check that server has not stopped.",
-  "archive": "Move to Archive",
-  "archive-all": "Move All to Archive",
-  "archive-board": "Move Board to Archive",
-  "archive-card": "Move Card to Archive",
-  "archive-list": "Move List to Archive",
-  "archive-swimlane": "Move Swimlane to Archive",
-  "archive-selection": "Move selection to Archive",
-  "archiveBoardPopup-title": "Move Board to Archive?",
+  "archive": "Preseli u arhivu",
+  "archive-all": "Preseli sve u arhivu",
+  "archive-board": "Preseli ploču u arhivu",
+  "archive-card": "Preseli karticu u arhivu",
+  "archive-list": "Preseli listu u arhivu",
+  "archive-swimlane": "Preseli traku u arhivu",
+  "archive-selection": "Preseli selekciju u arhivu",
+  "archiveBoardPopup-title": "Želite preseliti ploču u arhivu?",
   "archived-items": "Arhiva",
   "archived-boards": "Ploče u arhivi",
-  "restore-board": "Restore Board",
-  "no-archived-boards": "No Boards in Archive.",
+  "restore-board": "Vrati ploču",
+  "no-archived-boards": "Nema ploča u arhivi.",
   "archives": "Arhiva",
   "template": "Predložak",
   "templates": "Predlošci",
-  "assign-member": "Assign member",
-  "attached": "attached",
+  "assign-member": "Dodijeli člana",
+  "attached": "u prilogu",
   "attachment": "Privitak",
-  "attachment-delete-pop": "Deleting an attachment is permanent. There is no undo.",
+  "attachment-delete-pop": "Brisanje priloga je trajno. Nema poništavanja brisanja.",
   "attachmentDeletePopup-title": "Obrisati privitak?",
   "attachments": "Privitci",
-  "auto-watch": "Automatically watch boards when they are created",
-  "avatar-too-big": "The avatar is too large (520KB max)",
+  "auto-watch": "Automatski pratite nove ploče kada su kreirane",
+  "avatar-too-big": "Slika za avatar je prevelika (maksimalno 520KB)",
   "back": "Nazad",
-  "board-change-color": "Change color",
-  "board-nb-stars": "%s stars",
-  "board-not-found": "Board not found",
+  "board-change-color": "Promijeni boju",
+  "board-nb-stars": "%s zvjezdica",
+  "board-not-found": "Ploča nije pronađena",
   "board-private-info": "This board will be <strong>private</strong>.",
   "board-public-info": "This board will be <strong>public</strong>.",
   "boardChangeColorPopup-title": "Change Board Background",
@@ -190,16 +190,16 @@
   "cardType-card": "Kartica",
   "cardType-linkedCard": "Povezane kartice",
   "cardType-linkedBoard": "Povezane ploče",
-  "change": "Promjeni",
-  "change-avatar": "Promjeni avatara",
-  "change-password": "Promjeni lozinku",
-  "change-permissions": "Promjeni dozvole",
-  "change-settings": "Promjeni postavke",
-  "changeAvatarPopup-title": "Promjeni avatara",
-  "changeLanguagePopup-title": "Promjeni jezik",
-  "changePasswordPopup-title": "Promjeni lozinku",
-  "changePermissionsPopup-title": "Promjeni dozvole",
-  "changeSettingsPopup-title": "Promjeni postavke",
+  "change": "Promijeni",
+  "change-avatar": "Promijeni avatara",
+  "change-password": "Promijeni lozinku",
+  "change-permissions": "Promijeni dozvole",
+  "change-settings": "Promijeni postavke",
+  "changeAvatarPopup-title": "Promijeni avatara",
+  "changeLanguagePopup-title": "Promijeni jezik",
+  "changePasswordPopup-title": "Promijeni lozinku",
+  "changePermissionsPopup-title": "Promijeni dozvole",
+  "changeSettingsPopup-title": "Promijeni postavke",
   "subtasks": "Podzadaci",
   "checklists": "Liste provjere",
   "click-to-star": "Click to star this board.",
@@ -285,15 +285,15 @@
   "done": "Done",
   "download": "Preuzmi",
   "edit": "Uredi",
-  "edit-avatar": "Promjeni avatara",
+  "edit-avatar": "Promijeni avatara",
   "edit-profile": "Uredi profil",
   "edit-wip-limit": "Edit WIP Limit",
   "soft-wip-limit": "Soft WIP Limit",
-  "editCardStartDatePopup-title": "Change start date",
-  "editCardDueDatePopup-title": "Change due date",
+  "editCardStartDatePopup-title": "Promijeni datum početka",
+  "editCardDueDatePopup-title": "Promijeni datum dospijeća",
   "editCustomFieldPopup-title": "Uredi polje",
   "editCardSpentTimePopup-title": "Change spent time",
-  "editLabelPopup-title": "Change Label",
+  "editLabelPopup-title": "Promijeni oznaku",
   "editNotificationPopup-title": "Edit Notification",
   "editProfilePopup-title": "Uredi profil",
   "email": "Email",
@@ -403,7 +403,7 @@
   "label-delete-pop": "There is no undo. This will remove this label from all cards and destroy its history.",
   "labels": "Oznake",
   "language": "Jezik",
-  "last-admin-desc": "You can’t change roles because there must be at least one admin.",
+  "last-admin-desc": "Ne možeš promijeniti uloge jer mora postojati barem jedan administrator.",
   "leave-board": "Napusti ploču",
   "leave-board-pop": "Are you sure you want to leave __boardTitle__? You will be removed from all cards on this board.",
   "leaveBoardPopup-title": "Napustiti ploču?",
@@ -441,7 +441,7 @@
   "multi-selection-member": "Set member for selection",
   "multi-selection-on": "Multi-Selection is on",
   "muted": "Bez obavijesti",
-  "muted-info": "You will never be notified of any changes in this board",
+  "muted-info": "Nikada nećeš biti obaviješten o bilo kakvim promjenama na ovoj ploči",
   "my-boards": "Moje ploče",
   "name": "Ime",
   "no-archived-cards": "Nema kartica u arhivi",
@@ -449,7 +449,7 @@
   "no-archived-swimlanes": "Nema traka u arhivi",
   "no-results": "Bez rezultata",
   "normal": "Normalno",
-  "normal-desc": "Can view and edit cards. Can't change settings.",
+  "normal-desc": "Može pregledavati i uređivati ​​kartice. Nije moguće promijeniti postavke.",
   "not-accepted-yet": "Invitation not accepted yet",
   "notify-participate": "Receive updates to any cards you participate as creater or member",
   "notify-watch": "Receive updates to any boards, lists, or cards you’re watching",
@@ -518,7 +518,7 @@
   "time": "Vrijeme",
   "title": "Naziv",
   "tracking": "Tracking",
-  "tracking-info": "You will be notified of any changes to those cards you are involved as creator or member.",
+  "tracking-info": "Bit ćeš obaviješten o svim promjenama na onim karticama u koje si uključen kao autor ili član.",
   "type": "Tip",
   "unassign-member": "Unassign member",
   "unsaved-description": "You have an unsaved description.",
@@ -532,13 +532,14 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Korisničko ime",
   "import-usernames": "Import Usernames",
   "view-it": "View it",
   "warn-list-archived": "warning: this card is in an list at Archive",
   "watch": "Prati",
   "watching": "Watching",
-  "watching-info": "You will be notified of any change in this board",
+  "watching-info": "Bit ćeš obaviješten o svim promjenama na ovoj ploči",
   "welcome-board": "Welcome Board",
   "welcome-swimlane": "Milestone 1",
   "welcome-list1": "Osnove",
@@ -703,7 +704,7 @@
   "r-top-of": "Top of",
   "r-bottom-of": "Bottom of",
   "r-its-list": "its list",
-  "r-archive": "Move to Archive",
+  "r-archive": "Preseli u arhivu",
   "r-unarchive": "Restore from Archive",
   "r-card": "card",
   "r-add": "Dodati",

+ 1 - 0
i18n/hu.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Felhasználónév",
   "import-usernames": "Import Usernames",
   "view-it": "Megtekintés",

+ 1 - 0
i18n/hy.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 25 - 24
i18n/id.i18n.json

@@ -1,15 +1,15 @@
 {
   "accept": "Terima",
-  "act-activity-notify": "Pemeberitahuan Aktifitas",
-  "act-addAttachment": "ditambahkan lampiran __attachment__ di kartu __card__ pada daftar __list__ pada swimline __swimline__ pada papan __board__",
-  "act-deleteAttachment": "deleted attachment __attachment__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-addSubtask": "added subtask __subtask__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-addLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-addedLabel": "Added label __label__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-removeLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-removedLabel": "Removed label __label__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-addChecklist": "added checklist __checklist__ to card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
-  "act-addChecklistItem": "added checklist item __checklistItem__ to checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
+  "act-activity-notify": "Pemberitahuan Aktifitas",
+  "act-addAttachment": "menambahkan lampiran __attachment__ ke kartu __card__ pada daftar __list__ pada jalur __swimline__ dalam papan __board__",
+  "act-deleteAttachment": "menghapus lampiran __attachment__ di kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-addSubtask": "menambah tugas __subtask__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-addLabel": "Menambah label __label__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-addedLabel": "Menambah label __label__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-removeLabel": "Menghapus label __label__ dari kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-removedLabel": "Menghapus label __label__ dari kartu__card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-addChecklist": "menambah daftar cek __checklist__ ke kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
+  "act-addChecklistItem": "menambah item cek __checklistItem__ ke daftar cek __checklist__ di kartu __card__ pada daftar __list__ pada jalur __swimlane__ dalam papan __board__",
   "act-removeChecklist": "removed checklist __checklist__ from card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
   "act-removeChecklistItem": "removed checklist item __checklistItem__ from checklist __checkList__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
   "act-checkedItem": "checked __checklistItem__ of checklist __checklist__ at card __card__ at list __list__ at swimlane __swimlane__ at board __board__",
@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nama Pengguna",
   "import-usernames": "Import Usernames",
   "view-it": "Lihat",
@@ -572,7 +573,7 @@
   "invitation-code": "Kode Undangan",
   "email-invite-register-subject": "__inviter__ mengirim undangan ke Anda",
   "email-invite-register-text": "Dear __user__,\n\n__inviter__ invites you to kanban board for collaborations.\n\nPlease follow the link below:\n__url__\n\nAnd your invitation code is: __icode__\n\nThanks.",
-  "email-smtp-test-subject": "SMTP Tes Surel",
+  "email-smtp-test-subject": "Tes Surel SMTP",
   "email-smtp-test-text": "You have successfully sent an email",
   "error-invitation-code-not-exist": "Kode undangan tidak ada",
   "error-notAuthorized": "You are not authorized to view this page.",
@@ -683,7 +684,7 @@
   "r-moved-from": "Dipindahkan dari",
   "r-archived": "Dipindahkan ke Arsip",
   "r-unarchived": "Dipulihkan dari Arsip",
-  "r-a-card": "Kartu",
+  "r-a-card": "satu kartu",
   "r-when-a-label-is": "Ketika label adalah",
   "r-when-the-label": "Ketika label",
   "r-list-name": "nama daftar",
@@ -702,8 +703,8 @@
   "r-move-card-to": "Move card to",
   "r-top-of": "Top of",
   "r-bottom-of": "Bottom of",
-  "r-its-list": "daftar ini",
-  "r-archive": "Pindahlan ke Arsip",
+  "r-its-list": "daftarnya",
+  "r-archive": "Pindahkan ke Arsip",
   "r-unarchive": "Pulihkan dari Arsip",
   "r-card": "Kartu",
   "r-add": "Tambah",
@@ -718,12 +719,12 @@
   "r-items-check": "items of checklist",
   "r-check": "Check",
   "r-uncheck": "Uncheck",
-  "r-item": "Item",
+  "r-item": "item",
   "r-of-checklist": "of checklist",
   "r-send-email": "Send an email",
   "r-to": "kepada",
   "r-of": "dari",
-  "r-subject": "Subyek",
+  "r-subject": "subyek",
   "r-rule-details": "Rule details",
   "r-d-move-to-top-gen": "Move card to top of its list",
   "r-d-move-to-top-spec": "Move card to top of list",
@@ -731,15 +732,15 @@
   "r-d-move-to-bottom-spec": "Move card to bottom of list",
   "r-d-send-email": "Kirim surel",
   "r-d-send-email-to": "kepada",
-  "r-d-send-email-subject": "Subyek",
+  "r-d-send-email-subject": "subyek",
   "r-d-send-email-message": "pesan",
-  "r-d-archive": "Pindahlan kartu ke Arsip",
+  "r-d-archive": "Pindahkan kartu ke Arsip",
   "r-d-unarchive": "Pulihkan kartu dari Arsip",
   "r-d-add-label": "Tambahkan label",
   "r-d-remove-label": "Hapus label",
   "r-create-card": "Buat kartu baru",
   "r-in-list": "pada daftar",
-  "r-in-swimlane": "in swimlane",
+  "r-in-swimlane": "pada jalur",
   "r-d-add-member": "Tambahkan anggota",
   "r-d-remove-member": "Hapus anggota",
   "r-d-remove-all-member": "Hapus semua anggota",
@@ -753,7 +754,7 @@
   "r-by": "oleh",
   "r-add-checklist": "Tambahkan daftar periksa",
   "r-with-items": "dengan item",
-  "r-items-list": "item 1, item2, item 3",
+  "r-items-list": "item1, item2, item3",
   "r-add-swimlane": "Add swimlane",
   "r-swimlane-name": "swimlane name",
   "r-board-note": "Note: leave a field empty to match every possible value.",
@@ -761,20 +762,20 @@
   "r-when-a-card-is-moved": "When a card is moved to another list",
   "r-set": "Tetapkan",
   "r-update": "Ubah",
-  "r-datefield": "bidang tanggal",
+  "r-datefield": "kolom tanggal",
   "r-df-start-at": "mulai",
   "r-df-due-at": "sampai",
   "r-df-end-at": "berakhir",
   "r-df-received-at": "diterima",
-  "r-to-current-datetime": "to current date/time",
-  "r-remove-value-from": "Remove value from",
+  "r-to-current-datetime": "ke tanggal/waktu sekarang",
+  "r-remove-value-from": "Hapus nilai dari",
   "ldap": "LDAP",
   "oauth2": "OAuth2",
   "cas": "CAS",
   "authentication-method": "Metode Autentikasi",
   "authentication-type": "Tipe Autentikasi",
   "custom-product-name": "Custom Product Name",
-  "layout": "Tata letak",
+  "layout": "Tata Letak",
   "hide-logo": "Sembunyikan Logo",
   "add-custom-html-after-body-start": "Tambahkan HTML khusus setelah <body> mulai",
   "add-custom-html-before-body-end": "Tambahkan HTML khusus sebelum </body> berakhir",

+ 1 - 0
i18n/ig.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "Hụ ya",

+ 115 - 114
i18n/it.i18n.json

@@ -1,45 +1,45 @@
 {
   "accept": "Accetta",
   "act-activity-notify": "Notifica attività",
-  "act-addAttachment": "Aggiunto allegato __attachment__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-deleteAttachment": "Eliminato allegato __attachment__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-addSubtask": "Aggiunto sottotask __subtask__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-addLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-addedLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-removeLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-removedLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-addChecklist": "aggiunta lista di controllo __label__ alla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-addChecklistItem": "aggiunto elemento __checklistItem__ alla lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-removeChecklist": "rimossa lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-removeChecklistItem": "rimosso elemento __checklistItem__ dalla lista di controllo __checkList__ della scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
-  "act-checkedItem": "attivato __checklistItem__ nella lista di controllo __checklist__ della scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
-  "act-uncheckedItem": "disattivato __checklistItem__ della lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
-  "act-completeChecklist": "completata lista di controllo __checklist__  nella scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
-  "act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in corsia __swimlane__ della bacheca __board__",
-  "act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della corsia __swimlane__ della bacheca __board__",
+  "act-addAttachment": "Aggiunto allegato __attachment__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-deleteAttachment": "Eliminato allegato __attachment__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-addSubtask": "Aggiunto sottotask __subtask__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-addLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-addedLabel": "Aggiunta etichetta __label__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-removeLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-removedLabel": "Rimossa etichetta __label__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-addChecklist": "aggiunta lista di controllo __label__ alla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-addChecklistItem": "aggiunto elemento __checklistItem__ alla lista di controllo __checklist__ della scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-removeChecklist": "rimossa lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-removeChecklistItem": "rimosso elemento __checklistItem__ dalla lista di controllo __checkList__ della scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
+  "act-checkedItem": "attivato __checklistItem__ nella lista di controllo __checklist__ della scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__",
+  "act-uncheckedItem": "disattivato __checklistItem__ della lista di controllo __checklist__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__",
+  "act-completeChecklist": "completata lista di controllo __checklist__  nella scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__",
+  "act-uncompleteChecklist": "lista di controllo __checklist__ incompleta nella scheda __card__ della lista __list__ in swimlane __swimlane__ della bacheca __board__",
+  "act-addComment": "commento sulla scheda __card__: __comment__ nella lista __list__ della swimlane __swimlane__ della bacheca __board__",
   "act-editComment": "commento modificato sulla scheda __card__: __comment__ nella lista __list__ nella swim lane __swimlane__ nella bacheca __board__",
   "act-deleteComment": "commento eliminato sulla scheda __card__: __comment__ nella lista __list__ nella swim lane __swimlane__ nella bacheca __board__",
   "act-createBoard": "bacheca __board__ creata",
-  "act-createSwimlane": "creata corsia __swimlane__ alla bacheca __board__",
-  "act-createCard": "scheda __card__ creata nella lista __list__ della corsia __swimlane__ della bacheca __board__",
+  "act-createSwimlane": "creata swimlane __swimlane__ alla bacheca __board__",
+  "act-createCard": "scheda __card__ creata nella lista __list__ della swimlane __swimlane__ della bacheca __board__",
   "act-createCustomField": "creato campo personalizzato __customField__ nella bacheca __board",
   "act-deleteCustomField": "campo personalizzato eliminato __customField__ nella bacheca __board",
   "act-setCustomField": "campo personalizzato modificato __customField__: __customFieldValue__ sulla scheda __card__ sulla lista __list__ sulla swimlane __swimlane__ sulla bacheca __board__",
   "act-createList": "aggiunta lista __list__ alla bacheca __board__",
   "act-addBoardMember": "aggiunto membro __member__ alla bacheca __board__",
   "act-archivedBoard": "Bacheca __board__ archiviata",
-  "act-archivedCard": "Scheda __card__ della lista __list__ della corsia __swimlane__ della bacheca __board__ archiviata",
-  "act-archivedList": "Lista __list__ della corsia __swimlane__ della bacheca __board__ archiviata",
+  "act-archivedCard": "Scheda __card__ della lista __list__ della swimlane __swimlane__ della bacheca __board__ archiviata",
+  "act-archivedList": "Lista __list__ della swimlane __swimlane__ della bacheca __board__ archiviata",
   "act-archivedSwimlane": "Corsia __swimlane__ della bacheca __board__ archiviata",
   "act-importBoard": "Bacheca __board__ importata",
-  "act-importCard": "scheda importata  __card__ nella lista __list__ della corsia __swimlane__ della bacheca __board__",
-  "act-importList": "lista __list__ importata nella corsia __swimlane__ della bacheca __board__",
-  "act-joinMember": "aggiunto membro __member__  alla scheda __card__ della list __list__ nella corsia __swimlane__ della bacheca __board__",
-  "act-moveCard": "spostata scheda __card__ della bacheca __board__ dalla lista __oldList__ della corsia  __oldSwimlane__ alla lista __list__ della corsia __swimlane__",
-  "act-moveCardToOtherBoard": "postata scheda __card__ dalla lista __oldList__ della corsia __oldSwimlane__ della bacheca __oldBoard__ alla lista __list__ nella corsia __swimlane__ della bacheca __board__",
+  "act-importCard": "scheda importata  __card__ nella lista __list__ della swimlane __swimlane__ della bacheca __board__",
+  "act-importList": "lista __list__ importata nella swimlane __swimlane__ della bacheca __board__",
+  "act-joinMember": "aggiunto membro __member__  alla scheda __card__ della list __list__ nella swimlane __swimlane__ della bacheca __board__",
+  "act-moveCard": "spostata scheda __card__ della bacheca __board__ dalla lista __oldList__ della swimlane  __oldSwimlane__ alla lista __list__ della swimlane __swimlane__",
+  "act-moveCardToOtherBoard": "postata scheda __card__ dalla lista __oldList__ della swimlane __oldSwimlane__ della bacheca __oldBoard__ alla lista __list__ nella swimlane __swimlane__ della bacheca __board__",
   "act-removeBoardMember": "rimosso membro __member__ dalla bacheca __board__",
-  "act-restoredCard": "scheda ripristinata __card__ della lista __list__ nella corsia __swimlane__ della bacheca __board__",
-  "act-unjoinMember": "rimosso membro __member__ dalla scheda __card__ della lista __list__ della corsia __swimlane__ nella bacheca __board__",
+  "act-restoredCard": "scheda ripristinata __card__ della lista __list__ nella swimlane __swimlane__ della bacheca __board__",
+  "act-unjoinMember": "rimosso membro __member__ dalla scheda __card__ della lista __list__ della swimlane __swimlane__ nella bacheca __board__",
   "act-withBoardTitle": "__board__",
   "act-withCardTitle": "[__board__] __card__",
   "actions": "Azioni",
@@ -54,7 +54,7 @@
   "activity-imported": "importato %s in %s da %s",
   "activity-imported-board": "importato %s da %s",
   "activity-joined": "si è unito a %s",
-  "activity-moved": "spostato %s da %s a %s",
+  "activity-moved": "ha spostato %s da %s a %s",
   "activity-on": "su %s",
   "activity-removed": "rimosso %s da %s",
   "activity-sent": "inviato %s a %s",
@@ -62,7 +62,7 @@
   "activity-subtask-added": "aggiunto il sottocompito a 1%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-added": "ha aggiunto una checklist a %s",
   "activity-checklist-removed": "È stata rimossa una checklist da%s",
   "activity-checklist-completed": "%s di %s checklists completate",
   "activity-checklist-uncompleted": "La checklist non è stata completata",
@@ -71,24 +71,24 @@
   "add": "Aggiungi",
   "activity-checked-item-card": "%s è stato selezionato nella checklist %s",
   "activity-unchecked-item-card": "%s è stato deselezionato nella  checklist %s",
-  "activity-checklist-completed-card": "checklist  __checklist__ completata nella scheda __card__ della lista __list__ della corsia __swimlane__  nella bacheca __board__",
+  "activity-checklist-completed-card": "checklist  __checklist__ completata nella scheda __card__ della lista __list__ della swimlane __swimlane__  nella bacheca __board__",
   "activity-checklist-uncompleted-card": "La checklist %s non è completa",
   "activity-editComment": "commento modificato %s",
   "activity-deleteComment": "commento eliminato %s",
-  "activity-receivedDate": "data della ricevuta modificata da %s di %s",
-  "activity-startDate": "modificata data di inizio a %s di %s",
-  "activity-dueDate": "modificata data di scadenza a %s di %s",
-  "activity-endDate": "modificata data di fine a %s di %s ",
+  "activity-receivedDate": "ha modificato la data di ricevuta a %s di %s",
+  "activity-startDate": "ha modificato la data di inizio a %s di %s",
+  "activity-dueDate": "ha modificato la data di scadenza a %s di %s",
+  "activity-endDate": "ha modificato la data di fine a %s di %s ",
   "add-attachment": "Aggiungi allegato",
   "add-board": "Aggiungi bacheca",
   "add-card": "Aggiungi scheda",
-  "add-swimlane": "Aggiungi Diagramma Swimlane",
+  "add-swimlane": "Aggiungi swimlane",
   "add-subtask": "Aggiungi sotto-compito",
   "add-checklist": "Aggiungi Checklist",
   "add-checklist-item": "Aggiungi un elemento alla checklist",
   "add-cover": "Aggiungi copertina",
   "add-label": "Aggiungi etichetta",
-  "add-list": "Aggiungi Lista",
+  "add-list": "Aggiungi lista",
   "add-members": "Aggiungi membri",
   "added": "Aggiunto/a",
   "addMemberPopup-title": "Membri",
@@ -102,14 +102,14 @@
   "and-n-other-card_plural": "E __count__ altre schede",
   "apply": "Applica",
   "app-is-offline": "Caricamento, attendere prego. Aggiornare la pagina porterà ad una perdita dei dati. Se il caricamento non dovesse funzionare, per favore controlla che il server non sia stato fermato.",
-  "archive": "Sposta nell'Archivio",
-  "archive-all": "Sposta tutto nell'Archivio",
+  "archive": "Sposta nell'archivio",
+  "archive-all": "Sposta tutto nell'archivio",
   "archive-board": "Sposta la bacheca nell'archivio",
-  "archive-card": "Sposta la scheda nell'Archivio",
-  "archive-list": "Sposta elenco nell'Archivio",
-  "archive-swimlane": "Sposta diagramma nell'Archivio",
+  "archive-card": "Sposta scheda nell'archivio",
+  "archive-list": "Sposta lista nell'archivio",
+  "archive-swimlane": "Sposta swimlane nell'archivio",
   "archive-selection": "Sposta elementi selezionati nell'archivio",
-  "archiveBoardPopup-title": "Spostare al bacheca nell'archivio?",
+  "archiveBoardPopup-title": "Spostare bacheca nell'archivio?",
   "archived-items": "Archivio",
   "archived-boards": "Bacheche nell'archivio",
   "restore-board": "Ripristina bacheca",
@@ -120,11 +120,11 @@
   "assign-member": "Assegna a un membro",
   "attached": "allegato",
   "attachment": "Allegato",
-  "attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile annullare.",
+  "attachment-delete-pop": "L'eliminazione di un allegato è permanente. Non è possibile tornare indietro.",
   "attachmentDeletePopup-title": "Eliminare l'allegato?",
   "attachments": "Allegati",
   "auto-watch": "Segui automaticamente le bacheche quando vengono create.",
-  "avatar-too-big": "L'avatar è troppo grande (520KB max)",
+  "avatar-too-big": "L'avatar è troppo grande (520 KB massimo)",
   "back": "Indietro",
   "board-change-color": "Cambia colore",
   "board-nb-stars": "%s stelle",
@@ -138,20 +138,20 @@
   "boardMenuPopup-title": "Impostazioni bacheca",
   "boardChangeViewPopup-title": "Vista bacheca",
   "boards": "Bacheche",
-  "board-view": "Visualizza bacheca",
+  "board-view": "Vista bacheca",
   "board-view-cal": "Calendario",
-  "board-view-swimlanes": "Diagramma Swimlane",
+  "board-view-swimlanes": "Swimlane",
   "board-view-collapse": "Comprimi",
   "board-view-gantt": "Gantt",
   "board-view-lists": "Liste",
-  "bucket-example": "Per esempio come \"una lista di cose da fare\"",
+  "bucket-example": "Come \"una lista di cose da fare\" per esempio",
   "cancel": "Cancella",
   "card-archived": "Questa scheda è stata spostata nell'archivio",
   "board-archived": "Questa bacheca è stata spostata nell'archivio",
   "card-comments-title": "Questa scheda ha %s commenti.",
   "card-delete-notice": "L'eliminazione è permanente. Tutte le azioni associate a questa scheda andranno perse.",
   "card-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di riaprire la scheda. Non potrai tornare indietro.",
-  "card-delete-suggest-archive": "Puoi spostare una scheda nell'archivio per rimuoverla dalla bacheca e mantenere la sua attività",
+  "card-delete-suggest-archive": "Puoi spostare una scheda nell'archivio per rimuoverla dalla bacheca e mantenere la sua attività.",
   "card-due": "Scadenza",
   "card-due-on": "Scade il",
   "card-spent": "Tempo trascorso",
@@ -204,14 +204,14 @@
   "checklists": "Checklist",
   "click-to-star": "Clicca per stellare questa bacheca",
   "click-to-unstar": "Clicca per togliere la stella da questa bacheca.",
-  "clipboard": "Clipboard o drag & drop",
+  "clipboard": "Appunti o trascinamento",
   "close": "Chiudi",
   "close-board": "Chiudi bacheca",
   "close-board-pop": "Potrai ripristinare la bacheca cliccando sul tasto \"Archivio\"  presente nell'intestazione della home.",
   "color-black": "nero",
   "color-blue": "blu",
   "color-crimson": "Rosso cremisi",
-  "color-darkgreen": "Verde scuro",
+  "color-darkgreen": "verde scuro",
   "color-gold": "oro",
   "color-gray": "grigio",
   "color-green": "verde",
@@ -234,8 +234,8 @@
   "color-white": "bianco",
   "color-yellow": "giallo",
   "unset-color": "Non impostato",
-  "comment": "Commento",
-  "comment-placeholder": "Scrivi Commento",
+  "comment": "Commenta",
+  "comment-placeholder": "Scrivi un commento...",
   "comment-only": "Solo commenti",
   "comment-only-desc": "Puoi commentare solo le schede.",
   "no-comments": "Non ci sono commenti.",
@@ -245,10 +245,10 @@
   "computer": "Computer",
   "confirm-subtask-delete-dialog": "Sei sicuro di voler eliminare il sotto-compito?",
   "confirm-checklist-delete-dialog": "Sei sicuro di voler eliminare la checklist?",
-  "copy-card-link-to-clipboard": "Copia link della scheda sulla clipboard",
+  "copy-card-link-to-clipboard": "Copia link della scheda negli appunti",
   "linkCardPopup-title": "Collega scheda",
   "searchElementPopup-title": "Cerca",
-  "copyCardPopup-title": "Copia Scheda",
+  "copyCardPopup-title": "Copia scheda",
   "copyChecklistToManyCardsPopup-title": "Copia template checklist su più schede",
   "copyChecklistToManyCardsPopup-instructions": "Titolo e la descrizione della scheda di destinazione in questo formato JSON",
   "copyChecklistToManyCardsPopup-format": "[ {\"title\": \"Titolo prima scheda\", \"description\":\"Descrizione prima scheda\"}, {\"title\":\"Titolo seconda scheda\",\"description\":\"Descrizione seconda scheda\"},{\"title\":\"Titolo ultima scheda\",\"description\":\"Descrizione ultima scheda\"} ]",
@@ -298,19 +298,19 @@
   "editProfilePopup-title": "Modifica profilo",
   "email": "Email",
   "email-enrollAccount-subject": "Creato un account per te su __siteName__",
-  "email-enrollAccount-text": "Ciao __user__,\n\nPer iniziare ad usare il servizio, clicca sul link seguente:\n\n__url__\n\nGrazie.",
+  "email-enrollAccount-text": "Ciao __user__,\n\nPer iniziare ad utilizzare il servizio, clicca sul link seguente:\n\n__url__\n\nGrazie.",
   "email-fail": "Invio email fallito",
   "email-fail-text": "Errore nel tentativo di invio email",
   "email-invalid": "Email non valida",
   "email-invite": "Invita via email",
   "email-invite-subject": "__inviter__ ti ha inviato un invito",
-  "email-invite-text": "Caro __user__,\n\n__inviter__ ti ha invitato ad unirti alla bacheca \"__board__\" per le collaborazioni.\n\nPer favore clicca sul link seguente:\n\n__url__\n\nGrazie.",
+  "email-invite-text": "Caro __user__,\n\n__inviter__ ti ha invitato ad unirti alla bacheca \"__board__\" per collaborare.\n\nPer favore clicca sul link seguente:\n\n__url__\n\nGrazie.",
   "email-resetPassword-subject": "Ripristina la tua password su on __siteName__",
   "email-resetPassword-text": "Ciao __user__,\n\nPer ripristinare la tua password, clicca sul link seguente:\n\n__url__\n\nGrazie.",
   "email-sent": "Email inviata",
   "email-verifyEmail-subject": "Verifica il tuo indirizzo email su __siteName__",
   "email-verifyEmail-text": "Ciao __user__,\n\nPer verificare il tuo account email, clicca sul link seguente:\n\n__url__\n\nGrazie.",
-  "enable-wip-limit": "Abilita limite di  work in progress",
+  "enable-wip-limit": "Abilita limite Work In Progress",
   "error-board-doesNotExist": "Questa bacheca non esiste",
   "error-board-notAdmin": "Devi essere admin di questa bacheca per poterlo fare",
   "error-board-notAMember": "Devi essere un membro di questa bacheca per poterlo fare",
@@ -335,7 +335,7 @@
   "exportBoardPopup-title": "Esporta bacheca",
   "sort": "Ordina",
   "sort-desc": "Clicca per ordinare la lista",
-  "list-sort-by": "Ordina la lista per:",
+  "list-sort-by": "Ordina lista per:",
   "list-label-modifiedAt": "Orario ultimo accesso",
   "list-label-title": "Nome della lista",
   "list-label-sort": "Il tuo ordine manuale",
@@ -354,7 +354,7 @@
   "filter-no-assignee": "Nessun assegnatario",
   "filter-custom-fields-label": "Filtra secondo campi personalizzati",
   "filter-no-custom-fields": "Nessun campo personalizzato",
-  "filter-show-archive": "Mostra le liste archiviate",
+  "filter-show-archive": "Mostra liste archiviate",
   "filter-hide-empty": "Nascondi liste vuote",
   "filter-on": "Il filtro è attivo",
   "filter-on-desc": "Stai filtrando le schede su questa bacheca. Clicca qui per modificare il filtro,",
@@ -408,15 +408,15 @@
   "leave-board-pop": "Sei sicuro di voler abbandonare __boardTitle__? Sarai rimosso da tutte le schede in questa bacheca.",
   "leaveBoardPopup-title": "Abbandonare la bacheca?",
   "link-card": "Link a questa scheda",
-  "list-archive-cards": "Sposta tutte le schede in questo elenco nell'Archivio",
+  "list-archive-cards": "Sposta tutte le schede in questa lista 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-move-cards": "Sposta tutte le schede in questa lista",
-  "list-select-cards": "Selezione tutte le schede in questa lista",
-  "set-color-list": "Imposta il colore",
-  "listActionPopup-title": "Azioni disponibili",
+  "list-select-cards": "Seleziona tutte le schede in questa lista",
+  "set-color-list": "Imposta colore",
+  "listActionPopup-title": "Azioni lista",
   "settingsUserPopup-title": "Impostazioni utente",
-  "swimlaneActionPopup-title": "Azioni diagramma Swimlane",
-  "swimlaneAddPopup-title": "Aggiungi un diagramma Swimlane di seguito",
+  "swimlaneActionPopup-title": "Azioni swimlane",
+  "swimlaneAddPopup-title": "Aggiungi un swimlane sotto",
   "listImportCardPopup-title": "Importa una scheda di Trello",
   "listImportCardsTsvPopup-title": "Importa CSV/TSV di Excel",
   "listMorePopup-title": "Altro",
@@ -424,7 +424,7 @@
   "list-delete-pop": "Tutte le azioni saranno rimosse dal flusso attività e non sarai in grado di recuperare la lista. Non potrai tornare indietro.",
   "list-delete-suggest-archive": "Puoi spostare un elenco nell'archivio per rimuoverlo dalla bacheca e mantentere la sua attività.",
   "lists": "Liste",
-  "swimlanes": "Diagramma Swimlane",
+  "swimlanes": "Swimlane",
   "log-out": "Esci",
   "log-in": "Accedi",
   "loginPopup-title": "Accedi",
@@ -445,8 +445,8 @@
   "my-boards": "Le mie bacheche",
   "name": "Nome",
   "no-archived-cards": "Non ci sono schede nell'archivio.",
-  "no-archived-lists": "Non ci sono elenchi nell'archivio.",
-  "no-archived-swimlanes": "Non ci sono diagrammi Swimlane nell'archivio.",
+  "no-archived-lists": "Non ci sono liste nell'archivio.",
+  "no-archived-swimlanes": "Non ci sono swimlane nell'archivio.",
   "no-results": "Nessun risultato",
   "normal": "Normale",
   "normal-desc": "Può visionare e modificare le schede. Non può cambiare le impostazioni.",
@@ -454,7 +454,7 @@
   "notify-participate": "Ricevi aggiornamenti per qualsiasi scheda a cui partecipi come creatore o membro",
   "notify-watch": "Ricevi aggiornamenti per tutte le bacheche, liste o schede che stai seguendo",
   "optional": "opzionale",
-  "or": "o",
+  "or": "oppure",
   "page-maybe-private": "Questa pagina potrebbe essere privata. Potresti essere in grado di vederla <a href='%s'>facendo il log-in</a>.",
   "page-not-found": "Pagina non trovata.",
   "password": "Password",
@@ -500,8 +500,8 @@
   "shortcut-toggle-searchbar": "Apri/chiudi la barra laterale di ricerca",
   "shortcut-toggle-sidebar": "Apri/chiudi la barra laterale della bacheca",
   "show-cards-minimum-count": "Mostra il contatore delle schede se la lista ne contiene più di",
-  "sidebar-open": "Apri Sidebar",
-  "sidebar-close": "Chiudi Sidebar",
+  "sidebar-open": "Apri sidebar",
+  "sidebar-close": "Chiudi sidebar",
   "signupPopup-title": "Crea un account",
   "star-board-title": "Clicca per stellare questa bacheca. Sarà mostrata all'inizio della tua lista bacheche.",
   "starred-boards": "Bacheche stellate",
@@ -532,10 +532,11 @@
   "custom-login-logo-image-url": "URL dell'immagine del logo personalizzato per il login",
   "custom-login-logo-link-url": "Link dell'immagine del logo personalizzato per il login",
   "text-below-custom-login-logo": "Testo sotto il logo personalizzato per il login",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Importa Username",
   "view-it": "Vedi",
-  "warn-list-archived": "Attenzione:questa scheda si trova in un elenco dell'archivio",
+  "warn-list-archived": "attenzione: questa scheda si trova in una lista nell'archivio",
   "watch": "Segui",
   "watching": "Stai seguendo",
   "watching-info": "Sarai notificato per tutte le modifiche in questa bacheca",
@@ -580,8 +581,8 @@
   "webhook-token": "Token (facoltativo per l'autenticazione)",
   "outgoing-webhooks": "Webhook in uscita",
   "bidirectional-webhooks": "Webhook a due vie",
-  "outgoingWebhooksPopup-title": "Server esterni",
-  "boardCardTitlePopup-title": "Filtro per Titolo Scheda",
+  "outgoingWebhooksPopup-title": "Webhook in uscita",
+  "boardCardTitlePopup-title": "Filtro per titolo scheda",
   "disable-webhook": "Disattiva questo webhook",
   "global-webhook": "Webhook globali",
   "new-outgoing-webhook": "Nuovo webhook in uscita",
@@ -592,14 +593,14 @@
   "MongoDB_storage_engine": "Storage engine di MongoDB",
   "MongoDB_Oplog_enabled": "MongoDB Oplog abilitato",
   "OS_Arch": "Architettura SO",
-  "OS_Cpus": "Conteggio della CPU 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_Cpus": "Numero CPU del SO",
+  "OS_Freemem": "Memoria libera del SO",
+  "OS_Loadavg": "Carico medio del SO",
+  "OS_Platform": "Piattaforma del SO",
+  "OS_Release": "Versione di rilascio del SO",
+  "OS_Totalmem": "Memoria totale del SO",
+  "OS_Type": "Tipo di SO",
+  "OS_Uptime": "Tempo di attività del SO",
   "days": "giorni",
   "hours": "ore",
   "minutes": "minuti",
@@ -651,8 +652,8 @@
   "parent-card": "Scheda genitore",
   "source-board": "Bacheca d'origine",
   "no-parent": "Non mostrare i genitori",
-  "activity-added-label": "L' etichetta  '%s' è stata aggiunta a %s",
-  "activity-removed-label": "L'etichetta '%s' è stata rimossa da %s",
+  "activity-added-label": "ha aggiunto l'etichetta  '%s' a %s",
+  "activity-removed-label": "ha rimosso l'etichetta '%s' da %s",
   "activity-delete-attach": "rimosso un allegato da %s",
   "activity-added-label-card": "aggiunta etichetta '%s'",
   "activity-removed-label-card": "L' etichetta '%s' è stata rimossa.",
@@ -686,7 +687,7 @@
   "r-a-card": "una scheda",
   "r-when-a-label-is": "Quando un'etichetta viene",
   "r-when-the-label": "Quando l'etichetta viene",
-  "r-list-name": "Nome dell'elenco",
+  "r-list-name": "nome lista",
   "r-when-a-member": "Quando un membro viene",
   "r-when-the-member": "Quando un membro viene",
   "r-name": "nome",
@@ -702,8 +703,8 @@
   "r-move-card-to": "Sposta scheda a",
   "r-top-of": "Al di sopra di",
   "r-bottom-of": "Al di sotto di",
-  "r-its-list": "il suo elenco",
-  "r-archive": "Sposta nell'Archivio",
+  "r-its-list": "la sua lista",
+  "r-archive": "Sposta nell'archivio",
   "r-unarchive": "Ripristina dall'archivio",
   "r-card": "scheda",
   "r-add": "Aggiungi",
@@ -711,7 +712,7 @@
   "r-label": "etichetta",
   "r-member": "membro",
   "r-remove-all": "Rimuovi tutti i membri dalla scheda",
-  "r-set-color": "Imposta il colore a",
+  "r-set-color": "Imposta il colore",
   "r-checklist": "checklist",
   "r-check-all": "Seleziona tutti",
   "r-uncheck-all": "Togli la spunta a tutti",
@@ -729,20 +730,20 @@
   "r-d-move-to-top-spec": "Sposta la scheda in cima alla lista",
   "r-d-move-to-bottom-gen": "Sposta la scheda in fondo alla sua lista",
   "r-d-move-to-bottom-spec": "Muovi la scheda in fondo alla lista",
-  "r-d-send-email": "Spedisci email",
+  "r-d-send-email": "Invia email",
   "r-d-send-email-to": "a",
   "r-d-send-email-subject": "oggetto",
   "r-d-send-email-message": "messaggio",
-  "r-d-archive": "Sposta la scheda nell'archivio",
+  "r-d-archive": "Sposta scheda nell'archivio",
   "r-d-unarchive": "Ripristina la scheda dall'archivio",
   "r-d-add-label": "Aggiungi etichetta",
   "r-d-remove-label": "Rimuovi etichetta",
   "r-create-card": "Crea una nuova scheda",
-  "r-in-list": "in elenco",
-  "r-in-swimlane": "nel diagramma swimlane",
+  "r-in-list": "in lista",
+  "r-in-swimlane": "nella swimlane",
   "r-d-add-member": "Aggiungi membro",
   "r-d-remove-member": "Rimuovi membro",
-  "r-d-remove-all-member": "Rimouvi tutti i membri",
+  "r-d-remove-all-member": "Rimuovi tutti i membri",
   "r-d-check-all": "Seleziona tutti gli item di una lista",
   "r-d-uncheck-all": "Deseleziona tutti gli items di una lista",
   "r-d-check-one": "Seleziona elemento",
@@ -754,11 +755,11 @@
   "r-add-checklist": "Aggiungi checklist",
   "r-with-items": "con elementi",
   "r-items-list": "elemento1,elemento2,elemento3",
-  "r-add-swimlane": "Aggiungi un diagramma swimlane",
-  "r-swimlane-name": "Nome diagramma swimlane",
+  "r-add-swimlane": "Aggiungi swimlane",
+  "r-swimlane-name": "nome swimlane",
   "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-when-a-card-is-moved": "Quando una scheda viene spostata in un'altra lista",
   "r-set": "Imposta",
   "r-update": "Aggiorna",
   "r-datefield": "campo data",
@@ -772,7 +773,7 @@
   "oauth2": "OAuth2",
   "cas": "CAS",
   "authentication-method": "Metodo di Autenticazione",
-  "authentication-type": "Tipo Autenticazione",
+  "authentication-type": "Tipo di autenticazione",
   "custom-product-name": "Nome prodotto personalizzato",
   "layout": "Layout",
   "hide-logo": "Nascondi il logo",
@@ -786,7 +787,7 @@
   "org-number": "Il numero di organizzazioni è:",
   "team-number": "Il numero di teams è:",
   "people-number": "Il numero di persone è:",
-  "swimlaneDeletePopup-title": "Cancella diagramma swimlane ?",
+  "swimlaneDeletePopup-title": "Eliminare la swimlane?",
   "swimlane-delete-pop": "All actions will be removed from the activity feed and you won't be able to recover the swimlane. There is no undo.",
   "restore-all": "Ripristina tutto",
   "delete-all": "Elimina tutto",
@@ -827,7 +828,7 @@
   "notifications": "Notifiche",
   "view-all": "Mostra tutte",
   "filter-by-unread": "Filtra per non letto",
-  "mark-all-as-read": "Segna come letto",
+  "mark-all-as-read": "Segna tutto come letto",
   "remove-all-read": "Rimuovi tutti i già letti",
   "allow-rename": "Consenti Rinomina",
   "allowRenamePopup-title": "Consenti Rinomina",
@@ -855,7 +856,7 @@
   "organizations": "Organizzazioni",
   "teams": "Teams",
   "displayName": "Nome da visualizzare",
-  "shortName": "Nome Corto",
+  "shortName": "Nome corto",
   "website": "Sito Web",
   "person": "Persona",
   "my-cards": "Le mie schede",
@@ -872,7 +873,7 @@
   "dueCardsViewChange-choice-me": "Me",
   "dueCardsViewChange-choice-all": "Tutti gli utenti",
   "dueCardsViewChange-choice-all-description": "Visualizza tutte le schede non completate con una data di *scadenza* dalle bacheche in cui l'utente ha il permesso.",
-  "broken-cards": "Schede rotte",
+  "broken-cards": "Schede danneggiate",
   "board-title-not-found": "Bacheca '%s' non trovata.",
   "swimlane-title-not-found": "Swimlane '%s' non trovata.",
   "list-title-not-found": "Lista '%s' non trovata.",
@@ -909,7 +910,7 @@
   "operator-limit": "limite",
   "predicate-archived": "archiviato",
   "predicate-open": "aperto/a",
-  "predicate-ended": "finito/a",
+  "predicate-ended": "finito",
   "predicate-all": "tutto",
   "predicate-overdue": "in ritardo",
   "predicate-week": "settimana",
@@ -930,7 +931,7 @@
   "predicate-private": "privato",
   "operator-unknown-error": "%s non è un operatore",
   "operator-number-expected": "l'operatore __operator__ prevede un numero, invece è stato fornito '__value__'",
-  "operator-sort-invalid": "sort of '%s' is invalid",
+  "operator-sort-invalid": "L'ordinamento di '%s' non è valido",
   "operator-status-invalid": "'%s' non è uno stato valido",
   "operator-has-invalid": "%s non è un controllo di esistenza valido",
   "operator-limit-invalid": "%s non è un limite valido.  Il limite dovrebbe essere un numero intero positivo.",
@@ -938,13 +939,13 @@
   "previous-page": "Pagina precedente",
   "heading-notes": "Note",
   "globalSearch-instructions-heading": "Istruzioni ricerca",
-  "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-description": "Per affinare le ricerche si possono includere degli operatori. Questi vanno specificati indicandone il nome ed il valore separati dai due punti. Ad esempio, specificare `list:Blocked` limita la ricerca alle schede contenute nella lista denominata *Blocked*. Se il valore del criterio contiene spazi o caratteri speciali, va racchiuso tra virgolette (es.: `__operator_list__:\"Da Controllare\"`)",
   "globalSearch-instructions-operators": "Operatori disponibili:",
   "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - schede nelle bacheche corrispondenti a *<title>*",
   "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - schede nelle liste corrispondenti a *<title>*",
-  "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - cards in swimlanes matching the specified *<title>*",
+  "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - schede in swimlane corrispondenti a *<title>*",
   "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - schede con commenti contenenti *<text>*.",
-  "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - schede aventi un'etichetta corrispondete a *<color>* oppure *<name>",
+  "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` - schede aventi un'etichetta corrispondente a *<color>* oppure *<name>*",
   "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - abbreviazione per `__operator_label__:<color>` oppure `__operator_label__:<name>`",
   "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - schede dove *<username>* è un *membro* oppure *assegnatario*",
   "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - abbreviazione per `user:<username>`",
@@ -953,25 +954,25 @@
   "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<n>* days from now.  `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
   "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - schede create *<n>* giorni fa o prima",
   "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - schede modificate *<n>* giorni fa o prima",
-  "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - dove *<status>* è una delle seguenti:",
+  "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - dove *<status>* è uno dei seguenti:",
   "globalSearch-instructions-status-archived": "`__predicate_archived__` - schede archiviate",
   "globalSearch-instructions-status-all": "`__predicate_all__` - tutte le schede archiviate e non archiviate",
-  "globalSearch-instructions-status-ended": "`__predicate_ended__` - schede con una data di fine",
+  "globalSearch-instructions-status-ended": "`__predicate_ended__` - schede aventi una data di fine",
   "globalSearch-instructions-status-public": "`__predicate_public__` - schede soltanto in bacheche pubbliche",
   "globalSearch-instructions-status-private": "`__predicate_private__` - schede soltanto in bacheche private",
-  "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* 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 *<field>* searches for the absence of a value in that field (e.g. `has:-due` searches for cards without a due date).",
+  "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - dove *<field>* è uno di `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` oppure `__predicate_member__`.  Inserendo `-` davanti a *<field>* cerca per l'assenza di un valore nel campo (per esempio `has:-due` cerca per schede senza una data di scadenza).",
   "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - dove *<sort-name>* è uno dei `__predicate_due__`, `__predicate_created__` oppure `__predicate_modified__`.  Per un ordine discendente, aggiungi un `-` davanti al nome.",
   "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - dove *<n>* è un numero intero positivo che esprime il numero delle schede da visualizzare per pagina.",
   "globalSearch-instructions-notes-1": "È possibile specificare più operatori.",
-  "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-2": "Valori diversi dello stesso criterio di ricerca vengono combinati tramite *OR*. Vengono quindi selezionate tutte le schede che soddisfano almeno uno dei criteri. `__operator_list__:Available __operator_list__:Blocked` selezionerà le schede contenute in qualsiasi lista chiamata *Blocked* o *Available*.",
+  "globalSearch-instructions-notes-3": "Più criteri di ricerca sono combinati con l'operatore *AND*. Vengono selezionate solo le schede che soddisfano tutti gli operatori. `__operator_list__:Available __operator_label__:red` seleziona solo le schede nella lista *Available* che hanno una etichetta *red*.",
   "globalSearch-instructions-notes-3-2": "I giorni possono essere specificati come numeri interi positivi/negativi oppure utilizzando `__predicate_week__`, `__predicate_month__`, `__predicate_quarter__` oppure `__predicate_year__` per il periodo corrente.",
-  "globalSearch-instructions-notes-4": "Le ricerche di testo non effettuano distinzione tra maiuscole e minuscole.",
+  "globalSearch-instructions-notes-4": "La distinzione tra maiuscole e minuscole non viene effettuata nelle ricerche di testo.",
   "globalSearch-instructions-notes-5": "Per impostazione predefinita le schede archiviate non sono incluse nella ricerca.",
-  "link-to-search": "Collegamento a questa ricerca",
+  "link-to-search": "Link a questa ricerca",
   "excel-font": "Arial",
   "number": "Numero",
-  "label-colors": "Colori etichetta",
+  "label-colors": "Colori etichette",
   "label-names": "Nomi etichette",
   "archived-at": "archiviata il",
   "sort-cards": "Ordina schede",

+ 7 - 6
i18n/ja.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "カスタムのログインロゴイメージのURL",
   "custom-login-logo-link-url": "カスタムのログインロゴイメージのリンクURL",
   "text-below-custom-login-logo": "カスタムログインロゴイメージの下のテキスト",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "ユーザー名",
   "import-usernames": "インポートするユーザー名",
   "view-it": "見る",
@@ -974,10 +975,10 @@
   "label-colors": "ラベル色",
   "label-names": "ラベル名",
   "archived-at": "archived at",
-  "sort-cards": "Sort Cards",
-  "cardsSortPopup-title": "Sort Cards",
-  "due-date": "Due Date",
-  "title-alphabetically": "Title (Alphabetically)",
-  "created-at-newest-first": "Created At (Newest First)",
-  "created-at-oldest-first": "Created At (Oldest First)"
+  "sort-cards": "カードの並び替え",
+  "cardsSortPopup-title": "カードの並び替え",
+  "due-date": "期限日",
+  "title-alphabetically": "タイトル(アルファベット順)",
+  "created-at-newest-first": "作成日(新しいものから)",
+  "created-at-oldest-first": "作成日(古いものから)"
 }

+ 1 - 0
i18n/ka.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "მომხმარებლის სახელი",
   "import-usernames": "Import Usernames",
   "view-it": "ნახვა",

+ 1 - 0
i18n/km.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/ko.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "아이디",
   "import-usernames": "Import Usernames",
   "view-it": "보기",

+ 1 - 0
i18n/lt.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/lv.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Logo pierakstīšanās ekrānā - URL",
   "custom-login-logo-link-url": "Logo saite pierakstīšanās ekrānā - URL",
   "text-below-custom-login-logo": "Teksts zem logo pierakstīšanās lapā",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Lietotājvārds",
   "import-usernames": "Import Usernames",
   "view-it": "Skatīt",

+ 1 - 0
i18n/mk.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Потребителско име",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/mn.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/nl.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL Voor Maatwerk Login Logo Afbeelding",
   "custom-login-logo-link-url": "URL Voor Maatwerk Login Logo Link",
   "text-below-custom-login-logo": "Tekst onder Maatwerk Login Logo",
+  "automatic-linked-url-schemes": "Maatwerk URL's die automatisch klikbaar zouden moeten zijn. Een URL per regel.",
   "username": "Gebruikersnaam",
   "import-usernames": "Importeer Gebruikersnamen",
   "view-it": "Bekijk het",

+ 1 - 0
i18n/oc.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nom d’utilizaire",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/pa.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/pl.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL obrazu logo ekranu logowania",
   "custom-login-logo-link-url": "URL linku logo ekranu logowania",
   "text-below-custom-login-logo": "Tekst pod logo na ekranie logowania",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nazwa użytkownika",
   "import-usernames": "Importuj użytkowników",
   "view-it": "Zobacz",

+ 1 - 0
i18n/pt-BR.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL da Imagem do logo customizado de login",
   "custom-login-logo-link-url": "URL do link do logo customizado de login",
   "text-below-custom-login-logo": "Texto abaixo do logo customizado de login",
+  "automatic-linked-url-schemes": "Esquemas de URL personalizados que devem ser clicáveis automaticamente. Um esquema de URL por linha",
   "username": "Nome de usuário",
   "import-usernames": "Importar nome de usuários",
   "view-it": "Visualizar",

+ 1 - 0
i18n/pt.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Nome de utilizador",
   "import-usernames": "Import Usernames",
   "view-it": "Visualizá-lo",

+ 1 - 0
i18n/ro.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 14 - 13
i18n/ru.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "URL пользовательского изображения при входе",
   "custom-login-logo-link-url": "URL ссылки с пользовательского изображения при входе",
   "text-below-custom-login-logo": "Текст под пользовательским изображением при входе",
+  "automatic-linked-url-schemes": "Пользовательская URL схема, которая должна быть кликабельной. Одна схема в каждой строке.",
   "username": "Имя пользователя",
   "import-usernames": "Импорт имен пользователей",
   "view-it": "Просмотреть",
@@ -905,10 +906,10 @@
   "operator-modified": "изменено",
   "operator-sort": "сортировка",
   "operator-comment": "комментарий",
-  "operator-has": "has",
-  "operator-limit": "limit",
+  "operator-has": "имеет",
+  "operator-limit": "лимит",
   "predicate-archived": "архивировано",
-  "predicate-open": "open",
+  "predicate-open": "открыт",
   "predicate-ended": "завершено",
   "predicate-all": "все",
   "predicate-overdue": "просрочено",
@@ -930,18 +931,18 @@
   "predicate-private": "приватно",
   "operator-unknown-error": "%1 не оператор",
   "operator-number-expected": "оператор __operator__ используется с числом, задано '__value__'",
-  "operator-sort-invalid": "sort of '%s' is invalid",
+  "operator-sort-invalid": "сортировка '%s' неверна",
   "operator-status-invalid": "'%s' не допустимый статус",
-  "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.",
+  "operator-has-invalid": "%s неверная проверка присутствия",
+  "operator-limit-invalid": "%s неверное ограничение. Ограничение должно быть положительным целым.",
   "next-page": "Следующая страница",
   "previous-page": "Предыдущая страница",
   "heading-notes": "Заметки",
   "globalSearch-instructions-heading": "Инструкция по поиску",
   "globalSearch-instructions-description": "Поисковая строка может содержать операторы для уточнения запроса. Оператор задается именем оператора и значением разделенными двоеточием. Например, оператор 'list:Blocked' ограничит результат запроса карточками состоящими в списке 'Blocked'. Если значение содержит пробелы или специальные символы, то оно должно быть заключено в кавычки(__operator_list__:\"To Review\").",
   "globalSearch-instructions-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-board": "`__operator_board__:<title>` - карточки соответствуют: *<title>*",
+  "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - карточки в списке соответствуют: *<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 *<color>* or *<name>",
@@ -954,11 +955,11 @@
   "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - cards which were created *<n>* days ago or less",
   "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less",
   "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* 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-status-archived": "`__predicate_archived__` - архивированные карточки",
+  "globalSearch-instructions-status-all": "`__predicate_all__` - все архивированные и не архивированные карточки",
+  "globalSearch-instructions-status-ended": "`__predicate_ended__` - карточки с датой завершения",
+  "globalSearch-instructions-status-public": "`__predicate_public__` - карточки только на публичных досках",
+  "globalSearch-instructions-status-private": "`__predicate_private__` - карточки только на личных досках",
   "globalSearch-instructions-operator-has": "`__operator_has__:<field>` - where *<field>* 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 *<field>* 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__:<sort-name>` - where *<sort-name>* 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__:<n>` - where *<n>* is a positive integer expressing the number of cards to be displayed per page.",

+ 1 - 0
i18n/sk.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/sl.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Up. ime",
   "import-usernames": "Import Usernames",
   "view-it": "Poglej",

+ 1 - 0
i18n/sr.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Korisničko ime",
   "import-usernames": "Import Usernames",
   "view-it": "Pregledaj je",

+ 113 - 112
i18n/sv.i18n.json

@@ -322,8 +322,8 @@
   "error-user-notAllowSelf": "Du kan inte bjuda in dig själv",
   "error-user-notCreated": "Den här användaren har inte skapats",
   "error-username-taken": "Detta användarnamn är redan taget",
-  "error-orgname-taken": "This organization name is already taken",
-  "error-teamname-taken": "This team name is already taken",
+  "error-orgname-taken": "Organisations namnet är upptaget.",
+  "error-teamname-taken": "Detta team namn är redan taget.",
   "error-email-taken": "E-post har redan tagits",
   "export-board": "Exportera tavla",
   "export-board-json": "Exportera tavla till JSON",
@@ -386,7 +386,7 @@
   "import-csv-placeholder": "Klistra in CSV/TSV data här",
   "import-map-members": "Kartlägg medlemmar",
   "import-members-map": "Din importerade tavla har några medlemmar. Vänligen matcha medlemmarna du vill importera mot dina användare",
-  "import-members-map-note": "Note: Unmapped members will be assigned to the current user.",
+  "import-members-map-note": "Notera: Ommappade medlemmar kommer tilldelas den nuvarande användaren. ",
   "import-show-user-mapping": "Granska medlemskartläggning",
   "import-user-select": "Välj din befintliga användare du vill använda som den här medlemmen",
   "importMapMembersAddPopup-title": "Välj medlem",
@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Länk till bild för anpassad logotyp på inloggningssidan",
   "custom-login-logo-link-url": "Länk för anpassad logotyp på inloggningssidan",
   "text-below-custom-login-logo": "Text under anpassad logga för inloggning",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Änvandarnamn",
   "import-usernames": "Importera användarnamn",
   "view-it": "Visa det",
@@ -818,10 +819,10 @@
   "addmore-detail": "Lägg till detaljerad beskrivning",
   "show-on-card": "Visa på kort",
   "new": "Ny",
-  "editOrgPopup-title": "Edit Organization",
-  "newOrgPopup-title": "New Organization",
-  "editTeamPopup-title": "Edit Team",
-  "newTeamPopup-title": "New Team",
+  "editOrgPopup-title": "Editera Oraganisation.",
+  "newOrgPopup-title": "Ny Organisation.",
+  "editTeamPopup-title": "Redigera Grupp",
+  "newTeamPopup-title": "Ny Grupp",
   "editUserPopup-title": "Redigera användare",
   "newUserPopup-title": "Ny användare",
   "notifications": "Notiser",
@@ -852,132 +853,132 @@
   "task": "Uppgift",
   "create-task": "Skapa uppgift",
   "ok": "OK",
-  "organizations": "Organizations",
-  "teams": "Teams",
-  "displayName": "Display Name",
-  "shortName": "Short Name",
-  "website": "Website",
+  "organizations": "Organisationer",
+  "teams": "Grupper",
+  "displayName": "Visningsnamn",
+  "shortName": "kort namn",
+  "website": "Webbsida",
   "person": "Person",
-  "my-cards": "My Cards",
+  "my-cards": "Mina Kort",
   "card": "Kort",
-  "board": "Board",
+  "board": "Tavla",
   "context-separator": "/",
-  "myCardsSortChange-title": "My Cards Sort",
-  "myCardsSortChangePopup-title": "My Cards Sort",
-  "myCardsSortChange-choice-board": "By Board",
-  "myCardsSortChange-choice-dueat": "By Due Date",
-  "dueCards-title": "Due Cards",
-  "dueCardsViewChange-title": "Due Cards View",
-  "dueCardsViewChangePopup-title": "Due Cards View",
-  "dueCardsViewChange-choice-me": "Me",
-  "dueCardsViewChange-choice-all": "All Users",
-  "dueCardsViewChange-choice-all-description": "Shows all incomplete cards with a *Due* date from boards for which the user has permission.",
-  "broken-cards": "Broken Cards",
-  "board-title-not-found": "Board '%s' not found.",
-  "swimlane-title-not-found": "Swimlane '%s' not found.",
-  "list-title-not-found": "List '%s' not found.",
-  "label-not-found": "Label '%s' not found.",
-  "label-color-not-found": "Label color %s not found.",
-  "user-username-not-found": "Username '%s' not found.",
-  "comment-not-found": "Card with comment containing text '%s' not found.",
-  "globalSearch-title": "Search All Boards",
-  "no-cards-found": "No Cards Found",
-  "one-card-found": "One Card Found",
-  "n-cards-found": "%s Cards Found",
-  "n-n-of-n-cards-found": "__start__-__end__ of __total__ Cards Found",
-  "operator-board": "board",
+  "myCardsSortChange-title": "Mina Tavlor sortering",
+  "myCardsSortChangePopup-title": "Mina Tavlor sortering",
+  "myCardsSortChange-choice-board": "På tavla",
+  "myCardsSortChange-choice-dueat": "På förfallodatum",
+  "dueCards-title": "Förfallna tavlor",
+  "dueCardsViewChange-title": "Förfallna tavlor vy",
+  "dueCardsViewChangePopup-title": "Förfallna tavlor vy",
+  "dueCardsViewChange-choice-me": "Jag",
+  "dueCardsViewChange-choice-all": "Alla användare",
+  "dueCardsViewChange-choice-all-description": "Visar alla oklara kort med *förfallo* datum från tavlor som användaren har tillgång till.",
+  "broken-cards": "Trasiga kort",
+  "board-title-not-found": "Tavla '%s' hittades inte.",
+  "swimlane-title-not-found": "Simbana '%s' hittades inte.",
+  "list-title-not-found": "Lista '%s' hittades inte.",
+  "label-not-found": "Märkning '%s' hittades inte.",
+  "label-color-not-found": "Märnkingsfärg '%s' hittades inte.",
+  "user-username-not-found": "Användarnamn '%s' hittades inte.",
+  "comment-not-found": "Kort med kommentarer innehållande text '%s' hittades inte.",
+  "globalSearch-title": "Sök Alla Tavlor",
+  "no-cards-found": "Inga Kort Hittades",
+  "one-card-found": "Ett Kort hittades",
+  "n-cards-found": "%s Kort hittade",
+  "n-n-of-n-cards-found": "__start__-__slut__ av __totala__ Kort Hittade",
+  "operator-board": "tavla",
   "operator-board-abbrev": "b",
-  "operator-swimlane": "swimlane",
+  "operator-swimlane": "Simbana",
   "operator-swimlane-abbrev": "s",
   "operator-list": "lista",
   "operator-list-abbrev": "l",
   "operator-label": "etikett",
   "operator-label-abbrev": "#",
-  "operator-user": "user",
+  "operator-user": "användare",
   "operator-user-abbrev": "@",
   "operator-member": "medlem",
   "operator-member-abbrev": "m",
-  "operator-assignee": "assignee",
+  "operator-assignee": "Tilldelad",
   "operator-assignee-abbrev": "a",
   "operator-status": "status",
   "operator-due": "förfallotid",
-  "operator-created": "created",
-  "operator-modified": "modified",
-  "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",
-  "predicate-week": "week",
-  "predicate-month": "month",
-  "predicate-quarter": "quarter",
-  "predicate-year": "year",
+  "operator-created": "skapad",
+  "operator-modified": "ändrad",
+  "operator-sort": "sortera",
+  "operator-comment": "kommentar",
+  "operator-has": "har",
+  "operator-limit": "gräns",
+  "predicate-archived": "arkiverad",
+  "predicate-open": "öppen",
+  "predicate-ended": "avslutad",
+  "predicate-all": "alla",
+  "predicate-overdue": "förfallen",
+  "predicate-week": "vecka",
+  "predicate-month": "månad",
+  "predicate-quarter": "kvartal",
+  "predicate-year": "år",
   "predicate-due": "förfallotid",
-  "predicate-modified": "modified",
-  "predicate-created": "created",
-  "predicate-attachment": "attachment",
-  "predicate-description": "description",
+  "predicate-modified": "ändrad",
+  "predicate-created": "skapad",
+  "predicate-attachment": "bilaga",
+  "predicate-description": "beskrivning",
   "predicate-checklist": "checklista",
   "predicate-start": "start",
   "predicate-end": "slut",
-  "predicate-assignee": "assignee",
+  "predicate-assignee": "Tilldelad",
   "predicate-member": "medlem",
-  "predicate-public": "public",
-  "predicate-private": "private",
-  "operator-unknown-error": "%s is not an operator",
-  "operator-number-expected": "operator __operator__ expected a number, got '__value__'",
-  "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 *<color>* or *<name>",
-  "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color>` - shorthand for `__operator_label__:<color>` or `__operator_label__:<name>`",
-  "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - cards where *<username>* 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 *<username>* is a *member*",
-  "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - cards where *<username>* is an *assignee*",
-  "globalSearch-instructions-operator-due": "`__operator_due__:<n>` - cards which are due up to *<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 or less",
-  "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - cards which were modified *<n>* days ago or less",
-  "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - where *<status>* 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__:<field>` - where *<field>* 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 *<field>* 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__:<sort-name>` - where *<sort-name>* 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__:<n>` - where *<n>* 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.",
+  "predicate-public": "publik",
+  "predicate-private": "privat",
+  "operator-unknown-error": "%s är inte en operator",
+  "operator-number-expected": "operator __operator__ förväntade ett nummer, fick '__värde__'",
+  "operator-sort-invalid": "Typ av '%s' är ogiltig",
+  "operator-status-invalid": "'%s' är inte en giltig status",
+  "operator-has-invalid": "%s är inte en giltig existenskontroll.",
+  "operator-limit-invalid": "%s är inte en giltig gräns. Gräns ska vara en positiv integer.",
+  "next-page": "Nästa Sida",
+  "previous-page": "Föregående Sida",
+  "heading-notes": "Noteringar",
+  "globalSearch-instructions-heading": "Sökinstruktioner",
+  "globalSearch-instructions-description": "Sökningar kan inkludera operatorer för att förfina sökningen. Operatorer är specifierade genon att skriva operator namn och värd separerat med ett kolon. Till exempel, en operator specifikation av 'list:Blocked' skulle limitera sökningen till kort som är innuti  en lista döpt till *Blocked*. Om värdet innehåller blanksteg eller specialtecken måste den vara innesluten med citations tecken. (t e x. `__operator_list__:\"To Review\"`).",
+  "globalSearch-instructions-operators": "Tillgängliga operatorer:",
+  "globalSearch-instructions-operator-board": "`__operator_board__:<title>` - kort i tavlor matchande den specifierade *<title>*",
+  "globalSearch-instructions-operator-list": "`__operator_list__:<title>` - kort i listor matchande den specifierade *<title>*",
+  "globalSearch-instructions-operator-swimlane": "`__operator_swimlane__:<title>` - kort i simbanor matchande den specifierade *<title>*",
+  "globalSearch-instructions-operator-comment": "`__operator_comment__:<text>` - kort med kommentar innehållandes *<text>*.",
+  "globalSearch-instructions-operator-label": "`__operator_label__:<color>` `__operator_label__:<name>` -kort med märkning som matchar *<color>* or *<name>",
+  "globalSearch-instructions-operator-hash": "`__operator_label_abbrev__<name | color> - förkortning för `__operator_label__:<color>` or `__operator_label__:<name>`",
+  "globalSearch-instructions-operator-user": "`__operator_user__:<username>` - kort där*<username>* är en *medlem* eller *tilldelad*",
+  "globalSearch-instructions-operator-at": "`__operator_user_abbrev__username` - förkortning för `user:<username>`",
+  "globalSearch-instructions-operator-member": "`__operator_member__:<username>` - kort där *<username>* är en *medlem*",
+  "globalSearch-instructions-operator-assignee": "`__operator_assignee__:<username>` - kort där *<username>* är en *tilldelad*",
+  "globalSearch-instructions-operator-due": "`__operator_due__:1` - cards which are due up to *2* days from now. `__operator_due__:__predicate_overdue__ lists all cards past their due date.",
+  "globalSearch-instructions-operator-created": "`__operator_created__:<n>` - kort som skapade för *<n>* dagar sedan eller mindre.",
+  "globalSearch-instructions-operator-modified": "`__operator_modified__:<n>` - kort som är modifierade för *<n>* dagar sedan eller mindre",
+  "globalSearch-instructions-operator-status": "`__operator_status__:<status>` - där*<status>* är en av följande:",
+  "globalSearch-instructions-status-archived": "`__predicate_archived__` - arkiverade kort",
+  "globalSearch-instructions-status-all": "`__predicate_all__` - alla arkiverade och oarkiverade kort.",
+  "globalSearch-instructions-status-ended": "`__predicate_ended__` -kort med ett slutdatum",
+  "globalSearch-instructions-status-public": "`__predicate_public__` - kort endast i publika tavlor",
+  "globalSearch-instructions-status-private": "`__predicate_private__` - kort endast i privata tavlor",
+  "globalSearch-instructions-operator-has": "`__operator_has__:<field> - där*<field>* är en av `__predicate_attachment__`, `__predicate_checklist__`, `__predicate_description__`, `__predicate_start__`, `__predicate_due__`, `__predicate_end__`, `__predicate_assignee__` eller`__predicate_member__`. placer en `-` framför *<field>* söker för frånvaron av ett värde i det fältet (t ex. `has:-due` söker efter kort utan förfallodatum).",
+  "globalSearch-instructions-operator-sort": "`__operator_sort__:<sort-name>` - där*<sort-name>* är en av `__predicate_due__`, `__predicate_created__` eller `__predicate_modified__`. för enm fallande sortering, placera en `-` framför sorteringsnamnet.",
+  "globalSearch-instructions-operator-limit": "`__operator_limit__:<n>` - där *<n>* är en positivc integer utryckandes antalet kort som ska visas per sida.",
+  "globalSearch-instructions-notes-1": "Multipla operatörer kan specifieras.",
+  "globalSearch-instructions-notes-2": "Liknande operatörer *OR*ade  tillsammans. Kort som matchar någon av villkoren kommer returneras.\n`__operator_list__:Tillgängliga __operator_list__:Blockerad` skuille returna kort i vilken list som helst som heter *Blockerad* eller *Tillgängliga*.",
+  "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 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",
+  "globalSearch-instructions-notes-4": "Textsökningar är skiftlägeskänsliga.",
+  "globalSearch-instructions-notes-5": "Som standard söks inte arkiverade kort.",
+  "link-to-search": "Länka till denna sökningen",
   "excel-font": "Arial",
   "number": "Nummer",
-  "label-colors": "Label Colors",
-  "label-names": "Label Names",
-  "archived-at": "archived at",
-  "sort-cards": "Sort Cards",
-  "cardsSortPopup-title": "Sort Cards",
-  "due-date": "Due Date",
-  "title-alphabetically": "Title (Alphabetically)",
-  "created-at-newest-first": "Created At (Newest First)",
-  "created-at-oldest-first": "Created At (Oldest First)"
+  "label-colors": "Märkningsfärger",
+  "label-names": "Märkningsnamn",
+  "archived-at": "arkiverad den",
+  "sort-cards": "Sortera Kort",
+  "cardsSortPopup-title": "Sortera Kort",
+  "due-date": "Förfallodatum",
+  "title-alphabetically": "Titel (Alfabetisk)",
+  "created-at-newest-first": "Skapad den (Nyast först)",
+  "created-at-oldest-first": "Skapad den (äldst först)"
 }

+ 1 - 0
i18n/sw.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/ta.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

+ 1 - 0
i18n/th.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "ชื่อผู้ใช้งาน",
   "import-usernames": "Import Usernames",
   "view-it": "ดู",

+ 1 - 0
i18n/tr.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Özel Oturum Açma Logosu Resmi URL'si",
   "custom-login-logo-link-url": "Özel Oturum Açma Logosu Bağlantı URL'si",
   "text-below-custom-login-logo": "Özel Oturum Açma Logosunun altındaki metin",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Kullanıcı adı",
   "import-usernames": "Import Usernames",
   "view-it": "Görüntüle",

+ 1 - 0
i18n/uk.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "Переглянути це",

+ 1 - 0
i18n/vi.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "Xem",

+ 1 - 0
i18n/zh-CN.i18n.json

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "设置登陆图标链接地址",
   "custom-login-logo-link-url": "通过连接上传logo",
   "text-below-custom-login-logo": "自定义登陆图标下方文字",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "用户名",
   "import-usernames": "导入用户名",
   "view-it": "查看",

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

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "Custom Login Logo Image URL",
   "custom-login-logo-link-url": "Custom Login Logo Link URL",
   "text-below-custom-login-logo": "Text below Custom Login Logo",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "Username",
   "import-usernames": "Import Usernames",
   "view-it": "View it",

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

@@ -532,6 +532,7 @@
   "custom-login-logo-image-url": "自訂登入商標圖示網址",
   "custom-login-logo-link-url": "自訂登入商標連結網址",
   "text-below-custom-login-logo": "登入商標下方文字",
+  "automatic-linked-url-schemes": "Custom URL Schemes which should automatically be clickable. One URL Scheme per line",
   "username": "使用者名稱",
   "import-usernames": "匯入使用者名稱",
   "view-it": "檢視",

+ 41 - 28
models/customFields.js

@@ -307,7 +307,8 @@ if (Meteor.isServer) {
    *
    * @param {string} boardID the ID of the board
    * @param {string} customFieldId the ID of the custom field
-   * @return_type CustomFields
+   * @return_type [{_id: string,
+   *                boardIds: string}]
    */
   JsonRoutes.add(
     'GET',
@@ -377,9 +378,9 @@ if (Meteor.isServer) {
    * @param {string} name the name of the custom field
    * @param {string} type the type of the custom field
    * @param {string} settings the settings object of the custom field
-   * @param {boolean} showOnCard should we show the custom field on cards?
-   * @param {boolean} automaticallyOnCard should the custom fields automatically be added on cards?
-   * @param {boolean} showLabelOnMiniCard should the label of the custom field be shown on minicards?
+   * @param {boolean} showOnCard should we show the custom field on cards
+   * @param {boolean} automaticallyOnCard should the custom fields automatically be added on cards
+   * @param {boolean} showLabelOnMiniCard should the label of the custom field be shown on minicards
    * @return_type {_id: string}
    */
   JsonRoutes.add(
@@ -444,7 +445,7 @@ if (Meteor.isServer) {
    * @operation add_custom_field_dropdown_items
    * @summary Update a Custom Field's dropdown items
    *
-   * @param {string[]} items names of the custom field
+   * @param {string} [items] names of the custom field
    * @return_type {_id: string}
    */
   JsonRoutes.add(
@@ -453,27 +454,32 @@ if (Meteor.isServer) {
     (req, res) => {
       Authentication.checkUserId(req.userId);
 
-      if (req.body.hasOwnProperty('items') && Array.isArray(req.body.items)) {
-        CustomFields.direct.update(
-          { _id: req.params.customFieldId },
-          {
-            $push: {
-              'settings.dropdownItems': {
-                $each: req.body.items
-                  .filter(name => typeof name === 'string')
-                  .map(name => ({
-                    _id: Random.id(6),
-                    name,
-                  })),
+      const paramCustomFieldId = req.params.customFieldId;
+      const paramItems = req.body.items;
+
+      if (req.body.hasOwnProperty('items')) {
+        if (Array.isArray(paramItems)) {
+          CustomFields.direct.update(
+            { _id: paramCustomFieldId },
+            {
+              $push: {
+                'settings.dropdownItems': {
+                  $each: paramItems
+                    .filter(name => typeof name === 'string')
+                    .map(name => ({
+                      _id: Random.id(6),
+                      name,
+                    })),
+                },
               },
             },
-          },
-        );
+          );
+        }
       }
 
       JsonRoutes.sendResult(res, {
         code: 200,
-        data: { _id: req.params.customFieldId },
+        data: { _id: paramCustomFieldId },
       });
     },
   );
@@ -491,17 +497,21 @@ if (Meteor.isServer) {
     (req, res) => {
       Authentication.checkUserId(req.userId);
 
+      const paramDropdownItemId = req.params.dropdownItemId;
+      const paramCustomFieldId = req.params.customFieldId;
+      const paramName = req.body.name;
+
       if (req.body.hasOwnProperty('name')) {
         CustomFields.direct.update(
           {
-            _id: req.params.customFieldId,
-            'settings.dropdownItems._id': req.params.dropdownItemId,
+            _id: paramCustomFieldId,
+            'settings.dropdownItems._id': paramDropdownItemId,
           },
           {
             $set: {
               'settings.dropdownItems.$': {
-                _id: req.params.dropdownItemId,
-                name: req.body.name,
+                _id: paramDropdownItemId,
+                name: paramName,
               },
             },
           },
@@ -510,7 +520,7 @@ if (Meteor.isServer) {
 
       JsonRoutes.sendResult(res, {
         code: 200,
-        data: { _id: req.params.customFieldId },
+        data: { _id: customFieldId },
       });
     },
   );
@@ -528,18 +538,21 @@ if (Meteor.isServer) {
     (req, res) => {
       Authentication.checkUserId(req.userId);
 
+      paramCustomFieldId = req.params.customFieldId;
+      paramDropdownItemId = req.params.dropdownItemId;
+
       CustomFields.direct.update(
-        { _id: req.params.customFieldId },
+        { _id: paramCustomFieldId },
         {
           $pull: {
-            'settings.dropdownItems': { _id: req.params.dropdownItemId },
+            'settings.dropdownItems': { _id: paramDropdownItemId },
           },
         },
       );
 
       JsonRoutes.sendResult(res, {
         code: 200,
-        data: { _id: req.params.customFieldId },
+        data: { _id: paramCustomFieldId },
       });
     },
   );

+ 12 - 0
models/presences.js

@@ -0,0 +1,12 @@
+if (Meteor.isServer) {
+  Meteor.startup(() => {
+    // Date of 7 days ago
+    let lastWeek = new Date();
+    lastWeek.setDate(lastWeek.getDate() - 7);
+
+    presences.remove({ ttl: { $lte: lastWeek } });
+
+    // Create index for serverId that is queried often
+    presences._collection._ensureIndex({ serverId: -1 });
+  });
+}

+ 0 - 1
openapi/generate_openapi.py

@@ -1,7 +1,6 @@
 #!/bin/env python3
 
 import argparse
-import esprima
 import json
 import logging
 import os

+ 1 - 1
package-lock.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v5.03.0",
+  "version": "v5.04.0",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "wekan",
-  "version": "v5.03.0",
+  "version": "v5.04.0",
   "description": "Open-Source kanban",
   "private": true,
   "scripts": {

+ 1 - 1
packages/markdown/src/template-integration.js

@@ -37,7 +37,7 @@ function mySafeAttrValue(tag, name, value, cssFilter) {
   // then use your custom function
   if (tag === 'a' && name === 'href') {
     // only filter the value if starts with an registered url scheme
-    urlscheme = value.split(/:\/\//);
+    urlscheme = value.split(/:/);
     //console.log("validating "+urlscheme[0]);
     if(urlschemes.includes(urlscheme[0])) return value;
     else {

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
public/api/wekan.html


+ 1 - 3450
public/api/wekan.yml

@@ -1,7 +1,7 @@
 swagger: '2.0'
 info:
   title: Wekan REST API
-  version: v5.03
+  version: v5.04
   description: |
     The REST API allows you to control and extend Wekan with ease.
 
@@ -134,3453 +134,4 @@ paths:
           description: |
             Error in registration
 
-  /api/boards:
-    get:
-      operationId: get_public_boards
-      summary: Get all public boards
-      tags:
-        - Boards
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-    post:
-      operationId: new_board
-      summary: Create a board
-      description: |
-        This allows to create a board.
-
-         The color has to be chosen between `belize`, `nephritis`, `pomegranate`,
-         `pumpkin`, `wisteria`, `moderatepink`, `strongcyan`,
-         `limegreen`, `midnight`, `dark`, `relax`, `corteza`:
-
-         <img src="https://wekan.github.io/board-colors.png" width="40%" alt="Wekan logo" />
-      tags:
-        - Boards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the new title of the board
-          type: string
-          required: true
-        - name: owner
-          in: formData
-          description: |
-            "ABCDE12345" <= User ID in Wekan.
-                 (Not username or email)
-          type: string
-          required: true
-        - name: isAdmin
-          in: formData
-          description: |
-            is the owner an admin of the board (default true)
-          type: boolean
-          required: false
-        - name: isActive
-          in: formData
-          description: |
-            is the board active (default true)
-          type: boolean
-          required: false
-        - name: isNoComments
-          in: formData
-          description: |
-            disable comments (default false)
-          type: boolean
-          required: false
-        - name: isCommentOnly
-          in: formData
-          description: |
-            only enable comments (default false)
-          type: boolean
-          required: false
-        - name: isWorker
-          in: formData
-          description: |
-            only move cards, assign himself to card and comment (default false)
-          type: boolean
-          required: false
-        - name: permission
-          in: formData
-          description: |
-            "private" board <== Set to "public" if you
-                 want public Wekan board
-          type: string
-          required: false
-        - name: color
-          in: formData
-          description: |
-            the color of the board
-          type: string
-          required: false
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              defaultSwimlaneId:
-                type: string
-  /api/boards/{board}:
-    get:
-      operationId: get_board
-      summary: Get the board with that particular ID
-      tags:
-        - Boards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board to retrieve the data
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Boards"
-    delete:
-      operationId: delete_board
-      summary: Delete a board
-      tags:
-        - Boards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-  /api/boards/{board}/attachments:
-    get:
-      operationId: get_board_attachments
-      summary: Get the list of attachments of a board
-      tags:
-        - Boards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                attachmentId:
-                  type: string
-                attachmentName:
-                  type: string
-                attachmentType:
-                  type: string
-                cardId:
-                  type: string
-                listId:
-                  type: string
-                swimlaneId:
-                  type: string
-  /api/boards/{board}/cards/{card}/checklists:
-    get:
-      operationId: get_all_checklists
-      summary: Get the list of checklists attached to a card
-      tags:
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-    post:
-      operationId: new_checklist
-      summary: create a new checklist
-      tags:
-        - Checklists
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the title of the new checklist
-          type: string
-          required: true
-        - name: items
-          in: formData
-          description: |
-            the list of items on the new checklist
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/checklists/{checklist}:
-    get:
-      operationId: get_checklist
-      summary: Get a checklist
-      tags:
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the ID of the checklist
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              cardId:
-                type: string
-              title:
-                type: string
-              finishedAt:
-                type: string
-              createdAt:
-                type: string
-              sort:
-                type: number
-              items:
-                type: array
-                items:
-                  type: object
-                  properties:
-                    _id:
-                      type: string
-                    title:
-                      type: string
-                    isFinished:
-                      type: boolean
-    delete:
-      operationId: delete_checklist
-      summary: Delete a checklist
-      description: |
-        The checklist will be removed, not put in the recycle bin.
-      tags:
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the ID of the checklist to remove
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/checklists/{checklist}/items/{item}:
-    get:
-      operationId: get_checklist_item
-      summary: Get a checklist item
-      tags:
-        - ChecklistItems
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the checklist ID
-          type: string
-          required: true
-        - name: item
-          in: path
-          description: |
-            the ID of the item
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/ChecklistItems"
-    put:
-      operationId: edit_checklist_item
-      summary: Edit a checklist item
-      tags:
-        - ChecklistItems
-        - Checklists
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: isFinished
-          in: formData
-          description: |
-            is the item checked?
-          type: string
-          required: false
-        - name: title
-          in: formData
-          description: |
-            the new text of the item
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the checklist ID
-          type: string
-          required: true
-        - name: item
-          in: path
-          description: |
-            the ID of the item
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-    delete:
-      operationId: delete_checklist_item
-      summary: Delete a checklist item
-      description: |
-        Note: this operation can't be reverted.
-      tags:
-        - ChecklistItems
-        - Checklists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-        - name: checklist
-          in: path
-          description: |
-            the checklist ID
-          type: string
-          required: true
-        - name: item
-          in: path
-          description: |
-            the ID of the item to be removed
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/comments:
-    get:
-      operationId: get_all_comments
-      summary: Get all comments attached to a card
-      tags:
-        - CardComments
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                comment:
-                  type: string
-                authorId:
-                  type: string
-    post:
-      operationId: new_comment
-      summary: Add a comment on a card
-      tags:
-        - CardComments
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: authorId
-          in: formData
-          description: |
-            the user who 'posted' the comment
-          type: string
-          required: true
-        - name: comment
-          in: formData
-          description: the comment value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cards/{card}/comments/{comment}:
-    get:
-      operationId: get_comment
-      summary: Get a comment on a card
-      tags:
-        - CardComments
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-        - name: comment
-          in: path
-          description: |
-            the ID of the comment to retrieve
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/CardComments"
-    delete:
-      operationId: delete_comment
-      summary: Delete a comment on a card
-      tags:
-        - CardComments
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-        - name: comment
-          in: path
-          description: |
-            the ID of the comment to delete
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/cardsByCustomField/{customField}/{customFieldValue}:
-    get:
-      operationId: get_cards_by_custom_field
-      summary: Get all Cards that matchs a value of a specific custom field
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: customField
-          in: path
-          description: |
-            the list ID
-          type: string
-          required: true
-        - name: customFieldValue
-          in: path
-          description: |
-            the value to look for
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-                description:
-                  type: string
-                listId:
-                  type: string
-                swinlaneId:
-                  type: string
-  /api/boards/{board}/custom-fields:
-    get:
-      operationId: get_all_custom_fields
-      summary: Get the list of Custom Fields attached to a board
-      tags:
-        - CustomFields
-      parameters:
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                name:
-                  type: string
-                type:
-                  type: string
-    post:
-      operationId: new_custom_field
-      summary: Create a Custom Field
-      tags:
-        - CustomFields
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: name
-          in: formData
-          description: |
-            the name of the custom field
-          type: string
-          required: true
-        - name: type
-          in: formData
-          description: |
-            the type of the custom field
-          type: string
-          required: true
-        - name: settings
-          in: formData
-          description: |
-            the settings object of the custom field
-          type: string
-          required: true
-        - name: showOnCard
-          in: formData
-          description: |
-            should we show the custom field on cards?
-          type: boolean
-          required: true
-        - name: automaticallyOnCard
-          in: formData
-          description: |
-            should the custom fields automatically be added on cards?
-          type: boolean
-          required: true
-        - name: showLabelOnMiniCard
-          in: formData
-          description: |
-            should the label of the custom field be shown on minicards?
-          type: boolean
-          required: true
-        - name: authorId
-          in: formData
-          description: the authorId value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/custom-fields/{customField}:
-    get:
-      operationId: get_custom_field
-      summary: Get a Custom Fields attached to a board
-      tags:
-        - CustomFields
-      parameters:
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-        - name: customField
-          in: path
-          description: |
-            the ID of the custom field
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/CustomFields"
-    delete:
-      operationId: delete_custom_field
-      summary: Delete a Custom Fields attached to a board
-      description: |
-        The Custom Field can't be retrieved after this operation
-      tags:
-        - CustomFields
-      parameters:
-        - name: board
-          in: path
-          description: the board value
-          type: string
-          required: true
-        - name: customField
-          in: path
-          description: |
-            the ID of the custom field
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/export:
-    get:
-      operationId: exportJson
-      summary: This route is used to export the board to a json file format.
-      description: |
-        If user is already logged-in, pass loginToken as param
-         "authToken": '/api/boards/:boardId/export?authToken=:token'
-
-         See https://blog.kayla.com.au/server-side-route-authentication-in-meteor/
-         for detailed explanations
-      tags:
-        - Boards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board we are exporting
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-  /api/boards/{board}/integrations:
-    get:
-      operationId: get_all_integrations
-      summary: Get all integrations in board
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              $ref: "#/definitions/Integrations"
-    post:
-      operationId: new_integration
-      summary: Create a new integration
-      tags:
-        - Integrations
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: url
-          in: formData
-          description: |
-            the URL of the integration
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/integrations/{int}:
-    get:
-      operationId: get_integration
-      summary: Get a single integration in board
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Integrations"
-    put:
-      operationId: edit_integration
-      summary: Edit integration data
-      tags:
-        - Integrations
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: enabled
-          in: formData
-          description: |
-            is the integration enabled?
-          type: string
-          required: false
-        - name: title
-          in: formData
-          description: |
-            new name of the integration
-          type: string
-          required: false
-        - name: url
-          in: formData
-          description: |
-            new URL of the integration
-          type: string
-          required: false
-        - name: token
-          in: formData
-          description: |
-            new token of the integration
-          type: string
-          required: false
-        - name: activities
-          in: formData
-          description: |
-            new list of activities of the integration
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-    delete:
-      operationId: delete_integration
-      summary: Delete integration
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/integrations/{int}/activities:
-    delete:
-      operationId: delete_integration_activities
-      summary: Delete subscribed activities
-      tags:
-        - Integrations
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Integrations"
-    post:
-      operationId: new_integration_activities
-      summary: Add subscribed activities
-      tags:
-        - Integrations
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: activities
-          in: formData
-          description: the activities value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: int
-          in: path
-          description: |
-            the integration ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Integrations"
-  /api/boards/{board}/labels:
-    put:
-      operationId: add_board_label
-      summary: Add a label to a board
-      description: |
-        If the board doesn't have the name/color label, this function
-         adds the label to the board.
-      tags:
-        - Boards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: label
-          in: formData
-          description: the label value
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: string
-  /api/boards/{board}/lists:
-    get:
-      operationId: get_all_lists
-      summary: Get the list of Lists attached to a board
-      tags:
-        - Lists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-    post:
-      operationId: new_list
-      summary: Add a List to a board
-      tags:
-        - Lists
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the title of the List
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/lists/{list}:
-    get:
-      operationId: get_list
-      summary: Get a List attached to a board
-      tags:
-        - Lists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the List ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Lists"
-    delete:
-      operationId: delete_list
-      summary: Delete a List
-      description: |
-        This **deletes** a list from a board.
-         The list is not put in the recycle bin.
-      tags:
-        - Lists
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the ID of the list to remove
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/lists/{list}/cards:
-    get:
-      operationId: get_all_cards
-      summary: Get all Cards attached to a List
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-                description:
-                  type: string
-    post:
-      operationId: new_card
-      summary: Create a new Card
-      tags:
-        - Cards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: authorId
-          in: formData
-          description: the authorId value
-          type: string
-          required: true
-        - name: members
-          in: formData
-          description: |
-            the member IDs list of the new card
-          type: string
-          required: false
-        - name: assignees
-          in: formData
-          description: |
-            the array of maximum one ID of assignee of the new card
-          type: string
-          required: false
-        - name: title
-          in: formData
-          description: |
-            the title of the new card
-          type: string
-          required: true
-        - name: description
-          in: formData
-          description: |
-            the description of the new card
-          type: string
-          required: true
-        - name: swimlaneId
-          in: formData
-          description: |
-            the swimlane ID of the new card
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID of the new card
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the new card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/lists/{list}/cards/{card}:
-    get:
-      operationId: get_card
-      summary: Get a Card
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the card ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Cards"
-    put:
-      operationId: edit_card
-      summary: Edit Fields in a Card
-      description: |
-        Edit a card
-
-         The color has to be chosen between `white`, `green`, `yellow`, `orange`,
-         `red`, `purple`, `blue`, `sky`, `lime`, `pink`, `black`, `silver`,
-         `peachpuff`, `crimson`, `plum`, `darkgreen`, `slateblue`, `magenta`,
-         `gold`, `navy`, `gray`, `saddlebrown`, `paleturquoise`, `mistyrose`,
-         `indigo`:
-
-         <img src="/card-colors.png" width="40%" alt="Wekan card colors" />
-
-         Note: setting the color to white has the same effect than removing it.
-      tags:
-        - Cards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the new title of the card
-          type: string
-          required: false
-        - name: sort
-          in: formData
-          description: |
-            the new sort value of the card
-          type: string
-          required: false
-        - name: parentId
-          in: formData
-          description: |
-            change the parent of the card
-          type: string
-          required: false
-        - name: description
-          in: formData
-          description: |
-            the new description of the card
-          type: string
-          required: false
-        - name: color
-          in: formData
-          description: |
-            the new color of the card
-          type: string
-          required: false
-        - name: vote
-          in: formData
-          description: |
-            the vote object
-          type: object
-          required: false
-        - name: labelIds
-          in: formData
-          description: |
-            the new list of label IDs attached to the card
-          type: string
-          required: false
-        - name: requestedBy
-          in: formData
-          description: |
-            the new requestedBy field of the card
-          type: string
-          required: false
-        - name: assignedBy
-          in: formData
-          description: |
-            the new assignedBy field of the card
-          type: string
-          required: false
-        - name: receivedAt
-          in: formData
-          description: |
-            the new receivedAt field of the card
-          type: string
-          required: false
-        - name: startAt
-          in: formData
-          description: |
-            the new startAt field of the card
-          type: string
-          required: false
-        - name: dueAt
-          in: formData
-          description: |
-            the new dueAt field of the card
-          type: string
-          required: false
-        - name: endAt
-          in: formData
-          description: |
-            the new endAt field of the card
-          type: string
-          required: false
-        - name: spentTime
-          in: formData
-          description: |
-            the new spentTime field of the card
-          type: string
-          required: false
-        - name: isOverTime
-          in: formData
-          description: |
-            the new isOverTime field of the card
-          type: boolean
-          required: false
-        - name: customFields
-          in: formData
-          description: |
-            the new customFields value of the card
-          type: string
-          required: false
-        - name: members
-          in: formData
-          description: |
-            the new list of member IDs attached to the card
-          type: string
-          required: false
-        - name: assignees
-          in: formData
-          description: |
-            the array of maximum one ID of assignee attached to the card
-          type: string
-          required: false
-        - name: swimlaneId
-          in: formData
-          description: |
-            the new swimlane ID of the card
-          type: string
-          required: false
-        - name: listId
-          in: formData
-          description: |
-            the new list ID of the card (move operation)
-          type: string
-          required: false
-        - name: authorId
-          in: formData
-          description: |
-            change the owner of the card
-          type: string
-          required: false
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-    delete:
-      operationId: delete_card
-      summary: Delete a card from a board
-      description: |
-        This operation **deletes** a card, and therefore the card
-         is not put in the recycle bin.
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID of the card
-          type: string
-          required: true
-        - name: list
-          in: path
-          description: |
-            the list ID of the card
-          type: string
-          required: true
-        - name: card
-          in: path
-          description: |
-            the ID of the card
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/members/{member}:
-    post:
-      operationId: set_board_member_permission
-      summary: Change the permission of a member of a board
-      tags:
-        - Boards
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: isAdmin
-          in: formData
-          description: |
-            admin capability
-          type: boolean
-          required: true
-        - name: isNoComments
-          in: formData
-          description: |
-            NoComments capability
-          type: boolean
-          required: true
-        - name: isCommentOnly
-          in: formData
-          description: |
-            CommentsOnly capability
-          type: boolean
-          required: true
-        - name: isWorker
-          in: formData
-          description: |
-            Worker capability
-          type: boolean
-          required: true
-        - name: board
-          in: path
-          description: |
-            the ID of the board that we are changing
-          type: string
-          required: true
-        - name: member
-          in: path
-          description: |
-            the ID of the user to change permissions
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-  /api/boards/{board}/members/{user}/add:
-    post:
-      operationId: add_board_member
-      summary: Add New Board Member with Role
-      description: |
-        Only the admin user (the first user) can call the REST API.
-
-         **Note**: see [Boards.set_board_member_permission](#set_board_member_permission)
-         to later change the permissions.
-      tags:
-        - Users
-        - Boards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: action
-          in: formData
-          description: the action value
-          type: string
-          required: true
-        - name: isAdmin
-          in: formData
-          description: |
-            is the user an admin of the board
-          type: boolean
-          required: true
-        - name: isNoComments
-          in: formData
-          description: |
-            disable comments
-          type: boolean
-          required: true
-        - name: isCommentOnly
-          in: formData
-          description: |
-            only enable comments
-          type: boolean
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: user
-          in: path
-          description: |
-            the user ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              title:
-                type: string
-  /api/boards/{board}/members/{user}/remove:
-    post:
-      operationId: remove_board_member
-      summary: Remove Member from Board
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-        - Boards
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: action
-          in: formData
-          description: |
-            the action (needs to be `remove`)
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: user
-          in: path
-          description: |
-            the user ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              title:
-                type: string
-  /api/boards/{board}/swimlanes:
-    get:
-      operationId: get_all_swimlanes
-      summary: Get the list of swimlanes attached to a board
-      tags:
-        - Swimlanes
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-    post:
-      operationId: new_swimlane
-      summary: Add a swimlane to a board
-      tags:
-        - Swimlanes
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: title
-          in: formData
-          description: |
-            the new title of the swimlane
-          type: string
-          required: true
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/swimlanes/{swimlane}:
-    get:
-      operationId: get_swimlane
-      summary: Get a swimlane
-      tags:
-        - Swimlanes
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-        - name: swimlane
-          in: path
-          description: |
-            the ID of the swimlane
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Swimlanes"
-    delete:
-      operationId: delete_swimlane
-      summary: Delete a swimlane
-      description: |
-        The swimlane will be deleted, not moved to the recycle bin
-      tags:
-        - Swimlanes
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the ID of the board
-          type: string
-          required: true
-        - name: swimlane
-          in: path
-          description: |
-            the ID of the swimlane
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/boards/{board}/swimlanes/{swimlane}/cards:
-    get:
-      operationId: get_swimlane_cards
-      summary: get all cards attached to a swimlane
-      tags:
-        - Cards
-      parameters:
-        - name: board
-          in: path
-          description: |
-            the board ID
-          type: string
-          required: true
-        - name: swimlane
-          in: path
-          description: |
-            the swimlane ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
-                description:
-                  type: string
-                listId:
-                  type: string
-  /api/boards_count:
-    get:
-      operationId: get_boards_count
-      summary: Get public and private boards count
-      tags:
-        - Boards
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              private:
-                type: integer
-              public:
-                type: integer
-  /api/createtoken/{user}:
-    post:
-      operationId: create_user_token
-      summary: Create a user token
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the ID of the user to create token for.
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/user:
-    get:
-      operationId: get_current_user
-      summary: returns the current user
-      tags:
-        - Users
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Users"
-  /api/users:
-    get:
-      operationId: get_all_users
-      summary: return all the users
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                username:
-                  type: string
-    post:
-      operationId: new_user
-      summary: Create a new user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: username
-          in: formData
-          description: |
-            the new username
-          type: string
-          required: true
-        - name: email
-          in: formData
-          description: |
-            the email of the new user
-          type: string
-          required: true
-        - name: password
-          in: formData
-          description: |
-            the password of the new user
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/users/{user}:
-    get:
-      operationId: get_user
-      summary: get a given user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the user ID or username
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            $ref: "#/definitions/Users"
-    put:
-      operationId: edit_user
-      summary: edit a given user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-
-         Possible values for *action*:
-         - `takeOwnership`: The admin takes the ownership of ALL boards of the user (archived and not archived) where the user is admin on.
-         - `disableLogin`: Disable a user (the user is not allowed to login and his login tokens are purged)
-         - `enableLogin`: Enable a user
-      tags:
-        - Users
-      consumes:
-        - multipart/form-data
-        - application/json
-      parameters:
-        - name: action
-          in: formData
-          description: |
-            the action
-          type: string
-          required: true
-        - name: user
-          in: path
-          description: |
-            the user ID
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-              title:
-                type: string
-    delete:
-      operationId: delete_user
-      summary: Delete a user
-      description: |
-        Only the admin user (the first user) can call the REST API.
-      tags:
-        - Users
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the ID of the user to delete
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: object
-            properties:
-              _id:
-                type: string
-  /api/users/{user}/boards:
-    get:
-      operationId: get_boards_from_user
-      summary: Get all boards attached to a user
-      tags:
-        - Boards
-      parameters:
-        - name: user
-          in: path
-          description: |
-            the ID of the user to retrieve the data
-          type: string
-          required: true
-      produces:
-        - application/json
-      security:
-          - UserSecurity: []
-      responses:
-        '200':
-          description: |-
-            200 response
-          schema:
-            type: array
-            items:
-              type: object
-              properties:
-                _id:
-                  type: string
-                title:
-                  type: string
 definitions:
-  Boards:
-    type: object
-    description:  This is a Board.
-    properties:
-      title:
-        description: |
-           The title of the board
-        type: string
-      slug:
-        description: |
-           The title slugified.
-        type: string
-      archived:
-        description: |
-           Is the board archived?
-        type: boolean
-      archivedAt:
-        description: |
-           Latest archiving time of the board
-        type: string
-        x-nullable: true
-      createdAt:
-        description: |
-           Creation time of the board
-        type: string
-      modifiedAt:
-        description: |
-           Last modification time of the board
-        type: string
-        x-nullable: true
-      stars:
-        description: |
-           How many stars the board has
-        type: number
-      labels:
-        description: |
-           List of labels attached to a board
-        type: array
-        items:
-          $ref: "#/definitions/BoardsLabels"
-      members:
-        description: |
-           List of members of a board
-        type: array
-        items:
-          $ref: "#/definitions/BoardsMembers"
-      permission:
-        description: |
-           visibility of the board
-        type: string
-        enum:
-          - public
-          - private
-      color:
-        description: |
-           The color of the board.
-        type: string
-        enum:
-          - belize
-          - nephritis
-          - pomegranate
-          - pumpkin
-          - wisteria
-          - moderatepink
-          - strongcyan
-          - limegreen
-          - midnight
-          - dark
-          - relax
-          - corteza
-          - clearblue
-          - natural
-          - modern
-          - moderndark
-      description:
-        description: |
-           The description of the board
-        type: string
-        x-nullable: true
-      subtasksDefaultBoardId:
-        description: |
-           The default board ID assigned to subtasks.
-        type: string
-        x-nullable: true
-      subtasksDefaultListId:
-        description: |
-           The default List ID assigned to subtasks.
-        type: string
-        x-nullable: true
-      dateSettingsDefaultBoardId:
-        type: string
-        x-nullable: true
-      dateSettingsDefaultListId:
-        type: string
-        x-nullable: true
-      allowsSubtasks:
-        description: |
-           Does the board allows subtasks?
-        type: boolean
-      allowsAttachments:
-        description: |
-           Does the board allows attachments?
-        type: boolean
-      allowsChecklists:
-        description: |
-           Does the board allows checklists?
-        type: boolean
-      allowsComments:
-        description: |
-           Does the board allows comments?
-        type: boolean
-      allowsDescriptionTitle:
-        description: |
-           Does the board allows description title?
-        type: boolean
-      allowsDescriptionText:
-        description: |
-           Does the board allows description text?
-        type: boolean
-      allowsActivities:
-        description: |
-           Does the board allows comments?
-        type: boolean
-      allowsLabels:
-        description: |
-           Does the board allows labels?
-        type: boolean
-      allowsAssignee:
-        description: |
-           Does the board allows assignee?
-        type: boolean
-      allowsMembers:
-        description: |
-           Does the board allows members?
-        type: boolean
-      allowsRequestedBy:
-        description: |
-           Does the board allows requested by?
-        type: boolean
-      allowsAssignedBy:
-        description: |
-           Does the board allows requested by?
-        type: boolean
-      allowsReceivedDate:
-        description: |
-           Does the board allows received date?
-        type: boolean
-      allowsStartDate:
-        description: |
-           Does the board allows start date?
-        type: boolean
-      allowsEndDate:
-        description: |
-           Does the board allows end date?
-        type: boolean
-      allowsDueDate:
-        description: |
-           Does the board allows due date?
-        type: boolean
-      presentParentTask:
-        description: |
-           Controls how to present the parent task:
-
-           - `prefix-with-full-path`: add a prefix with the full path
-           - `prefix-with-parent`: add a prefisx with the parent name
-           - `subtext-with-full-path`: add a subtext with the full path
-           - `subtext-with-parent`: add a subtext with the parent name
-           - `no-parent`: does not show the parent at all
-        type: string
-        enum:
-          - prefix-with-full-path
-          - prefix-with-parent
-          - subtext-with-full-path
-          - subtext-with-parent
-          - no-parent
-        x-nullable: true
-      startAt:
-        description: |
-           Starting date of the board.
-        type: string
-        x-nullable: true
-      dueAt:
-        description: |
-           Due date of the board.
-        type: string
-        x-nullable: true
-      endAt:
-        description: |
-           End date of the board.
-        type: string
-        x-nullable: true
-      spentTime:
-        description: |
-           Time spent in the board.
-        type: number
-        x-nullable: true
-      isOvertime:
-        description: |
-           Is the board overtimed?
-        type: boolean
-        x-nullable: true
-      type:
-        description: |
-           The type of board
-        type: string
-      sort:
-        description: |
-           Sort value
-        type: number
-    required:
-      - title
-      - slug
-      - archived
-      - createdAt
-      - stars
-      - labels
-      - members
-      - permission
-      - color
-      - allowsSubtasks
-      - allowsAttachments
-      - allowsChecklists
-      - allowsComments
-      - allowsDescriptionTitle
-      - allowsDescriptionText
-      - allowsActivities
-      - allowsLabels
-      - allowsAssignee
-      - allowsMembers
-      - allowsRequestedBy
-      - allowsAssignedBy
-      - allowsReceivedDate
-      - allowsStartDate
-      - allowsEndDate
-      - allowsDueDate
-      - type
-      - sort
-  BoardsLabels:
-    type: object
-    properties:
-      _id:
-        description: |
-           Unique id of a label
-        type: string
-      name:
-        description: |
-           Name of a label
-        type: string
-      color:
-        description: |
-           color of a label.
-
-           Can be amongst `green`, `yellow`, `orange`, `red`, `purple`,
-           `blue`, `sky`, `lime`, `pink`, `black`,
-           `silver`, `peachpuff`, `crimson`, `plum`, `darkgreen`,
-           `slateblue`, `magenta`, `gold`, `navy`, `gray`,
-           `saddlebrown`, `paleturquoise`, `mistyrose`, `indigo`
-        type: string
-        enum:
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - silver
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-    required:
-      - _id
-      - color
-  BoardsMembers:
-    type: object
-    properties:
-      userId:
-        description: |
-           The uniq ID of the member
-        type: string
-      isAdmin:
-        description: |
-           Is the member an admin of the board?
-        type: boolean
-      isActive:
-        description: |
-           Is the member active?
-        type: boolean
-      isNoComments:
-        description: |
-           Is the member not allowed to make comments
-        type: boolean
-      isCommentOnly:
-        description: |
-           Is the member only allowed to comment on the board
-        type: boolean
-      isWorker:
-        description: |
-           Is the member only allowed to move card, assign himself to card and comment
-        type: boolean
-    required:
-      - userId
-      - isAdmin
-      - isActive
-  CardComments:
-    type: object
-    description:  A comment on a card
-    properties:
-      boardId:
-        description: |
-           the board ID
-        type: string
-      cardId:
-        description: |
-           the card ID
-        type: string
-      text:
-        description: |
-           the text of the comment
-        type: string
-      createdAt:
-        description: |
-           when was the comment created
-        type: string
-      modifiedAt:
-        type: string
-      userId:
-        description: |
-           the author ID of the comment
-        type: string
-    required:
-      - boardId
-      - cardId
-      - text
-      - createdAt
-      - modifiedAt
-      - userId
-  Cards:
-    type: object
-    properties:
-      title:
-        description: |
-           the title of the card
-        type: string
-        x-nullable: true
-      archived:
-        description: |
-           is the card archived
-        type: boolean
-      archivedAt:
-        description: |
-           latest archiving date
-        type: string
-        x-nullable: true
-      parentId:
-        description: |
-           ID of the parent card
-        type: string
-        x-nullable: true
-      listId:
-        description: |
-           List ID where the card is
-        type: string
-        x-nullable: true
-      swimlaneId:
-        description: |
-           Swimlane ID where the card is
-        type: string
-      boardId:
-        description: |
-           Board ID of the card
-        type: string
-        x-nullable: true
-      coverId:
-        description: |
-           Cover ID of the card
-        type: string
-        x-nullable: true
-      color:
-        type: string
-        enum:
-          - white
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - silver
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-        x-nullable: true
-      createdAt:
-        description: |
-           creation date
-        type: string
-      modifiedAt:
-        type: string
-      customFields:
-        description: |
-           list of custom fields
-        type: array
-        items:
-          $ref: "#/definitions/CardsCustomfields"
-        x-nullable: true
-      dateLastActivity:
-        description: |
-           Date of last activity
-        type: string
-      description:
-        description: |
-           description of the card
-        type: string
-        x-nullable: true
-      requestedBy:
-        description: |
-           who requested the card (ID of the user)
-        type: string
-        x-nullable: true
-      assignedBy:
-        description: |
-           who assigned the card (ID of the user)
-        type: string
-        x-nullable: true
-      labelIds:
-        description: |
-           list of labels ID the card has
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-      members:
-        description: |
-           list of members (user IDs)
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-      assignees:
-        description: |
-           who is assignee of the card (user ID),
-           maximum one ID of assignee in array.
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-      receivedAt:
-        description: |
-           Date the card was received
-        type: string
-        x-nullable: true
-      startAt:
-        description: |
-           Date the card was started to be worked on
-        type: string
-        x-nullable: true
-      dueAt:
-        description: |
-           Date the card is due
-        type: string
-        x-nullable: true
-      endAt:
-        description: |
-           Date the card ended
-        type: string
-        x-nullable: true
-      spentTime:
-        description: |
-           How much time has been spent on this
-        type: number
-        x-nullable: true
-      isOvertime:
-        description: |
-           is the card over time?
-        type: boolean
-        x-nullable: true
-      userId:
-        description: |
-           user ID of the author of the card
-        type: string
-      sort:
-        description: |
-           Sort value
-        type: number
-      subtaskSort:
-        description: |
-           subtask sort value
-        type: number
-        x-nullable: true
-      type:
-        description: |
-           type of the card
-        type: string
-      linkedId:
-        description: |
-           ID of the linked card
-        type: string
-        x-nullable: true
-      vote:
-        description: |
-           vote object, see below
-        $ref: "#/definitions/CardsVote"
-        x-nullable: true
-    required:
-      - archived
-      - swimlaneId
-      - createdAt
-      - modifiedAt
-      - dateLastActivity
-      - userId
-      - sort
-      - type
-  CardsVote:
-    type: object
-    properties:
-      question:
-        type: string
-      positive:
-        description: |
-           list of members (user IDs)
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      negative:
-        description: |
-           list of members (user IDs)
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      end:
-        type: string
-      public:
-        type: boolean
-      allowNonBoardMembers:
-        type: boolean
-    required:
-      - question
-      - public
-      - allowNonBoardMembers
-  CardsCustomfields:
-    type: object
-  ChecklistItems:
-    type: object
-    description:  An item in a checklist
-    properties:
-      title:
-        description: |
-           the text of the item
-        type: string
-      sort:
-        description: |
-           the sorting field of the item
-        type: number
-      isFinished:
-        description: |
-           Is the item checked?
-        type: boolean
-      checklistId:
-        description: |
-           the checklist ID the item is attached to
-        type: string
-      cardId:
-        description: |
-           the card ID the item is attached to
-        type: string
-      createdAt:
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-    required:
-      - title
-      - sort
-      - isFinished
-      - checklistId
-      - cardId
-      - modifiedAt
-  Checklists:
-    type: object
-    description:  A Checklist
-    properties:
-      cardId:
-        description: |
-           The ID of the card the checklist is in
-        type: string
-      title:
-        description: |
-           the title of the checklist
-        type: string
-      finishedAt:
-        description: |
-           When was the checklist finished
-        type: string
-        x-nullable: true
-      createdAt:
-        description: |
-           Creation date of the checklist
-        type: string
-      modifiedAt:
-        type: string
-      sort:
-        description: |
-           sorting value of the checklist
-        type: number
-    required:
-      - cardId
-      - title
-      - createdAt
-      - modifiedAt
-      - sort
-  CustomFields:
-    type: object
-    description:  A custom field on a card in the board
-    properties:
-      boardIds:
-        description: |
-           the ID of the board
-        type: array
-        items:
-          type: string
-      name:
-        description: |
-           name of the custom field
-        type: string
-      type:
-        description: |
-           type of the custom field
-        type: string
-        enum:
-          - text
-          - number
-          - date
-          - dropdown
-          - checkbox
-          - currency
-      settings:
-        description: |
-           settings of the custom field
-        $ref: "#/definitions/CustomFieldsSettings"
-      showOnCard:
-        description: |
-           should we show on the cards this custom field
-        type: boolean
-      automaticallyOnCard:
-        description: |
-           should the custom fields automatically be added on cards?
-        type: boolean
-      alwaysOnCard:
-        description: |
-           should the custom field be automatically added to all cards?
-        type: boolean
-      showLabelOnMiniCard:
-        description: |
-           should the label of the custom field be shown on minicards?
-        type: boolean
-      createdAt:
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-    required:
-      - boardIds
-      - name
-      - type
-      - settings
-      - showOnCard
-      - automaticallyOnCard
-      - alwaysOnCard
-      - showLabelOnMiniCard
-      - modifiedAt
-  CustomFieldsSettings:
-    type: object
-    properties:
-      currencyCode:
-        type: string
-      dropdownItems:
-        description: |
-           list of drop down items objects
-        type: array
-        items:
-          $ref: "#/definitions/CustomFieldsSettingsDropdownitems"
-  CustomFieldsSettingsDropdownitems:
-    type: object
-  Integrations:
-    type: object
-    description:  Integration with third-party applications
-    properties:
-      enabled:
-        description: |
-           is the integration enabled?
-        type: boolean
-      title:
-        description: |
-           name of the integration
-        type: string
-        x-nullable: true
-      type:
-        description: |
-           type of the integratation (Default to 'outgoing-webhooks')
-        type: string
-      activities:
-        description: |
-           activities the integration gets triggered (list)
-        type: array
-        items:
-          type: string
-      url:
-        type: string
-      token:
-        description: |
-           token of the integration
-        type: string
-        x-nullable: true
-      boardId:
-        description: |
-           Board ID of the integration
-        type: string
-      createdAt:
-        description: |
-           Creation date of the integration
-        type: string
-      modifiedAt:
-        type: string
-      userId:
-        description: |
-           user ID who created the interation
-        type: string
-    required:
-      - enabled
-      - type
-      - activities
-      - url
-      - boardId
-      - createdAt
-      - modifiedAt
-      - userId
-  Lists:
-    type: object
-    description:  A list (column) in the Wekan board.
-    properties:
-      title:
-        description: |
-           the title of the list
-        type: string
-      starred:
-        description: |
-           if a list is stared
-           then we put it on the top
-        type: boolean
-        x-nullable: true
-      archived:
-        description: |
-           is the list archived
-        type: boolean
-      archivedAt:
-        description: |
-           latest archiving date
-        type: string
-        x-nullable: true
-      boardId:
-        description: |
-           the board associated to this list
-        type: string
-      swimlaneId:
-        description: |
-           the swimlane associated to this list. Used for templates
-        type: string
-      createdAt:
-        description: |
-           creation date
-        type: string
-      sort:
-        description: |
-           is the list sorted
-        type: number
-        x-nullable: true
-      updatedAt:
-        description: |
-           last update of the list
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-      wipLimit:
-        description: |
-           WIP object, see below
-        $ref: "#/definitions/ListsWiplimit"
-        x-nullable: true
-      color:
-        description: |
-           the color of the list
-        type: string
-        enum:
-          - white
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-        x-nullable: true
-      type:
-        description: |
-           The type of list
-        type: string
-    required:
-      - title
-      - archived
-      - boardId
-      - swimlaneId
-      - createdAt
-      - modifiedAt
-      - type
-  ListsWiplimit:
-    type: object
-    properties:
-      value:
-        description: |
-           value of the WIP
-        type: number
-      enabled:
-        description: |
-           is the WIP enabled
-        type: boolean
-      soft:
-        description: |
-           is the WIP a soft or hard requirement
-        type: boolean
-    required:
-      - value
-      - enabled
-      - soft
-  Swimlanes:
-    type: object
-    description:  A swimlane is an line in the kaban board.
-    properties:
-      title:
-        description: |
-           the title of the swimlane
-        type: string
-      archived:
-        description: |
-           is the swimlane archived?
-        type: boolean
-      archivedAt:
-        description: |
-           latest archiving date of the swimlane
-        type: string
-        x-nullable: true
-      boardId:
-        description: |
-           the ID of the board the swimlane is attached to
-        type: string
-      createdAt:
-        description: |
-           creation date of the swimlane
-        type: string
-      sort:
-        description: |
-           the sort value of the swimlane
-        type: number
-        x-nullable: true
-      color:
-        description: |
-           the color of the swimlane
-        type: string
-        enum:
-          - white
-          - green
-          - yellow
-          - orange
-          - red
-          - purple
-          - blue
-          - sky
-          - lime
-          - pink
-          - black
-          - peachpuff
-          - crimson
-          - plum
-          - darkgreen
-          - slateblue
-          - magenta
-          - gold
-          - navy
-          - gray
-          - saddlebrown
-          - paleturquoise
-          - mistyrose
-          - indigo
-        x-nullable: true
-      updatedAt:
-        description: |
-           when was the swimlane last edited
-        type: string
-        x-nullable: true
-      modifiedAt:
-        type: string
-      type:
-        description: |
-           The type of swimlane
-        type: string
-    required:
-      - title
-      - archived
-      - boardId
-      - createdAt
-      - modifiedAt
-      - type
-  Users:
-    type: object
-    description:  A User in wekan
-    properties:
-      username:
-        description: |
-           the username of the user
-        type: string
-        x-nullable: true
-      emails:
-        description: |
-           the list of emails attached to a user
-        type: array
-        items:
-          $ref: "#/definitions/UsersEmails"
-        x-nullable: true
-      createdAt:
-        description: |
-           creation date of the user
-        type: string
-      modifiedAt:
-        type: string
-      profile:
-        description: |
-           profile settings
-        $ref: "#/definitions/UsersProfile"
-        x-nullable: true
-      services:
-        description: |
-           services field of the user
-        type: object
-        x-nullable: true
-      heartbeat:
-        description: |
-           last time the user has been seen
-        type: string
-        x-nullable: true
-      isAdmin:
-        description: |
-           is the user an admin of the board?
-        type: boolean
-        x-nullable: true
-      createdThroughApi:
-        description: |
-           was the user created through the API?
-        type: boolean
-        x-nullable: true
-      loginDisabled:
-        description: |
-           loginDisabled field of the user
-        type: boolean
-        x-nullable: true
-      authenticationMethod:
-        description: |
-           authentication method of the user
-        type: string
-      sessionData:
-        description: |
-           profile settings
-        $ref: "#/definitions/UsersSessiondata"
-        x-nullable: true
-      importUsernames:
-        description: |
-           username for imported
-        type: array
-        items:
-          type: string
-          x-nullable: true
-        x-nullable: true
-    required:
-      - createdAt
-      - modifiedAt
-      - authenticationMethod
-  UsersEmails:
-    type: object
-    properties:
-      address:
-        description: |
-           The email address
-        type: string
-      verified:
-        description: |
-           Has the email been verified
-        type: boolean
-    required:
-      - address
-      - verified
-  UsersProfile:
-    type: object
-    properties:
-      avatarUrl:
-        description: |
-           URL of the avatar of the user
-        type: string
-      emailBuffer:
-        description: |
-           list of email buffers of the user
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      fullname:
-        description: |
-           full name of the user
-        type: string
-      showDesktopDragHandles:
-        description: |
-           does the user want to hide system messages?
-        type: boolean
-      hideCheckedItems:
-        description: |
-           does the user want to hide checked checklist items?
-        type: boolean
-      hiddenSystemMessages:
-        description: |
-           does the user want to hide system messages?
-        type: boolean
-      hiddenMinicardLabelText:
-        description: |
-           does the user want to hide minicard label texts?
-        type: boolean
-      initials:
-        description: |
-           initials of the user
-        type: string
-      invitedBoards:
-        description: |
-           board IDs the user has been invited to
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      language:
-        description: |
-           language of the user
-        type: string
-      notifications:
-        description: |
-           enabled notifications for the user
-        type: array
-        items:
-          $ref: "#/definitions/UsersProfileNotifications"
-      activity:
-        description: |
-           The id of the activity this notification references
-        type: string
-      read:
-        description: |
-           the date on which this notification was read
-        type: string
-      showCardsCountAt:
-        description: |
-           showCardCountAt field of the user
-        type: number
-      startDayOfWeek:
-        description: |
-           startDayOfWeek field of the user
-        type: number
-      starredBoards:
-        description: |
-           list of starred board IDs
-        type: array
-        items:
-          type: string
-          x-nullable: true
-      icode:
-        description: |
-           icode
-        type: string
-      boardView:
-        description: |
-           boardView field of the user
-        type: string
-        enum:
-          - board-view-swimlanes
-          - board-view-lists
-          - board-view-cal
-      listSortBy:
-        description: |
-           default sort list for user
-        type: string
-        enum:
-          - -modifiedat
-          - modifiedat
-          - -title
-          - title
-          - -sort
-          - sort
-      templatesBoardId:
-        description: |
-           Reference to the templates board
-        type: string
-      cardTemplatesSwimlaneId:
-        description: |
-           Reference to the card templates swimlane Id
-        type: string
-      listTemplatesSwimlaneId:
-        description: |
-           Reference to the list templates swimlane Id
-        type: string
-      boardTemplatesSwimlaneId:
-        description: |
-           Reference to the board templates swimlane Id
-        type: string
-    required:
-      - activity
-      - templatesBoardId
-      - cardTemplatesSwimlaneId
-      - listTemplatesSwimlaneId
-      - boardTemplatesSwimlaneId
-  UsersSessiondata:
-    type: object
-    properties:
-      totalHits:
-        description: |
-           Total hits from last search
-        type: number
-      lastHit:
-        description: |
-           last hit that was returned
-        type: number

+ 5 - 11
releases/rebuild-docs-install-deps.sh

@@ -1,21 +1,15 @@
-# Generate docs.
+# Extract the OpenAPI specification.
 
-# extract the OpenAPI specification
+# Install dependencies.
 sudo apt-get install python3-pip
 sudo pip3 install -U setuptools wheel
-sudo npm install -g api2html@0.3.3
-sudo npm install -g --unsafe-perm api2html@0.3.0
-sudo npm install -g --unsafe-perm mkdirp
-mkdir -p ~/python
-cd ~/python
-git clone --depth 1 -b master https://github.com/Kronuz/esprima-python
-cd ~/python/esprima-python
-sudo python3 setup.py install --record files.txt
+sudo npm install -g api2html
 cd ~/repos/wekan
 mkdir -p public/api
+
+# Generate docs.
 python3 ./openapi/generate_openapi.py --release $(git describe --tags --abbrev=0) > ./public/api/wekan.yml
 api2html -c ./public/logo-header.png -o ./public/api/wekan.html ./public/api/wekan.yml
 
 # Copy docs to bundle
 #cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser/app/
-#cp -pR ./public/api ~/repos/wekan/.build/bundle/programs/web.browser.legacy/app/

+ 2 - 7
releases/release-bundle.sh

@@ -5,18 +5,13 @@ sudo apt-get -y install parallel
 cd ~/repos/wekan/.build
 zip -r wekan-$1.zip bundle
 
-# Can not build ppc64le version because
-# OpenPower Minicloud is having
-# emergency maintenance.
-#   scp wekan-$1.zip o:/home/ubuntu/
-#   echo "Bundle uploaded to x2/a/s/o."
-
 {
   scp wekan-$1.zip x2:/var/snap/wekan/common/releases.wekan.team/
   scp wekan-$1.zip a:/home/wekan/repos/
   scp wekan-$1.zip s:/home/linux1/
+  scp wekan-$1.zip o:/home/ubuntu/
 } | parallel -k
 
 cd ..
 
-echo "Bundle uploaded to x2/a/s."
+echo "Bundle uploaded to x2/a/s/o."

+ 1 - 5
releases/up.sh

@@ -2,12 +2,8 @@
 
 sudo apt-get -y install parallel
 
-# Can not build ppc64le version because
-# OpenPower Minicloud is having
-# emergency maintenance.
-#  ~/repos/wekan/releases/up-o.sh $1
-
 {
   ~/repos/wekan/releases/up-a.sh $1
   ~/repos/wekan/releases/up-s.sh $1
+  ~/repos/wekan/releases/up-o.sh $1
 } | parallel -k

+ 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 = 503,
+    appVersion = 504,
     # Increment this for every release.
 
-    appMarketingVersion = (defaultText = "5.03.0~2021-03-03"),
+    appMarketingVersion = (defaultText = "5.04.0~2021-03-07"),
     # Human-readable presentation of the app version.
 
     minUpgradableAppVersion = 0,

+ 2 - 2
server/notifications/outgoing.js

@@ -63,7 +63,7 @@ if (Meteor.isServer) {
     'swimlaneId',
     'customField',
     'customFieldValue',
-    'attachmentId'
+    'attachmentId',
   ];
   const responseFunc = data => {
     const paramCommentId = data.commentId;
@@ -125,7 +125,7 @@ if (Meteor.isServer) {
           'oldSwimlane',
           'label',
           'attachment',
-          'attachmentId'
+          'attachmentId',
         ].forEach(key => {
           if (quoteParams[key]) quoteParams[key] = `"${params[key]}"`;
         });

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác