Browse Source

Merge branch 'wekan:main' into main

walster001 11 months ago
parent
commit
48bc176bdf
100 changed files with 1647 additions and 4 deletions
  1. 1 1
      .github/workflows/docker-publish.yml
  2. 31 1
      CHANGELOG.md
  3. 1 1
      Stackerfile.yml
  4. 1372 1
      client/components/boards/boardColors.css
  5. 2 0
      config/const.js
  6. 0 0
      docs/API/New-card-with-Python3-and-REST-API.md
  7. 0 0
      docs/API/REST-API-Boards.md
  8. 0 0
      docs/API/REST-API-Cards.md
  9. 0 0
      docs/API/REST-API-Checklists.md
  10. 0 0
      docs/API/REST-API-Code.md
  11. 0 0
      docs/API/REST-API-Custom-Fields.md
  12. 0 0
      docs/API/REST-API-Integrations.md
  13. 0 0
      docs/API/REST-API-Lists.md
  14. 0 0
      docs/API/REST-API-Role.md
  15. 0 0
      docs/API/REST-API-Swimlanes.md
  16. 0 0
      docs/API/REST-API-User.md
  17. 0 0
      docs/API/REST-API.md
  18. 0 0
      docs/Admin/Impersonate-user.md
  19. 0 0
      docs/Backup/Backup.md
  20. 0 0
      docs/Backup/Rclone.md
  21. 0 0
      docs/Backup/Repair-MongoDB.md
  22. 0 0
      docs/Backup/Upgrade.md
  23. 2 0
      docs/Browsers/Browser-compatibility-matrix.md
  24. 0 0
      docs/Databases/PostgreSQL.md
  25. 0 0
      docs/Date/Calendar.md
  26. 0 0
      docs/Date/Day-of-week-start.md
  27. 0 0
      docs/Date/Due-Date.md
  28. 0 0
      docs/Date/Time-Tracking.md
  29. 0 0
      docs/Date/Timezone.md
  30. 0 0
      docs/DeveloperDocs/Adding-new-Snap-settings-to-code.md
  31. 0 0
      docs/DeveloperDocs/AsyncAwait.md
  32. 0 0
      docs/DeveloperDocs/Debugging.md
  33. 0 0
      docs/DeveloperDocs/Deep-Dive-Into-WeKan.md
  34. 0 0
      docs/DeveloperDocs/Design-Principles.md
  35. 0 0
      docs/DeveloperDocs/Developer-Documentation.md
  36. 0 0
      docs/DeveloperDocs/Directory-Structure.md
  37. 204 0
      docs/DeveloperDocs/Emoji.md
  38. 0 0
      docs/DeveloperDocs/Meteor-bundle.md
  39. 0 0
      docs/DeveloperDocs/Meteor.md
  40. 0 0
      docs/DeveloperDocs/Monkey-Proof-Software.md
  41. 0 0
      docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md
  42. 0 0
      docs/Docker/Docker.md
  43. 0 0
      docs/Docker/Export-Docker-Mongo-Data.md
  44. 0 0
      docs/Docker/Install-Wekan-Docker-for-testing.md
  45. 0 0
      docs/Docker/Install-Wekan-Docker-in-production.md
  46. 0 0
      docs/Docker/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md
  47. 0 0
      docs/Docker/Move-Docker-containers-to-other-computer.md
  48. 0 0
      docs/Docker/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md
  49. 0 0
      docs/Docker/Repair-Docker.md
  50. 0 0
      docs/DragDrop/Drag-Drop.md
  51. 0 0
      docs/DragDrop/Touch-Screen-support.md
  52. 2 0
      docs/Email/Troubleshooting-Mail.md
  53. 0 0
      docs/FAQ/FAQ.md
  54. 0 0
      docs/FAQ/Hall-of-Shame.md
  55. 0 0
      docs/FAQ/IRC-FAQ.md
  56. 0 0
      docs/FAQ/NOT-related-to-Wekan.md
  57. 0 0
      docs/FAQ/Press.md
  58. 0 0
      docs/FAQ/Requirements.md
  59. 0 0
      docs/FAQ/Roadmap.md
  60. 0 0
      docs/FAQ/Team.md
  61. 0 0
      docs/Features/Adding-users.md
  62. 0 0
      docs/Features/Allow-private-boards-only.md
  63. 0 0
      docs/Features/Archive-and-Delete.md
  64. 0 0
      docs/Features/Cover.md
  65. 0 0
      docs/Features/Custom-Fields.md
  66. 0 0
      docs/Features/Custom-Logo.md
  67. 0 0
      docs/Features/Features.md
  68. 0 0
      docs/Features/IFTTT.md
  69. 0 0
      docs/Features/If-board-does-not-open-and-keeps-loading.md
  70. 0 0
      docs/Features/LaTeX.md
  71. 0 0
      docs/Features/Numbered-text.md
  72. 0 0
      docs/Features/PWA.md
  73. 0 0
      docs/Features/Planning-Poker.md
  74. 0 0
      docs/Features/Python.md
  75. 0 0
      docs/Features/Subtasks.md
  76. 0 0
      docs/Features/Swimlanes.md
  77. 0 0
      docs/Features/Templates.md
  78. 0 0
      docs/Features/Wait-Spinners.md
  79. 0 0
      docs/Features/Wekan-Markdown.md
  80. 0 0
      docs/Home.md
  81. 0 0
      docs/ImportExport/Asana.md
  82. 0 0
      docs/ImportExport/CSV.md
  83. 0 0
      docs/ImportExport/Delete-Board.md
  84. 0 0
      docs/ImportExport/Excel-and-VBA.md
  85. 0 0
      docs/ImportExport/Export-from-Wekan-Sandstorm-grain-.zip-file.md
  86. 0 0
      docs/ImportExport/From-Previous-Export.md
  87. 0 0
      docs/ImportExport/Integrations.md
  88. 0 0
      docs/ImportExport/Jira.md
  89. 0 0
      docs/ImportExport/Leo.md
  90. 0 0
      docs/ImportExport/Migrating-from-Trello.md
  91. 0 0
      docs/ImportExport/Migrating-from-old-Wekan-manually.md
  92. 0 0
      docs/ImportExport/Sync.md
  93. 0 0
      docs/ImportExport/Wekan-Sandstorm-cards-to-CSV-using-Python.md
  94. 0 0
      docs/ImportExport/Wekan-vs-Trello-vs-Restyaboard.md
  95. 0 0
      docs/ImportExport/ZenKit.md
  96. 0 0
      docs/Login/ADFS.md
  97. 0 0
      docs/Login/Accounts-Lockout.md
  98. 0 0
      docs/Login/B2C.md
  99. 0 0
      docs/Login/CAS.md
  100. 32 0
      docs/Login/Disable-Password-Login.md

+ 1 - 1
.github/workflows/docker-publish.yml

@@ -55,7 +55,7 @@ jobs:
       # Build and push Docker image with Buildx (don't push on PR)
       # https://github.com/docker/build-push-action
       - name: Build and push Docker image
-        uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25
+        uses: docker/build-push-action@31159d49c0d4756269a0940a750801a1ea5d7003
         with:
           context: .
           push: ${{ github.event_name != 'pull_request' }}

+ 31 - 1
CHANGELOG.md

@@ -19,11 +19,41 @@ Fixing other platforms In Progress.
 
 This release adds the following updates:
 
