浏览代码

Merge branch 'wekan:main' into main

walster001 11 月之前
父节点
当前提交
48bc176bdf
共有 100 个文件被更改,包括 1647 次插入4 次删除
  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)
       # Build and push Docker image with Buildx (don't push on PR)
       # https://github.com/docker/build-push-action
       # https://github.com/docker/build-push-action
       - name: Build and push Docker image
       - name: Build and push Docker image
-        uses: docker/build-push-action@ca052bb54ab0790a636c9b5f226502c73d547a25
+        uses: docker/build-push-action@31159d49c0d4756269a0940a750801a1ea5d7003
         with:
         with:
           context: .
           context: .
           push: ${{ github.event_name != 'pull_request' }}
           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:
 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 xet7.
 
 
 Thanks to above GitHub users for their contributions and translators for their translations.
 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
 # v7.49 2024-06-11 WeKan ® release
 
 
 This release adds the following updates:
 This release adds the following updates:

+ 1 - 1
Stackerfile.yml

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

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

@@ -1190,7 +1190,7 @@
 .board-color-clearblue .list-body .open-minicard-composer {
 .board-color-clearblue .list-body .open-minicard-composer {
   color: rgba(0,0,0,0.3);
   color: rgba(0,0,0,0.3);
 }
 }
-.board-color-clearblue .swinlane.ui-sortable-helper {
+.board-color-clearblue .swimlane.ui-sortable-helper {
   transform: rotate(0deg);
   transform: rotate(0deg);
 }
 }
 .board-color-clearblue .swimlane .swimlane-header-wrap {
 .board-color-clearblue .swimlane .swimlane-header-wrap {
@@ -2251,3 +2251,1374 @@
   background: #2b2b2b;
   background: #2b2b2b;
   color: #fff;
   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',
   'modern',
   'moderndark',
   'moderndark',
   'exodark',
   'exodark',
+  'cleandark',
+  'cleanlight',
 ];
 ];
 export const ALLOWED_COLORS = [
 export const ALLOWED_COLORS = [
   'white',
   '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)
 [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)
 [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)
 [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
 ## Chromium based
 
 
@@ -32,6 +33,7 @@ Browser | [PWA](PWA) | Mobile | Desktop | OS
 ------- | ----| ------ | ------- | -------
 ------- | ----| ------ | ------- | -------
 Chrome | Android Yes | Android Newest | Newest | Win/Mac/Linux
 Chrome | Android Yes | Android Newest | Newest | Win/Mac/Linux
 Chromium | Android Yes | Android Newest | Newest | Win/Mac/Linux/RasPi
 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
 Vivaldi | Android Yes | Android Newest | Newest | Win/Mac/Linux
 Opera | 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
 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)
 [Uberspace Email](https://github.com/wekan/wekan/issues/2009#issuecomment-1017630758)
 
 
 ## Newest Wekan
 ## 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

部分文件因为文件数量过多而无法显示