-- [Updated docs for WeKan version for Windows](https://github.com/wekan/wekan/commit/9b428150a4fb9efdcb2ae9d3bb59d0da29529e69).
+- [Updated dependencies](https://github.com/wekan/wekan/pull/5452).
+  Thanks to dependabot.
+- Moved docs from wiki to wekan repo docs directory, organized to subdirectories. Organizing and updating in progress.
+  [Part 1](https://github.com/wekan/wekan/commit/1961e22cbd51e83aa131c8b092c7d43475a021eb),
+  [Part 1](https://github.com/wekan/wekan/commit/ce89ff48331a27ffb42d021833c78df3a462b9db),
+  [Part 1](https://github.com/wekan/wekan/commit/449c02c42a0183a49592ada89bdfb8f25e5db903).
   Thanks to xet7.
 
 Thanks to above GitHub users for their contributions and translators for their translations.
 
+# v7.50 2024-06-22 WeKan ® release
+
+This release adds the following new features:
+
+- [Added "Clean dark" and "Clean light" themes that are more clean and modern looking](https://github.com/wekan/wekan/pull/5449).
+  Thanks to abramchikd.
+
+and adds the following updates:
+
+- Updated docs for WeKan version for Windows.
+  [Part 1](https://github.com/wekan/wekan/commit/9b428150a4fb9efdcb2ae9d3bb59d0da29529e69),
+  [Part 2](https://github.com/wekan/wekan/commit/3c35a6400b88e071a474a552ee941892522c8d59).
+  Thanks to xet7.
+- Updated dependencies.
+  [Part 1](https://github.com/wekan/wekan/pull/5446),
+  [Part 2](https://github.com/wekan/wekan/commit/99a8afd6c39591e0d85fe5f55ebc3016b9e7f011).
+  Thanks to developers of dependencies.
+
+and fixes the following bugs:
+
+- [Task card may overflow below the screen when maximized, making the bottom part not viewable](https://github.com/wekan/wekan/pull/5443).
+  Thanks to Hekatomb.
+
+Thanks to above GitHub users for their contributions and translators for their translations.
+
 # v7.49 2024-06-11 WeKan ® release
 
 This release adds the following updates:

+ 1 - 1
Stackerfile.yml

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

+ 1372 - 1
client/components/boards/boardColors.css

@@ -1190,7 +1190,7 @@
 .board-color-clearblue .list-body .open-minicard-composer {
   color: rgba(0,0,0,0.3);
 }
-.board-color-clearblue .swinlane.ui-sortable-helper {
+.board-color-clearblue .swimlane.ui-sortable-helper {
   transform: rotate(0deg);
 }
 .board-color-clearblue .swimlane .swimlane-header-wrap {
@@ -2251,3 +2251,1374 @@
   background: #2b2b2b;
   color: #fff;
 }
+
+.board-color-cleandark {
+  background: #0A0A14
+}
+
+.board-color-cleandark#header-quick-access {
+  background: #23232B;
+}
+
+.board-color-cleandark#header {
+  background: #23232B;
+}
+
+.board-color-cleandark#header ul li,
+.board-color-cleandark#header-quick-access ul li {
+  color: rgba(255, 255, 255, 50%);
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+}
+
+.board-color-cleandark#header-main-bar h1 {
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px !important;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);
+}
+
+.board-color-cleandark .list-header-add {
+  background: #23232B !important;
+  border-radius: 12px;
+  margin-top: 10px;
+  padding: 8px;
+  margin-right: 8px;
+  color: #FFFFFF;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.board-color-cleandark#header ul li.current,
+.board-color-cleandark#header-quick-access ul li.current {
+  color: rgba(255, 255, 255, 85%);
+}
+
+.board-color-cleandark#header #header-main-bar {
+  background: #23232B;
+  color: rgba(255, 255, 255, 85%);
+}
+
+.board-color-cleandark .swimlane-header {
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);
+}
+
+.board-color-cleandark .board-canvas {
+  background: #0A0A14;
+}
+
+.board-color-cleandark .list {
+  background: none;
+  border-left: none;
+}
+
+.board-color-cleandark .fa {
+  color: #FFFFFF;
+}
+
+.board-color-cleandark .list .list-header {
+  background: none;
+  color: #FFFFFF;
+  font-size: 16px;
+}
+
+.board-color-cleandark .list .list-header .list-header-name {
+  background: none;
+  color: #FFFFFF;
+  font-size: 16px;
+}
+
+.board-color-cleandark .list .list-header {
+  border-bottom: none;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.board-color-cleandark .list .list-header .list-header-menu .fa {
+  color: #FFFFFF;
+}
+
+.board-color-cleandark .card-label {
+  border-radius: 18px;
+  margin-top: 6px;
+}
+
+.board-color-cleandark .list .list-header .list-header-menu .list-header-plus-top {
+  color: #FFFFFF;
+  background: #FF6D00;
+  padding: 8px;
+  border-radius: 12px;
+}
+
+.board-color-cleandark .list .list-header .list-header-menu .list-header-plus-top:hover {
+  background: #d25b02;
+}
+
+.board-color-cleandark .open-minicard-composer {
+  width: 16px;
+  height: 22px;
+  padding: 8px;
+  display: flex !important;
+  justify-content: center;
+  align-items: center;
+  border-radius: 12px !important;
+}
+
+.board-color-cleandark .open-minicard-composer:hover {
+  background: #444455 !important;
+}
+
+.board-color-cleandark .open-minicard-composer:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark .open-minicard-composer .fa {
+  width: min-content;
+  color: rgba(255, 255, 255, 85%);
+}
+
+.board-color-cleandark .open-minicard-composer i {
+  margin-right: 0 !important;
+}
+
+.board-color-cleandark .swimlane {
+  background: none;
+}
+
+.board-color-cleandark .sidebar .sidebar-shadow {
+  background: rgba(35, 35, 43, 1) !important;
+  box-shadow: none;
+}
+
+.board-color-cleandark .sidebar .sidebar-shadow hr {
+  background:rgba(255, 255, 255, 0.05);
+}
+
+.board-color-cleandark .sidebar .sidebar-shadow .tab-item {
+  border-radius: 16px;
+  padding: 4px 12px 4px 12px;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.85);
+  background: rgba(57, 57, 71, 1);
+}
+
+.board-color-cleandark .sidebar .sidebar-shadow .tab-item.active {
+  background: rgba(255, 255, 255, 1);
+  color: rgba(10, 10, 20, 1);
+  border: none;
+  padding: 4px 12px 4px 12px !important;
+}
+
+.board-color-cleandark .sidebar .sidebar-shadow .tabs-content-container {
+  border: none;
+}
+
+.board-color-cleandark .minicard {
+  background: #23232B;
+  border-radius: 12px;
+  color: #FFFFFF;
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  padding: 12px;
+}
+
+.board-color-cleandark .minicard:hover,
+.board-color-cleandark .is-selected .minicard {
+  background: rgba(46, 46, 57, 1) !important;
+}
+
+.board-color-cleandark .minicard .date,
+.board-color-cleandark .minicard .end-date {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  margin-bottom: 10px;
+}
+
+.board-color-cleandark .minicard .date a,
+.board-color-cleandark .minicard .end-date,
+.board-color-cleandark .card-details .card-date {
+  padding: 4px 8px 4px 8px;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: #FFFFFF;
+}
+
+.board-color-cleandark .minicard .end-date,
+.board-color-cleandark .minicard .due-date,
+.board-color-cleandark .card-details .card-date {
+  background: #444455;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .minicard .end-date:hover,
+.board-color-cleandark .minicard .due-date:hover,
+.board-color-cleandark .card-details .card-date:hover {
+  background: rgba(68, 68, 85, 0.73);
+  border-radius: 8px;
+}
+
+.board-color-cleandark .minicard .date .current,
+.board-color-cleandark .minicard .current,
+.board-color-cleandark .card-details .current {
+  background: #009B64;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .minicard .date .current:hover,
+.board-color-cleandark .minicard .current:hover,
+.board-color-cleandark .card-details .current:hover {
+  background: rgba(0, 155, 100, 0.73);
+  border-radius: 8px;
+}
+
+.board-color-cleandark .minicard .date .due,
+.board-color-cleandark .minicard .due,
+.board-color-cleandark .card-details .due {
+  background: #CC003A;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .minicard .date .due:hover,
+.board-color-cleandark .minicard .due:hover,
+.board-color-cleandark .card-details .due:hover {
+  background: rgba(204, 0, 58, 0.73);
+  border-radius: 8px;
+}
+
+.board-color-cleandark .card-details {
+  background: #23232B;
+  border-radius: 20px;
+  box-shadow: none;
+}
+
+.board-color-cleandark .minicard-assignees {
+  border-bottom: none !important;
+}
+
+.board-color-cleandark .card-details-item a {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.board-color-cleandark .card-details-header {
+  background: #2E2E39 !important;
+  color: rgba(255, 255, 255, 1);
+  font-size: 24px;
+  font-weight: 600;
+  line-height: 28px;
+  text-align: left;
+  border-bottom: none !important;
+}
+
+.board-color-cleandark .add-assignee {
+  box-shadow: none !important;
+}
+
+.board-color-cleandark .add-assignee:hover {
+  background: #444455;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .add-checklist-top {
+  display: none !important;
+}
+
+.board-color-cleandark .add-checklist {
+  padding: 8px;
+  width: min-content !important;
+}
+
+.board-color-cleandark .add-checklist:hover {
+  background: #444455 !important;
+  border-radius: 12px !important;
+}
+
+.board-color-cleandark .add-checklist:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark .add-assignee:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark .card-time.card-label-green {
+  background: #009B64;
+  width: min-content;
+  color: #FFFFFF;
+  padding-left: 8px;
+  padding-right: 8px;
+  border-radius: 8px;
+  margin-left: 4px;
+}
+
+.board-color-cleandark .card-details .card-details-item-title {
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);
+}
+
+.board-color-cleandark .card-details hr {
+  background: rgba(255, 255, 255, 0.05);
+}
+
+.board-color-cleandark .card-details-canvas {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleandark.pop-over {
+  border-radius: 12px;
+  border: none;
+  background: rgba(46, 46, 57, 1);
+}
+
+.board-color-cleandark.pop-over .header {
+  border-bottom: none;
+  background: inherit;
+
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);;
+}
+
+.board-color-cleandark.pop-over .pop-over-list,
+.board-color-cleandark.pop-over .content {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);
+}
+
+.board-color-cleandark.pop-over .pop-over-list a:hover {
+  background: #393947 !important;
+}
+
+.board-color-cleandark .member {
+  box-shadow: none !important;
+}
+
+.board-color-cleandark .add-member:hover {
+  background: #444455;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .add-member:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark .add-label {
+  box-shadow: none !important;
+}
+
+.board-color-cleandark .add-label:hover {
+  background: #444455;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .add-label:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark.pop-over .content kbd {
+  background: rgba(46, 46, 57, 1);
+}
+
+.board-color-cleandark .full-name {
+  font-size: 16px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+
+  color: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleandark .username {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+
+  color: rgba(255, 255, 255, 0.7);
+}
+
+.board-color-cleandark .attachment-item:hover {
+  background: rgba(46, 46, 57, 1);
+}
+
+.board-color-cleandark .checklist {
+  background: none;
+  color: #FFFFFF;
+}
+
+.board-color-cleandark .checklist-item {
+  background: none;
+}
+
+.board-color-cleandark .checklist-item:hover {
+  background: rgba(46, 46, 57, 1) !important;
+}
+
+.board-color-cleandark .add-checklist-item {
+  width: min-content !important;
+  padding: 8px;
+}
+
+.board-color-cleandark .add-checklist-item:hover {
+  background: #444455 !important;
+  border-radius: 12px !important;
+}
+
+.board-color-cleandark .add-checklist-item:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark .add-attachment {
+  border-radius: 12px;
+}
+
+.board-color-cleandark .add-attachment:hover i {
+  color: #FFFFFF !important;
+}
+
+.board-color-cleandark .attachment-actions i,
+.board-color-cleandark .attachment-actions a {
+  font-size: 1em !important;
+}
+
+.board-color-cleandark .activity-desc {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.5);
+}
+
+.board-color-cleandark .activity-desc .activity-member {
+  color: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleandark .activity-checklist,
+.board-color-cleandark .activity-comment {
+  background: none !important;
+  color: #FFFFFF;
+  border: 1px solid rgba(0, 155, 100, 1);
+  border-radius: 12px !important;
+}
+
+.board-color-cleandark button[type=submit].primary,
+.board-color-cleandark input[type=submit].primary {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  border-radius: 12px;
+  padding: 6px 12px 6px 12px;
+  background: #FFFFFF;
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleandark textarea {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);
+  background: rgba(57, 57, 71, 1) !important;
+  border: none !important;
+  border-radius: 12px !important;
+}
+
+.board-color-cleandark .minicard-composer-textarea {
+  background: #23232B !important;
+}
+
+.board-color-cleandark .minicard-composer:hover {
+  background: #23232B !important;
+}
+
+.board-color-cleandark textarea::placeholder {
+  color: rgba(255, 255, 255, 0.85) !important;
+}
+
+.board-color-cleandark textarea:focus {
+  border: none !important;
+  box-shadow: none;
+}
+
+.board-color-cleandark input {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.85) !important;
+  background: rgba(57, 57, 71, 1) !important;
+  border-radius: 12px !important;
+  border: none !important;
+}
+
+.board-color-cleandark input::placeholder {
+  color: rgba(255, 255, 255, 1) !important;
+}
+
+.board-color-cleandark select {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.85);
+  background: rgba(57, 57, 71, 1);
+  border-radius: 12px;
+  border: none;
+}
+
+.board-color-cleandark button.primary {
+  padding: 6px 12px 6px 12px;
+  border-radius: 12px;
+  border: none;
+  background: #FFFFFF;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleandark button.primary:hover {
+  background: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleandark button.negate {
+  padding: 6px 12px 6px 12px;
+  border-radius: 12px;
+  border: none;
+  background: #cc003a;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: #FFFFFF;
+}
+
+.board-color-cleandark button.negate:hover {
+  background: rgba(204, 0, 58, 0.77);
+}
+
+.board-color-cleandark .card-details .checklist-item {
+  display: flex;
+  align-items: center;
+  gap: 4px;
+}
+
+.board-color-cleandark .card-details .check-box.materialCheckBox {
+  border-radius: 4px;
+  border: none;
+  background: #393947;
+  height: 24px;
+  width: 24px;
+}
+
+.board-color-cleandark .card-details .check-box.materialCheckBox.is-checked {
+  border-bottom: 2px solid #FFFFFF;
+  border-right: 2px solid #FFFFFF;
+  width: 11px;
+  height: 19px;
+  border-radius: 0;
+  background: none;
+}
+
+.board-color-cleandark .minicard .badges .badge.is-finished {
+  background: #009B64 !important;
+  border-radius: 8px;
+}
+
+.board-color-cleandark .swimlane-height-apply {
+  background: #FFFFFF !important;
+  border-radius: 12px !important;
+  color: #0A0A14 !important;
+}
+
+.board-color-cleandark .swimlane-height-apply:hover {
+  background: rgba(255, 255, 255, 0.85) !important;
+}
+
+.board-color-cleandark .swimlane .swimlane-header-wrap {
+  background-color: #23232B;
+}
+
+.board-color-cleandark .sidebar-list-item-description {
+  color: #FFFFFF;
+}
+
+.board-color-cleandark .sidebar .sidebar-content h3,
+.board-color-cleandark .sidebar .sidebar-content h2,
+.board-color-cleandark .sidebar .sidebar-content h1 {
+  color: #FFFFFF;
+}
+
+.board-color-cleandark #cards span {
+  color: #FFFFFF;
+}
+
+.board-color-cleandark #cards .materialCheckBox {
+  border-radius: 4px;
+  border: none;
+  background: #393947;
+  height: 18px;
+  width: 18px;
+}
+
+.board-color-cleandark #cards .materialCheckBox.is-checked {
+  border-bottom: 2px solid #FFFFFF;
+  border-right: 2px solid #FFFFFF;
+  width: 5px;
+  height: 13px;
+  border-radius: 0;
+  background: none;
+  margin-left: 3px;
+  margin-top: 3px;
+}
+
+.board-color-cleanlight {
+  background: #E0E0E0;
+}
+
+.board-color-cleanlight#header-quick-access {
+  background: #f8f8f9;
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleanlight .board-header-btn {
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight .board-header-btn i {
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight .board-header-btns a {
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight .header-user-bar-name {
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight#header {
+  background: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleanlight #header-main-bar {
+  background: #f8f8f9 !important;
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight#header ul li,
+.board-color-cleanlight#header-quick-access ul li {
+  color: rgba(10, 10, 20, 0.5) !important;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+}
+
+.board-color-cleanlight#header ul li:hover,
+.board-color-cleanlight#header-quick-access ul li:hover {
+  background: rgba(190, 190, 190, 1) !important;
+  border-radius: 8px;
+  color: rgba(10, 10, 20, 0.5) !important;
+}
+
+.board-color-cleanlight #header-main-bar h1 {
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px !important;
+  text-align: left;
+  color: rgba(10, 10, 20, 1) !important;
+}
+
+.board-color-cleanlight .list-header-add {
+  background: #FFFFFF !important;
+  border-radius: 12px;
+  margin-top: 10px;
+  padding: 8px;
+  margin-right: 8px;
+  color: #000000;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.board-color-cleanlight#header ul li.current,
+.board-color-cleanlight#header-quick-access ul li.current {
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight#header #header-main-bar {
+  background: #23232B;
+  color: rgba(255, 255, 255, 85%);
+}
+
+.board-color-cleanlight .swimlane-header {
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 1);
+}
+
+.board-color-cleanlight .board-canvas {
+  background: #FFFFFF;
+}
+
+.board-color-cleanlight .list {
+  background: none;
+  border-left: none;
+}
+
+.board-color-cleanlight .fa {
+  color: rgba(10, 10, 20, 1);
+}
+
+.board-color-cleanlight .list .list-header {
+  background: none;
+  color: #FFFFFF;
+  font-size: 16px;
+}
+
+.board-color-cleanlight .list .list-header .list-header-name {
+  background: none;
+  color: rgba(10, 10, 20, 1);
+  font-size: 16px;
+}
+
+.board-color-cleanlight .list .list-header {
+  border-bottom: none;
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+
+.board-color-cleanlight .list .list-header .list-header-menu .fa {
+  color: rgba(10, 10, 20, 1);
+}
+
+.board-color-cleanlight .card-label {
+  border-radius: 18px;
+  margin-top: 6px;
+  border: none;
+}
+
+.board-color-cleanlight .list .list-header .list-header-menu .list-header-plus-top {
+  color: #FFFFFF;
+  background: #FF6D00;
+  padding: 8px;
+  border-radius: 12px;
+}
+
+.board-color-cleanlight .list .list-header .list-header-menu .list-header-plus-top:hover {
+  background: #d25b02;
+}
+
+.board-color-cleanlight .open-minicard-composer {
+  width: 16px;
+  height: 22px;
+  padding: 8px;
+  display: flex !important;
+  justify-content: center;
+  align-items: center;
+  border-radius: 12px !important;
+}
+
+.board-color-cleanlight .open-minicard-composer:hover {
+  background:rgba(180, 180, 180, 1) !important;
+}
+
+.board-color-cleanlight .open-minicard-composer:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight .open-minicard-composer .fa {
+  width: min-content;
+  color: rgba(10, 10, 20, 1);
+}
+
+.board-color-cleanlight .open-minicard-composer i {
+  margin-right: 0 !important;
+}
+
+.board-color-cleanlight .swimlane {
+  background: none;
+}
+
+.board-color-cleanlight .sidebar .sidebar-shadow {
+  background: rgba(248, 248, 249, 1) !important;
+  box-shadow: none;
+}
+
+.board-color-cleanlight .sidebar .sidebar-shadow hr {
+  background: rgba(23, 23, 28, 0.05);
+}
+
+.board-color-cleanlight .sidebar .sidebar-shadow .tab-item {
+  border-radius: 16px;
+  padding: 4px 12px 4px 12px;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.85);
+  background: rgba(234, 234, 237, 1);
+}
+
+.board-color-cleanlight .sidebar .sidebar-shadow .tab-item.active {
+  background: rgba(23, 23, 28, 1);
+  color: rgba(255, 255, 255, 1);
+  border: none;
+  padding: 4px 12px 4px 12px !important;
+}
+
+.board-color-cleanlight .sidebar .sidebar-shadow .tabs-content-container {
+  border: none;
+}
+
+.board-color-cleanlight .minicard {
+  background: rgba(248, 248, 249, 1);
+  border-radius: 12px;
+  color: rgba(10, 10, 20, 0.85);
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  padding: 12px;
+}
+
+.board-color-cleanlight .minicard:hover,
+.board-color-cleanlight .is-selected .minicard {
+  background: rgba(241, 241, 243, 1) !important;
+}
+
+.board-color-cleanlight .minicard .date,
+.board-color-cleanlight .minicard .end-date {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  margin-bottom: 10px;
+}
+
+.board-color-cleanlight .minicard .date a,
+.board-color-cleanlight .minicard .end-date,
+.board-color-cleanlight .card-details .card-date {
+  padding: 4px 8px 4px 8px;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 1);
+}
+
+.board-color-cleanlight .minicard .end-date,
+.board-color-cleanlight .minicard .due-date,
+.board-color-cleanlight .card-details .card-date {
+  background: rgba(227, 227, 230, 1);
+  color: rgba(10, 10, 20, 1) !important;
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .minicard .end-date:hover,
+.board-color-cleanlight .minicard .due-date:hover,
+.board-color-cleanlight .card-details .card-date:hover {
+  background: rgba(207, 207, 210, 1);
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .minicard .date .current,
+.board-color-cleanlight .minicard .current,
+.board-color-cleanlight .card-details .current {
+  background: #009B64;
+  border-radius: 8px;
+  color: rgba(255, 255, 255, 1) !important;
+}
+
+.board-color-cleanlight .minicard .date .current:hover,
+.board-color-cleanlight .minicard .current:hover,
+.board-color-cleanlight .card-details .current:hover {
+  background: rgba(0, 155, 100, 0.73);
+  border-radius: 8px;
+  color: rgba(255, 255, 255, 1) !important;
+}
+
+.board-color-cleanlight .minicard .date .due,
+.board-color-cleanlight .minicard .due,
+.board-color-cleanlight .card-details .due {
+  background: #CC003A;
+  border-radius: 8px;
+  color: rgba(255, 255, 255, 1) !important;
+}
+
+.board-color-cleanlight .minicard .date .due:hover,
+.board-color-cleanlight .minicard .due:hover,
+.board-color-cleanlight .card-details .due:hover {
+  background: rgba(204, 0, 58, 0.73);
+  border-radius: 8px;
+  color: rgba(255, 255, 255, 1) !important;
+}
+
+.board-color-cleanlight .card-details {
+  background: rgba(248, 248, 249, 1);
+  border-radius: 20px;
+  box-shadow: none;
+}
+
+.board-color-cleanlight .minicard-assignees {
+  border-bottom: none !important;
+}
+
+.board-color-cleanlight .card-details-item a {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.5);
+}
+
+.board-color-cleanlight .card-details-header {
+  background: rgba(241, 241, 243, 1) !important;
+  color: rgba(10, 10, 20, 1);
+  font-size: 24px;
+  font-weight: 600;
+  line-height: 28px;
+  text-align: left;
+  border-bottom: none !important;
+}
+
+.board-color-cleanlight .add-assignee {
+  box-shadow: none !important;
+}
+
+.board-color-cleanlight .add-assignee:hover {
+  background: rgba(227, 227, 230, 1);
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .add-assignee:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight .add-checklist-top {
+  display: none !important;
+}
+
+.board-color-cleanlight .add-checklist {
+  padding: 8px;
+  width: min-content !important;
+}
+
+.board-color-cleanlight .add-checklist:hover {
+  background: rgba(227, 227, 230, 1) !important;
+  border-radius: 12px !important;
+}
+
+.board-color-cleanlight .add-checklist:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight .card-time.card-label-green {
+  background: #009B64;
+  width: min-content;
+  color: #FFFFFF;
+  padding-left: 8px;
+  padding-right: 8px;
+  border-radius: 8px;
+  margin-left: 4px;
+}
+
+.board-color-cleanlight .card-details .card-details-item-title {
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 1);
+}
+
+.board-color-cleanlight .card-details hr {
+  background: rgba(23, 23, 28, 0.05);
+}
+
+.board-color-cleanlight .card-details-canvas {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.5);
+}
+
+.board-color-cleanlight.pop-over {
+  border-radius: 12px;
+  border: none;
+  background: rgba(241, 241, 243, 1);
+}
+
+.board-color-cleanlight.pop-over .header {
+  border-bottom: none;
+  background: inherit;
+
+  font-size: 18px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 1);
+}
+
+.board-color-cleanlight.pop-over .pop-over-list,
+.board-color-cleanlight.pop-over .content {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.8);
+}
+
+.board-color-cleanlight.pop-over .pop-over-list a:hover {
+  background: #393947 !important;
+}
+
+.board-color-cleanlight .member {
+  box-shadow: none !important;
+}
+
+.board-color-cleanlight .add-member:hover {
+  background: rgba(227, 227, 230, 1);
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .add-member:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight .add-label {
+  box-shadow: none !important;
+}
+
+.board-color-cleanlight .add-label:hover {
+  background: rgba(227, 227, 230, 1);
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .add-label:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight.pop-over .content kbd {
+  background: rgba(180, 180, 180, 1);
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .full-name {
+  font-size: 16px;
+  font-weight: 500;
+  line-height: 24px;
+  text-align: left;
+
+  color: rgba(10, 10, 20, 0.85) !important;
+}
+
+.board-color-cleanlight .username {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+
+  color: rgba(10, 10, 20, 0.5) !important;
+}
+
+.board-color-cleanlight .attachment-item:hover {
+  background: rgba(227, 227, 230, 1);
+}
+
+.board-color-cleanlight .checklist {
+  background: none;
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleanlight .checklist-item {
+  background: none;
+}
+
+.board-color-cleanlight .checklist-item:hover {
+  background: rgba(227, 227, 230, 1) !important;
+}
+
+.board-color-cleanlight .add-checklist-item {
+  width: min-content !important;
+  padding: 8px;
+}
+
+.board-color-cleanlight .add-checklist-item:hover {
+  background: rgba(227, 227, 230, 1) !important;
+  border-radius: 12px !important;
+}
+
+.board-color-cleanlight .add-checklist-item:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight .add-attachment {
+  background: rgba(248, 248, 249, 1) !important;
+  border-radius: 12px;
+  border-color: rgba(197, 197, 200, 1);
+}
+
+.board-color-cleanlight .add-attachment:hover {
+  background: rgba(227, 227, 230, 1) !important;
+}
+
+.board-color-cleanlight .add-attachment:hover i {
+  color: #000000 !important;
+}
+
+.board-color-cleanlight .attachment-actions i,
+.board-color-cleanlight .attachment-actions a {
+  font-size: 1em !important;
+}
+
+.board-color-cleanlight .activity-desc {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.5);
+}
+
+.board-color-cleanlight .activity-desc .activity-member {
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleanlight .activity-checklist,
+.board-color-cleanlight .activity-comment {
+  background: none !important;
+  color: rgba(10, 10, 20, 0.85);
+  border: 1px solid rgba(0, 155, 100, 1);
+  border-radius: 12px !important;
+}
+
+.board-color-cleanlight button[type=submit].primary,
+.board-color-cleanlight input[type=submit].primary {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  border-radius: 12px;
+  padding: 6px 12px 6px 12px;
+  background: rgba(23, 23, 28, 1);
+  color: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleanlight input.primary {
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  border-radius: 12px;
+  padding: 6px 12px 6px 12px;
+  background: rgba(23, 23, 28, 1) !important;
+  color: rgba(255, 255, 255, 0.85) !important;
+}
+
+.board-color-cleanlight input.primary:hover {
+  background: #444455 !important;
+}
+
+.board-color-cleanlight textarea {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.85);
+  background: rgba(234, 234, 237, 1);
+  border: none !important;
+  border-radius: 12px !important;
+}
+
+.board-color-cleanlight .minicard-composer-textarea {
+  background: #f8f8f9 !important;
+}
+
+.board-color-cleanlight .minicard-composer:hover {
+  background: #f8f8f9 !important;
+}
+
+.board-color-cleanlight textarea::placeholder {
+  color: rgba(10, 10, 20, 0.5) !important;
+}
+
+.board-color-cleanlight textarea:focus {
+  border: none !important;
+  box-shadow: none;
+}
+
+.board-color-cleanlight input {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.85) !important;
+  background: rgba(234, 234, 237, 1) !important;
+  border-radius: 12px !important;
+  border: none !important;
+}
+
+.board-color-cleanlight input::placeholder {
+  color: rgba(10, 10, 20, 0.5) !important;
+}
+
+.board-color-cleanlight select {
+  font-size: 18px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(10, 10, 20, 0.85);
+  background: rgba(234, 234, 237, 1);
+  border-radius: 12px;
+  border: none;
+}
+
+.board-color-cleanlight button.primary {
+  padding: 6px 12px 6px 12px;
+  border-radius: 12px;
+  border: none;
+  background: rgba(23, 23, 28, 1);
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: rgba(255, 255, 255, 0.85);
+}
+
+.board-color-cleanlight button.primary:hover {
+  background: #444455;
+}
+
+.board-color-cleanlight button.negate {
+  padding: 6px 12px 6px 12px;
+  border-radius: 12px;
+  border: none;
+  background: #cc003a;
+  font-size: 16px;
+  font-weight: 400;
+  line-height: 24px;
+  text-align: left;
+  color: #FFFFFF;
+}
+
+.board-color-cleanlight button.negate:hover {
+  background: rgba(204, 0, 58, 0.77);
+}
+
+.board-color-cleanlight .card-details .checklist-item {
+  display: flex;
+  align-items: center;
+  gap: 4px;
+}
+
+.board-color-cleanlight .card-details .check-box.materialCheckBox {
+  border-radius: 4px;
+  border: none;
+  background: rgba(234, 234, 237, 1);
+  height: 24px;
+  width: 24px;
+}
+
+.board-color-cleanlight .card-details .check-box.materialCheckBox.is-checked {
+  border-bottom: 2px solid #000000;
+  border-right: 2px solid #000000;
+  width: 11px;
+  height: 19px;
+  border-radius: 0;
+  background: none;
+}
+
+.board-color-cleanlight .minicard .badges .badge.is-finished {
+  background: #009B64 !important;
+  border-radius: 8px;
+}
+
+.board-color-cleanlight .minicard .badges .badge.is-finished .badge-icon {
+  color: #FFFFFF;
+}
+
+.board-color-cleanlight .swimlane-height-apply {
+  background: rgba(23, 23, 28, 1) !important;
+  border-radius: 12px !important;
+  color: rgba(255, 255, 255, 0.85) !important;
+}
+
+.board-color-cleanlight .swimlane-height-apply:hover {
+  background: rgba(227, 227, 230, 1) !important;
+}
+
+.board-color-cleanlight .swimlane .swimlane-header-wrap {
+  background-color: rgba(248, 248, 249, 1);
+}
+
+.board-color-cleanlight .sidebar-list-item-description {
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleanlight .sidebar .sidebar-content h3,
+.board-color-cleanlight .sidebar .sidebar-content h2,
+.board-color-cleanlight .sidebar .sidebar-content h1 {
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleanlight #cards span {
+  color: rgba(10, 10, 20, 0.85);
+}
+
+.board-color-cleanlight #cards .materialCheckBox {
+  border-radius: 4px;
+  border: none;
+  background: rgba(234, 234, 237, 1);
+  height: 18px;
+  width: 18px;
+}
+
+.board-color-cleanlight #cards .materialCheckBox.is-checked {
+  border-bottom: 2px solid #000000;
+  border-right: 2px solid #000000;
+  width: 5px;
+  height: 13px;
+  border-radius: 0;
+  background: none;
+  margin-left: 3px;
+  margin-top: 3px;
+}

+ 2 - 0
config/const.js

@@ -16,6 +16,8 @@ export const ALLOWED_BOARD_COLORS = [
   'modern',
   'moderndark',
   'exodark',
+  'cleandark',
+  'cleanlight',
 ];
 export const ALLOWED_COLORS = [
   'white',

+ 0 - 0
docs/wekan.wiki/New-card-with-Python3-and-REST-API.md → docs/API/New-card-with-Python3-and-REST-API.md


+ 0 - 0
docs/wekan.wiki/REST-API-Boards.md → docs/API/REST-API-Boards.md


+ 0 - 0
docs/wekan.wiki/REST-API-Cards.md → docs/API/REST-API-Cards.md


+ 0 - 0
docs/wekan.wiki/REST-API-Checklists.md → docs/API/REST-API-Checklists.md


+ 0 - 0
docs/wekan.wiki/REST-API-Code.md → docs/API/REST-API-Code.md


+ 0 - 0
docs/wekan.wiki/REST-API-Custom-Fields.md → docs/API/REST-API-Custom-Fields.md


+ 0 - 0
docs/wekan.wiki/REST-API-Integrations.md → docs/API/REST-API-Integrations.md


+ 0 - 0
docs/wekan.wiki/REST-API-Lists.md → docs/API/REST-API-Lists.md


+ 0 - 0
docs/wekan.wiki/REST-API-Role.md → docs/API/REST-API-Role.md


+ 0 - 0
docs/wekan.wiki/REST-API-Swimlanes.md → docs/API/REST-API-Swimlanes.md


+ 0 - 0
docs/wekan.wiki/REST-API-User.md → docs/API/REST-API-User.md


+ 0 - 0
docs/wekan.wiki/REST-API.md → docs/API/REST-API.md


+ 0 - 0
docs/wekan.wiki/Impersonate-user.md → docs/Admin/Impersonate-user.md


+ 0 - 0
docs/wekan.wiki/Backup.md → docs/Backup/Backup.md


+ 0 - 0
docs/wekan.wiki/Rclone.md → docs/Backup/Rclone.md


+ 0 - 0
docs/wekan.wiki/Repair-MongoDB.md → docs/Backup/Repair-MongoDB.md


+ 0 - 0
docs/wekan.wiki/Upgrade.md → docs/Backup/Upgrade.md


+ 2 - 0
docs/wekan.wiki/Browser-compatibility-matrix.md → docs/Browsers/Browser-compatibility-matrix.md

@@ -25,6 +25,7 @@ Morph Browser | No | Yes | Yes | [Ubuntu Touch](https://ubports.com) (based on U
 [Floorp](https://floorp.app) | No | No | Yes | [Win/Mac/Linux](https://github.com/Floorp-Projects/Floorp/releases), more private than Firefox, [Repo](https://github.com/Floorp-Projects/Floorp)
 [Mercury](https://thorium.rocks/mercury) | No | No | Yes | [Win/Linux](https://github.com/Alex313031/Mercury/releases), more private than Firefox, [Repo](https://github.com/Alex313031/Mercury)
 [SeaLion](https://github.com/wicknix/SeaLion) | No | No | Yes | [MacOS 10.7-14.1 x32,x64,ppc,ppc64/Linux x64](https://github.com/wicknix/SeaLion/releases), [Repo](https://github.com/wicknix/SeaLion)
+[LibreWolf](https://librewolf.net) | No | No | Yes | [Win/Mac/Linux](https://librewolf.net/installation/)
 
 ## Chromium based
 
@@ -32,6 +33,7 @@ Browser | [PWA](PWA) | Mobile | Desktop | OS
 ------- | ----| ------ | ------- | -------
 Chrome | Android Yes | Android Newest | Newest | Win/Mac/Linux
 Chromium | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi
+Brave | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi
 Vivaldi | Android Yes | Android Newest | Newest | Win/Mac/Linux
 Opera | Android Yes | Android Newest | Newest | Win/Mac/Linux
 Credge, Chromium Edge | Android Yes | Android | Newest | Win/Mac/Linux/Mobile

+ 0 - 0
docs/wekan.wiki/PostgreSQL.md → docs/Databases/PostgreSQL.md


+ 0 - 0
docs/wekan.wiki/Calendar.md → docs/Date/Calendar.md


+ 0 - 0
docs/wekan.wiki/Day-of-week-start.md → docs/Date/Day-of-week-start.md


+ 0 - 0
docs/wekan.wiki/Due-Date.md → docs/Date/Due-Date.md


+ 0 - 0
docs/wekan.wiki/Time-Tracking.md → docs/Date/Time-Tracking.md


+ 0 - 0
docs/wekan.wiki/Timezone.md → docs/Date/Timezone.md


+ 0 - 0
docs/wekan.wiki/Adding-new-Snap-settings-to-code.md → docs/DeveloperDocs/Adding-new-Snap-settings-to-code.md


+ 0 - 0
docs/wekan.wiki/AsyncAwait.md → docs/DeveloperDocs/AsyncAwait.md


+ 0 - 0
docs/wekan.wiki/Debugging.md → docs/DeveloperDocs/Debugging.md


+ 0 - 0
docs/wekan.wiki/Deep-Dive-Into-WeKan.md → docs/DeveloperDocs/Deep-Dive-Into-WeKan.md


+ 0 - 0
docs/wekan.wiki/Design-Principles.md → docs/DeveloperDocs/Design-Principles.md


+ 0 - 0
docs/wekan.wiki/Developer-Documentation.md → docs/DeveloperDocs/Developer-Documentation.md


+ 0 - 0
docs/wekan.wiki/Directory-Structure.md → docs/DeveloperDocs/Directory-Structure.md


+ 204 - 0
docs/DeveloperDocs/Emoji.md

@@ -0,0 +1,204 @@
+## About markdown changes
+
+Wekan v4.29 changes markdown rendering from [marked](https://github.com/markedjs/marked) to [markdown-it](https://github.com/markdown-it/markdown-it).
+
+## About emoji
+
+With markdown-it, also [markdown-it-emoji](https://github.com/markdown-it/markdown-it-emoji) plugin has been added, supporting [full list of GitHub emojis](https://github.com/markdown-it/markdown-it-emoji/blob/master/lib/data/full.json).
+
+Example emoji code, that you can add for example to card name, card description etc:
+```
+:rainbow: :thumbsup: :100:
+```
+That shows emojis :rainbow: :thumbsup: :100:
+
+## About other markdown-it plugins
+
+For markdown-it, there are also other [syntax extensions](https://github.com/markdown-it/markdown-it#syntax-extensions) where some are listed at that markdown-it page, and [others at npmjs.com](https://www.npmjs.org/browse/keyword/markdown-it-plugin).
+
+For example, how to get some [mermaid plugin](https://www.npmjs.com/search?q=markdown-it-mermaid) working so that some syntax works for https://mermaid-js.github.io/mermaid/ ?
+
+## How you could add another plugin
+
+Using newest Ubuntu amd64:
+
+# Meteor 2
+
+### 1. Install git and configure it
+```
+sudo apt -y install git
+
+git config --global user.name "Yourfirstname Yourlastname"
+
+git config --global user.email email-address-you-use-at-github@example.com
+
+git config --global push.default simple
+
+nano .ssh/config
+```
+There add your User (GitHub username) and IdentityFile (Your ssh private key. Not public key that has .pub).
+For indentation, use one tab.
+```
+Host *
+        IdentitiesOnly=yes
+
+Host github.com
+        Hostname github.com
+        User xet7
+        IdentityFile ~/.ssh/id_xet7ed
+```
+Save and Exit with Ctrl-o Enter Ctrl-x Enter
+
+If you do not have ssh key, create it:
+```
+ssh-keygen
+```
+And press Enter about 3 times, until you have private key at `~/.ssh/id_rsa` and public key at `~/.ssh/id_rsa.pub`
+
+Add public key `.pub` to your github account web interface.
+
+Add path to Meteor:
+```
+nano .bashrc
+```
+There at bottom add:
+```
+export PATH=~/.meteor:$PATH
+```
+Save and Exit with Ctrl-o Enter Ctrl-x Enter
+
+### 2. Create fork of `https://github.com/wekan/wekan` at GitHub web page
+
+```
+mkdir repos
+
+cd repos
+
+git clone git@github.com:YourGithubUsername/wekan.git
+
+cd wekan
+```
+### 3. Select option 1 to install dependencies, and then Enter.
+```
+./rebuild-wekan.sh
+
+1
+
+./rebuild-wekan.sh
+
+2
+
+./rebuild-wekan.sh
+
+3
+```
+That does: 1 install dependencies, 2 builds wekan, 3 starts wekan in development mode with command `meteor`, so it can detect if some file changes and try to rebuild automatically and reload webbroser. But, still sometimes, it may need stopping with Ctrl-c and full build with option 2.
+
+And then [register and login](Adding-users) at http://localhost:4000
+
+### OPTIONAL, NOT NEEDED: 5. Add new plugin package
+```
+meteor npm install markdown-it-something --save
+```
+
+Edit file `wekan/packages/markdown/src-integration.js` and add using that new package, using code example from that new plugin page, or similar like emoji plugin was added.
+
+### 7. Test
+
+Test does that new plugin syntax work, for example in card title, card description etc on other input fields.
+
+### 8. If it works, create pull request
+
+If normal markdown, emoji, and your new added plugin syntax all work, commit your changes:
+```
+git add --all
+
+git commit -m "Added plugin markdown-it-something."
+
+git push
+```
+And then at your GitHub for `https://github.com/YOUR-GITHUB-USERNAME/wekan` click `Create pull request`.
+
+# Meteor 3
+
+At 2024-06-26, it looks like from https://nodejs.org/en that Node.js LTS version is 20.15.0 , so change to newest Node.js LTS, delete old Meteor:
+```
+sudo n 20.15.0
+
+sudo npm -g install npm
+
+cd
+
+rm -rf .meteor
+```
+Check how to install newest Meteor from Meteor 3 PR at https://github.com/meteor/meteor/pull/13163 , for example:
+```
+npx meteor@rc
+```
+Check what branches there are:
+```
+cd repos/wekan
+
+git branch -a
+```
+Change to Meteor 3 branch:
+```
+git checkout feature-meteor3
+```
+Build wekan:
+```
+./rebuild-wekan.sh
+
+2
+```
+If there are errors, try to fix them.
+
+Or try to run wekan:
+```
+./rebuild-wekan.sh
+
+3
+```
+# Updating
+
+There are usually updates both for npm packages and Meteor
+
+Updating npm packages:
+```
+npm update
+```
+Checking for vulnerable packages:
+```
+npm audit
+```
+Fixing vulnerable npm packages by updating to newer packages:
+```
+npm audit fix
+```
+If that did not help, use force:
+```
+npm audit fix --force
+```
+If that did not help, read links from that `npm audit` command did show, remove deprecated dependencies, update to other maintained dependencies.
+
+Updating to next Meteor release:
+```
+meteor update
+```
+Updating to specific Meteor release:
+```
+meteor update --release METEOR@3.0-rc.4
+```
+Trying to update all Meteor packages:
+```
+meteor update --release METEOR@3.0-rc.4 --all-packages
+```
+Allowing incompatible updates, that may sometime work:
+```
+meteor update --release METEOR@3.0-rc.4 --all-packages --allow-incompatible-update
+```
+If you are changing Meteor and Node.js versions, you may need to reset Meteor:
+```
+meteor reset
+```
+Or alternatively, delete wekan repo (if you did not need any changes you made), and clone wekan repo again, and then build etc.

+ 0 - 0
docs/wekan.wiki/Meteor-bundle.md → docs/DeveloperDocs/Meteor-bundle.md


+ 0 - 0
docs/wekan.wiki/Meteor.md → docs/DeveloperDocs/Meteor.md


+ 0 - 0
docs/wekan.wiki/Monkey-Proof-Software.md → docs/DeveloperDocs/Monkey-Proof-Software.md


+ 0 - 0
docs/wekan.wiki/WeKan-Multiverse-Roadmap.md → docs/DeveloperDocs/WeKan-Multiverse-Roadmap.md


+ 0 - 0
docs/wekan.wiki/Docker.md → docs/Docker/Docker.md


+ 0 - 0
docs/wekan.wiki/Export-Docker-Mongo-Data.md → docs/Docker/Export-Docker-Mongo-Data.md


+ 0 - 0
docs/wekan.wiki/Install-Wekan-Docker-for-testing.md → docs/Docker/Install-Wekan-Docker-for-testing.md


+ 0 - 0
docs/wekan.wiki/Install-Wekan-Docker-in-production.md → docs/Docker/Install-Wekan-Docker-in-production.md


+ 0 - 0
docs/wekan.wiki/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md → docs/Docker/Install-Wekan-Docker-on-SUSE-Linux-Enterprise-Server-12-SP1.md


+ 0 - 0
docs/wekan.wiki/Move-Docker-containers-to-other-computer.md → docs/Docker/Move-Docker-containers-to-other-computer.md


+ 0 - 0
docs/wekan.wiki/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md → docs/Docker/Rancher---Rancher-Active-Proxy---Wekan-MongoDB-Docker.md


+ 0 - 0
docs/wekan.wiki/Repair-Docker.md → docs/Docker/Repair-Docker.md


+ 0 - 0
docs/wekan.wiki/Drag-Drop.md → docs/DragDrop/Drag-Drop.md


+ 0 - 0
docs/wekan.wiki/Touch-Screen-support.md → docs/DragDrop/Touch-Screen-support.md


+ 2 - 0
docs/wekan.wiki/Troubleshooting-Mail.md → docs/Email/Troubleshooting-Mail.md

@@ -1,3 +1,5 @@
+[Azure Email Communication Service](https://github.com/wekan/wekan/issues/5453)
+
 [Uberspace Email](https://github.com/wekan/wekan/issues/2009#issuecomment-1017630758)
 
 ## Newest Wekan

+ 0 - 0
docs/wekan.wiki/FAQ.md → docs/FAQ/FAQ.md


+ 0 - 0
docs/wekan.wiki/Hall-of-Shame.md → docs/FAQ/Hall-of-Shame.md


+ 0 - 0
docs/wekan.wiki/IRC-FAQ.md → docs/FAQ/IRC-FAQ.md


+ 0 - 0
docs/wekan.wiki/NOT-related-to-Wekan.md → docs/FAQ/NOT-related-to-Wekan.md


+ 0 - 0
docs/wekan.wiki/Press.md → docs/FAQ/Press.md


+ 0 - 0
docs/wekan.wiki/Requirements.md → docs/FAQ/Requirements.md


+ 0 - 0
docs/wekan.wiki/Roadmap.md → docs/FAQ/Roadmap.md


+ 0 - 0
docs/wekan.wiki/Team.md → docs/FAQ/Team.md


+ 0 - 0
docs/wekan.wiki/Adding-users.md → docs/Features/Adding-users.md


+ 0 - 0
docs/wekan.wiki/Allow-private-boards-only.md → docs/Features/Allow-private-boards-only.md


+ 0 - 0
docs/wekan.wiki/Archive-and-Delete.md → docs/Features/Archive-and-Delete.md


+ 0 - 0
docs/wekan.wiki/Cover.md → docs/Features/Cover.md


+ 0 - 0
docs/wekan.wiki/Custom-Fields.md → docs/Features/Custom-Fields.md


+ 0 - 0
docs/wekan.wiki/Custom-Logo.md → docs/Features/Custom-Logo.md


+ 0 - 0
docs/wekan.wiki/Features.md → docs/Features/Features.md


+ 0 - 0
docs/wekan.wiki/IFTTT.md → docs/Features/IFTTT.md


+ 0 - 0
docs/wekan.wiki/If-board-does-not-open-and-keeps-loading.md → docs/Features/If-board-does-not-open-and-keeps-loading.md


+ 0 - 0
docs/wekan.wiki/LaTeX.md → docs/Features/LaTeX.md


+ 0 - 0
docs/wekan.wiki/Numbered-text.md → docs/Features/Numbered-text.md


+ 0 - 0
docs/wekan.wiki/PWA.md → docs/Features/PWA.md


+ 0 - 0
docs/wekan.wiki/Planning-Poker.md → docs/Features/Planning-Poker.md


+ 0 - 0
docs/wekan.wiki/Python.md → docs/Features/Python.md


+ 0 - 0
docs/wekan.wiki/Subtasks.md → docs/Features/Subtasks.md


+ 0 - 0
docs/wekan.wiki/Swimlanes.md → docs/Features/Swimlanes.md


+ 0 - 0
docs/wekan.wiki/Templates.md → docs/Features/Templates.md


+ 0 - 0
docs/wekan.wiki/Wait-Spinners.md → docs/Features/Wait-Spinners.md


+ 0 - 0
docs/wekan.wiki/Wekan-Markdown.md → docs/Features/Wekan-Markdown.md


+ 0 - 0
docs/wekan.wiki/Home.md → docs/Home.md


+ 0 - 0
docs/wekan.wiki/Asana.md → docs/ImportExport/Asana.md


+ 0 - 0
docs/wekan.wiki/CSV.md → docs/ImportExport/CSV.md


+ 0 - 0
docs/wekan.wiki/Delete-Board.md → docs/ImportExport/Delete-Board.md


+ 0 - 0
docs/wekan.wiki/Excel-and-VBA.md → docs/ImportExport/Excel-and-VBA.md


+ 0 - 0
docs/wekan.wiki/Export-from-Wekan-Sandstorm-grain-.zip-file.md → docs/ImportExport/Export-from-Wekan-Sandstorm-grain-.zip-file.md


+ 0 - 0
docs/wekan.wiki/From-Previous-Export.md → docs/ImportExport/From-Previous-Export.md


+ 0 - 0
docs/wekan.wiki/Integrations.md → docs/ImportExport/Integrations.md


+ 0 - 0
docs/wekan.wiki/Jira.md → docs/ImportExport/Jira.md


+ 0 - 0
docs/wekan.wiki/Leo.md → docs/ImportExport/Leo.md


+ 0 - 0
docs/wekan.wiki/Migrating-from-Trello.md → docs/ImportExport/Migrating-from-Trello.md


+ 0 - 0
docs/wekan.wiki/Migrating-from-old-Wekan-manually.md → docs/ImportExport/Migrating-from-old-Wekan-manually.md


+ 0 - 0
docs/wekan.wiki/Sync.md → docs/ImportExport/Sync.md


+ 0 - 0
docs/wekan.wiki/Wekan-Sandstorm-cards-to-CSV-using-Python.md → docs/ImportExport/Wekan-Sandstorm-cards-to-CSV-using-Python.md


+ 0 - 0
docs/wekan.wiki/Wekan-vs-Trello-vs-Restyaboard.md → docs/ImportExport/Wekan-vs-Trello-vs-Restyaboard.md


+ 0 - 0
docs/wekan.wiki/ZenKit.md → docs/ImportExport/ZenKit.md


+ 0 - 0
docs/wekan.wiki/ADFS.md → docs/Login/ADFS.md


+ 0 - 0
docs/wekan.wiki/Accounts-Lockout.md → docs/Login/Accounts-Lockout.md


+ 0 - 0
docs/wekan.wiki/B2C.md → docs/Login/B2C.md


+ 0 - 0
docs/wekan.wiki/CAS.md → docs/Login/CAS.md


+ 32 - 0
docs/Login/Disable-Password-Login.md

@@ -0,0 +1,32 @@
+## Description
+
+At login screen, do not show password login. Only show login button (OAuth2, LDAP, etc).
+
+## Snap
+
+```
+sudo snap set wekan password-login-enabled='false'
+```
+https://github.com/wekan/wekan/blob/main/snap-src/bin/wekan-help#L614
+
+## Docker
+```
+- PASSWORD_LOGIN_ENABLED=false
+```
+https://github.com/wekan/wekan/blob/main/docker-compose.yml#L693
+
+## Windows On-Premise
+
+https://github.com/wekan/wekan/wiki/Offline
+```
+SET PASSWORD_LOGIN_ENABLED=false
+```
+https://github.com/wekan/wekan/blob/main/start-wekan.bat#L467
+
+## Linux On-Premise
+
+https://github.com/wekan/wekan/wiki/Raspberry-Pi
+```
+export PASSWORD_LOGIN_ENABLED=false
+```
+https://github.com/wekan/wekan/blob/main/start-wekan.sh#L529

Some files were not shown because too many files changed in this diff